Programme beim Start der CCU nicht ausführen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Marv21
Beiträge: 131
Registriert: 07.11.2011, 23:07
Hat sich bedankt: 4 Mal

Programme beim Start der CCU nicht ausführen

Beitrag von Marv21 » 13.09.2012, 19:23

Hallo Jungs,
nachdem ich heute am Stromnetz gebastelt habe, war die Spannung der CCU so lange weg das die Batterien leer waren und diese neu gestartet hat.
Ergebniss: Rollos sind auf Fenster aufgeschlagen sind jetzt verknittert usw.
Liegt daran das ist ein Programm habe welches diese schließt...
Ich habe schon gesucht und nicht gefunden ;(

1. Ich würde gerne beim CCU start bestimmte Programme nicht automatisch ausführen lassen (im Notfall auch gar kein).
Geht das?
2. Nach jedem CCU -Start hat die CCU alle Zustände falsch (Fensterkontakte sind alle geschlossen), gibt es da eine Möglichkeit, die Zustände (ohne Batterie) zu behalten oder direkt beim start der CCU abzufragen?

Danke


PS: Oh ich merk es wird grade kalt, da ist ja das Programm mit den 10°C in allen Räumen, dass muss doch verhinderbar sein beim start :roll: :(

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Programme beim Start der CCU nicht ausführen

Beitrag von Herbert_Testmann » 13.09.2012, 20:55

Hallo

Das, was Du möchtest ist rel. aufwendig. Einfacher wäre es, vor Elekroarbeiten an die heutige Erfahrung zu denken :)
Auch eine USV für die CCU könnte helfen.

Eigentlich sollten beim Start der CCU keine Programme einfach so automatisch starten.
Programme ohne Wenn Bedingung werden allerdings beim Start ausgeführt.

Ein bekanntes Problem ist die falsche Systemzeit beim Start. Wenn die CCU die Zeit über NTP stellt und beim Start nicht sofort eine Verbindung zum I-net hat, dann ist das Datum und die Uhrzeit falsch. Dann kann es passiren, das Programme ausgeführt werden, die Uhrzeitabhängig (Tag / Nacht) sind.

Das die Fenstersensoren nach einem Neustart erst einmal geschlossen anzeigen, ist auch bekannt. Erst beim nächsten Wechsel des Status ist der Wert wieder der richtige, falls das Fenster beim Neustart offen war.

Zur Lösung muessten alle Programme so umgestellt werden, dass der Zustand von Sensoren bei Änderung in eine Sysemvariable geschrieben wird. Die Programme muessten dann nicht den Zustand des Sensors prüfen, sondern in der Systemvariablen. Bei normalem Neustart bleiben die Systemvariablen erhalten. Ich weiss nicht, wie das bei Spannungsausfall ist? Dann muesste man noch einen Schritt weiter gehen und alle Zustände auf einem USB Stick speichern.

Die entscheidende Frage, die Du Dir selbst beantworten musst ist Aufwand <-> Nutzen.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Xantrix
Beiträge: 103
Registriert: 14.08.2012, 10:20

Re: Programme beim Start der CCU nicht ausführen

Beitrag von Xantrix » 13.09.2012, 21:10

Man kann auf das Zentralennetzteil = OK prüfen und somit ein INIT-Programm schreiben, welches Systemvariablen setzt, die Schlimmes verhüten.

Frank

Marv21
Beiträge: 131
Registriert: 07.11.2011, 23:07
Hat sich bedankt: 4 Mal

Re: Programme beim Start der CCU nicht ausführen

Beitrag von Marv21 » 13.09.2012, 22:47

Hallo. Wenn ich ein Programm manuell starte dann wird die wenn Anweisung übersprungen. Bei einem CCU Start wird also die wenn Anweisung überprüft ? .

davidmuc
Beiträge: 105
Registriert: 15.08.2010, 00:27
Hat sich bedankt: 1 Mal

Re: Programme beim Start der CCU nicht ausführen

Beitrag von davidmuc » 13.09.2012, 22:48

Zu Deiner ersten Frage: Hier steht, wie's geht. Klappt sehr zuverlässig: http://www.homematic-inside.de/archive/ ... tctrl.html

Marv21
Beiträge: 131
Registriert: 07.11.2011, 23:07
Hat sich bedankt: 4 Mal

Re: Programme beim Start der CCU nicht ausführen

Beitrag von Marv21 » 13.09.2012, 23:34

Cool, danke.

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Programme beim Start der CCU nicht ausführen

Beitrag von JPS » 13.09.2012, 23:45

davidmuc hat geschrieben:Zu Deiner ersten Frage: Hier steht, wie's geht. Klappt sehr zuverlässig: http://www.homematic-inside.de/archive/ ... tctrl.html
Stimmt grundsätzlich, bei einem Absturz der CCU hat Start-Ctrl bei mir jedoch selten zuverlässig funktioniert und zudem hatte ich es in Verdacht, selbst einige Abstürze verursacht zu haben. Daher mache ich es zwischenzeitlich manuell:

- System Variable anlegen "CCU Boot abgeschlossen" (Boolean)
- alle relevanten Programme um die nur-prüfen-Abfrage "CCU Boot abgeschlossen" ergänzen
- ein Programm (ohne Bedingung) erstellen, das die SysVar "CCU Boot abgeschlossen" nach 10 Minuten auf "true" setzt (sorgt dafür, dass die Programme, die beim Hochfahren der CCU getriggert werden nichts unerwünschtes anrichten, erst nach 10 Minuten laufen die Programme normal, die Zeit ist ggf. anzupassen).
- vor einem geplanten Reboot die SysVar "CCU Boot abgeschlossen" manuell auf "false" setzen, z.B. mit TrayMatic
- bei nicht geplanten Reboots funktioniert es auch, wenn man die SysVar "CCU Boot abgeschlossen" mit TrayMatic unmittelbar nachdem sie wieder angezeigt wird manuell auf "false" setzt.

Vollautomatisch wird es nach meiner Erfahrung schwierig, da wird wohl eher das von Herbert gezeichnete Szenario greifen.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

Marv21
Beiträge: 131
Registriert: 07.11.2011, 23:07
Hat sich bedankt: 4 Mal

Re: Programme beim Start der CCU nicht ausführen

Beitrag von Marv21 » 14.09.2012, 00:01

Hmm, ich probier beides mal aus. Dqas von Herbert ist wirklich zu kompliziert ;)

Kann ich die Fensterkontake nicht beim Neustart abfragen?
Oder wissen diese selber nicht in welchen Zustand sie sich befinden?

Vielleicht hilft dieser code weiter (Ist von hier http://homematic-forum.de/forum/viewtop ... en&start=8 )

Code: Alles auswählen

     string itemID;
        string address;
        object aldp_obj;
        string channel;
        var x;

        foreach(itemID, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
          address = dom.GetObject(itemID).Address();
          aldp_obj = dom.GetObject("AL-" # address # ":0.UNREACH");
          if (aldp_obj) {
            if (aldp_obj.Value()) {
              foreach (channel, dom.GetObject(itemID).Channels().EnumUsedIDs()) {
                x = dom.GetObject(channel).State();
              }
            }
          }
        }

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Programme beim Start der CCU nicht ausführen

Beitrag von JPS » 14.09.2012, 00:10

Marv21 hat geschrieben:Kann ich die Fensterkontake nicht beim Neustart abfragen?
Oder wissen diese selber nicht in welchen Zustand sie sich befinden?
Klar kannst du alternativ oder ergänzend in deinen Programmen die TFK abfragen aber du musst immer zwischen dem Zustand "am Hochfahren" und dem Zustand "Hochgefahren" unterscheiden sonst geht entweder das Eine oder das Andere nicht und dazu brauchst du die beschriebene SysVar, die du entweder manuell oder eben über Start-Control beeinflusst, probiere es aus, was bei dir besser funktioniert.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Programme beim Start der CCU nicht ausführen

Beitrag von DrTob » 14.09.2012, 01:19

Marv21 hat geschrieben: Kann ich die Fensterkontake nicht beim Neustart abfragen?
Oder wissen diese selber nicht in welchen Zustand sie sich befinden?
Nein, kann man nicht. Die TFKs sind, um Strom zu sparen, nicht immer auf Empfang und können so nicht aktiv von Seiten der CCU abgefragt werden. Sie senden ihren Status lediglich bei einer Änderung.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“