[GELÖST] State() mit Delay in HM Script

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

MichaelN
Beiträge: 9650
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von MichaelN » 30.06.2020, 13:11

Da ich eine solche Funktion gerade gut gebrauhcen könnte:

kann man eigentlich abfragen, ob ein Delay gesetzt ist?

Konkret: ich schalte in einem Programm eine Variable verzögert von false auf true und möchte zwischendurch abfragen, ob diese Verzögerung noch läuft oder ob sie durch einen gegenläufigen Befehl (sofort auf false) gestoppt wurde.
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 +++

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von Black » 30.06.2020, 13:35

MichaelN hat geschrieben:
30.06.2020, 13:11
Da ich eine solche Funktion gerade gut gebrauhcen könnte:

kann man eigentlich abfragen, ob ein Delay gesetzt ist?

Konkret: ich schalte in einem Programm eine Variable verzögert von false auf true und möchte zwischendurch abfragen, ob diese Verzögerung noch läuft oder ob sie durch einen gegenläufigen Befehl (sofort auf false) gestoppt wurde.
Noch nicht... ich habe aber Funktionen wie .IsScheduled() bzw .ClearDelay() schon bei Jens als Issue angemeldet

Stringfunktionen wie .EscapeString() bzw .UnEscapeString () wären auch sinnvoll nach dem breaking Change Erfahrungen . Den Pascal Quelltext dazu kann ich gerne zur Verfügung stellen.
Ebenso .StringBetween (linketextgreze,rechtetextgrenze)

Black
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

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von jmaus » 30.06.2020, 14:50

jmaus hat geschrieben:
30.06.2020, 11:53
Ja, das ist es in der Tat und ich hab es auch schon reproduzieren können und ich denke auch schon den schuldigen gefunden. Der entscheidende Hinweis war dabei die folgende Fehlermeldung die kommt wenn man ein Delayed State() auf einen Kanal macht:

Code: Alles auswählen

Jun 30 09:07:43 homematic-raspi local0.err ReGaHss: ERROR: dp pointer is null - id= 1679 [ExecuteWriteJob():iseRTScheduler.cpp:641]
Der Scheduler der das State ja dann nach der angegebenen Delayzeit ausführen soll kann bis jetzt eben nur mit DPs umgehen und verweigt mit dieser Fehlermeldung auch ein State() auf einem Kanal auszuführen (was prinzipiell geht wenn es einen DefaultDP für einen Kanal gibt. Sollte sich recht einfach reparieren lassen.
So, ab der kommenden R1.00.0388.0220 sollte das nun gehen. Und noch mehr, denn mir war auch gleich noch aufgefallen das das delayed State() auch nicht für OT_PROGRAM funktioniert hat. Damit sollte das delayed State() in der kommenden ReGa version dann für alle Objekttypen gehen auf die man ein State() anwenden kann (ausser natürlich ich hab einen übersehen :)
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von jmaus » 04.07.2020, 09:54

So, noch kurz nachgeliefert: Im aktuellsten nightly Snapshot von RaspberryMatic ist jetzt die neueste ReGaHss Betaversion mit dabei bei der nun das delayed State() auch für OT_CHANNEL und OT_PROGRAM funktionieren sollte. Interessierte Tester können das gerne mal selber testen und hier berichten. Danke nochmal an alchy für den Hinweis!
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von Black » 04.07.2020, 13:54

Gib mir mal bitte einen Use case für den state bzw statedelay eines OT_PROGRAM Objektes.

Thnx Black
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

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von alchy » 04.07.2020, 17:11

.State(1) oder auch true oder Los triggert ein Programm sofern es aktiv ist in es werden die Bedingungen geprüft im Gegensatz zu execute.
Das hat aber nichts mit der Rapi zu tun. Das ist schon länger so wurde jetzt nur verraten.
Der delay würde es dann verzögern auf der raspi.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von Black » 04.07.2020, 17:20

Thnx, interessanter Ansatz der sich da eröffnet.

Black
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

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von jmaus » 04.07.2020, 18:25

Black hat geschrieben:
04.07.2020, 17:20
Thnx, interessanter Ansatz der sich da eröffnet.
Genau, das eröffnet z.b. den interessanten Ansatz in einem Program1 in einem Skript das zweite Program2 aufzurufen das wiederrun Program1 aufruft und somit mitunter dazu führt das die ReGa irgendwann tot am Boden liegt vor lauter Rekursionen ;) Also einfach damit nun ein wenig sparsam umgehen damit man sich nicht irgendwann damit böse in den Fuß schießt ;)
Aber ansonsten ist das wie alchy sagt nichts wirklich neues. Neu ist nur das man das State() jetzt auch mit einem Delay ausführen lassen kann.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: [GELÖST] State() mit Delay in HM Script

Beitrag von Black » 04.07.2020, 18:36

da gibts noch ganz andere möglichkeiten, um die rega ins nirvana zu setzen. generell ist es aber ein interessanter ansatz, für den es mit sicherheit auch die ein oder andere vernünftige Anwendung gibt

Black
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

Antworten

Zurück zu „RaspberryMatic“