Howto - Vermeidung von Programmstarts nach Neustart der CCU

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

Moderator: Co-Administratoren

debianatoe
Beiträge: 475
Registriert: 05.12.2016, 19:04
Hat sich bedankt: 31 Mal
Danksagung erhalten: 4 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von debianatoe » 31.01.2022, 19:36

robbi77 hat geschrieben:
30.01.2022, 18:56
Man müßte ja für jedes Gerät wissen, was die CCU beim Neustart für einen Default-Wert annimmt. Gibt es dazu eine Doku? Oder muß man sich das mühsam selbst erarbeiten?
Einmal Neustarten und in der Webui die Zustände ansehen …
Das ist genau die Vorgehensweise des Forschers, wenn der Hersteller zum Verhalten der Geräte keine Angaben macht. Wie lange hat man denn nach dem Neustart Zeit sich die Zustände anzusehen? Wohl doch nur so lange, bis das jeweilige Geräte einen Status geschickt hat. Man muß sich also sputen und auch kontrollieren, ob man schnell genug war.
Viele Grüße,
debianatoe

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von Xel66 » 31.01.2022, 20:11

Bei bestimmten Geräten ist die Zykluszeit bekannt, bei Geräten mit zyklischen Statusmeldungen kann man das auch an den Einstellungen ablesen. Und es werden ja nicht alle Geräte gleichzeitig ihren Status senden. Wenn man die XML-API drauf hat, kann man auch die Zeitstempel der letzten Aktualisierung heranziehen (nicht verwechseln mit der Geräteliste und der "letzten Änderung" (denn das ist der Statuswechsel!). Man kann viel lernen, wenn man sich mal die Zeit nimmt, und das System eine Weile bei seinen Tätigkeiten beobachtet. Das geht natürlich weit darüber hinaus, irgendwelche Scripte per c&p zu übernehmen oder irgendwelche Screenshots nachzuklicken. Das Wissen um ein paar Eigenheiten hilft einem, so einige Klippen zu umschiffen.

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

Benutzeravatar
robbi77
Beiträge: 13919
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 749 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von robbi77 » 31.01.2022, 20:12

Ja …, dann schreib doch den Hersteller mal an, es steht dir ja frei …
Und wenn du diese Erkenntnisse dann hast, kannst du sie gern hier mit uns teilen.

[sprotte80]
Beiträge: 339
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von [sprotte80] » 31.01.2022, 20:18

Hi
Xel66 hat geschrieben:
31.01.2022, 00:17
Ja, aber häufig sind hier auch Screenshots zu sehen, in denen der Workaround wegen definitiv falscher Aussagen zum Triggerverhalten beim Systemstart in alle Programme eingebaut wird. So z.B. auch in Programme, die durch eine Tastenbetätigung getriggert werden. Bei solchen Triggern ist es einfach von absolut jeder Sinnhaftigkeit befreit und beweist, dass derjenige Anwender nicht verstanden hat, worum es überhaupt geht, bzw. das solche Blödsinnsbehauptungen, dass beim Systemstart "alle Programme gestartet werden" auf fruchtbaren Boden gefallen sind. Auch durch eine noch so häufige Wiederholung gewinnt dieser Blödsinn nicht an Wahrheitsgehalt und beweist nur, dass diejenigen, die das behaupten, sich nicht mit der Funktionsweise des Systems auseinandergesetzt haben. Zumindest zählt das Verständnis der Funktionsweise der CCU nicht zu deren Kernkompetenzen. Ja, es werden beim Systemstart standardmäßig die Bedingungen von Programmen geprüft und ggf. auch ausgeführt, aber eben aus ganz anderen Gründen (weil die Prüfung einer Bedingung ein WAHR ergeben hat oder das Programm ein SONST enthält). Dass an der Aussage nichts dran ist, kann man selbst nachprüfen, wenn man sich mal die Zeitstempel der Programme nach einem Reboot anschaut. Man wird viele finden, die keinen bekommen haben. Hier wurde keine Bedingungsprüfung durchgeführt und schon gar nichts ausgeführt.
Alle Progs werden aufgerufen auch wenn du es nicht war haben tun willst.

Simples Prog nur mit taste als trigger ohne sonst und nix

Code: Alles auswählen

Wenn
  ViruelleTaste11 bei Tastendruck kurz
Dann
   nichts

Code: Alles auswählen

Jan 31 19:42:27 ts_home1 local0.debug ReGaHss: Verbose: initialize program 1865 (StartTaste11) [ThreadFunction():iseRTPrg.cpp:90]
Jan 31 19:42:27 ts_home1 local0.debug ReGaHss: Verbose: called Program ID = 1865 'StartTaste11' with valNew = '' ; oidTrigger = 65535 [SetState():iseDOMPrg.cpp:483]
Jan 31 19:42:27 ts_home1 local0.debug ReGaHss: Verbose: type = 1, condition valL = 0 valR1 = 1 [Evaluate():iseCondition.cpp:392]
Jan 31 19:42:27 ts_home1 local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1078]
Jan 31 19:42:27 ts_home1 local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Jan 31 19:42:27 ts_home1 local0.debug ReGaHss: Verbose: c = 0, condition result = 0 [Evaluate():iseRule.cpp:235]
Noch zwei Links
https://forum.fhem.de/index.php/topic,1 ... #msg964859
https://forum.fhem.de/index.php/topic,1 ... #msg964569

Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von Xel66 » 31.01.2022, 21:18

[sprotte80] hat geschrieben:
31.01.2022, 20:18
Alle Progs werden aufgerufen auch wenn du es nicht war haben tun willst.
Ich tue gewöhnlich gar nichts haben wollen, schon gar nicht wahr. Da Du ja der ausgewiesene Experte bist: Lege genau Dein Programm an, boote Deine CCU und schaue nach dem Zeitstempel. Es bekommt keine, weil eben die gestartete Bedingungsprüfung keine Trigger/Bedingungskombination gefunden hat, der ein WAHR ergeben kann (ist ja auch eine bewusste Betätigung notwendig). Und ja, es werden beim Systemstart die Bedingungen der vorhandenen Programme gepfrüft, aber Programme nur abgearbeitet, wenn eine der Prüfung ein WAHR ergeben hat. Kleiner Unterschied zum "es werden alle Porgramme beim Systemstart abgearbeitet".

Fügst Du ein SONST ein, bekommt es einen Zeitstempel. Nun, warum? Die geprüfte Bedingung war nicht erfüllt (kein Trigger aktiv). Folglich muss das SONST durchlaufen werden und die zugehörigen Aktionen abgearbeitet. Damit das passieren kann, muss natürlich eine Bedingungsprüfung durchgeführt werden. Ein Programm bekommt immer dann einen Zeitstempel, wenn eine seiner Bedingungsprüfungen im WENN oder SONST WENN getriggert wurden, egal ob ein Aktion ausgeführt wurde, weil z.B. keine der Prüfungen ein WAHR ergeben hat (also auch, wenn kein SONST vorhanden ist).

Warum wird das alles gemacht und warum ist es grundsätzlich sinnvoll? Um das System in einen konsistenten Zustand gemäß der aktuellen Bedingungen hinzustellen. Was bei reinen Zeitsteuerungen noch zielführend erscheint hat aber den Nachteil, dass u.U. das bestimmte gesetzte Defaultwerte von Sensoren und Aktoren mit ausgewertet werden. Beispiel: es ist bei einem Systemstart zur Nachtzeit sinnvoll, Rollladen herunterzufahren, wenn dieses in einem Programm für Astro-nachts so festgelegt wurde. Das System kann ja nicht wissen, ob es mit einem Systembackup startet oder ob es länger down war und ggf. Aktionen nicht ausgeführt wurden. Im Gegensatz dazu werden Programme mit einem Zeitpunkt als Trigger nicht ausgeführt. Ist es nun sinnvoll, diese Funktionalität durch den Workaround flach zu legen? Auch nicht wirklich, denn der Hersteller hat sich wohl was dabei gedacht. Und zu dem anderen Kandidaten werde ich mich weder äußern oder gar beschäftigen. Das tangiert mich nur peripher.

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

[sprotte80]
Beiträge: 339
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von [sprotte80] » 31.01.2022, 21:48

Hi
Zeitstempel hat nichts mit dem aufrufen/starten des Progs zu tun.
Hast du gesehen das das Prog (mit nur Taste als trigger) nen call hat also einen Aufruf/Start?
Nein haste ignorant drüber weg gesehen.

Ablauf:
Prog wird aufgerufen/gestártet
Bedingungen werden geprüft (egal ob trigger vorhanden)
dann-abschnitt der WAHR-Bedinungen werden ausgeführt.
Das Prog wird also abgearbeitet egal ob eine Aktion danach ausgeführt werden tut.

Du tust ja fast genau das schreiben was badenpower auch schreiben tut.

Black und Badenpower sagen zum Ablauf Program wird gestartet/aufgerufen und du sagst nein.
Was ist es dann wenn nicht Start/Aufruf/abarbeiten?

Thomas
Zuletzt geändert von [sprotte80] am 31.01.2022, 21:55, insgesamt 1-mal geändert.
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

MichaelN
Beiträge: 9850
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 712 Mal
Danksagung erhalten: 1671 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von MichaelN » 31.01.2022, 21:55

Da die Taste zum Zeitpunkt des Reboot nicht gedrückt sein kann, kann es auch keine wahre Bedingung haben.
Bei mir werden solche Programme (genauer der DANN Zweig) definitiv nicht beim Reboot ausgeführt.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

[sprotte80]
Beiträge: 339
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von [sprotte80] » 31.01.2022, 21:59

Hi,
MichaelN hat geschrieben:
31.01.2022, 21:55
Da die Taste zum Zeitpunkt des Reboot nicht gedrückt sein kann, kann es auch keine wahre Bedingung haben.
Bei mir werden solche Programme (genauer der DANN Zweig) definitiv nicht beim Reboot ausgeführt.
Mach mal das Beipiel oben und schau dann ins Syslog.
Dann tust du das call (also den Aufruf/Start) sehen.

Geht ja nicht darum ob der Dannzweig aufgeührt wird. Geht darum ob das Prog gestartet werden tut.

Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

MichaelN
Beiträge: 9850
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 712 Mal
Danksagung erhalten: 1671 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von MichaelN » 31.01.2022, 23:00

[sprotte80] hat geschrieben:
31.01.2022, 21:59
Geht ja nicht darum ob der Dannzweig aufgeührt wird
Doch, denn das
[sprotte80] hat geschrieben:
31.01.2022, 21:59
Geht darum ob das Prog gestartet werden tut.
Ist vollkommen egal
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von Xel66 » 31.01.2022, 23:11

[sprotte80] hat geschrieben:
31.01.2022, 21:48
Zeitstempel hat nichts mit dem aufrufen/starten des Progs zu tun.
Und genau hier können wir aufhören zu diskutieren. Ich möchte hier niemandem zu nahe treten, aber beschäftige Dich mit den Basics, dann könnten wir weiterdiskutieren. Vorerst Thema für mich erledigt.

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

Antworten

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