Blockly "call script file" funktioniert nicht

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Homer-S
Beiträge: 62
Registriert: 25. Dez 2017 21:04
Answers: 0

Blockly "call script file" funktioniert nicht

Beitrag von Homer-S »

Hallo zusammen,

ich habe in Blockly diese Zeile eingefügt:
2024-01-07 19_19_49-openHAB – Mozilla Firefox.jpg
Als Inhalt hatte ich schon:
mopidy_ausschalten.sh
/pfad/mopidyausschalten.sh

immer bekomme ich diesen Fehler:
Failed to execute rule 'dummyswitche-': Fail to execute action: 2

Ich habe schon mehrfach versucht, das Script im Container usw auszuführen, was immer funktioniert hat, natürlich auch als Openhab User.

In den "händischen" Rules hat bisher das immer funktioniert:
executeCommandLine(Duration.ofSeconds(3), "/openhab/conf/scripts/relais_an.sh")

Wo mach ich den Fehler?
Danke
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Openhab 3.4.4 in einem Docker Container

Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Blockly "call script file" funktioniert nicht

Beitrag von udo1toni »

Da liegt ein Irrtum vor.
call script file tut genau das: es führt ein Script aus.
Damit ist aber nicht executeCommandLine() gemeint (dafür gibt es evtl. gar keinen Baustein, oder vielleicht hat jemand aus der Community einen entsprechenden in den Marketplace hochgeladen), sondern die DSL Scripts, welche im Verzeichnis $OPENHAB_CONF/scripts/ mit der Endung *.script gespeichert sind (und ausschließlich solche Dateien sollten sich in dem genannten Verzeichnis befinden).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Homer-S
Beiträge: 62
Registriert: 25. Dez 2017 21:04
Answers: 0

Re: Blockly "call script file" funktioniert nicht

Beitrag von Homer-S »

Ahhhhh, OK.
Hab gerade einen Threat gefunden wo diskutiert wurde, ob man das nicht implementiert, wegen Risiken.
Also doch wieder "von Hand", schade.
Openhab 3.4.4 in einem Docker Container

Harka
Beiträge: 308
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Blockly "call script file" funktioniert nicht

Beitrag von Harka »

Bis jemand eine schönere Lösung präsentiert kannst Du folgendes machen ->
ein neues Script vom Typ Rule_DSL anlegen mit der UID "relais_an_script", dort diese eine Zeile rein schmeißen,

Code: Alles auswählen

logInfo("mach was",executeCommandLine(Duration.ofSeconds(3), "/openhab/conf/scripts/relais_an.sh"))
anschließend kannst Du es mit dem anderen Scriptblock, ruleUID ist dann "relais_an_script", ohne weitere Parameter aufrufen. Hat bei mir jedenfalls gerade geklappt.

Harka
Beiträge: 308
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Blockly "call script file" funktioniert nicht

Beitrag von Harka »

Hat mir keine Ruhe gelassen :roll:
Mit Javascript (ECMAScript 262 Edition 11) lautet der Befehl

Code: Alles auswählen

actions.Exec.executeCommandLine(time.Duration.ofSeconds(3), "/openhab/conf/scripts/relais_an.sh");
Diesen kannst Du im inline_Script-Block einfügen

Homer-S
Beiträge: 62
Registriert: 25. Dez 2017 21:04
Answers: 0

Re: Blockly "call script file" funktioniert nicht

Beitrag von Homer-S »

@Harka

Deine erste Lösung hab ich getestet und die funktioniert super! DANKE
Openhab 3.4.4 in einem Docker Container

Homer-S
Beiträge: 62
Registriert: 25. Dez 2017 21:04
Answers: 0

Re: Blockly "call script file" funktioniert nicht

Beitrag von Homer-S »

Das zweite geht leider nicht

Script execution of rule with UID 'dummyswitche-5' failed: TypeError: Cannot read property "executeCommandLine" from undefined in <eval> at line number 21
Openhab 3.4.4 in einem Docker Container

Harka
Beiträge: 308
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Blockly "call script file" funktioniert nicht

Beitrag von Harka »

Jup, habe nicht auf deine Signatur geachtet. Geht erst ab OH 4 mit Blockly.

Antworten