NEWS
SOLVED Fire TV Adapter
-
@joergh Die Meldung mit dem vendorkey kommt bei mir auch schon mal. Einfach nicht weiter beachten, wenn es ansonsten funktioniert.
Zum zweiten Stick fällt mir aber nix ein. Hab nur einen hier aktiv.
-
Sind beides FireTV4K V2 und V3. Anbei noch einmal das Logfile...wirft immer noch einiges an Fehlern aus....Was hat er denn mit dem smartsocketlistener und dem daemon den er nicht starten kann?
2021-05-11 22:21:43.473 - debug: firetv.0 (1297) Redis Objects: Use Redis connection: 127.0.0.1:9001 2021-05-11 22:21:43.570 - debug: firetv.0 (1297) Objects client ready ... initialize now 2021-05-11 22:21:43.667 - debug: firetv.0 (1297) Objects create System PubSub Client 2021-05-11 22:21:43.669 - debug: firetv.0 (1297) Objects create User PubSub Client 2021-05-11 22:21:43.672 - debug: firetv.0 (1297) Objects client initialize lua scripts 2021-05-11 22:21:43.750 - debug: firetv.0 (1297) Objects connected to redis: 127.0.0.1:9001 2021-05-11 22:21:43.755 - silly: firetv.0 (1297) redis psubscribe cfg.o.system.user.* 2021-05-11 22:21:43.763 - debug: firetv.0 (1297) objectDB connected 2021-05-11 22:21:43.767 - debug: firetv.0 (1297) Redis States: Use Redis connection: 127.0.0.1:9000 2021-05-11 22:21:43.780 - debug: firetv.0 (1297) States create System PubSub Client 2021-05-11 22:21:43.782 - debug: firetv.0 (1297) States create User PubSub Client 2021-05-11 22:21:43.799 - debug: firetv.0 (1297) States connected to redis: 127.0.0.1:9000 2021-05-11 22:21:43.800 - debug: firetv.0 (1297) statesDB connected 2021-05-11 22:21:44.232 - info: firetv.0 (1297) starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.firetv, node: v12.22.1, js-controller: 3.2.16 2021-05-11 22:21:44.305 - silly: firetv.0 (1297) States system redis pmessage system.adapter.firetv.0.logLevel/system.adapter.firetv.0.logLevel:{"val":"silly","ack":true,"ts":1620764504277,"q":0,"from":"system.adapter.firetv.0","lc":1620762006338} 2021-05-11 22:21:44.390 - debug: firetv.0 (1297) FireTV: 192.168.178.27 2021-05-11 22:21:44.395 - debug: firetv.0 (1297) FireTV: 192.168.178.128 2021-05-11 22:21:44.562 - debug: firetv.0 (1297) Device 192.168.178.128:5555 + type=unauthorized was plugged in 2021-05-11 22:21:44.563 - debug: firetv.0 (1297) Connected to 192.168.178.128 id=192.168.178.128:5555 2021-05-11 22:21:44.566 - error: firetv.0 (1297) ID: 192.168.178.128 Error=Failure: 'device unauthorized. This adb server's $ADB_VENDOR_KEYS is not set Try 'adb kill-server' if that seems wrong. Otherwise check for a confirmation dialog on your device.' 2021-05-11 22:21:44.589 - silly: firetv.0 (1297) States user redis pmessage firetv.0.*/firetv.0.192_168_178_128.error:{"val":"Failure: 'device unauthorized.\nThis adb server's $ADB_VENDOR_KEYS is not set\nTry 'adb kill-server' if that seems wrong.\nOtherwise check for a confirmation dialog on your device.'","ack":true,"ts":1620764504586,"q":0,"from":"system.adapter.firetv.0","user":"system.user.admin","lc":1620764504586} 2021-05-11 22:21:44.616 - debug: firetv.0 (1297) 5.1.1 2021-05-11 22:21:44.631 - silly: firetv.0 (1297) States user redis pmessage firetv.0.*/firetv.0.192_168_178_128.result:{"val":"5.1.1","ack":true,"ts":1620764504625,"q":0,"from":"system.adapter.firetv.0","user":"system.user.admin","lc":1620764504625} 2021-05-11 22:21:44.644 - debug: firetv.0 (1297) 22 2021-05-11 22:21:44.649 - info: firetv.0 (1297) 192.168.178.128: ADB version: 39, Android Version: 5.1.1, API Level: 22 2021-05-11 22:21:44.660 - silly: firetv.0 (1297) States user redis pmessage firetv.0.*/firetv.0.192_168_178_128.result:{"val":"22","ack":true,"ts":1620764504656,"q":0,"from":"system.adapter.firetv.0","user":"system.user.admin","lc":1620764504656} 2021-05-11 22:21:44.998 - error: firetv.0 (1297) can not connect to 192.168.178.27 Error=Command failed: /usr/lib/android-sdk/platform-tools/adb start-server * daemon not running; starting now at tcp:5037 ADB server didn't ACK Full server startup log: /tmp/adb.1001.log Server had pid: 1317 --- adb starting (pid 1317) --- adb I 05-11 22:21:44 1317 1317 main.cpp:57] Android Debug Bridge version 1.0.39 adb I 05-11 22:21:44 1317 1317 main.cpp:57] Version 1:8.1.0+r23-5 adb I 05-11 22:21:44 1317 1317 main.cpp:57] Installed as /usr/lib/android-sdk/platform-tools/adb adb I 05-11 22:21:44 1317 1317 main.cpp:57] adb I 05-11 22:21:44 1315 1315 adb_auth_host.cpp:467] Calling send_auth_response error: could not install *smartsocket* listener: Address already in use * failed to start daemon error: cannot connect to daemon
-
Hallo Zusammen,
inzw. habe ich einen Fire TV Cube und den Adapter nach Installation von "sudo apt-get install android-tools-adb android-tools-fastboot" auf meine Docker ioBroker zum Laufen gebracht. Ich kann so jeder Taste unter "keys" steuern. Soweit so gut. Ebenso kann ich über "reboot" de Fire TV Cube neu starten. Was ich aber nicht kann, bzw. er geht bei mir nicht:- Den Einschaltzustand sehen. Ich vermute mal es sollte der DP "on" sein, der ist jedoch immer "false". Daher klappt das nicht
- Den Fire TV Cube über ioBroker ein-/ausschalten. Vermute mal das sollte über den DP "swapPower" gehen. Leider kann ich den DP auf "false" oder "true" setzen, es ändern jedoch nichts
Weiß hier jemand Rat? #1 und #2 wären mir eigentlich am wichtigsten. Vielen Dank im Voraus!
-
@markus-2
Kann Dir nur sagen, geht hier mit FireTV Stick auch nicht.
Also, vermutlich "normal". -
@padrino Ohhh jeee. Gibt es einen Workaround über den Alexa2 Adapter o.ä.?
-
@markus-2
Über Alexa2 wird da wohl leider nix gehen...Weiß auch nicht, wie das mit "aus" beim Cube ist...
Der Stick hat ja nur einen "Ruhemodus", den erreicht man ja über das "lange home drücken"-Menü.
Dahin kommt man zumindest mit einem Eintrag bei "shell"input keyevent --longpress 3
-
Hat mich jetzt alles irgendwie neugierig gemacht...
Guck mal hier
https://www.reddit.com/r/fireTV/comments/9d0v0a/standbysleeppower_off_from_adb/Status abfragen geht beim Stick hier, keyevent 26 leider nicht...
-
@padrino Interessant! Wie nutze ich das in ioBroker? Geht das über einen Datenpunkt, bzw. für das Ergebnis der Anfrage zwei Datenpunkte, vom Adapter? Oder muss ich das irgendwie in Javascript schreiben?
-
Also, Du kannst natürlich die Datenpunkte des FireTV Adapters nutzen und diese dann (wie gewohnt) verarbeiten, also Blockly, JavaScript...
in
firetv.0.xxx_xxx_xxx_xxx.shell
scheibste
dumpsys activity | grep -c "mWakefulness=Asleep"
und in
firetv.0.xxx_xxx_xxx_xxx.result
prüfst Du, ob danach "0" oder "1" drin steht.
-
Übrigens, der DP "online" gibt wohl an, ob der Adapter eine Verbindung zum Stick hat (egal, ob dieser im Ruhemodus ist oder nicht).
Wenn dieser auf "false" geht ist ein Neustart des Adapters nötig... -
@padrino
Vielen Dank! Hab's gerade probiert (shell+result). Leider keine Reaktion. Was ich erfolgreich getestet habe:- Alle Datenpunkte unter "keys"
- "reboot" und der Status "online" (Adapterverbindung)
- "startApp", "stopApp"
Das ist schonmal gut. Keine Reaktion (nicht einmal eine Fehlermeldung, Instanz läuft auf "debug") sehe ich für:
- "on" (Einschaltstatus)
- "swapPower" (Ein-/Ausschalten)
- "shell" und "result"
Ich brauche am Besten "on" um den Status zu bekommen und "shell", wenn ich damit explizit Ein-, bzw. Ausschalten kann. "swapPower" wäre auch möglich, ist halt immer so ne Sache, wenn der angenommene Zustand nicht stimmt.
Gibt es einen Entwickler der Zeit hat sich diese 4 Datenpunkte explizit anzuschauen? Ich wäre super Dankbar!!!
-
@markus-2
Also, ich bin leider kein Entwickler aber ich finde, der Adapter ist etwas unausgereift...Mir scheint, dass "shell" z.B. nur funktioniert, wenn man dessen Inhalt ändert, zweimal das gleiche ergibt kein "result".
Gib dort mal XXX ein, dann müsste/sollte eigentlich in result stehen "/system/bin/sh: XXX: not found"
-
@padrino
Hatte ich auch vermutet. Leider gar keine Reaktion, egal was ich eingeben. Es kommt auch keine Fehlermeldung im Log. Ich nutze Version 1.0.0 Funktioniert es bei Dir mit dieser Version? -
@markus-2
Ja, nutze auch 1.0.0, allerdings, wie gesagt mit Stick.
Das log ist hier übrigens auch meist leer, also auch bei Fehlern, es sei denn ser Adapter hat keine Verbindung... -
@padrino
Ahh, ok. Dann sieht bei mir das Log ebenfalls leer aus
Bzgl. "shell" versuche ich zu verstehen was bei Dir der Unterschied sein könnte. Hast Du noch mehr getan, damit es läuft? Ich hatte tlw. von manuellen Änderungen gelesen. Ich habe den Adapter wie folgt in Betrieb genommen:- Adapter installiert
- Terminal: $ "sudo apt-get install android-tools-adb android-tools-fastboot"
3 Adapter-Konfig
- Pfad zur ADB.EXE: "/usr/lib/android-sdk/platform-tools/adb"
- Runterscrollen und mit "+" neues Gerät hinzufügen mit Aktiviert = Haken, Bezeichnung = <Meine Bezeichnung>, IP = <Meine IP-Adresse für den Fire TV Cube>
Hast Du noch was gemacht oder ist der Unterschied wirklich "nur" zw. unserer Fire TV HW/SW?
-
@markus-2
Uff, sorry, aber die Installation ist so lang her...
Ich war froh, dass es irgendwann einigermaßen lief.
Aber, soweit ich das verstehe, wird doch für alles adb genutzt, also auch die keys. Es müsste dann doch alles oder nix gehen.
Also, wenn Du in shell einträgtinput keyevent 3
passiert auch nix (gut vermutlich, da bei "Unsinn" ja auch nix passiert)?
Von wo steuerst Du denn?
Hab' iobroker auf einem PI.
Evtl. mal dort einloggen und adb von Hand probieren? -
@padrino
Bei mir läuft ioBroker in einem Docker-Container auf meiner NAS.
Ich habe es jetzt mal über die Console (mit meine bescheidenen Kenntnissen) probiert. Hierzu einen Befehl, welcher in jedem Fall über den Adapter mittels Datenpunkt unter "firetv.0\192_168_168_52\keys\right" geht.
Ich habe gesehen, dass meine Beleuchtung über die Console (HDMI SyncBox reagiert, also irgendwas geht schon, jedoch wird der Befehl nicht ausgeführt (Bewegungs nach Rechts). Irgendwas fehlt noch und ist ein Unterschied zum Adapter-Aufruf, welcher geht. Irgendeine Idee? Ich poste im Folgenden meinen Versuch über Console.../opt/iobroker$ adb devices List of devices attached 192.168.168.52:5555 device emulator-5556 offline /opt/iobroker$ adb -s 192.168.168.52:5555 shell input keyevent 2 /opt/iobroker$
Nachtrag: Während ich Netflix schaue hat MEDIA_PLAY_PAUSE geklappt...
/opt/iobroker$ adb -s 192.168.168.52:5555 shell input keyevent 85
Leider geht POWER (26) nicht
Nachtrag 2: Statusabfrage hat geklappt ...
/opt/iobroker$ adb -s 192.168.168.52:5555 shell dumpsys activity | grep -c "mWakefulness=Asleep" 0 /opt/iobroker$
Hab inzw. auch rausgefunden wie ich das in einem Blockly verwenden kann (exec). Damit kann ich den Status über Skript pollen.
Damit verbleibt letztlich noch das Problem es ein- und ausschalten.
Nachtrag 3: Hab jetzt mal adb auf meinem Windows-Rechner probiert. Dort geht es ebenfalls nicht. Daher habe ich jetzt eher den Fire TV Cube im Verdacht.
Immerhin klappt Folgendes um den Status zu erhaltenadb -s 192.168.168.52:5555 shell dumpsys activity | grep -c "mWakefulness=Awake"
Gibt es eine Alternative um über adb ein Gerät ein-/auszuschalten?
-
@markus-2
Kann man denn den Cube wirklich ausschalten oder hat er nur den Ruhemodus wie mein/die stick/s?Schaltest Du ihn mit der FB?
Wenn es nur um den Ruhemodus geht, könntest Du evtl.
Home (long), right, right, enter
simulieren...
-
@padrino
Alsooooo... ich mache es jetzt ohne den Adapter, da es schneller, bzw. tlw. geschickter geht (bspw. das result direkt verarbeiten und nicht auf einen extra Datenpunkt warten bis der geschrieben wurde). Umgesetzt habe ich es wie folgt:Meine Konfiguration:
- Synology NAS Docker
- Image: buanet/iobroker:v5.1.0
Einmalig musste ich adb installieren über:
- sudo apt-get install android-tools-adb android-tools-fastboot
Initialisierung:
- adb start-server
- adb connect <Fire TV Cube IP-Adresse>
Zyklisch frage ich den Einschaltstatus ab:
- adb -s <Fire TV Cube IP-Adresse> shell dumpsys activity | grep -c "mWakefulness=Awake"
Einschalten über:
- adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_HOME
Auschalten über (das einzig nicht soo tolle an dem Ganzen):
- adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_HOME
(Anmerkung: Dieser Befehl nur, falls ich schon in Home (long) drin bin, damit es immer geht) - Warten 300ms
- adb -s <Fire TV Cube IP-Adresse> shell input keyevent --longpress KEYCODE_HOME
- Warten 300ms
- adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_DPAD_RIGHT
- Warten 300ms
- adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_DPAD_RIGHT
- Warten 300ms
- adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_ENTER
Ich lass den Adapter mal drauf und hoffe auf kommende Updates, er läuft bei mir bis zu einem "guten" Update erstmal nicht.
Ich denke dass KEYCODE_POWER nicht geht ist weniger ein Problem des Adapters, denn ich konnte auch manuell über adb das Ein-/Ausschalten oder auch Schlafengehen nicht kontrollieren. Vermutlich liegt das eher am Fire TV Cube.
Falls jemand hier noch ne Idee hat, gerne her damit...
Ansonsten erstmal speziellen Dank auch an @padrino . Deine Hinweise haben mir bis hierhin geholfen!!!
-
@markus-2 sagte in Fire TV Adapter:
Ich lass den Adapter mal drauf und hoffe auf kommende Updates, er läuft
Ich fürchte ja, da wird (so schnell) nix mehr kommen.
Ansonsten erstmal speziellen Dank auch an @padrino . Deine Hinweise haben mir bis hierhin geholfen!!!
Freut mich, wenn's was gebracht hat, auch wenn die Lösung anders als anfangs erhofft ist.