ich möchte gerne über ein JavaScript das Ambilight steuern (z.b. im iobroker).
gibt es eine Liste der Befehle des Hyperion.ng?
In der Wiki finde ich leider nix.
API Ambilight Hyperion.ng
- agreen
- Erledigt
-
-
-
Danke, das habe ich bereits gefunden gehabt.
Ich bin ein totaler Anfänger in Thema Json ...ich versuche über den iobroker Hyperion Adaptor mich zu verbinden, bekomme aber einen Fehler, dass er sich nicht verbinden kann.
Alternative wäre es, wenn ich im iobroker mir eigene Skripte zum steuern schreiben könnte. -
Hast du mal testweise sämtliche Security Funktionen abgeschaltet?
-
wenn du die Sicherheit unter Netzwerk meinst, ja habe ich schon probiert.
mit meinem iPad kann ich ich mich ja verbinden ... nur mit dem iobroker Adaptor gehts wohl nicht. -
Ich kenne mich mit IO-Broker leider nicht aus, daher weiß ich nicht wie genau dieser Adapter aufgebaut ist.
Ist er speziell für Hyperion, vermute ich, dass er auf Hyperion Classic basiert. Dementsprechend wirst du die Verbindung mit Hyperion NG nicht hinbekommen.
Ist es ein allgemeiner JavaScript Adapter, bin ich noch ahnungsloser.Wenn du deine eigenen Skripte schreibst, musst doch irgend etwas auf deinen Request zurückbekommen oder?
-
ja, es passiert wohl auf JavaScript
Code
Alles anzeigenhost.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at Socket.Readable.push (_stream_readable.js:224:10) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at readableAddChunk (_stream_readable.js:269:11) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at addChunk (_stream_readable.js:288:12) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at Socket.emit (events.js:198:13) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at Hyperion.<anonymous> (/opt/iobroker/node_modules/hyperion-client/lib/Hyperion.js:29:8) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at Hyperion.parseData (/opt/iobroker/node_modules/hyperion-client/lib/Hyperion.js:51:31) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at Array.forEach (<anonymous>) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at Hyperion.<anonymous> (/opt/iobroker/node_modules/hyperion-client/lib/Hyperion.js:64:16) host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.hyperion/hyperion.js:260:105 host.iobroker 2020-10-03 14:07:18.113 error Caught by controller[0]: TypeError: Cannot read property '0' of undefined hyperion.0 2020-10-03 14:07:17.647 info (1580) terminating hyperion.0 2020-10-03 14:07:17.602 info (1580) Terminated (NO_ERROR): Without reason hyperion.0 2020-10-03 14:07:17.602 info (1580) terminating hyperion.0 2020-10-03 14:07:17.074 info (1580) cleaned everything up...
deswegen dachte ich, ich erstelle mir einfach selbst ein script ... aber ich weiss leider nicht wie das mit json funktioniert.
ich möchte ja nur LED ausschalten, Quelle auswählen und LED einschalten. -
Vielleicht hilft dir das hier weiter:
https://github.com/b1rdhous3/hyperion-ng-api -
leider veraltet ... da gibt es wohl nach keine neue Version
https://www.npmjs.com/package/hyperion-ng-api/v/0.0.2 -
Du könntest noch mittels http-request arbeiten. Ich weiß aber nicht, wie genau das in IO-Broker funktioniert. Ich könnte dir höchstens zeigen, wie ich das aus FHEM heraus mache.
Alternativ per cUrl: curl -X POST -i 'http://192.168.178.76:8090/json-rpc' --data '{"command":"componentstate","componentstate":{"component":"LEDDEVICE","state":true}}'
-
also das mit curl funktioniert schon mal ... super vielen dank.
kannst du mir noch ein Auszug aus FHEM zusenden, dann bin ich glücklich -
Die Befehle findest du alle in der Doku:
https://docs.hyperion-project.…json/Control.html#control
Einfach den curl Befehl von @Esjay umändern.Ein Beispiel: Um die Quelle mit Priorität 50 aus zu wählen:
Doku: https://docs.hyperion-project.…rol.html#source-selection
Curl: curl -X POST -i 'http://192.168.178.76:8090/json-rpc' --data '{"command":"sourceselect","priority":50}' -
vielen Dank, ich komme jetzt klar
somit kann ich über Skripte in iobroker steuern. -
Hallo zusammen, bin recht neu im umgang mit Hyperion. Das Forum hat mir schon ziemlich geholfen bisher. Ich arbeite viel mit beispielen und fuxe mich so in die Thematik rein, wie etwas effektiv funktioniert weiss ich meistens nicht aber Probiere mich dann meistens bis zum erwünschten ergebniss durch.
Nun dank diesem Thread kann ich die Hauptinstanz von Hyperion.NG steuern und es funktioniert alles so wie ich dies brauche.
Nun scheitere ich aber vollends an der Steuerung einer zweiten Instanz. Hab mich zwar durchs Wiki gekämpft aber ich verstehe es einfach nicht und komme auch nach Stunden rumprobieren nicht weiter.
Könnte sich einer der das ganze versteht sich die Zeit nehmen mir ein Beispiel zu schreiben wie ich per HTTP Request z.B das LED Device einer zweiten Instanz ein und aus oder einschalte?
Besten Dank für die Mühe,
bLIZZo -
Magst du mal zeigen, was du bisher versucht hast? Nach ein paar Stunden, sollte ja schon irgendetwas heraus gekommen sein an Code Schnipseln.
-
Danke für deine Antwort,
Naja nicht wirklich, da ich immer die gleiche HTTP Adresse bearbeitet habe. Aber ich kann dir wenn ich heut Abend von der Arbeit nachhause komme die letzte Adresse welche keinen erfolg brachte Posten.Aber ich scheitere da schon am Anfag. Laut Wiki muss man ja zuerst die Instanznummern ausfindig machen per "command":"instance-update" sonst bekommt man ja die Nummern nicht und dann müsste man das resultat in ein weiteres json packen um das Device zu steuern odere habe ich schon dass falsch verstanden?
-
Hast du dir schon die Doku angeschaut?
https://docs.hyperion-project.org/ -
Ich bin ja nicht so.
Hier der 'curl' Befehl um z.b. die Instanz 1 an bzw. aus zu schalten.Codecurl -X POST -i 'http://192.168.178.76:8090/json-rpc' --data '{"command":"instance","subcommand":"startInstance","instance":1}' curl -X POST -i 'http://192.168.178.76:8090/json-rpc' --data '{"command":"instance","subcommand":"stopInstance","instance":1}'
Und hier ein kleines Script um Hyperion Server im lokalen Netzwerk an bzw. aus zu schalten. Die Eingabe einer IP Adresse ist nicht notwendig, da alle Server via SSDP gesucht werden.
Bash
Alles anzeigen#!/bin/bash if ! which gssdp-discover >/dev/null; then sudo apt install gupnp-tools fi # Display usage if parameters missing usage() { echo "Usage: $0 -i <instance_number> -s <state>"; echo "eg:$0 -i 1 -s startInstance"; echo "eg:$0 -i 2 -s stopInstance" 1>&2; exit 0; } # Read parameters (instance number/state) while getopts i:s: option do case "${option}" in i) INSTANCE=${OPTARG};; s) STATE=${OPTARG};; esac done # Check if parameters present if [ -z "${INSTANCE}" ] || [ -z "${STATE}" ]; then usage fi # Search for Hyperion servers INTERFACE=$(awk '/^d/ {print $5;exit}' < <(ip route show)) SERVER=($(gssdp-discover -i "$INTERFACE" --timeout=3 --target=urn:hyperion-project.org:device:basic:1|grep Location|sed 's:/\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\:[0-9]*\).*:\1:')) # Enable/Disable Instance for hyperion in "${SERVER[@]}" do # get authorization token return=$(curl -s -X POST -d \ " { \"command\": \"instance\", \"subcommand\": \"${STATE}\", \"instance\": ${INSTANCE} } " -i $hyperion/json-rpc) done
Gruß Paulchen
-
Hi @Paulchen-Panther,
danke für deine Hilfe und tut mir leid dass ich mich erst jetzt bedanke. Hatte leider meine SD Karte über den Jordan geschickt und ich habe mich so über mich selber aufgeregt dass ich es bissher gelassen habe mich um mein Ambilight zu kümmern.Hatte die Doku schon gesehen und habe es damit auch geschafft gehabt allerdings halt nur die ganze Instanz ein oder aus zuschalten was für mich schon genügte. Aber bevor ich mich dann hier melden konnte habe ich leider die SD Karte geschrottet.
Nun habe ich gesehen dass es einen iobroker Adapter gibt und ich werde mich mal mit diesem auseinander setzen.
Auf dem Weg möchte ich mich noch bei dir/euch für dieses Projekt bedanken. Dank euch habe ich endlich den Schritt von einem Phillips Fernseher zu meinem Wunsch LG OLED gemacht da ich einfach seit gut 10 Jahren nicht auf Ambilight verzichten wollte. Das Erlebnis mit eurem "Ambilight" schlägt dass von Phillips um längen. Dankeschön, wirklich tolle Arbeit welche Stunden eures Lebens kostet um Programmierlegasteniker wie mir es so einfach wie möglich zu machen.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!