NEWS
Adapter: fakeRoku (Harmony to ioBroker)
-
Bei FHEM gibt es ja seit einiger Zeit fakeRoku, womit man endlich auch Button-Eingaben der Harmony Remote empfangen kann.
Ich habe das nun auch für ioBroker umgesetzt und es darf gerne getestet werden:
https://github.com/Pmant/ioBroker.fakeroku
WICHTIG:
-
Wie in der README beschrieben muss das richtige Netzwerkinterface in der Instanzkonfiguration ausgewählt werden
-
die States werden erst beim ersten drücken eines Buttons erstellt
-
-
M besten schieb den Thread ins "ioBroker Tester" Subforum oder ins Allgemeine … in dem Subforum hast Du denke eher Entwickler
Ansonsten: Du hast ja die Travis-CI und APpveyor-CI testfiles drin. AM besten da noch anmelden mit deinem Github Account und die Projekte anlegen dann laufen die Tests nach jedem Commit automagisch.
Mehr Details dazu: http://forum.iobroker.net/viewtopic.php?f=24&t=4334
-
Ich habe das mal installiert. Das hat soweit auch funktioniert. Aber nun, wie weiter?
Der Hub findet nichts. Der Adapter meldet nichts. Auf was ist zu achten? Was kann man tun?
Da müsste ev. noch etwas Anleitung her…
Besten Dank im Voraus
-
M besten schieb den Thread ins "ioBroker Tester" Subforum oder ins Allgemeine … in dem Subforum hast Du denke eher Entwickler
Ansonsten: Du hast ja die Travis-CI und APpveyor-CI testfiles drin. AM besten da noch anmelden mit deinem Github Account und die Projekte anlegen dann laufen die Tests nach jedem Commit automagisch.
Mehr Details dazu: http://forum.iobroker.net/viewtopic.php?f=24&t=4334 `
Danke, werde ich machen.Ich das mal installiert. Das hat soweit auch funktioniert. Aber nun, wie weiter?
Der Hub findet nichts. Der Adapter meldet nichts. Auf was ist zu achten? Was kann man tun?
Da müsste ev. noch etwas Anleitung her…
Besten Dank im Voraus `
Wenn du die beiden Punkte unter WICHTIG beachtet hast, dann sollte es klappen, ansonsten gibt es noch ein Problem. Du kannst das Loglevel des Adapter auf DEBUG schalten, dann gibt er eine Menge Infos aus. -
Jepp. Wichtig habe ich gelesen. Netzwerk umgestellt. -Aber-
Um ein Button zu drücken muss der Roku erst in den Hub. Dieser findet beim Discovery aber nichts. Manuelles zufügen gleicht einer Lotterie, da ich nicht weiss, welches Roku genau eingefügt werden sollte. Plus, diejenigen, welche ich versucht habe, möchten das Gerät erst mal aktivieren. Das läuft aber auch ins Leere.
Ich habe dann den upnp Adapter installiert. Der sieht dein Roku aber auch nicht.
Kann sein das das upnp nicht sauber läuft?
-
Ich hätte es hier ja nicht zum testen reingestellt, wenn es bei mir nicht sauber laufen würde :lol: . In der Harmony Desktop App wird das Gerät bei mir gefunden, ebenso in der Android App. Ob man über "WLAN Scannen" oder über Gerät Hinzufügen (Roku 3) geht ist eigentlich egal, da man am Ende immer im Netzwerkscanner landet.
Schalt den Adapter doch mal auf debug, vielleicht kommen da verwertbare Informationen bei raus.
-
Kann ja sein, dass es nicht an Dir liegt. :mrgreen:
Aber:
fakeroku.0 2017-02-04 15:46:37.853 debug HTTP-Server started on 192.168.1.121:9093 fakeroku.0 2017-02-04 15:46:37.851 debug listening on 192.168.1.121:1900 fakeroku.0 2017-02-04 15:46:37.784 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.fakeroku, node: v4.7.2 fakeroku.0 2017-02-04 15:46:37.729 debug statesDB connected fakeroku.0 2017-02-04 15:46:37.596 debug objectDB connected fakeroku.0 2017-02-04 15:46:32.844 info terminating fakeroku.0 2017-02-04 15:46:32.831 info cleaned everything up... fakeroku.0 2017-02-04 15:46:31.170 debug HTTP-Server started on 0.0.0.0:9093 fakeroku.0 2017-02-04 15:46:31.168 debug listening on 0.0.0.0:1900 fakeroku.0 2017-02-04 15:46:31.097 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.fakeroku, node: v4.7.2 fakeroku.0 2017-02-04 15:46:30.980 debug statesDB connected fakeroku.0 2017-02-04 15:46:30.848 debug objectDB connected fakeroku.0 2017-02-04 15:45:58.500 info cleaned everything up... fakeroku.0 2017-02-04 15:45:58.497 error at UDP.onMessage (dgram.js:506:8) fakeroku.0 2017-02-04 15:45:58.497 error at Socket.emit (events.js:172:7) fakeroku.0 2017-02-04 15:45:58.497 error at emitTwo (events.js:87:13) fakeroku.0 2017-02-04 15:45:58.497 error at Socket. (/opt/iobroker/node_modules/iobroker.fakeroku/main.js:170:28) fakeroku.0 2017-02-04 15:45:58.497 error at Socket.send (dgram.js:300:11) fakeroku.0 2017-02-04 15:45:58.497 error RangeError: Offset + length beyond buffer length fakeroku.0 2017-02-04 15:45:58.485 error uncaught exception: Offset + length beyond buffer length fakeroku.0 2017-02-04 15:45:58.458 debug response sent to 192.168.1.125:40741 fakeroku.0 2017-02-04 15:45:49.802 debug HTTP-Server started on 0.0.0.0:9093 fakeroku.0 2017-02-04 15:45:49.799 debug listening on 0.0.0.0:1900 fakeroku.0 2017-02-04 15:45:49.723 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.fakeroku, node: v4.7.2 fakeroku.0 2017-02-04 15:45:49.668 debug statesDB connected fakeroku.0 2017-02-04 15:45:49.533 debug objectDB connected fakeroku.0 2017-02-04 15:45:44.736 info terminating fakeroku.0 2017-02-04 15:45:44.721 info cleaned everything up... fakeroku.0 2017-02-04 15:44:04.073 debug HTTP-Server started on 192.168.1.121:9093 fakeroku.0 2017-02-04 15:44:04.071 debug listening on 192.168.1.121:1900 fakeroku.0 2017-02-04 15:44:03.998 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.fakeroku, node: v4.7.2
Wenn ich die Netzwerk-Einstellung richtig hab, läuft der Adapter , tut aber nichts.
Wenn die Netzwerk-Einstellung falsch ist, reagiert er auf das upnp, schmiert dann aber ab….
Nun Du wieder.
P.S. Die Lizenz fürs Adapteradminfenster müsste auch noch eingetragen werden (ev. io-package.json);-)
-
Wenn du 0.0.0.0 einstellst, dann horcht der Adapter auf allen Interfaces des Gerätes. Allerdings wird dann, wenn per multicast eine Anfrage des Hubs kommt (an 0.0.0.0:1900) geantwortet, dass der Hub unter 0.0.0.0:9093 eine xml Datei abrufen soll. An diesem Punkt scheitert es dann, da 0.0.0.0 keine gültige Netzwerk-IP ist.
Stellst du die richtige IP ein, wird nur noch auf dieser gehorcht und diese wird dann auch in der Antwort gesendet.
Tests:
-
kannst du von einem anderen Gerät per Browser auf 192.168.1.121:9093 zugreifen, wenn du diese IP eingestellt hast?
-
geht das wenn du 0.0.0.0 eingestellt hast und trotzdem die obere IP nutzt?
-
welche IPs werden dir in der Adaptereinstellung noch angeboten?
-
-
Bitte nochmal von GitHub installieren.
Der eine Crash des Adapters lag an Node 4.x, das habe ich gefixt. Hatte vorher nur unter Node 6 getestet.
Außerdem horcht der Adapter jetzt immer auf allen Interfaces bei ":1900".
-
Test-Resultate 1: OK; geht mit xml return
! ````
<root xmlns="urn:schemas-upnp-org:device-1-0"><specversion><major>1</major>
<minor>0</minor></specversion>
<device><devicetype>urn:roku-com:device:player:1-0</devicetype>
<friendlyname>ioBroker0</friendlyname>
<manufacturer>Pmant</manufacturer>
<manufacturerurl>https://github.com/Pmant/</manufacturerurl>
<modeldescription>ioBroker fake Roku player</modeldescription>
<modelname>ioBroker0</modelname>
<modelnumber>4200X</modelnumber>
<modelurl>https://github.com/Pmant/ioBroker.fakeroku</modelurl>
<serialnumber>8727023100193855d71aa3bede2073c7</serialnumber>
<udn>uuid:roku:ecp:8727023100193855d71aa3bede2073c7</udn>
<servicelist><service><servicetype>urn:roku-com:service:ecp:1</servicetype>
<serviceid>urn:roku-com:serviceId:ecp1-0</serviceid>
<controlurl><eventsuburl><scpdurl>ecp_SCPD.xml</scpdurl></eventsuburl></controlurl></service></servicelist></device></root>Test-Resultat 2: NOK; geht nicht -> ERR_CONNECTION_REFUSED Test-Resultat 3: ![452_iobroker-err-fakeroku.png](/assets/uploads/files/452_iobroker-err-fakeroku.png)
-
Danke, deine Tests haben schon geholfen und die Ergebnisse sind in etwa wie vermutet, jetzt nochmal neu von GitHub testen bitte
-
Nun denn…
Installation: OK
Nach Umstellen der IP und Log-debug: ziemlich traffic
Discovery vom Hub erfolgreich: OK
Roku 3 Device hinzugefügt: OK
Am Tablet mal die 'Home'-Taste gesendet: Emfangen OK, Objekt erstellt auch OK.
Dann geh mal suchen, wo die Kinder die Fernbedienung verlegt haben...
BTW: Gute Arbeit Patrick :!:
-
Nach Umstellen der IP und Log-debug: ziemlich traffic `
Im Netzwerk fliegt mittlerweile jede Menge solcher Traffic rum, alleine der Harmony Hub schickt beim Netzwerkscan an die 100 Anfrage rum. Die meisten dieser Anfragen bleiben allerdings unbeantwortet vom Adapter. -
Ich bin da etwas reingeschossen…
Desshalb - einfach um sicher zu sein -> Der Adapter ist für 'nichts' gut, AUSSER einige Tasten an ein virtuelles Gerät (iobroker) zu senden, die sonst keiner interpretiert? Was ja gut ist!
Aber würde bedeuten, dass meine Wohnzimmerlampe denmächst Amazon heisst?! Oder??
-
Oder du müsstest ein Gerät in der harmony anlegen (das du nicht hast) und dann dessen Tasten missbrauchen um Homematic / iobroker zu steuern.
Gruß
Rainer
-
Ich bin da etwas reingeschossen…
Desshalb - einfach um sicher zu sein -> Der Adapter ist für 'nichts' gut, AUSSER einige Tasten an ein virtuelles Gerät (iobroker) zu senden, die sonst keiner interpretiert? Was ja gut ist!
Aber würde bedeuten, dass meine Wohnzimmerlampe denmächst Amazon heisst?! Oder?? `
Normalerweise kann man, da Logitech keine solche API anbietet, nicht auf Knopfdrücken auf den Harmony Remotes reagieren. Das einzige, was Harmony nach außen weitergibt sind Wechsel der Activities, was vom Harmony Adapter unterstützt wird. Um nun auch auf Knöpfe der Remotes reagieren zu können ist der fakeRoku da, ein Gerät welches du in verschiedene Activities mit rein packen kannst und dessen Knöpfe dann nach ioBroker weitergeleitet werden. Das funktioniert nur, da Harmony die Roku-Geräte über das Netzwerk steuert.
Beispiel: du packst fakeRoku mit in die Activity "Musik" und belegst auf der Fernbedienung die Farbknöpfe auf welche der funktionierenden Buttons (Amazon usw. werden von Harmony nicht über das Netzwerk gesendet). Nun könntest du in ioBroker entsprechend reagieren und RGB Lampen auf die Farben ändern.
Es sollten diese Knöpfe funktionieren:
InstantReplay Home Info Search Back FastForward = Fwd Rewind = Rev Select DirectionUp DirectionRight DirectionLeft DirectionDown Play
-
Coole Sache!!!
Hab zwar keine Ahnung, wer oder was "Roku" ist, aber der Adapter funktioniert schon richtig gut. 8-) Endlich kann man die Harmony Remote richtig flexibel nutzen.
Man sollte evtl. noch erwähnen, dass "Pause" erneut den "Play"-Befehl und "Exit" ebenfalls den "Home"-Befehl sendet. Das macht aber wohl der Harmony-Hub bzw. wird von Roku so erwartet (nur dass sich keiner wundert).
Also "well done" und besten Dank, justr
-
Ja genau, im Harmony-System gibt es zwar Pause, in Wirklichkeit wird aber bei Play und Pause jeweils Play gesendet.
Dass Exit standardmäßig den Home-Befehl sendet liegt an der Roku Bedienstruktur (zurück zum Homescreen). Die Tasten auf der FB können ja beliebig geändert werden, es stehen wie gesagt die 12 (oder waren es 13?) Tasten zur Verfügung. Auch kann das Gerät in der Harmonysoftware beliebig umbenannt werden und es sollten mehrere Instanzen gleichzeitig möglich sein, um noch mehr Tasten zu bekommen (mag das jemand testen? Port müsste anderer als beim ersten Adapter sein).
-
Hi Pman,
ich habe den Adapter ebenfalls mal installiert.
Fehlermeldungen gibt es keine. States werden aber leider nicht angelegt.
Die IP habe ich auf IoBroker gestellt. Anbei mal das log, wenn auf debug gestellt.
[spoiler] akeroku.0 2017-02-04 23:11:52.165 info cleaned everything up... host.iobroker 2017-02-04 23:11:52.163 info object change system.adapter.fakeroku.0 host. 2017-02-04 23:11:50.549 debug redis publish io.system.adapter.fakeroku.0.uptime {"val":195,"ack":true,"ts":1486246310548,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246310548} host. 2017-02-04 23:11:50.547 debug redis publish io.system.adapter.fakeroku.0.memHeapUsed {"val":9.45,"ack":true,"ts":1486246310547,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246310547} host. 2017-02-04 23:11:50.547 debug redis publish io.system.adapter.fakeroku.0.memHeapTotal {"val":10.52,"ack":true,"ts":1486246310547,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246220531} host. 2017-02-04 23:11:50.547 debug redis publish io.system.adapter.fakeroku.0.memRss {"val":28.23,"ack":true,"ts":1486246310547,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246280543} host. 2017-02-04 23:11:50.547 debug redis publish io.system.adapter.fakeroku.0.connected {"val":true,"ack":true,"ts":1486246310547,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115514} host. 2017-02-04 23:11:50.546 debug redis publish io.system.adapter.fakeroku.0.alive {"val":true,"ack":true,"ts":1486246310546,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115513} fakeroku.0 2017-02-04 23:11:48.099 debug responding to 192.168.0.106:49414 fakeroku.0 2017-02-04 23:11:47.098 debug responding to 192.168.0.106:49414 fakeroku.0 2017-02-04 23:11:46.097 debug responding to 192.168.0.106:49414 fakeroku.0 2017-02-04 23:11:45.096 debug responding to 192.168.0.106:49414 host. 2017-02-04 23:11:35.545 debug redis publish io.system.adapter.fakeroku.0.uptime {"val":180,"ack":true,"ts":1486246295545,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246295545} host. 2017-02-04 23:11:35.545 debug redis publish io.system.adapter.fakeroku.0.memHeapUsed {"val":9.29,"ack":true,"ts":1486246295545,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246295545} host. 2017-02-04 23:11:35.545 debug redis publish io.system.adapter.fakeroku.0.memHeapTotal {"val":10.52,"ack":true,"ts":1486246295545,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246220531} host. 2017-02-04 23:11:35.545 debug redis publish io.system.adapter.fakeroku.0.memRss {"val":28.23,"ack":true,"ts":1486246295545,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246280543} host. 2017-02-04 23:11:35.544 debug redis publish io.system.adapter.fakeroku.0.connected {"val":true,"ack":true,"ts":1486246295544,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115514} host. 2017-02-04 23:11:35.544 debug redis publish io.system.adapter.fakeroku.0.alive {"val":true,"ack":true,"ts":1486246295544,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115513} fakeroku.0 2017-02-04 23:11:27.381 debug responding to 192.168.0.1:43598 fakeroku.0 2017-02-04 23:11:22.381 debug responding to 192.168.0.1:43598 host. 2017-02-04 23:11:20.545 debug redis publish io.system.adapter.fakeroku.0.uptime {"val":165,"ack":true,"ts":1486246280545,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246280545} host. 2017-02-04 23:11:20.544 debug redis publish io.system.adapter.fakeroku.0.memHeapUsed {"val":9.1,"ack":true,"ts":1486246280544,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246280544} host. 2017-02-04 23:11:20.544 debug redis publish io.system.adapter.fakeroku.0.memHeapTotal {"val":10.52,"ack":true,"ts":1486246280544,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246220531} host. 2017-02-04 23:11:20.543 debug redis publish io.system.adapter.fakeroku.0.memRss {"val":28.23,"ack":true,"ts":1486246280543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246280543} host. 2017-02-04 23:11:20.543 debug redis publish io.system.adapter.fakeroku.0.connected {"val":true,"ack":true,"ts":1486246280543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115514} host. 2017-02-04 23:11:20.543 debug redis publish io.system.adapter.fakeroku.0.alive {"val":true,"ack":true,"ts":1486246280543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115513} fakeroku.0 2017-02-04 23:11:17.381 debug responding to 192.168.0.1:43598 fakeroku.0 2017-02-04 23:11:12.381 debug responding to 192.168.0.1:43598 fakeroku.0 2017-02-04 23:11:07.383 debug responding to 192.168.0.1:43598 host. 2017-02-04 23:11:05.543 debug redis publish io.system.adapter.fakeroku.0.uptime {"val":150,"ack":true,"ts":1486246265543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246265543} host. 2017-02-04 23:11:05.543 debug redis publish io.system.adapter.fakeroku.0.memHeapUsed {"val":8.92,"ack":true,"ts":1486246265543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246265543} host. 2017-02-04 23:11:05.543 debug redis publish io.system.adapter.fakeroku.0.memHeapTotal {"val":10.52,"ack":true,"ts":1486246265543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246220531} host. 2017-02-04 23:11:05.543 debug redis publish io.system.adapter.fakeroku.0.memRss {"val":28.29,"ack":true,"ts":1486246265543,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246265543} host. 2017-02-04 23:11:05.542 debug redis publish io.system.adapter.fakeroku.0.connected {"val":true,"ack":true,"ts":1486246265542,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115514} host. 2017-02-04 23:11:05.542 debug redis publish io.system.adapter.fakeroku.0.alive {"val":true,"ack":true,"ts":1486246265542,"q":0,"from":"system.adapter.fakeroku.0","lc":1486246115513} fakeroku.0 2017-02-04 23:11:01.804 debug responding to 192.168.0.65:63511 fakeroku.0 2017-02-04 23:11:00.690 debug responding to 192.168.0.65:63511 fakeroku.0 2017-02-04 23:10:59.690 debug responding to 192.168.0.65:63511 fakeroku.0 2017-02-04 23:10:58.688 debug responding to 192.168.0.65:63511 fakeroku.0 2017-02-04 23:10:54.812 debug responding to 192.168.0.146:35878 fakeroku.0 2017-02-04 23:10:54.608 debug responding to 192.168.0.146:35878 fakeroku.0 2017-02-04 23:10:54.404 debug responding to 192.168.0.146:35878 fakeroku.0 2017-02-04 23:10:54.198 debug responding to 192.168.0.146:35878 [/spoiler]
-
Harmony Hub - Gerät schon hinzugefügt.. Und ein paar Tasten gedrückt?