NEWS
Test Adapter hyperionNG v0.1.x GitHub
-
Aktuelle Test Version 0.1.22 Veröffentlichungsdatum 14.10.2021 Github Link https://github.com/felixganzer/ioBroker.hyperion_ng Intention
Ich habe an meinem Fernseher HyperionNG laufen um ein selbstgebautes Ambilight zu steuern. Zur Medienwiedergabe nutze ich einen Raspberry4 und Libreelec. Dies kann unter bestimmten Bedingungen Probleme verursachen, weswegen ich das Hyperion gerne deaktiviere, wenn ich das Ambilight nicht nutzen möchte. Aktuell gibt es keinen Adapter, welcher dieses ermöglicht. Ich habe also angefangen, selber einen Adapter zu schreiben.
Adapter Beschreibung
Dieser Adapter soll die komplette Kommunikation zwischen ioBroker und HyperionNG übernehmen
Umgesetzte Features
- abbilden aller möglichen Parameter von HyperionNG in ioBroker, ausgenommen der LEDs.
- starten und Stoppen von Instanzen
- Aktivieren und deaktivieren der HyperionNG Instancen und einzelner Komponenten
- Löschen von Colors und Effekten
- Setzen von Effekten und Farben, inklusive Lebensdauer
- setzen aller Adjustments
- setzen des Grabbers (intern und USB) als sichtbare Priority
geplante Features
Ich bin für Vorschläge offen.
Changelog
0.1.22 (2021.10.14)
- (felixganzer) add communication delay time to config, set default value to 200 ms
- (felixganzer) add Version test for HyperioHDR
0.1.21 (2021.07.27)
- (felixganzer) bugfix setColor with duration 0 used false JSON
- (felixganzer) bugfix setEffect with duration 0 used false JSON
0.1.19 (2021.03.29)
- bugfixing: little bugfixing
ältere Versionen:
-
@flixganzer Klingt auf jeden Fall schon sehr vielversprechend. Gibt es schon eine Version die den Adapter in ioBroker integriert? Ich hatte versucht über die GitHub URL das ganze reinzunehmen, installiert auch ganz normal, legt aber keine Instanz an?
-
@X-R4Y sagte in Test Adapter hyperionNG v0.1.x GitHub:
@flixganzer Klingt auf jeden Fall schon sehr vielversprechend. Gibt es schon eine Version die den Adapter in ioBroker integriert? Ich hatte versucht über die GitHub URL das ganze reinzunehmen, installiert auch ganz normal, legt aber keine Instanz an?
Musst du selber anlegen wenn von Git installiert wird. Mit dem + Icon.
-
@sigi234 said in Test Adapter hyperionNG v0.1.x GitHub:
@X-R4Y sagte in Test Adapter hyperionNG v0.1.x GitHub:
@flixganzer Klingt auf jeden Fall schon sehr vielversprechend. Gibt es schon eine Version die den Adapter in ioBroker integriert? Ich hatte versucht über die GitHub URL das ganze reinzunehmen, installiert auch ganz normal, legt aber keine Instanz an?
Musst du selber anlegen wenn von Git installiert wird. Mit dem + Icon.
Danke für den Hinweis. Lüppt. Das werde ich mal beobachten, für mich ein Adapter auf den ich schon lange gewartet habe.
Gibt aktuell im Log noch folgenden Hinweis:
hyperion_ng.0 2020-12-31 23:00:25.033 warn (10968) This object will not be created in future versions. Please report this to the developer.
hyperion_ng.0 2020-12-31 23:00:25.032 warn (10968) Object hyperion_ng.0.0.components is invalid: obj.type has an invalid value (components) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user -
@X-R4Y Freut mich, dass es dir gefällt.
Die Warnung kenne ich, habe nur aktuell noch keine Ahnung wie ich den wegbekomme. Habe im Forum darüber noch nichts gefunden. Aber aktuell ist diese Warnung uninteressant.
-
@flixganzer super sache! Vielen Dank!!! Farben steuern geht jetzt ohne probleme in iobroker, aber wie starte ich da die effekte??? Gruß fabian
-
Du gibst unter general.control.setEffekt den korrekten Namen des Effektes als String an. Aktuell ist an der Stelle noch keine Fehlerabfrage drin, welche dich darauf hinweist, dass der Name falsch ist.
-
@flixganzer perfekt!
Jetzt hab ich nur noch ein Problem! Ich habe 2 mal hyperion am laufen 1.instanz ambilight und 2.instanz raumbeleuchtung. Beide auf je einem raspberry mit hyperion.ng.
Wenn ich in iobroker jetzt je eine instanz anlege kann ich nur die erste steuern bei der 2. Ändert sich nichts.
Habe auch schon andere json ports eingestellt und freigabe im router gegeben aber kein erfolg!Wie lade ich hier meine log hoch???
-
@Friedelf1982 ja der Fehler ist mir bekannt. Ich werde diesen nachher beheben. Das liegt daran, dass noch hart reingecodet ist, dass er im iobroker instance 0 ausließt. Hätte nicht erwartet, dass jemand so schnell darauf stößt.
Ich wusste zu diesem Zeitpunkt noch nicht wie es besser geht.
-
@flixganzer finde ich super, das sich da endlich jemand mit ahnung ran macht!
-
@flixganzer sagte in Test Adapter hyperionNG v0.1.x GitHub:
@Friedelf1982 ja der Fehler ist mir bekannt. Ich werde diesen nachher beheben. Das liegt daran, dass noch hart reingecodet ist, dass er im iobroker instance 0 ausließt. Hätte nicht erwartet, dass jemand so schnell darauf stößt.
Ich wusste zu diesem Zeitpunkt noch nicht wie es besser geht.
Ich lese in meinem Adapter alle Telegram instanzen automatisch aus, falls du Hilfe bei dem Thema brauchst helfe ich dir gerne
-
@Xenon Ich bin es gewohnt mit C++ zu programmieren. Es war für mich ein totaler Kulturschock mit Javascript was zu schreiben, zwecks Callbacks und async/await.
Ansonsten hast du recht, es gibt nichts besseres zum lernen, als sich den Quellcode anderer Leute anzusehen. Im Endeffekt wurde ja alles schoneinmal irgendwo gemacht.
Bei Gelegenheit komme ich gerne auf dein Angebot zurück.
-
@flixganzer sagte in Test Adapter hyperionNG v0.1.x GitHub:
@Xenon Ich bin es gewohnt mit C++ zu programmieren. Es war für mich ein totaler Kulturschock mit Javascript was zu schreiben, zwecks Callbacks und async/await.
Ansonsten hast du recht, es gibt nichts besseres zum lernen, als sich den Quellcode anderer Leute anzusehen. Im Endeffekt wurde ja alles schoneinmal irgendwo gemacht.
Bei Gelegenheit komme ich gerne auf dein Angebot zurück.
In meiner main.js findest du eine Funktion die ich dynamisch erstellt habe um jede iobroker Instanz per Variablen Namen auslesen zu können
https://github.com/Xenon-s/ioBroker.device-reminder/blob/master/main.js#L1039-L1089
-
@Friedelf1982 Ich habe den Bug behoben
-
Cool wäre ein SendTo Baustein für Blocky:
Effectauswahl, und dauer (begrenzt unbegrenzt)
mfg
eMd -
@flixganzer klappt perfekt! Vielen dank!!!
-
@eMd Das setzen einer Color oder Effect Dauer habe ich hinzugefügt. Ich glaube die Sache mit dem Blockly Baustein liegt außerhalb meiner Macht.
-
@flixganzer top das du den Adapter bereitstellst.
Ich wollte mir in meiner Fernseher an -Routine Ambilight auf Extern umstellen lassen. Wenn Fernseher aus, soll er zurück auf intern gehen (Alles über Blockly manuel umstellen). Hab es über die Prioritäten probiert, aber da hat sich nichts getan. Mein Grabber wirft leider Regenbogen aus, daher kann ich nicht mit den Prioritäten arbeiten. Versuche es so halt manuel zu lösen. Welcher Datenpunkt ist denn für die Quellenwahl?
Und hier noch was von mir aus dem Log, bekomme einige Warn Meldungen.
2021-01-09 20:44:45.424 - info: host.raspberrypi "system.adapter.hyperion_ng.0" enabled 2021-01-09 20:44:45.471 - info: host.raspberrypi instance system.adapter.hyperion_ng.0 started with pid 28252 2021-01-09 20:44:48.334 - info: hyperion_ng.0 (28252) starting. Version 0.1.8 in /opt/iobroker/node_modules/iobroker.hyperion_ng, node: v10.21.0, js-controller: 3.1.6 2021-01-09 20:44:48.383 - info: hyperion_ng.0 (28252) create Control Parameter 2021-01-09 20:44:48.602 - info: hyperion_ng.0 (28252) socket is connected 2021-01-09 20:44:48.632 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general is invalid: obj.type has an invalid value (instance independent parameter) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:48.634 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.644 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion is invalid: obj.type has an invalid value (hyperion Info) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:48.645 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.649 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion.build is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.650 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.654 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion.gitremote is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.655 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.659 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion.id is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.660 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.663 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion.readOnlyMode is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.664 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.667 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion.time is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.672 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.676 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.hyperion.version is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.677 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.680 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system is invalid: obj.type has an invalid value (System Info) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:48.682 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.685 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.architecture is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.686 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.689 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.cpuHardware is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.691 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.694 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.cpuModelName is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.695 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.698 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.cpuModelType is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.700 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.703 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.cpuRevision is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.705 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.707 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.domainName is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.708 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.709 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.hostName is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.711 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.712 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.kernelType is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.713 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.715 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.kernelVersion is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.716 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.718 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.prettyName is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.719 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.721 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.productType is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.722 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.724 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.productVersion is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.725 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.727 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.pyVersion is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.728 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.730 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.qtVersion is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.731 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.733 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.general.system.wordSize is invalid: obj.common.type has an invalid value (state) but has to be one of number, string, boolean, array, object, mixed, file, json 2021-01-09 20:44:48.734 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:48.876 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.0 is invalid: obj.type has an invalid value (Instance_ID) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:48.877 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:49.026 - info: hyperion_ng.0 (28252) read out components finished 2021-01-09 20:44:49.207 - info: hyperion_ng.0 (28252) read out Adjustments finished 2021-01-09 20:44:49.512 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.0.priorities is invalid: obj.type has an invalid value (priorities) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:49.513 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:49.514 - info: hyperion_ng.0 (28252) create priorities 2021-01-09 20:44:49.515 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.0.priorities.0-V4L is invalid: obj.type has an invalid value (0-V4L) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:49.516 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:49.523 - warn: hyperion_ng.0 (28252) Object hyperion_ng.0.0.priorities.1-GRABBER is invalid: obj.type has an invalid value (1-GRABBER) but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-01-09 20:44:49.524 - warn: hyperion_ng.0 (28252) This object will not be created in future versions. Please report this to the developer. 2021-01-09 20:44:49.531 - info: hyperion_ng.0 (28252) read out priorities finished 2021-01-09 20:44:49.642 - info: hyperion_ng.0 (28252) create effects 2021-01-09 20:44:49.837 - info: hyperion_ng.0 (28252) setup finished 2021-01-09 20:45:19.660 - info: hyperion_ng.0 (28252) Connection closed
-
@JohnnyBahama ignoriere die Warnungen, das hat nur damit zu tun, dass ein Teil der erstellten Objekte nicht ganz regelkonform sind.
Zu deiner anderen Frage. Aktuell ist noch nicht implementiert eine Quelle direkt auszuwählen. Hyperion wählt immer automatisch die aus mit der geringsten Zahl. Soll aber noch implementiert werden. Ich werde das Mal nach oben auf meine Agenda setzen.
Ansonsten habe ich nicht 100%ig verstanden was du machen willst.
-
@flixganzer Ja genau das war es. Ich würde die Prioritäten nutzen, kann es aber nicht, weil der HDMI grabber ein Rainbow auswirft, wenn kein Signal ankommt. Dadurch schaltet er halt auch nicht um. Mit deinem Adapter hatte ich gehofft, dass ich die Quellenauswahl über einen Datenpunkt auswählen kann.
Ist ja alles noch jung, ich warte dann mal ab. Kannst mich gerne verlinken, wenn es implementiert ist zum ausprobieren.Falls du einen HDMI Splitter/Grabber hast, der schwarz auswirft, kannst du den mal bitte verlinken.