Seite 1 von 1

PC ausschalten mit exec Binding geht nicht

Verfasst: 13. Dez 2018 18:19
von dolbel
Hallo zusammen,

ich versuche hier verzweifelt meinen PC (Win 10) via openHAB 2 (Synology DS218play) zum Ausschalten zu bewegen aber leider tut sich hier nichts. Selbst im Log wird nichts aufgeführt, was darauf hinweisen könnte was nicht geht.

Exec Bindung, Exec und RegEx Trasformations sind installiert und meine items/things sehen so aus:

item:

Code: Alles auswählen

Switch PCAUS "PC aus" { channel="exec:command:micropcofft:run" }
thing: (IP, Benutzer und Passwort sind natürlich nur Platzhalter)

Code: Alles auswählen

Thing exec:command:micropcofft [command="net rpc shutdown -I 192.168.xxx.xx -U benutzer%%passwort -f", interval=0, autorun=false]

Falls mir jemand weiterhelfen oder mich in die richtige Richtung schubsen könnte wäre ich sehr Dankbar.

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 13. Dez 2018 23:58
von udo1toni
Funktioniert der Befehl denn, wenn Du ihn auf der Kommandozeile der Synology eingibst? eventuell scheitert das Ganze an fehlenden Rechten.

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 14. Dez 2018 06:47
von webguards
Ich habe deine Ausführung eins zu eins umgesetzt und bekomme folgende Fehlermeldung.

Code: Alles auswählen

An exception occurred while formatting the command line with the current time and input values : 'Conversion = 'u''
Meine Lösung wäre (kein Things)

Code: Alles auswählen

item:
Switch		WOL09	"Computer[%s]"		<network>	[ "Switchable" ]			{ wol="192.168.xxx.255#xx:xx:xx:xx:xx:xx" }

Code: Alles auswählen

rules:
rule	"Computer OFF"
when	Item WOL09 received command OFF
then 	executeCommandLine('net rpc shutdown -f -I 192.168.xxx.xxx -U user%pass -C Computer wird in 5 Minuten runtergefahren -t 300') 
end

rule	"Computer ON"
when	Item WOL09 received command ON
then 	executeCommandLine("net rpc abortshutdown -f -I 192.168.xxx.xxx -U user%pass")
end
Die erste Regel aktiviert den Ausschaltbefehl: PC in 5 Minuten runterfahren (-C Zeigt Text auf dem Bildschirm an).
Die zweite Regel bricht den Vorgang des runterfahren ab, falls ich es mir doch ander überlegt habe, wenn der PC aus ist greift der WOL des ITEMS

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 14. Dez 2018 10:28
von dolbel
OK, jetzt kommen wir der Sache evtl. schon näher. Wenn ich den Befehl über putty eingebe...

Code: Alles auswählen

net rpc shutdown -I 192.168.xxx.xx -U benutzer%%passwort -f
... bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

Could not connect to server 192.168.xxx.xx
The username or password was not correct.
Die von mir eingegebene IP, Benutzer und Passwort stimmen allerdings.
Auf der Synology habe ich dem Benutzer "openhab" bereits Adminrechte zugewiesen. Muss ich hier sonst wo noch Einstellungen vornehmen?

@webguards
Ich gehe mal davon aus, dass wenn der obere Befehl in putty schon nicht funktioniert, dein Lösungsansatz wahrscheinlich auch ins Leere läuft. Habe ihn deshalb noch nicht umgesetzt.

Aber vielen Dank schonmal für die Unterstüzung.

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 14. Dez 2018 13:09
von dolbel
So, habe es jetzt hinbekommen, kann aber nicht sagen, was letztendlich geholfen hat. Ich habe folgende Schritte auf dem PC durchgeführt:
https://www.windowspro.de/tipp/uac-filt ... abschalten
https://www.howtogeek.com/109655/how-to ... ndows-pcs/

Danach funktionierte der Befehl mit putty, allerdings mit nur einem "%":

Code: Alles auswählen

net rpc shutdown -I 192.168.xxx.xx -U benutzer%passwort -f
Mein Weg über ein "Thing" hat leider immer noch nicht funktioniert, kein Plan warum. Aber Dank webguards Rule-Lösung klappt es jetzt.
Hier nochmal mein Item und Rule:

Code: Alles auswählen

Switch	WOL09	"Computer[%s]"	<network>	[ "Switchable" ]	{wol="192.168.xxx.xx#xx:xx:xx:xx:xx:xx"}

Code: Alles auswählen

rule	"Computer ON"
when	Item WOL09 received command ON
then 	executeCommandLine("net rpc shutdown -f -I 192.168.xxx.xx -U benutzer%passwort")
end
An dieser Stelle nochmal ein Dank an udo1toni und webguard für die richtigen Schubser.

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 14. Dez 2018 13:44
von udo1toni
dolbel hat geschrieben: 14. Dez 2018 13:09Mein Weg über ein "Thing" hat leider immer noch nicht funktioniert, kein Plan warum.
Oben beim Thing hast Du username%%password verwendet, in der Rule dann username%password. Muss es nun ein oder zwei Prozentzeichen sein?

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 14. Dez 2018 13:50
von dolbel
Also in putty hat es nur mit einem Prozentzeichen funktioniert. Im Thing ging beides nicht, weshalb ich auf die Rule umgestiegen bin. Und hier ebenfalls nur mit einem %

Re: PC ausschalten mit exec Binding geht nicht

Verfasst: 14. Dez 2018 15:02
von udo1toni
Eventuell musst Du den Pfad zu net mit angeben, oder ein /bin/bash vornstellen. Es kann auch sein, dass Du die Leerzeichen zwischen den einzelnen Parametern mit @@ ersetzen musst, dann sähe der Aufruf also so aus:

Code: Alles auswählen

Thing exec:command:micropcofft [command="/bin/bash net@@rpc@@shutdown@@-I@@192.168.xxx.xx@@-U@@benutzer%passwort@@-f", interval=0, autorun=false]
Ich hab auch noch nicht rausgefunden, wann die Leerzeichen ersetzt werden müssen und wann nicht.