homematic script via command line (ssh) ausführen?
Moderator: Co-Administratoren
homematic script via command line (ssh) ausführen?
Kann man Homematic-Scripte auch direkt von der Shell (ssh) starten bzw. gibt es einen Interpreter?
In einem tcl-Skript hatte ich eine Funktion "rega_script" gesehen. Gibt es dazu ein equivalentes Binary?
Alternativ könnte ich versuchen über den Umweg eines Tcl-Skripts und mit der Funktion "rega_script" Homematic-Skripte auszuführen. Aber das sollte doch einfacher gehen...
Danke und viele Grüße
raulix
In einem tcl-Skript hatte ich eine Funktion "rega_script" gesehen. Gibt es dazu ein equivalentes Binary?
Alternativ könnte ich versuchen über den Umweg eines Tcl-Skripts und mit der Funktion "rega_script" Homematic-Skripte auszuführen. Aber das sollte doch einfacher gehen...
Danke und viele Grüße
raulix
Re: homematic script via command line (ssh) ausführen?
Erkläre einmal geanu, was Du mit dem Shell-Aufruf bezwecken möchtest. Am Besten anhand eines konkreten Beispiels. Vielleicht sind ja aber auch andere Alternativen besser geeignet.
.
.
Re: homematic script via command line (ssh) ausführen?
Ich möchte die Homematic-Scipte als Datei ablegen und dann in den Programmen (& Zentralenverknüfungen) mittels System.exec (evtl. auch cuxd.exec) aufrufen. Meine Hoffnung war, dass man den Scipten auch Parameter mitgeben kann.
Ziel:
- Backup von Skripts via scp
- bessere Übersicht, als wenn die Scripte nur inline in den Programm stehen.
- Vermeidung doppelter Code (Parameter)
Ziel:
- Backup von Skripts via scp
- bessere Übersicht, als wenn die Scripte nur inline in den Programm stehen.
- Vermeidung doppelter Code (Parameter)
Re: homematic script via command line (ssh) ausführen?
Wenn Du system.Exec() verwenden möchtest, dann geht der Weg über ein TCL-Skript.raulix hat geschrieben:Ich möchte die Homematic-Scipte als Datei ablegen und dann in den Programmen (& Zentralenverknüfungen) mittels System.exec (evtl. auch cuxd.exec) aufrufen.
Dazu wäre dann aus dem Skript im Programm heraus aber Call() oder #inc besser geeignet.raulix hat geschrieben:I Meine Hoffnung war, dass man den Scipten auch Parameter mitgeben kann.
.
Re: homematic script via command line (ssh) ausführen?
Das wird mir weiterhelfen. Zuerst konnte ich mit Call() nicht anfangen, habe dann aber unter /www/rega Beispielcode gefunden.
Ich habe aber keine Funktionen mit Parametern gefunden. Macht man das mit Systemvariablen oder gibt es noch eine undokumentierte Syntax.
Ich habe aber keine Funktionen mit Parametern gefunden. Macht man das mit Systemvariablen oder gibt es noch eine undokumentierte Syntax.
Re: homematic script via command line (ssh) ausführen?
Nein, einfach mit Skriptvariablen.raulix hat geschrieben:Macht man das mit Systemvariablen
Skriptvariablen, welche man in einem Skript deklariert sind grundsätzlich global gültig.
Vorsichtshalber sollte man aber in den ausgelagerten Skriptabschnitten die Skriptvariablen auf eine gültige Deklaration und den korrekten Datentyp prüfen.
.
Re: homematic script via command line (ssh) ausführen?
Also ich habe es jetzt endlich mal geschafft, die gewünschte Funktionalität umzusetzen. Das war mit viel Kopfschmerzen verbunden. Schöner Code ist es nicht geworden. Extrem viele Redundanzen (16-LED-Anzeige).
Die oben genannte call-Funktion hat nicht funktioniert - theoretisch ja, praktisch aber nicht. Problem ist, dass die Homematik/Rega-Skript gecacht werden. Wenn man also eine Änderung an seinem Script vornimmt, dann bekommt man noch den alten Output. Bevor Code funktioniert, muss man halt ein bisschen debuggen...
system.ClearCache hat daran nichts geändert. Mit system.CacheMode(0) habe ich Fehler bei der Ausführung bekommen. Außerdem musste das WebUI danach neu gestartet werden...
Die einzige Möglichkeit, Code wiederzuverwenden war: var programObj = dom.GetObject("Anderes Programm"); programObj.ProgramExecute();
pmatic war noch eine vielversprechene Alternative. Es läuft aber auf der CCU2 viel zu langsam. Abfrage aller Räume dauerte 3 Minuten und Prozessorauslastung bei über 90%.
Ich werde wohl auf OpenHAB auf einem weitern Rechner installieren...
Die oben genannte call-Funktion hat nicht funktioniert - theoretisch ja, praktisch aber nicht. Problem ist, dass die Homematik/Rega-Skript gecacht werden. Wenn man also eine Änderung an seinem Script vornimmt, dann bekommt man noch den alten Output. Bevor Code funktioniert, muss man halt ein bisschen debuggen...
system.ClearCache hat daran nichts geändert. Mit system.CacheMode(0) habe ich Fehler bei der Ausführung bekommen. Außerdem musste das WebUI danach neu gestartet werden...
Die einzige Möglichkeit, Code wiederzuverwenden war: var programObj = dom.GetObject("Anderes Programm"); programObj.ProgramExecute();
pmatic war noch eine vielversprechene Alternative. Es läuft aber auf der CCU2 viel zu langsam. Abfrage aller Räume dauerte 3 Minuten und Prozessorauslastung bei über 90%.
Ich werde wohl auf OpenHAB auf einem weitern Rechner installieren...