NEWS
Adapter: fakeRoku (Harmony to ioBroker)
-
Habe per Zufall entdeckt, dass meine App Yatse (WLAN FB für Kodi) den FakeRoku über das WLAN einwandfrei finden kann.
Da raus schließe ich mal, dass es nicht an meinem Netzwerk liegt, sondern an der Harmony SW. Werd mal den Support von denen bemühen.
-
Hallo zusammen,
nachdem ich heute durch Zufall auf das Thema fakeroku gestoßen bin habe ich mich damit auch mal etwas bechäftigt und festgestellt, dass das Thema etwas tricky ist.
Vorab:
Soweit ich es verstanden habe, kann man via fakeroku am ioBroker angeschlossene Devices mit Tasten auf der Logitech Harmony triggern. Im Gegensatz dazu ermöglicht der parallel existierende "Logitech Harmony Adapter" das steuern des Harmony Hubs (entgegengesetzte Richtung) z.B. via Widgets in Vis oder aber via Cloud Adapter/ Alexa. Wobei bei letzterem zu sagen ist, dass es dafür auch einen eigenen Alexa Skill gibt.
Anwendungsfall:
Nutzung der Steckdosentasten auf der aktuellen Harmony Elite um meine TP-Link Steckdosen schalten zu können.
Nach mehrfachen Fehlanläufen beim Anlegen des Adapters/ Fake-Devices im ioBroker möchte ich hier nochmal kurz mein Vorgehen zusammenfassen, da es auch mir schwer gefallen ist aus der Verkettung der einzelnen Info-/ Dokuschnipseln meiner Vorredner das Puzzle zusammenzusetzen.
Hinweis:
Die nachfolgend beschriebenen Schritte mögen für erfahrene Nutzer ggf. unspannend sein. Darüber hinaus gibt es natürlich immer alternative Varianten bei einzelnen Schritten. Für ioBroker-Newbies (mich eingeschlossen) hingegen sind die Infos in Summe aus meiner Sicht nützlich.
Vorgehensweise (Update 05.01.18 - Anleitung komplettiert):
-
Installieren des fakeroku Adapters über "installieren aus eigener URL" und die entsprechende GitHub URL in der Adapterliste des ioBroker
-
Erstellen einer Adapterinstanz über das "+" Zeichen hinter dem neuen "Fakeroku Emulator" Eintrag in der Adapterliste
-
Prüfen der Adaptereinstellungen im ioBroker Reiter "Instanzen" - Doppelklick auf den Adapter, ggf. popt das entsprechende Fenster auch bereits vorher von alleine auf.
-> Auswählen des LAN-Interfaces über das der ioBroker kommuniziert - Multicast IP habe ich nicht verändert (239.255.255.250) - den bereits angelegten "ioBroker" Eintrag unter "zu emulierende Roku-Geräte" habe ich ebenfalls nicht verändert.
-> Adapter sollte ab hier bereits grün sein in der Statusanzeige des Instanzreiters.
- Einrichtung eines neuen Gerätes in der MyHarmony-Software (bei mir unter Windows) - Fernbedienung dazu via USB an PC anschließen
-> Wichtig: Über die "Nach Geräten suchen" Funktion ein neues Gerät hinzufügen - In der Ergebnisliste dann den ioBroker" Einträg aus 3) auswählen und einmal in Harmony durchsyncen auf App und Fernbedienung.
-> Im Idealfall seht ihr jetzt im ioBroker Objekte Reiter ein entsprechendes fakeroku Objekt, aber noch keine States
- Taste auf der Fernbedienung die ihr belegen wollt ein-, zweimal drücken -> hier bieten sich z.B. die Info oder Home-Taste an
-> Jetzt sollte (ausschließlich) der State der Taste die gedrückt wurde im fakeroku Objekt aus 4) auftauchen.
-> Hinweis: Bei mir war bis zu dem Zeitpunkt keine Kommunikation im Log erkennbar. Trotzdem wurden die States angelegt.
-> Falls Objekt oder States nicht angezeigt werden drückt ggf. nochmal im Objektreiter auf "aktualisieren"
-
Falls noch nicht vohanden den Java-Script Adapter im ioBroker installieren
-
Via Admin Adapter bzw. das Stiftsymbol (falls der Adapter installiert ist sollte oben rechts im ioBroker "Admin" stehen und daneben ein Stiftsymbol) den Tab "Skripte" anzeigen und drauf klicken
-
Javascript erstellen und starten (siehe Anhang) - Auf Groß- und Kleinschreibung achten. Wenn ihr euch unsicher seid wie die Objekte genau heißen, wählt sie rechts über "ID einfügen" aus
-
Optional: Falls ihr eine Harmony Elite mit entsprechenden Steckdosentasten auf der Fernbedienung habt und diese statt z.B. der Home oder Info-Taste nutzen wollt, müsst ihr die Tastenfunktion aus 5) auf diese Taste in der Harmony Software mappen (siehe Anhang)
-> der fakeRoku Adapter kann den State der Steckdosentaste auf der Harmony (zumindest bei mir) leider nicht anlegen. Vermutlich weils ein Entertainment Device und kein Smart Home Device ist. Daher das Mapping.
Jetzt sollte es funktionieren (Gegencheck über Logfenster des JavaScripts oder Statuswechsel in der Kasa-App von toLink oder direkt auf die Steckdose gucken )
Danke an der Stelle nochmal an Pman für die Tipps zum Script!
3104_js_fakeroku_-_hs100.png
3104_harmony_tasten_mapping.png -
-
-> Sollte ich bis hierhin etwas falsch verstanden haben, gebt mir gerne Feedback, damit ich meine nachfolgenden Ausführungen anpassen kann. `
Alles richtig! Da Harmony nur relativ wenig Knöpfe an Roku senden kann, hast du im Adapter noch die Möglichkeit mehrere Fake-Rokus anzulegen, die du dann auch in der Harmony-Software hinzufügen kannst.` > 6)…
Ab hier stehe ich gerade selber noch auf dem Schlauch...
Wie verknüpfe/ triggere ich jetzt das entsprechende Objekt/ State im ioBroker mit der Taste? Kann da jemand weiterhelfen? `
Hier ein Beispiel aus einem alten Thread, das du Sinngemäß anpassen kannst. Im Beispiel wird der aktuelle Wert einer Homematic-Steckdose getoggelt (!getState("hm-rpc.0.NEQ1736283:1.STATE")) und es gibt einen 500ms delay, bevor geschaltet wird, um versehentliches Mehrfachdrücken des Knopfes abzufangen.on({id: "fakeroku.0.ioBroker.keys.Info", val: true}, function (obj) { setStateDelayed("hm-rpc.0.NEQ1736283:1.STATE",!getState("hm-rpc.0.NEQ1736283:1.STATE").val, false, 500, true); });
-
Hier ein Beispiel aus einem alten Thread, das du Sinngemäß anpassen kannst. Im Beispiel wird der aktuelle Wert einer Homematic-Steckdose getoggelt (!getState("hm-rpc.0.NEQ1736283:1.STATE")) und es gibt einen 500ms delay, bevor geschaltet wird, um versehentliches Mehrfachdrücken des Knopfes abzufangen.
on({id: "fakeroku.0.ioBroker.keys.Info", val: true}, function (obj) { setStateDelayed("hm-rpc.0.NEQ1736283:1.STATE",!getState("hm-rpc.0.NEQ1736283:1.STATE").val, false, 500, true); }); ```` `
Danke schon mal für die Info!
Ich hätte dazu zwei Fragen:
-
Wo muss ich den Code denn genau im ioBroker eintragen? Hatte einen entsprechenden Anwenungsfall bis dato noch nicht.
-
Anstelle des Objektes "hm-rpc.0.NEQ1736283:1" nehme ich dann entsprechend des Screenshots "192_168_0_54.STATE" korrekt?
3104_ausschnitt_iobroker_objects.png
-
-
Du benötigst den Javascript Adapter, dann kannst du oben im Admin einen Tab "Skripte" hinzufügen. Dort erstellst du ein neues Skript (Javascript, nicht Blockly). Es müsste hs100.1.192_168_0_54.STATE sein!
-
Bei mir funktioniert es jetzt endlich.
Lösung war dem Harmony Hub eine feste IP zuzuordnen. Jetzt wird der fakeroku auch über "Geräte suchen" gefunden.
-
Bei mir funktioniert es jetzt auch!
Habe meine Zusammenfassung ein Stück weiter oben aktualisiert.
-
Wie würde so ein Script für einen KNX Schalter aussehen?
ID: knx.0.Licht_EG_und_KG.E_A.Wohnzimmer_Spots
on({id: "fakeroku.0.ioBroker.keys.Info", val: true}, function (obj) { setStateDelayed("knx.0.Licht_EG_und_KG.E_A.Wohnzimmer_Spots"/*Wohnzimmer Spots*/),!getState("knx.0.Licht_EG_und_KG.E_A.Wohnzimmer_Spots"/*Wohnzimmer Spots*/).val, false, 500, true); });
Bei dem Script kommt direkt ein Fehler "Stop"
-
Du hast irgendwas bei den Klammern durcheinander gebracht, das ist kein korrektes Skript mehr. Im Editor-Fenster des Javascript Adapters müsste dir das durch ein rotes "X" angezeigt werden.
-
Hallo,
leider findet mein Harmony Hub den Fakeroku immer noch nicht. :?
Laut Logfile wird aber zumindest kommunziert:
! ````
Harmony-Hub: 102.68.178.113
Harmony-App: 192.168.178.110
! fakeroku.0 2018-01-28 15:04:20.725 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:20.409 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:20.337 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:20.253 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:20.175 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:19.484 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:19.169 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:18.926 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:18.852 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:18.771 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:18.296 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:17.805 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:17.724 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:17.644 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:17.568 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:16.094 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:15.620 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:15.540 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:15.466 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:15.387 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:14.748 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:14.427 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:14.349 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:14.271 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:14.193 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:13.535 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:13.221 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:12.984 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:12.906 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:12.827 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:12.354 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:11.867 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:11.792 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:11.713 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:11.686 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:10.154 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:09.672 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:09.594 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:09.518 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:09.443 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:08.823 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:08.507 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:08.427 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:08.348 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:08.271 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:07.636 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:07.323 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:07.244 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:07.216 debug responding to 192.168.178.110:47942
fakeroku.0 2018-01-28 15:04:07.166 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:07.089 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:06.429 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:06.067 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:05.819 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:05.745 debug responding to 192.168.178.113:35884
fakeroku.0 2018-01-28 15:04:05.739 debug sending service description
fakeroku.0 2018-01-28 15:04:05.736 debug GET-request to / from 192.168.178.113
fakeroku.0 2018-01-28 15:04:05.659 debug responding to 192.168.178.113:35884Die Fakerokudatei kann ich per Browser problemlos aufrufen: >! ![3419_bild2.png](/assets/uploads/files/3419_bild2.png) Was nun? Tschau Uwe
-
Welche Hub FW? Ich update mal meinen Hub und teste dann.
-
Hallo Pman,
der Hub hat die Version 4.14.123
Tschau
Uwe
-
Wie genau versuchst du den Roku hinzuzufügen?
Funktioniert hier ohne Probleme, ich habe im Adapter 2 FakeRokus mit den simplen Namen "io1" und "io2".
In der MyHarmony Desktop App suche ich dann nach Geräten im LAN (nach Geräten Suchen), dort wird meine Hue Bridge sowie "io1" und "io2" gefunden.
Der GET-request von Harmony kommt auch beim Adapter an und wird beantwortet. Danach sollte Harmony das Gerät erkannt haben (dass der Hub erstmal munter weiter requests sendet ist normal).
-
Hallo Pman,
ich habe eine neue Instanz von fakeroku angelegt und alles default gelassen.
Dann habe ich versucht, mit der Android Harmony App ein neues Gerät über die Netzwerksuche hinzuzufügen.
Auch das manuelle Hinzufügen von "Roku", "Roku3" in der Harmony App findet beim anschliessenden Scan nichts.
Auf welchem Weg (Portnummer) kontaktiert der Hub den Fakeroku Adapter?
Tschau
Uwe
-
Erstmal sendet der Hub SSDP Requests ins Netzwerk, auf diese antwortet der Adapter ("responding to 192.168.178.113:35884").
In dieser Antwort findet der Hub dann die IP und den PORT des HTTP-Servers, welcher die service description bereit stellt und fragt diese dann ab ("GET-request to / from 192.168.178.113"). So weit funktioniert die Kommunikation bei dir definitiv. Den Port für den HTTP-Server kannst du in den Adaptereinstellungen sehen und festlegen. Wenn du mehrere Fake-Rokus anlegen möchstest, benötigt jeder einen eigenen Port.
Der GET-Request kommt laut log zumindest beim Adapter an und wird beantwortet, natürlich könnte eine Firewall jetzt irgendwie die Antwort ("sending service description") blockieren, davon bekommt der Adapter dann aber nichts mehr mit, das ist über das ioBroker-Log nicht festzustellen. Dagegen spricht, dass du per Browser darauf zugreifen kannst.
-
Und nun?
Mein Netzwerksetup ist eigentlich simpel:
Alle Teilnehmer befinden sich im gleichen Class-C Netzwerk.
PC und Harmony Hub hängen am gleichen WLAN-Accesspoint. Alle WLAN-Teilnehmer können sich untereinander "sehen".
Vom Accesspoint geht es per Netzwerkkabel zu einem Switch, an dem auch das NAS mit ioBroker hängt.
ioBroker läuft ansonsten problemlos (Cloudservice, SQL-Datenbank auf dem NAS, IFTTT, …)
Tschau
Uwe
-
Die Aufgabenstellung ist folgendermaßen:
Wenn ich auf Play der Remote drücke soll das Licht gedimmt werden und wenn ich auf Pause der Remote drücke soll das Licht wieder „hochgedimmt“ werden.
Hardware:
-
AppleTV 4 mit Plex
-
Harmony Hub mit Remote
-
Phillips Hue
-
fakeRoku
Grundsätzlich kommen ja keine Tastenbefehle der Harmony bei ioBroker an, kann ich das jetzt mit fakeRoku realisieren?
Danke.
-
-
Die Aufgabenstellung ist folgendermaßen:
Wenn ich auf Play der Remote drücke soll das Licht gedimmt werden und wenn ich auf Pause der Remote drücke soll das Licht wieder „hochgedimmt“ werden. `
Deine Frage hat eigentlich nichts mit diesem Adapter zu tun, sondern generell damit, wie man in ioBroker auf State-Änderungen reagiert. Daher solltest du diese Frage besser im Skripteforum stellen, dort bekommst du sicher Hilfe. Alle Zutaten sind aber auch hier genannt:
-
Die Aufgabenstellung ist folgendermaßen:
Wenn ich auf Play der Remote drücke soll das Licht gedimmt werden und wenn ich auf Pause der Remote drücke soll das Licht wieder „hochgedimmt“ werden. `
Deine Frage hat eigentlich nichts mit diesem Adapter zu tun, sondern generell damit, wie man in ioBroker auf State-Änderungen reagiert. Daher solltest du diese Frage besser im Skripteforum stellen, dort bekommst du sicher Hilfe. Alle Zutaten sind aber auch hier genannt:
Eine State-Änderungen von Play/Pause wird aber nicht mitgeteilt.
Das ich das später Scripten muss ist mir klar.
-
Du kannst in der Harmony Software auf jede physische Taste eine Roku-Taste belegen.