Powershell mit OH starten?
-
- Beiträge: 234
- Registriert: 31. Jan 2022 06:35
Powershell mit OH starten?
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
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
- udo1toni
- Beiträge: 13944
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Powershell mit OH starten?
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
-
- Beiträge: 234
- Registriert: 31. Jan 2022 06:35
Re: Powershell mit OH starten?
Nun ich habe eine einfache Rule erstellt die so aussieht:
unabhängig ob ich das "notepad.exe" aufrufe oder das batch file mit "Russ.bat" bekomme ich folgende Fehlermeldung im log:
wenn ich das "Russ.bat" direkt in Windows aufrufe funktioniert es.
Stimmt hier der skript Aufruf nicht oder...?
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
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...?
- udo1toni
- Beiträge: 13944
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Powershell mit OH starten?
Im Zweifel musst Du den gesamten Pfad angeben:
Achte darauf, jedes Leerzeichen durch Unterbrechen des Strings zu kennzeichnen.
Und immer vorausgesetzt, dass die Batchdatei unzulässigerweise in diesem Ordner liegt.
Der Ordner 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.
Code: Alles auswählen
executeCommandLine("C:\\Windows\\System32\\cmd.exe","/c","C:\\openhab\\conf\\scripts\\Russ.bat")
Und immer vorausgesetzt, dass die Batchdatei unzulässigerweise in diesem Ordner liegt.
Der Ordner
Code: Alles auswählen
$OPENHAB_CONF/scripts/
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 234
- Registriert: 31. Jan 2022 06:35
Re: Powershell mit OH starten?
Also ich habe das Russ.bat File in diesem Ordner:
Mit folgender Rule:
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?
Code: Alles auswählen
C:\openhab\conf\scripts
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
Ist u.U. das ExecBinding besser geeignet?
- udo1toni
- Beiträge: 13944
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Powershell mit OH starten?
Und es gibt keine Fehlermeldung im log?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 234
- Registriert: 31. Jan 2022 06:35
Re: Powershell mit OH starten?
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:
Dann nochmals die Rule manuell gestartet. Im Log sehe ich dann folgendes:
Das würde dann wohl heissen dass "executeCommandLine" nicht ausgeführt oder nicht erkannt wird. Kann dies sein oder wo liegt der Hund begraben?!
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
-
- Beiträge: 234
- Registriert: 31. Jan 2022 06:35
Re: Powershell mit OH starten?
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?
Oder gibt es eine Alternative ein Script aus einer Rule zu starten?
- udo1toni
- Beiträge: 13944
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Powershell mit OH starten?
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.
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
- udo1toni
- Beiträge: 13944
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Powershell mit OH starten?
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