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.3

Beitrag von Black » 24.05.2019, 11:24

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?
1.
Du kannst n Datenpunkte übergeben... kein problem... bei mir gehen damit zum Beispiel die Rollos bzw Licht aus bei leaving Home.

2. Kleiner 1 Sekunde geht nicht... würde Theretisch gehen, aber dann müsste man auf millisekunden Skalieren.

if {[string is double $delay] && ($delay> 0)} {
set wait_in_ms [expr $delay * 1000 + 1] <<-- hier skaliert er die Sekunden in Millisekunden
after [expr int($wait_in_ms)]

wenn du das *1000 da rausmachst, dann aber postulierst, das alle zeiten dann in ms zu übergeben sind, würde es gehen. Aber obs das so für die Funkhygene bringt ? ich fahr mit dem Sekundenraster seit langem gut.

oder versuch mal, ob er auch 0.5 als Wert frisst. ich kanns grad auf der Arbeit nicht testen. string is double und >0 sollte ja auch bei 0.5 erfüllt sein.
Aber bei dem CCU verwendeten TCL interpreter bin ich immerhvorsichtig mit der Aussage, es geht.


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, 12:14

Ich werde das alles am WE mal testen. Heute komme ich aber nicht dazu, da ich zu einer Weinprobe eingeladen bin. *hicks* 8)

@MartinBr: Wenn das alles so funktioniert, werde ich das mal als Option in das zBSS einbinden.

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, 15:30

Es hat mir ja keine Ruhe gelassen.
Keines testprogramm, was nacheinander 4 Systemvariablen auf false setzen soll:


Scheduler 1.jpg
Zeit stand auf anderthalb sekunden, so genau ist das syslog leider nicht, aber der Scheduler nimmts .. und man kann aus den Zeiten die 1.5 Sekunden interpolieren^^
es lief brav durch: Auszug aus dem Systemlog

Code: Alles auswählen

May 24 15:26:14 homematic-ccu2 user.debug TIME_Scheduler_V13: [Start Scheduler mit (4) State(s) - Black in November 2018]
May 24 15:26:15 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP1 erfolgreich auf false ]
May 24 15:26:17 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP2 erfolgreich auf false ]
May 24 15:26:18 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP3 erfolgreich auf false ]
May 24 15:26:20 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP4 erfolgreich auf false ]
Kleiner als 1 geht auch:

Code: Alles auswählen

string sTimerPipe= "TP1 0.5 true,TP2 0.5 true,TP3 0.5 true,TP4 0.5 true";
sTimerPipe= 'tclsh /usr/local/timeschedule.tcl -d "' # sTimerPipe # '"';
datapoints.Get("CUxD.CUX2801001:2.CMD_EXEC").State (sTimerPipe);  
also für deinen Wunsch nach Zeit kleiner 1 Sekunde musste nix ändern, die Zeitverzögerung dann halt nur als real Zahl angeben. Umrechnen in millisekunden macht das Script intern.

Code: Alles auswählen

May 24 15:33:07 homematic-ccu2 user.debug TIME_Scheduler_V13: [Start Scheduler mit (4) State(s) - Black in November 2018]
May 24 15:33:07 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP1 erfolgreich auf true ]
May 24 15:33:08 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP2 erfolgreich auf true ]
May 24 15:33:08 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP3 erfolgreich auf true ]
May 24 15:33:09 homematic-ccu2 user.debug TIME_Scheduler_V13: [TP4 erfolgreich auf true ]
@Thorsten
Damit solltest du das auch mit deinem Beschattungsprogramm nutzen können.
Allerdings ein Tip, anstatt die Namen des Aktors, wenn du den Kommandostring bildest, übergib ihm die IseID, der Scheduler mag nicht: leerzeichen in Namen oder Sonderzeichen, dann lieber in dem bildenden HM Script Programm den Kommandostring aus den IDs bilden.

Gruss, und viel Spass bei der Weinprobe, 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

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, 18:25

dtp hat geschrieben:
24.05.2019, 12:14
Ich werde das alles am WE mal testen. Heute komme ich aber nicht dazu, da ich zu einer Weinprobe eingeladen bin. *hicks* 8)

@MartinBr: Wenn das alles so funktioniert, werde ich das mal als Option in das zBSS einbinden.

Gruß,

Thorsten
Dann mal viel Spaß. Als wir letzte Woche in Stuttgart waren, hatten wir zum Abschluss des Dinners ein Whisky Tasting.
Gut, dass das Hotel gegenüber lag (das Yaz, kennst du bestimmt).
Gruß und viel Spaß
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

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 » 28.05.2019, 10:46

Also ich habe jetzt mal ein kleines Skript geschrieben, über das ich die vier Kanäle eines 4-Kanal-Funk-Schaltaktor für Batteriebetrieb HM-LC-Sw4-Ba-PCB ansteuern möchte.

Code: Alles auswählen

string steplightName = "EG Flur Licht Treppe";
integer numIterations = 3;
integer duration = 2;
boolean state = false;

string steplightChannelsList; string steplightChannel;
integer cnt = 0; string command = "";

steplightChannelsList = (dom.GetObject(ID_DEVICES).Get(steplightName)).Channels().EnumUsedIDs();
while(cnt < numIterations){
  cnt = cnt + 1;
  state = !state;
  foreach(steplightChannel, steplightChannelsList){
    command = command#steplightChannel#" "#duration#" "#state#",";
  }
  command = "'tclsh /usr/local/timerschedule.tcl -c -d \""#command.Substr(0, command.Length()-1)#"\"'";
  dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(command);
  WriteLine(command);
  command = "";
}
Die Ausgabe der Variablen command liefert mir:

Code: Alles auswählen

'tclsh /usr/local/timerschedule.tcl -c -d "7820 2 true,8033 2 true,8039 2 true,8045 2 true"'
'tclsh /usr/local/timerschedule.tcl -c -d "7820 2 false,8033 2 false,8039 2 false,8045 2 false"'
'tclsh /usr/local/timerschedule.tcl -c -d "7820 2 true,8033 2 true,8039 2 true,8045 2 true"'
Ich erhalte aber im Syslog nur ständig eine exit(127)-Meldung. Was mache ich falsch? Das tcl-Skript "timerschedule.tcl" habe ich natürlich im Verzeichnis /usr/local meiner CCU3 angelegt und die Zugriffsrechte auf 755 gesetzt.

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 » 28.05.2019, 10:51

der kommandostring bei dir, am anfang und am ende muss das einfache hochkomma weg

testen kannst du auch, wnen du direkt via putta auf die ccu gehst un den reinen tcl kommandostring da eingibst, dqa müssen die ausgaben kommen und das laufen.

Aber die beiden Hochkommata stechen mir da ins auge, mach die mal wech !!

Code: Alles auswählen

command = 'tclsh /usr/local/timerschedule.tcl -c -d "'#command.Substr(0, command.Length()-1) # '"' ;
wenn du unter ssh drauf bist

Code: Alles auswählen

tclsh /usr/local/timerschedule.tcl -c -d "7820 2 true,8033 2 true,8039 2 true,8045 2 true"
dass muss dort laufen und ausführen

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 » 28.05.2019, 11:06

Danke, hab ich auch gerade gesehen, als ich dein Posting weiter oben noch mal studierte. Komme aber gerade nicht direkt zum Testen, weil ich im Büro bin und keine Zeit habe. 8) Melde mich dann heute Abend noch mal.

Ciao,

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.

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 » 28.05.2019, 22:34

Bin zwar etwas weiter, erhalte aber immer folgende Fehlermeldung:
2019-05-28_22h33_35.png
2019-05-28_22h33_35.png (23.76 KiB) 1907 mal betrachtet
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 » 29.05.2019, 06:30

Sieht soweit ja schon mal gut aus.

Du versuchst aber einen channel zu beschreiben. Aus Sicherheitsgründen prüfe ich aber auf HSSDP bzw VARDP. Darum die Fehlermeldung.

Bei dem kommandostring übergib nicht die channelID sondern die ID von dem jeweiligen Datenpunkt.
Gruss 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 » 29.05.2019, 10:55

Ach so. Alles klar. Macht Sinn. ;)
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.

Antworten

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