NEWS
SOLVED Fire TV Adapter
-
@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.
-
@markus-2
Übrigens, gerade gesehen, dass die neueste FireTV app jetzt sogar den Ruhemodus direkt auslösen kann.
Falls also mal irgendjemand sich die Mühe macht, heraus zu finden, was die App da genau macht, könnte in Zukunft mehr drin sein (ähnlich wie bei der Alexa app). -
@padrino
Hab gerade gemerkt, dass der Ruhemodus über CEC nicht komplett abschaltet. Daher bleibt meine Hue Sync Box an und die Lichter sind blockiert Damit ist das Ausschalten doch noch nicht komplett gelöst. Mal schauen ob ich das adb auch auf meinen LG-Fernseher anwenden kann, der dann über CEC das Ausschalten kontrolliert... -
@markus-2
Ich glaube fast, dass Du damit leben musst, oder (ich frage gerne wieder ), kannst Du sonst den Cube irgendwie richtig abschalten?
Im Netz findet man einiges darüber, dass die Fire Produkte nicht wirklich abschalten und immer auch das HDMI Signal (wenn auch nur schwarz) anliegt.
Das Problem habe ich auch z.B. mit dem Switch (ganz CEC). -
@padrino
Es geht, wenn ich über den LG Adapter den Fernseher abschalte, mal schauen was die Zuverlässigkeit betrifft. Der ist halt recht träge was den Einschaltstatus betrifft, den bekomme ich dafür super schnell über adb vom Fire TV Cube. Über die Kombination klappt es glaubt. Tatsächlich ziemliches gefrickel. Bin froh wenn es klappt
Erschwerend kommt noch hinzu, dass an der HueSyncBox eine Xbox hängt. Mal schauen was passiert, wenn ich diese einschalte. Die schaltet nämlich den Fernseher über Infrarot an und der wiederum rückwärts den FireTV ... Das muss ich auch noch lösen. Wäre super wenn es mal einen Adapter für die Hue Sync Box gäbe... -
@markus-2
Kleines Update: Inzw. habe ich es auch geschafft die HueSyncBox über curl (PUT + GET) Befehle zu steuern
Jetzt kriege ich das gesamte Setup hin.
Alternativen:
A) Ich kaufe eine neue Xbox, die CEC kann (Series X)
B) Ich bin bei meiner Suche auf einen anderen Adapter gestoßen: https://forum.iobroker.net/topic/14027/iobroker-cec/21Evtl. hilft das auch Anderen
-
@padrino
Hallo Padrino,
inzw. habe ich weitergemacht und nochmal ein paar Saschen intensiver getestet.Ein-/Ausschalten geht jetzt auch über:
adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_WAKEUP, bzw. über
adb -s <Fire TV Cube IP-Adresse> shell input keyevent KEYCODE_SLEEP
Keine Ahnung warum ich diese Befehle erst heute gesehen habe. POWER geht nicht.Bzgl. Statusabfrage, da ich einen Bildschirmschoner nutze und sich in diesem Fall der Status von mWakefulness ändert musste ich grep rauswerfen (habs nicht hinbekommen) und über Textsuche auf Awake ODER Dreaming ergibt true fragen.
Xbox und LG Fernseher steuere ich jetzt komplett über ioBroker entsprechen Einschaltstatus Fire TV mit Xbox.
Hoffe das hilft ggf. auch anderen
Schönes Wochenende!
-
@markus-2
Cool. Bei "sendKeyCode" ist "sleep" gar nicht in der Liste.
Funktioniert hier aber, also Ruhemodus, im shell Datenpunkt. -
@padrino Sauber, freut mich, dass es Dir ebenfalls hilft!!
-
Hi zusammen,
ich habe auch den Cube. Mein Problem ist folgendes. Wenn der TV aus ist und ich z.B. einen Timer Stelle oder nach dem Wetter frage bekomme ich die Antwort über den Cube Lautsprecher. Wenn der TV an ist (und auf dem HDMI Eingang vom Cube) bekomme ich das Feedback über den TV Lautsprecher. Soweit OK. Wenn ich aber am TV den HDMI Eingang wechsle (Sat Receiver) höre ich den Cube nicht mehr. Teilweise auch wenn der TV ausgeschalten ist und der Cube scheinbar noch "aktiv". Wenn ich den KEYCODE "SLEEP" sende wird der TV zwar schwarz, die Tonausgabe erfolgt aber weiterhin über TV. Was könnte ich hier noch versuchen. Evtl. sogar eine Einstellung nur am Cube? Hatte vor per BLOCKLY wenn TV Aus oder auf HDMI XY, dann auch den Cube standalone zu verwenden. Scheinbar hängt das ganze auch davon ab ob ich per Sprache den HDMi Eingang wechsle bzw. den TV ausschalte oder das per Fernbedienung mache. -
Nur der Vollständigkeit halber.
Im Adapter muss der absolute Pfad zu
adb
angebeben werden, die automatische Erkennung funktioniert nicht.adb kann ganz normal über apt installiert werden.
sudo apt update sudo apt install adb
Den Pfad kann man dann per
realpath `type -P adb`
ermitteln:
echad@chet:~ $ realpath `type -P adb` /usr/lib/android-sdk/platform-tools/adb