NEWS
Gelöst: HTPC shutdown mit jsonrpc
-
Ich habe einen HTPS der beim starten den TV + AV-Receiver via Master/Slave Steckdose startet.Den HTPS starte ich über WOL. Bisher habe ich das ganze mit HA-Bridge und Alexa gesteuert. Da ich nun aber alles auf iobroker umgestellt habe, soll auch das Starten und Abschalten des TV umziehen.
Das Starten via WOL habe ich schon umgesetzt. Das war kein Problem.
Abgeschaltet wird der HTPS mit einem json-rpc Befehl an KODI.
curl -s --data-binary '{"jsonrpc": "2.0", "method": "System.Shutdown", "id":1}' -H 'content-type: application/json;' http://user:pwd@192.168.xxx.xxx:XXXX/jsonrpc
aber bekomme ich das jetzt in ein javascript eingebaut?
-
Du suchst 'exec', damit kannst du befehle auf der System Konsole ausführen.
Sollte so gehen:
exec('curl -s --data-binary '{"jsonrpc": "2.0", "method": "System.Shutdown", "id":1}' -H 'content-type: application/json;' http://user:pwd@192.168.xxx.xxx:XXXX/jsonrpc')
-
ich werds nachher mal ausprobieren…
manchmal kann das Leben so einfach sein...
DANKE
Sveni_Lee
-
funktioniert leider nicht…
var wol = require('wake_on_lan'); on({id: "javascript.0.Multimedia.wakeMyTV"/*Multimedia.wakeMyTV*/, change: "any"}, function (obj) { // var value = obj.state.val; // var oldValue = obj.oldState.val; if (getState("javascript.0.Multimedia.wakeMyTV").val === true) { wol.wake('bc:5f:f4:e8:42:2b'); } if (getState("javascript.0.Multimedia.wakeMyTV").val === false) { exec('curl -s --data-binary '{"jsonrpc": "2.0", "method": "System.Shutdown", "id":1}' -H 'content-type: application/json;' http://user:pwd@192.168.xxx.xxx:xxxx/jsonrpc'); } });
~~![](</s><URL url=)https://i.imgur.com/9pEUodh.jpg" />
ich denke es könnte an den Hochkommas liegen…~~
-
wenn ich nun die Hochkommas durch Anführungszeichen ersetzte wir der Fehler nicht mehr angezeigt.
Allerdings passiert auch nichts, der HTPC schaltet sich nicht ab.
exec('curl -s --data-binary "{"jsonrpc": "2.0", "method": "System.Shutdown", "id":1}" -H "content-type: application/json;" http://user:pwd@192.168.xxx.xxx:XXXX/jsonrpc');
-
Das Problem ist das in dem Befehlsstring ebenfalls Hochkommas und Anführungszeichen vorkommen.
Am besten umgehst dieses Problem in dem du dir ein Bashscript erstellt.
Dort packst du den curl Befehl rein und dann rufst du es mit exec auf.
Wichtig am Anfang des Bashscripts muss````
#! /bin/bashDamit das script auch Ausführbar ist gibst du in der Konsole```` sudo chmod +x deinScript.sh ````ein. Gesendet von Unterwegs
-
ha…
ein Bashscript habe ich schon, das wurde ja auch über die HA-Bridge aufgerufen...
Ist es eigendlich egal wo das Script liegt oder sollte iches der Übersichthalber in /opt/iobroker verschieben?
Aufruf erfolgt dann mit vollem Phad, richtig (/home/sveni_lee/iobroker-scripte/shutdownTV.sh)?
Gruß
Sveni_Lee
-
Ist es eigendlich egal wo das Script liegt oder sollte iches der Übersichthalber in /opt/iobroker verschieben?
Aufruf erfolgt dann mit vollem Phad, richtig (/home/sveni_lee/iobroker-scripte/shutdownTV.sh)? `
Ich denke es ist egal wo es liegt.
Ja, am besten immer mit vollem Pfad aufrufen.
-
jepp… funktioniert.
vielen Dank
-
Dann bitte den ersten Beitrag editieren und den Betreff am anfang um [Gelöst] ergänzen.