Zeitstempel Programme: "letzte Ausführung"
Moderator: Co-Administratoren
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Zeitstempel Programme: "letzte Ausführung"
Guten Morgen!
Ich habe ein sehr einfaches Programm, das bei Änderung der Helligkeit (oder abends 23:00 Uhr) ein paar Lampen ausschalten soll.
Das Programm funktioniert einwandfrei!
Was ich nicht verstehe:
In "Status und Bedienung" -> "Programme" ändert sich der Zeitstempel in der Spalte "letzte Ausführung" alle 30 Sekunden - in dem Intervall, in dem die Variable "HelligkeitAvg", auf dessen Änderung > 2000 ich reagieren möchte, aktualisiert wird.
Aber warum ändert sich der Zeitstempel der Ausführung des Programms, wo es doch bei Änderung (und nicht bei Aktualisierung) getriggert wird?
Ich habe ein sehr einfaches Programm, das bei Änderung der Helligkeit (oder abends 23:00 Uhr) ein paar Lampen ausschalten soll.
Das Programm funktioniert einwandfrei!
Was ich nicht verstehe:
In "Status und Bedienung" -> "Programme" ändert sich der Zeitstempel in der Spalte "letzte Ausführung" alle 30 Sekunden - in dem Intervall, in dem die Variable "HelligkeitAvg", auf dessen Änderung > 2000 ich reagieren möchte, aktualisiert wird.
Aber warum ändert sich der Zeitstempel der Ausführung des Programms, wo es doch bei Änderung (und nicht bei Aktualisierung) getriggert wird?
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Zeitstempel Programme: "letzte Ausführung"
der trigger ist immer eine Änderung an der triggervariablen (bei dir alle 30 Sekunden).
dadurch wird das programm aufgerufen (siehe am Zeitstempel) und die Bedingungen geprüft. Dabei stellt dann die rega fest, ok,keine ÄNDERUNG stattgefunden, also kein "Bedingung Erfüllt" des Condition Blocks. Bedingung nicht erfüllt führt auch zu nicht ausführen des Aktionsteiles. Somit hast du einen Zeitstempel aber keine Aktion.
Black
davon abgesehen würde ich mit mal deinen sensor mit 30 sekunden anschauen. erstmal haut sowas auf den DC und es ist mir in diesem Universum hier nicht bekannt, dann ein sonnen auf / untergang binnen 30 Sekunden stattfindet. Davon abgesehen programmiert man eher eine zeitliche verzögerung und glättung mit ein, um mal wolken ausfiltern zu können.
dadurch wird das programm aufgerufen (siehe am Zeitstempel) und die Bedingungen geprüft. Dabei stellt dann die rega fest, ok,keine ÄNDERUNG stattgefunden, also kein "Bedingung Erfüllt" des Condition Blocks. Bedingung nicht erfüllt führt auch zu nicht ausführen des Aktionsteiles. Somit hast du einen Zeitstempel aber keine Aktion.
Black
davon abgesehen würde ich mit mal deinen sensor mit 30 sekunden anschauen. erstmal haut sowas auf den DC und es ist mir in diesem Universum hier nicht bekannt, dann ein sonnen auf / untergang binnen 30 Sekunden stattfindet. Davon abgesehen programmiert man eher eine zeitliche verzögerung und glättung mit ein, um mal wolken ausfiltern zu können.
Zuletzt geändert von Black am 16.07.2018, 09:25, insgesamt 3-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
Re: Zeitstempel Programme: "letzte Ausführung"
Das mit dem Zeitstempel ist so eine Sache...
Grundsätzlich sollte der Zeitstempel die letzte Ausführung des Programms anzeigen. Und damit ist gemeint das ein DANN/SONST ausgeführt wurde.
Aber es hat sich gezeigt das diese Information warum auch immer sehr unzuverlässig ist und der Zeitstempel sich auch aktualisiert wenn lediglich das Programm durchlauf wurde.
Ich habe beispielsweise mehrere von der Logik identische Programme die auf die Außentemperatur reagieren und bei Bedarf Aktionen ausführen.
Hier ist es so das bei einigen Programm der Zeitstempel sich ändert sobald eine Aktion ausgeführt wurde, bei einzelnen anderen wird der Stempel aber im Rhythmus der zyklischen Statusmeldungen des Temp-Sensors gesetzt obwohl definitiv keine Aktion ausgeführt wurde.
Dieses "Fehlverhalten" wurde hier auch schon öfter diskutiert ohne das man auf eine verlässliche Begründung gestoßen wäre.
Es könnte sein das der Stempel falsch gesetzt wird weil intern etwas schief läuft.
Oder aber die CCU verwechselt im Programm "Änderung" mit "Aktualisierung" und durchläuft das Programm wirklich. In diesem Fall müsste es dann aber auch oft zu unnötigen Schaltbefehlen kommen.
Du solltest also jetzt prüfen ob nicht doch ständig das Licht ausgeschaltet wird obwohl es bereits aus ist.
Grundsätzlich sollte der Zeitstempel die letzte Ausführung des Programms anzeigen. Und damit ist gemeint das ein DANN/SONST ausgeführt wurde.
Aber es hat sich gezeigt das diese Information warum auch immer sehr unzuverlässig ist und der Zeitstempel sich auch aktualisiert wenn lediglich das Programm durchlauf wurde.
Ich habe beispielsweise mehrere von der Logik identische Programme die auf die Außentemperatur reagieren und bei Bedarf Aktionen ausführen.
Hier ist es so das bei einigen Programm der Zeitstempel sich ändert sobald eine Aktion ausgeführt wurde, bei einzelnen anderen wird der Stempel aber im Rhythmus der zyklischen Statusmeldungen des Temp-Sensors gesetzt obwohl definitiv keine Aktion ausgeführt wurde.
Dieses "Fehlverhalten" wurde hier auch schon öfter diskutiert ohne das man auf eine verlässliche Begründung gestoßen wäre.
Es könnte sein das der Stempel falsch gesetzt wird weil intern etwas schief läuft.
Oder aber die CCU verwechselt im Programm "Änderung" mit "Aktualisierung" und durchläuft das Programm wirklich. In diesem Fall müsste es dann aber auch oft zu unnötigen Schaltbefehlen kommen.
Du solltest also jetzt prüfen ob nicht doch ständig das Licht ausgeschaltet wird obwohl es bereits aus ist.
Bei dieser Aussage kann ich nur staunen. Was macht es bitte nötig eine Variable alle 30 Sekunden zu aktualisieren? Jetzt sag bitte nich das Du 24 Stunden am Tag alle 30 Sekunden auch noch ein Skript laufen lässt um 1x abends 2 Lampen auszuschalten.
Viele Grüße!
Jörg
Jörg
Re: Zeitstempel Programme: "letzte Ausführung"
Das sehe ich anders! Der Trigger ist die Änderung des Wahrheitsgehaltes der Variable, und nicht einfach nur des Inhalts allgemein. Regulär muss der Wert die Schwelle 2000 in irgendeine Richtung überspringen damit der Trigger auf "Änderung" regiert.
Wäre es so wie Du schreibst würde jede Aktualisierung des Variablenwertes im Bereich über 2000 zum ausführen des DANN führen weil die Bedingung größer 2000 bei jedem Durchlauf erfüllt ist. Aber genau das passiert eben nur wenn auch die Auslöseoption "bei Aktualisierung" gewählt wurde.
Wenn Deine Aussage richtig wäre würden die meisten meiner Programme ständig den Stempel wechseln obwohl keine Aktion ausgeführt wurde. Das ist aber definitiv nicht so. Einige Stempel wurden schon mehrere Tage nicht geändert obwohl der Inhalt der Variablen, die als Trigger dient, sich häufig aktualisiert. Ich bin mir auch 100% sicher das diese Programme mehrfach angestoßen und geprüft wurden ohne das daraufhin der Stempel verändert wurde.
Viele Grüße!
Jörg
Jörg
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: Zeitstempel Programme: "letzte Ausführung"
Also kurz zur Erklärung:Black hat geschrieben: ↑16.07.2018, 09:18davon abgesehen würde ich mit mal deinen sensor mit 30 sekunden anschauen. erstmal haut sowas auf den DC und es ist mir in diesem Universum hier nicht bekannt, dann ein sonnen auf / untergang binnen 30 Sekunden stattfindet. Davon abgesehen programmiert man eher eine zeitliche verzögerung und glättung mit ein, um mal wolken ausfiltern zu können.
Der Helligkeitssensor schickt alle 30 Sekunden seinen Wertzur RaspberryMatic.
Dieser Wert landet in einer Werteliste von 20 Werten ganz hinten. Der erste Wert fliegt bei dieser Aktualisierung immer raus... eine Art Ringpuffer.
Aus diesen 20 Werten bilde ich den Mittelwert (Avg).
So habe ich eine wunderbar glatte Kurve, ohne Wolken aus den Werten der letzten 10 Minuten (weiße Linie). Mein DC liegt bei 6%. Der Sensor schickt seine Werte per Broadcast. Da wird nix quittiert, was den DC stressen könnte.
Re: Zeitstempel Programme: "letzte Ausführung"
Was ist das denn für ein Sensor der alle 30 Sek. sendet?
Ein originaler HM kann das nicht sein. Sendezyklen unter 3 Minuten waren mir bisher unbekannt.
Ein originaler HM kann das nicht sein. Sendezyklen unter 3 Minuten waren mir bisher unbekannt.
Viele Grüße!
Jörg
Jörg
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: Zeitstempel Programme: "letzte Ausführung"
Ja ok, also sollte ich wirklich nicht viel drauf geben.JRiemann hat geschrieben: ↑16.07.2018, 09:20Das mit dem Zeitstempel ist so eine Sache...
Grundsätzlich sollte der Zeitstempel die letzte Ausführung des Programms anzeigen. Und damit ist gemeint das ein DANN/SONST ausgeführt wurde.
Aber es hat sich gezeigt das diese Information warum auch immer sehr unzuverlässig ist und der Zeitstempel sich auch aktualisiert wenn lediglich das Programm durchlauf wurde.
Manchmal ist der Zeitstempel hilfreich, wenn man sich "verzettelt" hat und man herausfinden möchte, welches Programm denn gerade gelaufen ist, weil dieses oder jenes passiert ist.
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: Zeitstempel Programme: "letzte Ausführung"
Ein netzbetriebener Eigenbau. Mit Batterien wäre das wohl in der Tat nicht möglich.
Re: Zeitstempel Programme: "letzte Ausführung"
Wenn Du 100% sicher bist das das Programm nicht durchlaufen und ausgeführt wird würde ich nichts auf den Stempel geben.
Viele Grüße!
Jörg
Jörg
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Zeitstempel Programme: "letzte Ausführung"
das ist nicht ganz eindeutig, damit gebe ich dir recht.
ich hab programme, da ist es so oder auch so. genau wie du es beschreibst. Bei systemvariablen als trigger eher mein verhalten, bei sensoren als trigger eher dein verhalten. aber nix eindeutiges.
um wirklich aktionen u wissenschreibeich über kleinesscript immereintrag ins systemlog.
ich hab programme, da ist es so oder auch so. genau wie du es beschreibst. Bei systemvariablen als trigger eher mein verhalten, bei sensoren als trigger eher dein verhalten. aber nix eindeutiges.
um wirklich aktionen u wissenschreibeich über kleinesscript immereintrag ins systemlog.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising