Howto - Vermeidung von Programmstarts nach Neustart der CCU

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von Xel66 » 28.07.2016, 16:01

BadenPower hat geschrieben:Wenn er weiß, dass der TFK geöffnet ist, dann kann er ja den Status des TFK auf geöffnet setzen, ohne auf die zyklische Meldung des Sensors eventuell 23 Stunden warten zu müssen.
Der einfachste programmlose Weg wäre, das Fenster/ die Tür einfach mal kurz zu schließen, und schon hat die CCU den korrekten Status. Ein Reboot kann auch durch externe Ereignisse passieren oder die CCU einfach mal abstürzen und wenn man dann nicht zu Hause ist, ist es mit dem Wissen um den aktuellen Status Essig. Eine solche Lösung muss weitestgehend failsafe sein.

Die Diskussion hatte ich neulich auch schon mal in einem anderen Thread. Da ging es auch um TFKs, die angeblich irgendwann einen falschen Zustand gemeldet hätten. Es hat einige Postings gekostet, klarzumachen, dass das der Status ist, den der TFK erkennt und dann auch meldet. Und das ist unabhängig davon, wie die Tür/ das Fenster gerade steht. Wenn es "Erkennungsprobleme" durch ungünstige Montage gibt, dann kann dort auch schon mal ein Unterschied sei. Insofern rüste ich nach und nach auf optische TFK um, weil die ihren Status alle paar Minuten pollen. Somit ist der Zeitraum der Unsicherheit überschaubar.

Aber hier in der aktuellen Anfrage, die mit dem eigentlichen Topic des Threads auch nur noch am Rande was zu tun hat, ging es u.a. ja auch um die aktive Abfrage von Batteriesensore und im speziellen Fall um die Helligkeitsinformation eines BWM. Und hier wird es tricky, denn die Übermittlung der Helligkeit hängt an der Bewegungserkennung oder eben zyklischen Statusinfo. Dort könnte man ggf. die Helligkeit in Abhängigkeit von der Tageszeit und Wetter schätzen und in die von der CCU gespeicherte Statusinformation per Script schreiben. Schön ist anders. Dieses Manko muss man irgendwie anders abfangen. Ohne genaue Kenntnis des Programms wird es aber schwierig. Es bleibst dabei, Batteriesensoren lassen sich nicht abfragen. Wenn man deren Statusinformationen innerhalb von Programmen benötigt, dann muss man sie in einer Systemvariable zwischenspeichern. Alles andere ist m.E. Murks und am eigentlichen Problem vorbei.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

nathan1312
Beiträge: 41
Registriert: 16.09.2016, 09:08
Wohnort: Bonn

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von nathan1312 » 25.09.2016, 10:59

Hallo,

eine Frage dazu. Was genau bedeutet "Programmstart nach Neustart"?

1) Werden die Programme nur getriggert? D.h. werden auch alle WENN-Bedingungen abgearbeitet und geprüft? In diesem Fall dürften ja nur Programme laufen, die keine besonderen Bedingungen erfordern. Wenn ich z.B. ein Programm habe welches nur zwischen 18 und 20 Uhr abends ausgeführt werden soll und der Neustart der CCU ereignet sich um 11 Uhr vormittags. Wird dann das Programm, also der DANN-Zweig, ausgeführt oder nicht?

2) Oder löst der Neustart auf jeden Fall die Ausführung aller DANN-Zweige aus und ignoriert alle WENN-Bedingungen? Also so als würde man auf der WebUI ein Programm testen.

Eigentlich müsste es ja der erste Fall sein, denn sonst würde ja die Prüfung der Variable CCU SV Status keinen Sinn machen. Allerdings wäre es dann doch gar nicht so schlimm wenn die Programme getriggert werden, da diese dann ja wahrscheinlich sowieso "fällig" wären. (Sehe ich aber vielleicht auch zu naiv. Hab noch nicht so viele Programme angelegt. Aber bisher sehe ich keine Probleme mit ungewollten Programmstarts bei einem Neustart.)

VG, Bastian

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von paul53 » 25.09.2016, 11:21

1) trifft zu (siehe hier).
nathan1312 hat geschrieben:Allerdings wäre es dann doch gar nicht so schlimm wenn die Programme getriggert werden, da diese dann ja wahrscheinlich sowieso "fällig" wären.
Das trifft auf viele Programme zu. Wenn aber z.B. der Status eines TFK in einer SV gespeichert wird, da der Wert einer SV einen CCU-Restart übersteht, der TFK-Wert selbst aber auf false initialisiert wird, muss man das Setzen der SV mit dem (falschen) TFK-Wert bei CCU-Restart verhindern.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

nathan1312
Beiträge: 41
Registriert: 16.09.2016, 09:08
Wohnort: Bonn

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von nathan1312 » 25.09.2016, 11:53

Aha, danke!

Sorry für die doppelte Frage aber manchmal findet man trotz Suche schon vorhandene Antworten nicht wenn man mit den falschen Keyworten arbeitet...

skymichel
Beiträge: 1
Registriert: 02.02.2017, 21:08

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von skymichel » 02.02.2017, 21:35

Hallo zusammen,

da ich auch das Problem hatte, dass die Systemvariable "CCU SV Status" nie in den Zustand "Normalbetrieb" ging - sprich die Bedingung trotz Neustart nie erfüllt war und somit weder eine Meldung verschickt wurde, noch die Systemvariable neu gesetzt wurde - anbei ein kurzer Erklärungsversuch, warum das so war.

Da unter "Status und Bedienung" / "Systemvariable" alles einwandfrei zu sein schien (stand auf "Neustart"), habe ich mir über "Script testen" nochmals den Inhalt ausgeben lassen. Dabei musste ich feststellen, dass die Systemvariable mit "0" initialisiert war. Das nahm ich dann zum Anlass, den Wert mit nachfolgendem Script auf "false" zu setzen.

Code: Alles auswählen

var x = dom.GetObject("CCU SV Status");
WriteLine(x.Variable() );
x.Variable(false);
WriteLine(x.Variable() );
Einen Reboot später funktionierte dann alles, wie es sollte.
Im Nachhinein kann ich mir nun auch den Tipp von papi erklären, die Bedingung einfach mal weg zu lassen. Da die Systemvariable in Wirklichkeit weder "true" noch "false" war, lief jede Bedingung in Bezug auf diese Systemvariable ins Leere. Das einmalige Weglassen der Bedingung sollte es also auch richten.

Grüße vom HomeMatic-Neueinsteiger
Michael

SMA
Beiträge: 95
Registriert: 16.04.2015, 13:28

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von SMA » 05.02.2017, 14:12

Bisher hat das Programm immer tadellos funktioniert. Aus irgendeinem Grund bleibt die Variable aber immer auf <Neustart> hängen. Selbst wenn ich den Timer auf 5minuten stelle...

@skymichel's Skript stellt diese zwar um, aber nach einem Neustart hab ich wieder dasselbe Problem.

Jemand eine Idee?
Privat
1 Kanäle in 1 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
1x CUX28, 1x HM-Sec-SCo


Ehemalig studentische Projektgruppe
Übersicht des Haus-Projekts (Neubau)
1x CCU2 (Untergeschoss/Stahlbau) || 2x LAN-Gateway (Erdgeschoss/Dachgeschoss)

527 Kanäle in 238 Geräten und 64 CUxD-Kanäle in 17 CUxD-Geräten:
9x HM-Sen-MDIR-O-2, 16x CUX90, 12x HM-LC-Sw2-FM, 18x HM-PB-6-WM55, 33x HM-Sec-SCo, 21x HM-Sec-SD, 19x HM-LC-Bl1PBU-FM, 24x HM-LC-Sw1PBU-FM, 16x HM-TC-IT-WM-W-EU, 19x HM-LC-Sw1-FM, 9x HM-PBI-4-FM, 3x HM-Sec-SD-Team, 1x HM-Sec-TiS, 10x HM-Sec-SC-2, 3x HM-CC-VG-1, 5x HM-Sec-MDIR-2, 2x HM-LC-Sw4-SM, 1x HM-Sen-Wa-Od, 5x HM-LC-RGBW-WM, 1x CUX28, 1x HM-Sen-EP, 3x HM-LC-Dim1T-FM, 1x HM-LC-Sw4-DR, 1x HM-LC-Dim1TPBU-FM, 2x HM-WDS10-TH-O, 1x HM-Sec-WDS-2, 2x HM-ES-PMSw1-Pl, 14x HMW-LC-Sw2-DR, 1x HM-WDS100-C6-O, 2x HMW-IO-12-Sw7-DR

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von dtp » 06.02.2017, 08:31

Also bisher hatte ich keinerlei Probleme. Allerdings starte ich meine CCU in der Regel auch nur nach einem FW- oder Addon-Update neu.

Ich werde es mal testen.

Bis dann,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

SMA
Beiträge: 95
Registriert: 16.04.2015, 13:28

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von SMA » 06.02.2017, 14:37

Ich starte in der Regel auch nicht neu. Hab mich aber gewundert, wieso keine Nachricht vom Fensterkontakt kam. Da ist mir das aufgefallen. Irgendwann muss sie neugestaret haben.

Das habe ich zum Anlass genommen, nicht benötigte Addons zu deinstallieren, CUxD zu updaten und auf die neueste Firmware zu gehen. Wollte Fehler durch Addons/Firmware ausschließen...

Die Initialisierung beginnt, wie beschrieben, mit 0, normalerweise also false, statts mit 1, also true.
In dem Fall ist aber 0 = Neustart ... Schreibe ich anschließend false mittels dem Skript, steht es auf Normalbetrieb. Irgendwas haut, selbst vor dem Update und ohne irgendeine Änderung an Addons, Firmware oder Programmen, nicht mehr hin. Von jetzt auf gleich (oder irgendwann innerhalb der letzten 6 Monate)...

Hab das noch mal überprüft, um sicherzugehen das ich nicht blöd bin ...
0, false = Normalbetrieb
1, true = Neustart

Nur nicht beim Neustart ...

EDIT: Interessant... Was auch immer passiert ist durch das mehrmalige Umschreiben 0/1/true/false und dem Einsatz einer SD Karte gerade eben... jetzt wurde alles richtig geschrieben und das Programm funktionierte. Ich werde das mal beobachten... Schlau werde ich daraus nicht.

EDIT2: Ok... Mal funktioniert es. Mal nicht :-) Mehr aber nicht. Kann es nicht 100% replizieren.
Privat
1 Kanäle in 1 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
1x CUX28, 1x HM-Sec-SCo


Ehemalig studentische Projektgruppe
Übersicht des Haus-Projekts (Neubau)
1x CCU2 (Untergeschoss/Stahlbau) || 2x LAN-Gateway (Erdgeschoss/Dachgeschoss)

527 Kanäle in 238 Geräten und 64 CUxD-Kanäle in 17 CUxD-Geräten:
9x HM-Sen-MDIR-O-2, 16x CUX90, 12x HM-LC-Sw2-FM, 18x HM-PB-6-WM55, 33x HM-Sec-SCo, 21x HM-Sec-SD, 19x HM-LC-Bl1PBU-FM, 24x HM-LC-Sw1PBU-FM, 16x HM-TC-IT-WM-W-EU, 19x HM-LC-Sw1-FM, 9x HM-PBI-4-FM, 3x HM-Sec-SD-Team, 1x HM-Sec-TiS, 10x HM-Sec-SC-2, 3x HM-CC-VG-1, 5x HM-Sec-MDIR-2, 2x HM-LC-Sw4-SM, 1x HM-Sen-Wa-Od, 5x HM-LC-RGBW-WM, 1x CUX28, 1x HM-Sen-EP, 3x HM-LC-Dim1T-FM, 1x HM-LC-Sw4-DR, 1x HM-LC-Dim1TPBU-FM, 2x HM-WDS10-TH-O, 1x HM-Sec-WDS-2, 2x HM-ES-PMSw1-Pl, 14x HMW-LC-Sw2-DR, 1x HM-WDS100-C6-O, 2x HMW-IO-12-Sw7-DR

Gerti
Beiträge: 3000
Registriert: 28.01.2016, 18:06
System: CCU
Wohnort: Hürth
Hat sich bedankt: 16 Mal
Danksagung erhalten: 260 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von Gerti » 12.02.2017, 08:20

Hi!

Habe auch gerade eine neue CCU aufgesetzt und habe damit dasselbe Problem.
Wenn man in die Liste der Systemvariablen schaut, wird die Systemvariable für den Neustart erst zwei Sekunden nach den anderen gesetzt:
Screenshot_20170212-080233.png
Verzögert
Meine Programme werden eine Sekunde später automatisch ausgeführt, sofern die Bedingungen es zulassen, den Dann-Zweig erreichen Sie aber anscheinend nicht. Ich habe derzeit erst drei Programme auf der CCU und zwei davon haben nur den Status einer Systemvariable als Prüfbedingung (die beim Start erfüllt ist). Diese tauchen in Bedingung/Programme nach dem Neustart der Zentrale auch mit der Startzeit der Zentrale auf, werden aber trotzdem nicht ausgeführt.

Setze die Zentrale nachher noch mal zurück und teste nochmal.

Gruß
Gerti

Gerti
Beiträge: 3000
Registriert: 28.01.2016, 18:06
System: CCU
Wohnort: Hürth
Hat sich bedankt: 16 Mal
Danksagung erhalten: 260 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der

Beitrag von Gerti » 13.02.2017, 07:34

Hi!

Habe gestern mal einen PI mit Raspberrymatic in Betrieb genommen und dort genau dasselbe Problem.
Auf den gibt es nur das Programm, welches die Systemvariable umschalten soll.
Im Log sieht man, dass der Start des Programms fehlschlägt.
Kann es sein, dass zu wenig Geräte angelernt sind und daher die Zentrale zu schnell mit dem Start fertig ist und die Programme daher nicht startet?
Starte ich die danach manuell, läuft es problemlos.

Gruß
Gerti

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“