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.
Howto - Vermeidung von Programmstarts nach Neustart der CCU
Moderator: Co-Administratoren
-
- 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
Viele Grüße,
debianatoe
debianatoe
-
- 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
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
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
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
- 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
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.
Und wenn du diese Erkenntnisse dann hast, kannst du sie gern hier mit uns teilen.
-
- 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
Hi
Simples Prog nur mit taste als trigger ohne sonst und nix
Noch zwei Links
https://forum.fhem.de/index.php/topic,1 ... #msg964859
https://forum.fhem.de/index.php/topic,1 ... #msg964569
Thomas
Alle Progs werden aufgerufen auch wenn du es nicht war haben tun willst.Xel66 hat geschrieben: ↑31.01.2022, 00:17Ja, 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.
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]
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.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
-
- 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
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".[sprotte80] hat geschrieben: ↑31.01.2022, 20:18Alle Progs werden aufgerufen auch wenn du es nicht war haben tun willst.
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
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
-
- 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
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
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.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
-
- 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
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.
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 +++
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 +++
-
- 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
Hi,
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
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.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
-
- 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
Doch, denn das
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 +++
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 +++
-
- 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
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.[sprotte80] hat geschrieben: ↑31.01.2022, 21:48Zeitstempel hat nichts mit dem aufrufen/starten des Progs zu tun.
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
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