Timer Scheduler - Verzögerungen aus HM-Script V1.3

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

Moderator: Co-Administratoren

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: Timer Scheduler - Verzögerungen aus HM-Script V1.1

Beitrag von Black » 13.09.2018, 22:25

sleep wäre nicht so gut, da die rega und die script engine keine threading behersscht.

es geht heute auch schon, aber das ist nicht grad selbsterklärung und die, die es wissen wie, reden da nicht drüber. (u.a. auch wegen supportfragen, die dann zwangsweise kommen würden).

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: Timer Scheduler - Verzögerungen aus HM-Script V1.1

Beitrag von jmaus » 13.09.2018, 22:28

joebetter hat geschrieben:
13.09.2018, 21:50
Das wäre extrem hilfreich, wenn es für HM-Scrip einfach eine Funktion "sleep(integerwert_in_milisec)" gäbe! Das würde vieles ermöglichen und besser handelbar machen!
Sowas kann ich natürlich implementieren und darüber hatte ich auch schon nachgedacht. Das Problem hier ist allerdings das das ausführen eines solchen (sleep) Befehls einem kompletten Lahmlegen der ReGaHss für x Millisekunden entspricht weil alle HM-Skripte ja in ein und dem selben Thread ausgeführt werden und daher dann ein anderes Programm/Skript während eines solchen sleep() in einem anderen Programm nicht ausgeführt wird.

Praktisch kann man aber auch ohne solch eine neue sleep() Funktion in der ReGa mit folgendem system.Exec() Aufruf im Prinzip bereits jetzt das selbe erreichen:

Code: Alles auswählen

system.Exec("sleep 0.2");
Dieser system.Exec() Aufruf führt z.B. dazu das die Abarbeitung eines Skriptes 200 Millisekunden unterbrochen wird.
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: Timer Scheduler - Verzögerungen aus HM-Script V1.1

Beitrag von Black » 13.09.2018, 23:28

naja, sleep kann es ja nicht sein.
das blockiert die ja die rega.

und wenn das aufgrund von funkhygene machen willst biste schnell bei delays von 1000- 2000ms... bei 10 Geräten in einem Gewerk schläft dann alles.

ne, das ist kein sinniger Ansatz.

Drum ja auch seinerzeit das TCL Script, welches quasi einen TCL Thread startet, der unabhängig von der Rega läuft und dort die Datenpunkte nach dem Zeitschema gesetzt werden.

Schöner wäre es natürlich, wenn du (jens) den Zugang auf den Rega Internen Scheduler durch neue (oder auch dokumentierte) alte Methoden in einer Form ermöglichst, dass nicht nur eine Hand voll Eingeweihter dort mehr oder weiniger erfolgreich derartige Umsetzungen durchführen können.

Black

Ich weiss auch, wie ich auf den Rega Scheduler einschlagen muss, muss ein Zeitevent hinzubekommen oder mit welchen methoden ich das verzögert um in Programmen aktivieren oder verändern kann. Diese Wege sind allerdings arg verschlugen und grade für Script Anfäner ein garant für ein Desaster. Ich benutz selber für Zeitabläufe meinen TCL Scheduler, vllt nicht "DIE" elegante Lösung, aber die läuft. paarZeilen Code, set it and forget it. es wird tun.
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

joebetter
Beiträge: 29
Registriert: 29.03.2017, 16:17
Danksagung erhalten: 1 Mal

Re: Timer Scheduler - Verzögerungen aus HM-Script V1.1

Beitrag von joebetter » 16.09.2018, 10:56

jmaus hat geschrieben:
13.09.2018, 22:28
joebetter hat geschrieben:
13.09.2018, 21:50
Das wäre extrem hilfreich, wenn es für HM-Scrip einfach eine Funktion "sleep(integerwert_in_milisec)" gäbe! Das würde vieles ermöglichen und besser handelbar machen!
Sowas kann ich natürlich implementieren und darüber hatte ich auch schon nachgedacht. Das Problem hier ist allerdings das das ausführen eines solchen (sleep) Befehls einem kompletten Lahmlegen der ReGaHss für x Millisekunden entspricht weil alle HM-Skripte ja in ein und dem selben Thread ausgeführt werden und daher dann ein anderes Programm/Skript während eines solchen sleep() in einem anderen Programm nicht ausgeführt wird.

Praktisch kann man aber auch ohne solch eine neue sleep() Funktion in der ReGa mit folgendem system.Exec() Aufruf im Prinzip bereits jetzt das selbe erreichen:

Code: Alles auswählen

system.Exec("sleep 0.2");
Dieser system.Exec() Aufruf führt z.B. dazu das die Abarbeitung eines Skriptes 200 Millisekunden unterbrochen wird.
Hallo Jens,

vielen Dank für die Info! Ok ich wusste nicht, dass die HM-Script-Engine nicht pro ausgeführtem Script in einem extra Thread unabhängig vom Rest durchläuft. Dies ist dann natürlich subobtimal mit sleep!

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: Timer Scheduler - Verzögerungen aus HM-Script V1.3

Beitrag von Black » 04.11.2018, 17:42

Version 1.3 siehe erster Post

Iteration über Gewerke, Räume und Favoriten.

Zusätzlich Option, um sowohl Level als auch State in einem Druchlauf behandeln zu können (Dimmer)

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

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

Re: Timer Scheduler - Verzögerungen aus HM-Script V1.3

Beitrag von dtp » 24.05.2019, 09:20

Hi Black,

sag mal, wäre es auch möglich, den Scheduler dahingehend zu erweitern, dass er auch über einzelne Kanäle eines Geräts läuft? Es gibt ja z.B. einige Geräte mit 4 oder 8 Schaltkanälen. Wenn man dann damit so etwas, wie ein Lauflicht umsetzen wollte, wäre diese Option ggf. sehr hilfreich. Toll wäre es, wenn man dann optional auch noch einstellen könnte, wie lange der vorherige Kanal noch on bleibt, nachdem der nachfolgende auf on geschaltet wurde. Auch wäre es super, wenn man die Reihenfolge mit einem simplen Flag umschalten könnte und wenn man eine Gesamtdauer für Wiederholungen der Schaltfolge setzen könnte.

Nur so eine Idee. 8)

Gruß,

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.

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: Timer Scheduler - Verzögerungen aus HM-Script V1.3

Beitrag von Black » 24.05.2019, 10:23

hi Thorsten, das geht jetzt auch schon, da musst du nur vorher mit einem HM script vorarbeit leisten.

dazu müsstest du dem Scheduler beim Aufruf die einzelnen Datenpunkte, die Verzögerung und die Einschaltdauer mitgeben, set it and forget it, dann läuft das dann im Hintergrund ab

# tclsh /usr/local/timeschedule.tcl [-c] [-d] "ID1 T1 V1 (ED)[, ID2 T2 V2 (ED2)]"
# hierbei bedeutet ID1: ID des zu setzenden Datenpunktes (es wird testet, ob der DP Systemvariable oder Datenpunkt vom Kanal ist
# T1 : Verzögerungszeit in Sekunden
# V1 : neuer Wert
# ED : optinal Einschaltdauer
# ID1 T1 und V1 jeweils getrennt durch Leerzeichen
# bei mehreren Werten, komma, dann ID2 T2 und V2 gemäß wie oben
#

greetz, 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

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

Re: Timer Scheduler - Verzögerungen aus HM-Script V1.3

Beitrag von dtp » 24.05.2019, 10:34

Sprich, ich kann dem TCL-Skript auch direkt noch mehr Datenpunkte ID3, ID4,... mitgeben?

Hintergrund meiner Frage ist, dass ich gerne mit einem 4-Kanal-Funk-Schaltaktor für Batteriebetrieb HM-LC-Sw4-Ba-PCB ein Lauflicht für unsere Treppe realisieren möchte, das mit flexiblen Laufzeiten sowohl nach oben als auch nach unten laufen kann.

Ach so, funktionieren eigentlich auch Verzögerungszeiten < 1 Sekunde?
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.

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Timer Scheduler - Verzögerungen aus HM-Script V1.3

Beitrag von MartinBr » 24.05.2019, 11:12

dtp hat geschrieben:
24.05.2019, 10:34
Sprich, ich kann dem TCL-Skript auch direkt noch mehr Datenpunkte ID3, ID4,... mitgeben?

Hintergrund meiner Frage ist, dass ich gerne mit einem 4-Kanal-Funk-Schaltaktor für Batteriebetrieb HM-LC-Sw4-Ba-PCB ein Lauflicht für unsere Treppe realisieren möchte, das mit flexiblen Laufzeiten sowohl nach oben als auch nach unten laufen kann.

Ach so, funktionieren eigentlich auch Verzögerungszeiten < 1 Sekunde?
Ich hoffe, meine Frage ist hier richtig.

Hi Thorsten,
könnte man das Script auch zusammen mit deinem Beschattungsscript nutzen, um die verschiedenen Rollo-Aktoren bei größeren Aktionen zeitversetzt (vielleicht 1 Sekunde) nacheinander zu schalten?

Nur so eine Idee :mrgreen:

Gruß an Black für das Script
Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

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: Timer Scheduler - Verzögerungen aus HM-Script V1.3

Beitrag von Black » 24.05.2019, 11:18

könnte man, müsste thorsten dann aber anbinden.

Der Scheduler von mir steuert bei mir u.A. auch die Rollos, das Licht bei leaving Home bzw Coming Home , sowie einige Temperaturschaltungen im Anbau bei mir
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 „HomeMatic Tipps & Tricks - keine Fragen!“