98_FireTV: Fernbedienung eines Amazon FireTV per adb

Begonnen von nesges, 09 März 2017, 18:04:40

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: maddhin am 01 November 2022, 10:02:59
Ok, dann werde ich das Modul mal ausprobieren!

Ich habe Probleme mit einem FireTV-Stick 4k :-\
Mit anderen funktioniert es (Cube und FireTV-Stick V2?)...

Beim (meinem) FireTV-Stick 4k "vergisst" der Stick regelmässig, dass ich erlaubt habe per adb zu steuern und auch, dass ich die ID (PI mit adb) erlaubt habe...
(mag aber ein "Defekt" an meinem FireTV-Stick sein)

D.h. ich muss immer wieder neu Verbinden, daher aktuell (wieder) deaktiviert...


Zitat von: maddhin am 01 November 2022, 10:02:59
Den FireTV schalte ich über eine Alexa-Routine aus - zuerst FireTV aus und dann ein paar Sekunden später schalte ich den Strom über einen Steckdosenschalter ab.

Warum ausschalten und dann Strom weg? Es gibt ja kein wirkliches Ausschalten, sondern nur Standby? Und das ist ein simpler Stick, den kann man auch einfach so ausschalten ;)


Zitat von: maddhin am 01 November 2022, 10:02:59
Anschalten geht umgekehrt, da bekomme ich den FireTV aber nicht an. Habe schon alles mögliche probiert, aber entweder passiert nichts oder es kommt "FireTV unterstützt das nicht". Nervig und eigentlich unverständlich wieso sowas bei einem FireTV nicht geht. Oder ich bin zu dumm die richtigen Kommandos zu finden;))

Verstehe nicht, was man da anschalten sollen müsste.
Wenn ich den Stick "hart boote" (also mit Strom versorge), dann fährt er hoch (dauert halt etwas) und dann steht er klaglos im Hauptmenü...

Was sollte da dann eingeschaltet werden (müssen)?

Was für einen FireTV hast du denn?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

maddhin

Ich habe einen Grundig FireTV Fernseher, keinen Stick. Bei dem Stick spielt das An-/Ausschalten ja keine Rolle, beim Fernseher schon;)

MadMax-FHEM

#197
Zitat von: maddhin am 01 November 2022, 10:45:10
Ich habe einen Grundig FireTV Fernseher, keinen Stick. Bei dem Stick spielt das An-/Ausschalten ja keine Rolle, beim Fernseher schon;)

EDIT: welchen Unterschied sollte das bei einem Fernseher (auf FireTV HW-Basis) machen? ;)

Hatte sowas schon vermutet...
ABER: hier geht es tatsächlich um FireTV die HARDWARE nicht um FireTV die App.

Also über das Modul wird direkt per adb (android debugging) der FireTV (HW) gesteuert.

Glaube nicht, dass das für einen TV auf Android-Basis mit FireTV-App (oder liege ich da falsch?) funktioniert...
...da vermutlich die adb-Kummunikation auf eben FireTV HW zugeschnitten ist...
EDIT: hmmm, was genau ist denn nun so ein Grundig FireTV. Ich hab mal gesucht und nicht genau verstanden was das nun ist. Aber es scheint ja doch (auch) ein "normaler" TV zu sein, mit Tuner usw.? Und FireTV doch eher als "Main-App"? -> Versuch macht kluch... ;) (aber ich fürchte es ist zu wenig FireTV HW)

Es gibt noch ein allgemeines adb-Modul: https://forum.fhem.de/index.php/topic,121023.msg1155962.html#msg1155962

Und wenn du Routinen auch aus fhem starten/steuern willst (oder Sprachbefehle an Alexa-Devices senden willst, ohne zu sprechen) das echodevice-Modul: https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482

Ansonsten: ausprobieren, denke aber nicht, dass es gehen wird...

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

maddhin

Der Grundig FireTV ist im Prinzip ein Fire-Stick mit großem Bildschirm. D.h. das OS sollte das gleiche sein oder zumindest die gleiche Basis haben (aktuell Fire OS 7.6.0.3). Habe hierzu aber bisher keine explizite Recherche betrieben. Optisch ist das Menu identisch mit dem Fire-Stick. D.h. wir reden hier nicht über eine FireTV-App auf einem Fernseher.

adb gibt es auf jeden Fall, hatte das schonmal freigeschaltet.

Gibt es irgendwo ein Progrämmchen (für Mac), mit dem man mal testen kann, ob das mit meinem FireTV funktioniert? D.h. ein kleines Programm mit dem man adb Kommandos schicken kann?

echodevice, etc. kenne ich gut und nutze das intensiv;)


PS: theoretisch funktioniert das Anschalten und öffnen von Ard oder Netflix mit Alexa - solange man den Fernseher davor nicht ausgeschaltet hatte. D.h. der Fernseher muss erst mindestens einmal hochgefahren gewesen sein. Ich sage theoretisch, weil es mal geht und mal nicht. Mal öffnet Alexa dann Netflix wirklich und mal bestätigt sie den Befehl mit OK oder wiederholt den Befehl ("ich schalte zu ARD auf FireTV") und es passiert nichts... Von der Steuerung über adb erhoffe ich mir hier mehr Stabilität;)


MadMax-FHEM

Zitat von: maddhin am 01 November 2022, 12:27:04
Gibt es irgendwo ein Progrämmchen (für Mac), mit dem man mal testen kann, ob das mit meinem FireTV funktioniert? D.h. ein kleines Programm mit dem man adb Kommandos schicken kann?

Das Progrämmchen heißt adb ;)

adb: android debug bridge

https://developer.android.com/studio/command-line/adb

Ob es das für MAC gibt: keine Ahnung

Aber das musst/müsstest du ja "unterhalb" von fhem ebenfalls installieren.
Auf welcher Basis läuft fhem?

D.h. das Modul nutzt eben genau adb (muss also installiert sein).

Gruß, Joachim

P.S.: gut, dann könnte das Modul funktionieren...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

maddhin

Zitat von: MadMax-FHEM am 01 November 2022, 12:31:30
Auf welcher Basis läuft fhem?

D.h. das Modul nutzt eben genau adb (muss also installiert sein).

adb habe ich inzwischen gefunden.

FHEM läuft bei mir in einem Docker-Container (aktuelle Bullseye-Version) - ob das dann wieder funkt, ist die Frage...

Werde jetzt erstmal etwas mit adb von der commandline spielen... Muss jetzt erstmal Syntax und Kommandos suchen...

maddhin

Ich habe jetzt mal etwas rumgespielt und adb mit meinem FireTV zu laufen gebracht.

Solange der FireTV läuft, ist alles problemlos. Was allerdings NICHT funktioniert, ist ein Zugriff auf FireTV, nachdem die Stromzufuhr wieder hergestellt wird. adb scheint erst mit dem richtigen Starten des FireTV verfügbar zu sein. Zumindest bekomme ich keine Verbindung zum FireTv zustande (./adb connect IP -> timeout)

Auch bekomme ich den FireTV im Standby-Modus nicht zum Laufen. Zwar geht ein connect, aber beispielsweise ein ./adb shell input keyevent KEYCODE_0 KEYCODE_0 KEYCODE_0 KEYCODE_1
führt nicht dazu, dass ARD kommt :'(

Mache ich etwas falsch oder gibt es hier einen Trick? Macht es ggf. Sinn - nach diesem proof of concept - das Modul zu verwenden, oder macht das im Prinzip "nur das Gleiche" (keinesfalls abwertend gemeint!!!!)?

Lieben Dank schonmal für die Hilfe bisher, bin schonmal ein ganzes Stück weiter gekommen...

MadMax-FHEM

Zitat von: maddhin am 01 November 2022, 13:26:43
Ich habe jetzt mal etwas rumgespielt und adb mit meinem FireTV zu laufen gebracht.

Solange der FireTV läuft, ist alles problemlos. Was allerdings NICHT funktioniert, ist ein Zugriff auf FireTV, nachdem die Stromzufuhr wieder hergestellt wird. adb scheint erst mit dem richtigen Starten des FireTV verfügbar zu sein. Zumindest bekomme ich keine Verbindung zum FireTv zustande (./adb connect IP -> timeout)

Naja, da musst du Amazon (oder Grundig) fragen, wann eine adb-Verbindung wieder zugelassen/möglich wird...


Zitat von: maddhin am 01 November 2022, 13:26:43
Auch bekomme ich den FireTV im Standby-Modus nicht zum Laufen. Zwar geht ein connect, aber beispielsweise ein ./adb shell input keyevent KEYCODE_0 KEYCODE_0 KEYCODE_0 KEYCODE_1
führt nicht dazu, dass ARD kommt :'(

Mache ich etwas falsch oder gibt es hier einen Trick?

Eventuell muss erst eine "App" gestartet werden/sein...
Das ginge mit dem Modul einfach...

Zitat von: maddhin am 01 November 2022, 13:26:43
Macht es ggf. Sinn - nach diesem proof of concept - das Modul zu verwenden, oder macht das im Prinzip "nur das Gleiche" (keinesfalls abwertend gemeint!!!!)?

Naja, schaden kann es nicht ;)
Und ja, das Modul macht im Prinzip dasselbe, nur dass eben ein paar "native" adb-Befehle etwas "brauchbarer" verpackt sind bzw. eben per set/get angeboten werden.

Aber halt sehr speziell auf FireTV, müsste/könnte aber ja passen...
...wobei eben einige "Antworten" bei meinem FireTV-Stick 4k (und nur bei dem) nicht "gefallen", das Modul also nichts (brauchbares) anzeigt, z.B. Liste installierter Apps usw.
Daher kann ich dann auch (per Modul) keine Apps starten (obwohl es nativ per adb geht, glaube ich).
Wollte da schon mal nachforschen aber da das mit der Verbindung leider genrell nicht so stabil läuft (wie gesagt nur der bzw. MEIN FireTV-Stick 4k andere inkl. Cube haben kein Problem) hab ich das sein lassen...

Das andere verlinkte Modul ist wohl "generischer" und eher näher dran am "normalen" adb (habe ich aber noch nicht wirklich genutzt, nur mal angetestet)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

maddhin

Also, ich habe da mal ein paar Sachen rausgefunden:

- der Grundig Fire TV geht nach einer Weile in den Ruhemodus
- im Ruhemodus werden LAN und WLAN augeschaltet, d.h. er ist nicht mehr erreichbar und damit natürlich auch nicht per adb erreichbar
- Wake-on-(W)LAN geht auch nur, wenn der FireTV nicht im Standby ist.
- es gibt eine "Alexa-always-on" Funktion im FireTV OS. Die hält den FireTV "warm" und mit dieser Funktion ist er auch jederzeit über Alexa ansprechbar. Der Haken: der FireTV läuft ständig bei ca 10W = das Gegenteil von meiner Intension möglichst Strom zu sparen.
- wenn der Strom für den FireTv eingeschaltet wird, geht er nur in den Standby-Modus, d.h. selbst mit Alexa-always-on-Funktion scheint man den Fernseher nicht automatisch starten zu können.

--> für meinen use case (Strom einschalten -> FireTV automatisch starten) scheint es keine Lösung zu geben. Es kann sein, dass es mit diversen Kombinationen von Einstellungen doch geht (ich habe nicht exzessiv getestet), aber solange der FireTv nach dem Einschalten des Stroms nicht (ohne Fernbedienung) ansprechbar ist, komme ich irgendwie nicht weiter.

Die einzigen Lösungen, die mir jetzt noch einfallen sind Harmony Fernbedienung (sollte diese über FHEM steuerbar sein) oder ein CEC-device, das den FireTV starten kann - SOLLTE das aus dem Standby möglich sein...

Kommentare und Ideen sind sehr willkommen - kann auch in ein paar Wochen / Monaten sein;)

MadMax-FHEM

Zitat von: maddhin am 01 November 2022, 18:51:10
Die einzigen Lösungen, die mir jetzt noch einfallen sind Harmony Fernbedienung (sollte diese über FHEM steuerbar sein) oder ein CEC-device, das den FireTV starten kann - SOLLTE das aus dem Standby möglich sein...

Ob es mit CEC geht: keine Ahnung

Einen Harmony Hub kannst du mit fhem steuern (mache ich so), der kann auch einen FireTV steuern...

Aber: Logitech hat Harmony abgekündigt :-\

FBs sind nicht mehr/kaum noch/nur teuer zu bekommen und fraglich wie lange die Server noch laufen zur Konfiguration...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

maddhin

War gerade am überlegen, ob ich mit einem ESP8266 o.ä. eine Bluetooth Fernbedienung basteln soll. Aber so ein Device nur, um den FireTv aus dem Standby zu bekommen erscheint mir fast irre.

Ich weiß nicht, ob die (Grundig) FireTv Fernbedienung nur BT oder auch IR benutzt. Aber scheinbar muss ja eines der beiden Systeme im Standby aktiv sein. Das wäre ein Ansatzpunkt.

Der Echo Dot hat Bluetooth - vielleicht hat jemand ein Möglichkeit gefunden das zu hijacken und den "power on"-Befehl an den FireTv zu senden... Werde mal suchen...

Tillersen

Moin,

bei einem notify vom Klingelsensor möchte ich am FireTV VLC starten:

set FireTV appstart org.videolan.vlc

funktioniert.

Nun sollen beim Start Parameter mitgegeben werden um beim Türklingeln die Überwachungskamera zu streamen:

http://192.168.32.105/flv?port=1935&app=bcs&stream=channel1_ext.bcs&user=admin&password=password

Der Stream funktioniert manuell im VLC aufgerufen ebenfalls.

Lassen sich die Parameter nun irgendwie mitgeben, hat jemand eine Idee?

Liebe Grüße
Tillersen



bertl

Hallo FireTV nutzer!

Vorab einmal danke an @nesges für die investierte Zei in dieses tolle Modul!

Ich bin über dieses Modul gestolpert und wollte es sogleich ausprobieren bzw. verwenden.
Das Modul konnte aber leider keine Verbindung zum FireStick herstellen.

Es kamen ständig folgende Fehlermeldungen:disconnected 192.168.1.130:5555
error: no such device '192.168.1.130:5555'
2024.01.08 16:50:19 3: [FireTVStick] Connection error
error: no such device '192.168.1.130:5555'
error: no such device '192.168.1.130:5555'
2024.01.08 16:50:27 3: [FireTVStick] Connection error
disconnected 192.168.1.130:5555
error: no such device '192.168.1.130:5555'
2024.01.08 16:51:16 3: [FireTVStick] Connection error

Mein Setup:
+ Fire TV Stick (3.Generation 2021)
+ FHEM-Server: Raspberry Pi 3 Model B
+ Operating System: Raspbian GNU/Linux 11 (bullseye)
+ Kernel: Linux 6.1.21-v7+

Installation am Server:
+ sudo apt install libfile-mimeinfo-perl
+ sudo apt install adb

Nachdem ich mir den Source-Code des Moduls '98_FireTV.pm' näher angesehen hatte ist mir aufgefallen, dass beim 'FireTV_adb' Aufruf in der Funktion 'FireTV_connect' der Port (5555) NICHT übergeben wird.
Als ich dann in der Funktion 'FireTV_connect' den Port übergeben habe, hat das Modul bei mir funktioniert.

Ich vermute, dass es an meinem verwendeten/installierten ADB-Server (sudo apt install adb) am Raspi liegt, wo der Standard-Port (5555) nicht mehr automatisch gesetzt wird, falls nicht angegeben.
Bei der äteren Version (sudo apt-get install android-tools-adb) oder die vom Modulentwickler vorgeschlagenen Version (https://github.com/DeepSilence/adb-arm) aber der Standard-Port (5555) schon mitgegeben wird/wurde.

Somit habe ich das Modul basierend auf den Änderungen von


angepasst und noch folgende Fehler ausgebessert.

  • Port wird beim 'FireTV_adb' Aufruf in der 'FireTV_connect'-Funktion jetzt übergeben.
  • KEYCODE_MEDIA_PREVIOUS durch KEYCODE_MEDIA_REWIND ersetzt (war falsch)
  • Falls $remotehtml nicht gesetzt war (undefiniert), kam eine Fehlermeldung im Log-File.

Schön wäre es, wenn @nesges sein Modul mit den Änderungen aktualisieren würde/könnte  ;)

 
Hier das modifizierte Modul Du darfst diesen Dateianhang nicht ansehen. - Vielleicht hilft es ja jemanden!

Schönen Tag
Robert

bertl

Hallo FireTV nutzer!

Bei mir wurden zwar Packages gefunden aber es waren nur Leerzeilen vorhanden.

Bei der Abfrage der Benutzer-Packages {qx(sudo adb shell pm list packages -f -3)} über die FHEM-Konsole ist mir aufgefallen, dass sich in der aktuellen Firmware-Version vom FireTV-Stick die Zusammensetzung des Ergebnisses etwas geändert haben dürfte.
package:/data/app/com.amazon.firetv.youtube-EhI8fNq3JJ8Z0ht4GzxI8Q==/base.apk=com.amazon.firetv.youtube
Dadurch hat der Aufruf split('=', $line) nur leere Zeilen ergeben.

Nach Anpassung des Codes auf split('apk=', $line) funktioniert die Abfrage der Benutzer-Packages wieder!


Hier das modifizierte Modul Du darfst diesen Dateianhang nicht ansehen. !

Schönen Tag
Robert

ph1959de

@bertl - Danke für's finden und lösen des Problems

@nesges - ich hoffe, Du liest hier (noch) mit und prüfst/übernimmst diese Korrektur?

Ich habe eine Wiki Seite für das Modul angelegt (https://wiki.fhem.de/wiki/FireTV) um die Fäden zu diesem Modul zusammenhalten zu können.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"