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/jsonrpcaber 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') -
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'); } });
~~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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden