Powershell mit OH starten?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Norick
Beiträge: 234
Registriert: 31. Jan 2022 06:35

Powershell mit OH starten?

Beitrag von Norick »

Hallo
gibt es die Möglichkeit ein Powershell-Script (mit Parameter) aus OH3 (Windows) zu starten? Leider finde ich überhaupt nichts konkretes zu diesem Thema.

Danke

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

Re: Powershell mit OH starten?

Beitrag von udo1toni »

Ich möchte davon ausgehen, dass aus Rules heraus executeCommandline funktioniert (oder eben über das exec Binding). Kann sein, dass Du ein Hilfsscript nutzen musst, welches das Powershell Script startet.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 234
Registriert: 31. Jan 2022 06:35

Re: Powershell mit OH starten?

Beitrag von Norick »

Nun ich habe eine einfache Rule erstellt die so aussieht:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "2"
    configuration:
      itemName: AstronomischeSonnendaten_Spring
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: executeCommandLine (“cmd /c notepad.exe”)
      // script: executeCommandLine("cmd /c C:\\openhab\\conf\\scripts\\Russ.bat", 1000)
    type: script.ScriptAction
unabhängig ob ich das "notepad.exe" aufrufe oder das batch file mit "Russ.bat" bekomme ich folgende Fehlermeldung im log:

Code: Alles auswählen

2023-01-22 10:22:57.725 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '5e0474553a' failed: executeCommandLine (“notepad.exe”)
2023-01-22 10:24:12.808 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '5e0474553a' failed: executeCommandLine (“cmd /c notepad.exe”)

wenn ich das "Russ.bat" direkt in Windows aufrufe funktioniert es.

Stimmt hier der skript Aufruf nicht oder...?

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

Re: Powershell mit OH starten?

Beitrag von udo1toni »

Im Zweifel musst Du den gesamten Pfad angeben:

Code: Alles auswählen

executeCommandLine("C:\\Windows\\System32\\cmd.exe","/c","C:\\openhab\\conf\\scripts\\Russ.bat")
Achte darauf, jedes Leerzeichen durch Unterbrechen des Strings zu kennzeichnen.

Und immer vorausgesetzt, dass die Batchdatei unzulässigerweise in diesem Ordner liegt.

Der Ordner

Code: Alles auswählen

$OPENHAB_CONF/scripts/
ist ausschließlich für *.script Dateien gedacht. Das wird für Einsteiger leider aus der Doku überhaupt nicht klar. Tatsächlich habe ich einen Bezug auf den Ordner nur an einer Stelle gefunden: https://www.openhab.org/docs/configurat ... em-actions, aber eben keinen Hinweis darauf, dass dieser Ordner nicht für andere als DSL-Scripts gedacht ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 234
Registriert: 31. Jan 2022 06:35

Re: Powershell mit OH starten?

Beitrag von Norick »

Also ich habe das Russ.bat File in diesem Ordner:

Code: Alles auswählen

C:\openhab\conf\scripts
Mit folgender Rule:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "2"
    configuration:
      itemName: AstronomischeSonnendaten_Spring
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: executeCommandLine("C:\\Windows\\System32\\cmd.exe","/c","C:\\openhab\\conf\\scripts\\Russ.bat")
    type: script.ScriptAction
Wenn ich die Rule manuell triggere wird das bat-File nicht ausgeführt resp. im log-File sehe ich keinen Eintrag obwohl das batch-File direkt in Windows ausgeführt funktioniert.

Ist u.U. das ExecBinding besser geeignet?

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

Re: Powershell mit OH starten?

Beitrag von udo1toni »

Und es gibt keine Fehlermeldung im log?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 234
Registriert: 31. Jan 2022 06:35

Re: Powershell mit OH starten?

Beitrag von Norick »

So jetzt endlich kann ich es nochmals testen mit folgendem Ergebnis:

Wenn ich die Rule manuell starte sehe ich keine Fehlermeldung im log. Ich habe diesbezüglich das Script der Rule wiefolgt erweitert:

Code: Alles auswählen

logInfo("TEST", "Start Batchfile")
executeCommandLine("C:\\Windows\\System32\\cmd.exe","/c","C:\\openhab\\conf\\scripts\\Russ.bat")
logInfo("TEST", "End Batchfile")

Dann nochmals die Rule manuell gestartet. Im Log sehe ich dann folgendes:

Code: Alles auswählen

2023-02-11 09:07:44.788 [INFO ] [org.openhab.core.model.script.TEST  ] - Start Batchfile
2023-02-11 09:07:44.792 [INFO ] [org.openhab.core.model.script.TEST  ] - End Batchfile
Das würde dann wohl heissen dass "executeCommandLine" nicht ausgeführt oder nicht erkannt wird. Kann dies sein oder wo liegt der Hund begraben?!

Norick
Beiträge: 234
Registriert: 31. Jan 2022 06:35

Re: Powershell mit OH starten?

Beitrag von Norick »

oder gibt es eine andere Möglichkeit diesen Befehl aus Openhab zu prüfen ob er richtig funktioniert? Ich habe irgendwie das Gefühl das der Befehl - aus welchem Grund auch immer - nicht ausgeführt wird.

Oder gibt es eine Alternative ein Script aus einer Rule zu starten?

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

Re: Powershell mit OH starten?

Beitrag von udo1toni »

Da kannst noch das exec Binding ausprobieren. Andererseits muss das auch mit executeCommandLine gehen, Java ist OS-neutral und solche Aufrufe werden entsprechend OS-abhängig korrekt verarbeitet. Im Gegensatz zu einer GNU/Linux Umgebung sollte die Groß-/Kleinschreibung hier auch keine Rolle spielen und die Backslashes sind korrekt doppelt eingegeben.
Ich würde Dich ja ins englische Forum verweisen, aber das ist seit gestern down...
Das Softwareupgrade ist durch, siehe https://twitter.com/openHAB aber hier kommt immer noch die Hinweistafel.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Powershell mit OH starten?

Beitrag von udo1toni »

So, gerade eben(!) probiere ich es noch mal (vor Fünf Minuten ging's noch nicht), jetzt ist https://community.openhab.org/ wieder normal erreichbar...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten