FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: nesges am 09 März 2017, 18:04:40

Titel: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 09 März 2017, 18:04:40
Ich habe die im Thread Amazon Fire TV (https://forum.fhem.de/index.php/topic,28770.0.html) gesammelten Funktionen zur Fernbedienung eines Amazon Fire TVs gesammelt und in ein Modul gepackt. Voraussetzung zur Nutzung ist ein Fire TV mit aktiviertem ADB-Debugging und ein adb binary auf dem Fhemserver (Details/Links dazu in der Doku). Das Modul kann:


Das Modul kann nicht: Informationen zu grade abgespielten Medien wieder geben

Darüber hinaus bringt es eine grafische Fernbedienung für FHEMWEB mit, die um eigene Tasten erweiterbar ist. Der Screenshot im Anhang zeigt die Fernbedienung. Der Teil unter der Querlinie ist die individuelle Erweiterung.

Weitere Details in der Doku unter https://github.com/nesges/Fhem-Modules/wiki/98_FireTV.pm bzw. nach Installation in der lokalen Commandref.

Installation direkt aus Fhem heraus per:
update add https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt
update 98_FireTV

oder
update all https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt

update all bringt zusätzlich zwei weitere Module (98_ApacheStatus, 98_Hello) und eine contrib/99_Utils_FireTV.pm mit, die die Funktion ftv_active() zum finden eines aktiven FireTV Devices implementiert.

oder Download unter: https://raw.githubusercontent.com/nesges/Fhem-Modules/master/FHEM/98_FireTV.pm

Achtung: Ich habe das Modul selbst seit ca. zwei Wochen im Einsatz, ansonsten ist es weitest gehend ungetestet. Daher bitte ich darum es entsprechend mit Vorsicht zu genießen und mir Fehlerberichte (inkl. list DEVICE und verbose 5 Log) zukommen zu lassen. Konkrete Ideen zur Weiterentwicklung sind gern gesehen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: VB90 am 09 März 2017, 22:37:21
auch wenn ich derzeit absolut keine Zeit habe es zu nutzen oder gar zu testen, möchte ich mich doch trotzdem bedanken.
Wenn ich meine aktuelle Baustelle zu Hause fertig habe, werde ich es mir zu Gemüte führen und nutzen.

Dazu gleich eine Frage/Idee:

Ich schaue über meinen FireTV sehr oft über eine App den TV-Stream meiner VU+-Sat-Receiver.
Die App zu starten soll ja schon gehen, wie große sind die Chancen, das man dann auch in der App navigieren kann?

Würde gern ein Szenario bauen, bei dem zu bestimmten Zeiten und Anwesenden verschiedene Sender eingestellt werden.

vb
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Hauswart am 10 März 2017, 08:06:04
Einrichtung etc. ging alles sehr schnell und problemlos.

@nesges willst du noch schnell die Schritt für Schritt Anleitung zur Installation von ADB (siehe meine 2. oder 3. PN) im ersten Beitrag einfügen? Dann können zumindest Debian User dies relativ einfach nachinstallieren.

Die Datei 99_Utils_Fire.pm listet mittels ftv_active() alle aktiven FireTV und gibt diese aus. Ist dies eine Vorbereitung für Multi-Room?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 10 März 2017, 09:23:02
Hallo,

ZitatGet adb for your fhem-server. Depending on your system, you have several options:

  • Win/Mac/Linux: Android SDK Platform-Tools
  • Raspbian: adb-arm (https://github.com/DeepSilence/adb-arm)

Es gibt für Raspbian auch ein Paket android-tools-adb. Damit reicht ein sudo apt-get install android-tools-adb

Oder gibt es Probleme mit der Version?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 10 März 2017, 09:32:45
Zitat von: VB90 am 09 März 2017, 22:37:21
Die App zu starten soll ja schon gehen, wie große sind die Chancen, das man dann auch in der App navigieren kann?

Theoretisch ist es möglich eine App per Intents zu steuern, allerdings ist adb in der im Modul implementierten Form äusserst träge. Andere Lösungen (AMAD) sind dafür wahrscheinlich sinnvoller. Falls keine Intents zur Verfügung stehen (oder bekannt sind), kann man natürlich auch per Button-Sequence steuern. FireTV implementiert set search/searchonly so. Das ist allerdings noch träger und braucht einen definierten Startpunkt - also wirklich nur als Notlösung wenn sonst gar nichts geht zu gebrauchen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 10 März 2017, 09:43:26
Zitat von: Hauswart am 10 März 2017, 08:06:04
Die Datei 99_Utils_Fire.pm listet mittels ftv_active() allen aktiven FireTV und gibt diese aus. Ist dies eine Vorbereitung für Multi-Room?

Nicht alle, sondern eines. Deshalb nutzt sie neben dem PRESENCE state das userattr priority um eine Entscheidung herbei zu führen. Anwendung dafür: Ich sage zB einem Echo-Gerät: "Alexa, sag Fire starte Kodi" und nutze ftv_active() um heraus zu finden welches FireTV damit gemeint ist. Meistens läuft nur eines, wenn mehrere laufen ist per priority geregelt, dass zB Wohnzimmer > Schlafzimmer gilt
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 10 März 2017, 09:45:34
Zitat von: mahowi am 10 März 2017, 09:23:02
Es gibt für Raspbian auch ein Paket android-tools-adb. Damit reicht ein sudo apt-get install android-tools-adb
Oder gibt es Probleme mit der Version?

Habe ich offenbar übersehen, danke für den Hinweis! Werde ich testen und ggf. oben einfügen. Damit ist

Zitat von: Hauswart am 10 März 2017, 08:06:04
@nesges willst du noch schnell die Schritt für Schritt Anleitung zur Installation von ADB (siehe meine 2. oder 3. PN) im ersten Beitrag einfügen? Dann können zumindest Debian User dies relativ einfach nachinstallieren.

evtl nicht mehr notwendig.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Tedious am 10 März 2017, 09:46:35
Klingt definitiv spannend, teste ich gerne sobald ich Zeit dafür finde  :)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: xanker am 13 März 2017, 22:53:08
@nesges vielen Dank für das Modul! Selbiges hatte ich auch schon geplant, bin aufgrund von Zeitmangel aber nicht dazu gekommen.
Ich habe dein Modul bereits in Verwendung, da ich aber 2 FireTV Sticks habe, muss an deinem Modul noch etwas geändert werden. Damit die ADB Bridge weiß welchem Stick sie ein Kommando schicken soll, muss bei jedem Kommando explizit die IP mit angegeben werden. Zeile 523 muss dazu wie folgt geändert werden:
$hash->{helper}{$name}{lastadbcmd} = $hash->{ADB}." -s $hash->{IP}:5555 $cmd";
Der Port sollte nicht nötig sein, bzw. könnte auch als Internal ausgelagert werden.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 13 März 2017, 23:38:29
Zitat von: xanker am 13 März 2017, 22:53:08
da ich aber 2 FireTV Sticks habe, muss an deinem Modul noch etwas geändert werden. Damit die ADB Bridge weiß welchem Stick sie ein Kommando schicken soll, muss bei jedem Kommando explizit die IP mit angegeben werden. Zeile 523 muss dazu wie folgt geändert werden:
$hash->{helper}{$name}{lastadbcmd} = $hash->{ADB}." -s $hash->{IP}:5555 $cmd";
Der Port sollte nicht nötig sein, bzw. könnte auch als Internal ausgelagert werden.

Danke für den Hinweis! Baue ich so in die nächste Version ein. Den Port lasse ich weg, erweitere aber die Prüfung auf den IP-Parameter im Define so, dass man dort den Port mitgeben könnte.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Hauswart am 14 März 2017, 12:25:51
Über die Remotehtml habe ich Probleme den FireTV in den Schlaf zu schicken. Via set FireTV screen sleep funktioniert es. Einzelfall bei mir?

Die Icons aus dem Beispiel sind nehme ich an standardmässig nicht vorhanden?
    #             <tr>
    #                 <td><a onClick=\"$cmd appstart org.xbmc.kodi')\">".FW_makeImage("kodi", "Kodi", "rc-button")."</a></td>
    #                 <td><a onClick=\"$cmd appstart com.spotify.tv.android')\">".FW_makeImage("spotify", "Spotify", "rc-button")."</a></td>
    #                 <td><a onClick=\"$cmd appstart tv.twitch.android.viewer')\">".FW_makeImage("twitch", "twitch", "rc-button")."</a></td>
    #             </tr>
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 14 März 2017, 14:48:21
Zitat von: Hauswart am 14 März 2017, 12:25:51
Über die Remotehtml habe ich Probleme den FireTV in den Schlaf zu schicken. Via set FireTV screen sleep funktioniert es. Einzelfall bei mir?

Hallo NESGES,

Vielen Dank für die neue FIRE-TV-Remote! - Teste noch...

Auch ich habe bis jetzt keine Button-Variante gefunden, den Sleep-Modus zu aktivieren. Wäre echt toll... ;)

Auffälligkeiten beim Neustart(LOG) des Raspi-3:
"PERL WARNING: keys on reference is experimental at ./FHEM/98_FireTV.pm line 130, <$fh> line 3314."
und
"PERL WARNING: Use of uninitialized value $packages in concatenation (.) or string at ./FHEM/98_FireTV.pm line 392."

Zur Konfiguration:
Habe einen Stick und eine Box (einmal als LAN-Gerät und WLAN-Gerät) einprogrammiert.

Das Ganze eingebunden über...
1. "update add https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt"
2. "update all https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt"
3."sudo apt-get install android-tools-adb"

VG.
BillyPbg 
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 14 März 2017, 14:49:58
Zitat von: Hauswart am 14 März 2017, 12:25:51
Über die Remotehtml habe ich Probleme den FireTV in den Schlaf zu schicken. Via set FireTV screen sleep funktioniert es. Einzelfall bei mir?

Zeig mal den Inhalt deines remotehtml-Attributes, evtl. hast du vergessen my $device = 'FIRETV'; anzupassen. Wenn's das nicht ist, dann bitte auch ein list DEVICE und ein verbose 5 Log.

ZitatDie Icons aus dem Beispiel sind nehme ich an standardmässig nicht vorhanden?

Diese nicht, die sind selbst aus den http://fontawesome.io/ Icons erstellt. Um die in Fhem zu verwenden muss man die SVGs nur leicht nachbearbeiten und den fett gedruckten Teil einfügen: <svg ... ><g fill="#000000"><path ... /></g></svg>
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 14 März 2017, 14:54:05
Zitat von: BillyPbg am 14 März 2017, 14:48:21
Auffälligkeiten beim Neustart(LOG) des Raspi-3:
"PERL WARNING: keys on reference is experimental at ./FHEM/98_FireTV.pm line 130, <$fh> line 3314."
und
"PERL WARNING: Use of uninitialized value $packages in concatenation (.) or string at ./FHEM/98_FireTV.pm line 392."

Danke, sind beide in der nächsten Version korrigiert. Wegen Zusatzbuttons: Bitte das gleiche prüfen, wie ich Hauswart grade geschrieben habe. Da ihr euch beide auf "sleep" bezieht: Andere selbst definierte Buttons funktionieren?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 14 März 2017, 15:37:12
Hallo NESGES,

Danke für das prompte Feedback.

Kann leider erst am Wochenende "creativ" testen...
Melde mich dann nächste Woche wieder.

VG.
BillyPbg
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 15 März 2017, 15:16:43
Hallo NESGES,

lade Dir doch mal MAGINE-TV auf den FireTV.
Dann bekommst Du in den Packages 'com.magine.aliceoid' ausgeworfen.

Wenn Du es dann aber startest (z.B. 'Set FireTV appstart com.magine.aliceoid',
bzw. über remotehtml:'<a onClick=\"$cmd appstart com.magine.aliceoid')\">".FW_makeImage("Magine", "Magine-TV", "rc-button")."</a>' )
fehlt die FireTV-Anpassung, sieht aus als würde es ganz ordinär "Android"-mäßig starten, was jedoch für den FireTV nicht ausreicht. :(

Idee - Lösungsansatz ???

VG.
BillyPbg
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 15 März 2017, 15:54:57
Zitat von: BillyPbg am 15 März 2017, 15:16:43
sieht aus als würde es ganz ordinär "Android"-mäßig starten, was jedoch für den FireTV nicht ausreicht

Ich starte Apps mit dem Standard-Launch-Intent android.intent.category.LAUNCHER (bzw: shell monkey -p $package -c android.intent.category.LAUNCHER 1). Nach dem was du beschreibst gibt es offenbar noch einen speziellen Intent oder Parameter für einen "TV-Modus". Dazu habe ich allerdings keine Infos. Wenn du heraus finden kannst, wie die App gestartet werden muss um in diesen Modus zu gelangen, bau ich's gerne ein.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: xanker am 15 März 2017, 17:25:42
Zitat von: nesges am 15 März 2017, 15:54:57
Ich starte Apps mit dem Standard-Launch-Intent android.intent.category.LAUNCHER (bzw: shell monkey -p $package -c android.intent.category.LAUNCHER 1). Nach dem was du beschreibst gibt es offenbar noch einen speziellen Intent oder Parameter für einen "TV-Modus". Dazu habe ich allerdings keine Infos. Wenn du heraus finden kannst, wie die App gestartet werden muss um in diesen Modus zu gelangen, bau ich's gerne ein.
Ich habe es nicht getestet, aber es müsste folgender Launch-Intent sein:
android.intent.category.LEANBACK_LAUNCHER
Quelle: https://developer.android.com/training/tv/start/start.html (https://developer.android.com/training/tv/start/start.html)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 15 März 2017, 18:11:29
Zitat von: xanker am 15 März 2017, 17:25:42
Ich habe es nicht getestet, aber es müsste folgender Launch-Intent sein:
android.intent.category.LEANBACK_LAUNCHER
Quelle: https://developer.android.com/training/tv/start/start.html (https://developer.android.com/training/tv/start/start.html)

Sieht gut aus, vielen Dank!
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 15 März 2017, 19:07:40
Habe grade Version 0.5 auf github gepusht. Die hier im Thread bisher angesprochenen Änderungen sollte alle enthalten sein, im einzelnen:

2017-03-15
Version 0.5
2017-03-15
added LEANBACK_LAUNCHER
added PORT internal
added deviceid to adb calls
added hint to 'apt-get install android-tools-adb' to documentation
some minor bugfixes


@BillyPbg: Probier bitte appstart mit deiner App aus, sollte jetzt im "TV-Modus" starten
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Hauswart am 15 März 2017, 23:01:58
Bekomme nun folgendes:
2017.03.15 22:54:52 1: reload: Error:Modul 98_FireTV deactivated:
Global symbol "$response" requires explicit package name at ./FHEM/98_FireTV.pm line 763.

2017.03.15 22:54:52 0: Global symbol "$response" requires explicit package name at ./FHEM/98_FireTV.pm line 763.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 15 März 2017, 23:32:46
Zitat von: Hauswart am 15 März 2017, 23:01:58
2017.03.15 22:54:52 0: Global symbol "$response" requires explicit package name at ./FHEM/98_FireTV.pm line 763.

Ah, last minute changes... Korrigiert! Bitte nochmal updaten.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 16 März 2017, 08:38:08
Hallo NESGES,

Vollzugsmeldung:
   "Magine-TV" läuft jetzt (V.0.5) korrekt!!! :)
Danke.

VG.
BillyPbg

@Dank auch an XANKER für seine Mitarbeit.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 16 März 2017, 09:44:40
Hallo NESGES,

Verbesserungswunsch:
- Anprechzeiten der Richtungs-Buttons

Beschreibung:
Speziell bei Mehrfachauslösung sehr langsames, unsynchrones Verhalten,
was bei der Navigation (siehe Anhänge) äußerst lästig ist...

Idee:
Erst nach einer "Ruhezeit" (z.B. 0.5s) kontrolliertes Übertragen an die Box/Stick

VG
BillyPbg
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 16 März 2017, 11:11:11
Hallo NESGES,

nach Durchsicht des RESTART-LOGs fand ich...

. 2017.03.16 10:35:26.253 1: PERL WARNING: keys on reference is experimental at ./FHEM/98_FireTV.pm line 142, <$fh> line 3331.
2017.03.16 10:35:26.254 1: stacktrace:
2017.03.16 10:35:26.254 1: main::__ANON__ called by ./FHEM/98_FireTV.pm (142)
2017.03.16 10:35:26.254 1: (eval) called by fhem.pl (2342)
2017.03.16 10:35:26.254 1: (eval) called by fhem.pl (2341)
2017.03.16 10:35:26.255 1: main::CommandReload called by fhem.pl (1751)
2017.03.16 10:35:26.255 1: main::LoadModule called by fhem.pl (1813)
2017.03.16 10:35:26.255 1: main::CommandDefine called by fhem.pl (1109)
2017.03.16 10:35:26.255 1: main::AnalyzeCommand called by fhem.pl (978)
2017.03.16 10:35:26.256 1: main::AnalyzeCommandChain called by fhem.pl (1244)
2017.03.16 10:35:26.256 1: main::CommandInclude called by fhem.pl (523)
2017.03.16 10:35:27.050 1: Including ./log/fhem.save



LIST-Definition:

Internals:
ADB                      /usr/bin/adb
ADBVERSION         Android Debug Bridge version 1.0.31
ADDRESS              192.168.178.95
DEF                       192.168.178.95
IP                          192.168.178.95
MODE                     lan-ping
NAME                     FIRE_TV_BOX_WLAN
NOTIFYDEV             global,FIRE_TV_BOX_WLAN
NR                         1917
NTFY_ORDER          50-FIRE_TV_BOX_WLAN
PORT                      5555
STATE                     present
TIMEOUT_NORMAL   30
TIMEOUT_PRESENT   30
TYPE                        FireTV
VERSION                  0.5
adbconnected           1

Readings:
2017-03-16 08:06:39 .absenceThresholdCounter 0
2017-03-16 10:52:40 .presenceThresholdCounter 0
2017-03-16 10:52:40 presence present
2017-03-16 08:44:50 screenshot /home/pi/FHEM/FireTVPictures/mqcxtu6332.png
2017-03-16 10:52:40 state present

Helper:
CURRENT_STATE present
PRESENT_COUNT 0
Fire_tv_box_wlan:
   PRESENCE_loaded 1
   lastadbcmd /usr/bin/adb connect 192.168.178.95
   lastadbresponse connected to 192.168.178.95:5555
   packages air.tv.spiegel.sptv,ch.bitspin.timely,com.amazon.rialto.cordova.webapp.webapp8be5ccd1280c44039ec216e972aaa5d7,com.amazon.rialto.cordova.webapp.webappec05e04162864e9eb91f32c39320e864,com.amazon.rialto.cordova.webapp.webappf975b35f76e34a959ec469eeef9d77b1,com.amazon.rialto.cordova.webapp.webappfadfbcbf64f948e3895eaad792c36493,com.daserste.daserste,com.deepsgamestudio.iptvplayer,com.dooblou.WiFiFileExplorerPRO,com.earthcam.earthcamtv,com.estrongs.android.pop,com.eurosport.player,com.ghisler.android.TotalCommander,com.ghisler.tcplugins.wifitransfer,com.guidology.android.remotemouseforfiretv,com.jigawattlabs.signal,com.kyy.tvtube,com.macropinch.axe,com.magine.aliceoid,com.mautilus.servus.amazonfiretv,com.mekmedia.AntenneBayern,com.mekmedia.N24nexT,com.mekmedia.RockAntenne,com.mg.meteoearth,com.onlinetvrecorder.SchoenerFernsehen3,com.rtli.clipfish,com.schuldenuhr,com.screenview.amazontoastyfireplace,com.semperpax.spmc16,com.snapwood.shutterfolio,com.solarlog.app,com.tuxera.streambels.receiver,com.zattoo.player.firetv,com.zdf.android.mediathek,de.br.dg.melina.firetv,de.br.sep.news.br24.firetv,de.cellular.focus,de.cellular.tagesschau,de.cyberdream.firenotifications.amazon,de.equinux.tvproapp.tvpro,de.haraldhenning.droidlauncherrcserver,de.idg.pc.video.android.amazon,de.lineas.ntv.firetv,de.metamorph.bild,de.o2online.tv,de.prosiebensat1digital.kabeleins,de.prosiebensat1digital.kabeleinsdoku,de.prosiebensat1digital.prosieben,de.prosiebensat1digital.prosiebenmaxx,de.prosiebensat1digital.sat1,de.prosiebensat1digital.sat1gold,de.prosiebensat1digital.seventv,de.prosiebensat1digital.sixx,de.spon.smarttv,de.sport1.firetv.video,de.swr.ard.avp.mobile.android.amazon,de.tvspielfilm,eu.siptv.video,fm.daf.smarttv,nalic.app.wifishare,net.simpletechs.firetv.netzkino,org.chromium.youtube_apk,org.videolan.vlc,se.ollan.kodiupdater,tv.arte.plus7

Attributes:
group FIRE-TV
remotehtml
{ my $device = 'FIRE_TV_BOX_WLAN'; my $cmd = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd.$device=set $device "; return "<tr><td colspan='3'><hr></td></tr> <tr> <td><a onClick=\"$cmd appstart org.xbmc.kodi')\">".FW_makeImage("kodi", "Kodi", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.spotify.tv.android')\">".FW_makeImage("spotify", "Spotify", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart tv.twitch.android.viewer')\">".FW_makeImage("twitch", "twitch", "rc-button")."</a></td> </tr> <tr> <td><a onClick=\"$cmd screen sleep')\">".FW_makeImage("rc_TV\@red", "sleep", "rc-button")."</a></td> <td><a onClick=\"$cmd screen wakeup')\">".FW_makeImage("rc_TV", "wakeup", "rc-button")."</a></td> <td><a onClick=\"$cmd window settings')\">".FW_makeImage("rc_SETUP", "settings", "rc-button")."</a></td> </tr> <tr> <td><a onClick=\"$cmd appstart com.magine.aliceoid')\">".FW_makeImage("Magine", "Magine-TV", "rc-button")."</a></td> <td><a onClick=\"$cmd com.zattoo.player.firetv')\">".FW_makeImage("Zattoo", "Zattoo", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.onlinetvrecorder.SchoenerFernsehen3')\">".FW_makeImage("Schöner Fernsehen", "Schöner Fernsehen", "rc-button")."</a></td> </tr> <tr> <td><a onClick=\"$cmd org.chromium.youtube_apk')\">".FW_makeImage("Youtube", "Youtube", "rc-button")."</a></td> <td><a onClick=\"$cmd com.zattoo.player.firetv')\">".FW_makeImage("Zattoo", "Zattoo", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.onlinetvrecorder.SchoenerFernsehen3')\">".FW_makeImage("Schöner Fernsehen", "Schöner Fernsehen", "rc-button")."</a></td> </tr> <tr> <td><a onClick=\"$cmd appstart com.magine.aliceoid')\">".FW_makeImage("Magine", "Magine-TV", "rc-button")."</a></td> <td><a onClick=\"$cmd com.zattoo.player.firetv')\">".FW_makeImage("Zattoo", "Zattoo", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.onlinetvrecorder.SchoenerFernsehen3')\">".FW_makeImage("Schöner Fernsehen", "Schöner Fernsehen", "rc-button")."</a></td></tr>"; }

room SYSTEM
screenshotpath /home/pi/FHEM/FireTVPictures
verbose 3



RAW-Definition:

defmod FIRE_TV_BOX_WLAN FireTV 192.168.178.95
attr FIRE_TV_BOX_WLAN group FIRE-TV
attr FIRE_TV_BOX_WLAN remotehtml { my $device = 'FIRE_TV_BOX_WLAN';; my $cmd = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd.$device=set $device ";; return "<tr><td colspan='3'><hr></td></tr> <tr> <td><a onClick=\"$cmd appstart org.xbmc.kodi')\">".FW_makeImage("kodi", "Kodi", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.spotify.tv.android')\">".FW_makeImage("spotify", "Spotify", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart tv.twitch.android.viewer')\">".FW_makeImage("twitch", "twitch", "rc-button")."</a></td> </tr> <tr> <td><a onClick=\"$cmd screen sleep')\">".FW_makeImage("rc_TV\@red", "sleep", "rc-button")."</a></td> <td><a onClick=\"$cmd screen wakeup')\">".FW_makeImage("rc_TV", "wakeup", "rc-button")."</a></td> <td><a onClick=\"$cmd window settings')\">".FW_makeImage("rc_SETUP", "settings", "rc-button")."</a></td> </tr>  <tr> <td><a onClick=\"$cmd appstart com.magine.aliceoid')\">".FW_makeImage("Magine", "Magine-TV", "rc-button")."</a></td> <td><a onClick=\"$cmd com.zattoo.player.firetv')\">".FW_makeImage("Zattoo", "Zattoo", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.onlinetvrecorder.SchoenerFernsehen3')\">".FW_makeImage("Schöner Fernsehen", "Schöner Fernsehen", "rc-button")."</a></td>  </tr>  <tr> <td><a onClick=\"$cmd org.chromium.youtube_apk')\">".FW_makeImage("Youtube", "Youtube", "rc-button")."</a></td> <td><a onClick=\"$cmd com.zattoo.player.firetv')\">".FW_makeImage("Zattoo", "Zattoo", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.onlinetvrecorder.SchoenerFernsehen3')\">".FW_makeImage("Schöner Fernsehen", "Schöner Fernsehen", "rc-button")."</a></td> </tr>  <tr> <td><a onClick=\"$cmd appstart com.magine.aliceoid')\">".FW_makeImage("Magine", "Magine-TV", "rc-button")."</a></td> <td><a onClick=\"$cmd com.zattoo.player.firetv')\">".FW_makeImage("Zattoo", "Zattoo", "rc-button")."</a></td> <td><a onClick=\"$cmd appstart com.onlinetvrecorder.SchoenerFernsehen3')\">".FW_makeImage("Schöner Fernsehen", "Schöner Fernsehen", "rc-button")."</a></td></tr>";; }
attr FIRE_TV_BOX_WLAN room SYSTEM
attr FIRE_TV_BOX_WLAN screenshotpath /home/pi/FHEM/FireTVPictures
attr FIRE_TV_BOX_WLAN verbose 3

setstate FIRE_TV_BOX_WLAN present
setstate FIRE_TV_BOX_WLAN 2017-03-16 08:06:39 .absenceThresholdCounter 0
setstate FIRE_TV_BOX_WLAN 2017-03-16 11:08:55 .presenceThresholdCounter 0
setstate FIRE_TV_BOX_WLAN 2017-03-16 11:08:55 presence present
setstate FIRE_TV_BOX_WLAN 2017-03-16 08:44:50 screenshot /home/pi/FHEM/FireTVPictures/mqcxtu6332.png
setstate FIRE_TV_BOX_WLAN 2017-03-16 11:08:55 state present



VG.
BillyPbg
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 16 März 2017, 23:36:54
Zitat von: BillyPbg am 16 März 2017, 11:11:11
2017.03.16 10:35:26.253 1: PERL WARNING: keys on reference is experimental at ./FHEM/98_FireTV.pm line 142, <$fh> line 3331.

Bitte erstmal ignorieren, aber ich werde schauen ob ich's unterdrücken kann.

Zitat
2017.03.16 10:35:26.254 1: stacktrace:
2017.03.16 10:35:26.254 1: main::__ANON__ called by ./FHEM/98_FireTV.pm (142)
2017.03.16 10:35:26.254 1: (eval) called by fhem.pl (2342)
2017.03.16 10:35:26.254 1: (eval) called by fhem.pl (2341)
2017.03.16 10:35:26.255 1: main::CommandReload called by fhem.pl (1751)
2017.03.16 10:35:26.255 1: main::LoadModule called by fhem.pl (1813)
2017.03.16 10:35:26.255 1: main::CommandDefine called by fhem.pl (1109)
2017.03.16 10:35:26.255 1: main::AnalyzeCommand called by fhem.pl (978)
2017.03.16 10:35:26.256 1: main::AnalyzeCommandChain called by fhem.pl (1244)
2017.03.16 10:35:26.256 1: main::CommandInclude called by fhem.pl (523)
2017.03.16 10:35:27.050 1: Including ./log/fhem.save

Wenn du die Stacktraces nicht im Log haben willst: attr global stacktrace 0 (siehe http://fhem.de/commandref.html#global). Anscheinend ist das Defaultverhalten in einem der letzten Updates geändert worden.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 16 März 2017, 23:46:01
Zitat von: BillyPbg am 16 März 2017, 09:44:40
Verbesserungswunsch:
- Anprechzeiten der Richtungs-Buttons

Beschreibung:
Speziell bei Mehrfachauslösung sehr langsames, unsynchrones Verhalten,
was bei der Navigation (siehe Anhänge) äußerst lästig ist...

Idee:
Erst nach einer "Ruhezeit" (z.B. 0.5s) kontrolliertes Übertragen an die Box/Stick

Du meinst eine Sendqueue in der Keys und Text gepuffert werden? Oder willst du Mehrfachklicks filtern? Letzteres würde ich ablehnen, das kann nur schief gehen. Über eine Sendqueue kann man nachdenken, muss ich mir in Ruhe anschauen aber erstmal vertagen - nächste Woche Urlaub ;-)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: BillyPbg am 17 März 2017, 10:53:19
Hallo NESGES,

ich sag' schon mal SCHÖNEN URLAUB, während Du über die Sendqueue nachdenkst... ;)

VG.
BillyPbg

PS:
Als Anhang noch meine fhem.pl falls Du sie zur Recherche brauchst (fhem.pl:13700/2017-03-14)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Hauswart am 17 März 2017, 11:17:18
Zitat von: nesges am 15 März 2017, 23:32:46
Ah, last minute changes... Korrigiert! Bitte nochmal updaten.
Ging nun ohne Probleme. Der Sleep Button funktioniert bei mir weiterhin nicht, andere Buttons gehen... Log habe ich leider noch nicht erstellen können.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 26 März 2017, 16:15:06
Zitat von: BillyPbg am 16 März 2017, 11:11:11
2017.03.16 10:35:26.253 1: PERL WARNING: keys on reference is experimental at ./FHEM/98_FireTV.pm line 142, <$fh> line 3331

Die Meldung erscheint jetzt nicht mehr.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 26 März 2017, 16:16:32
Zitat von: BillyPbg am 17 März 2017, 10:53:19
Als Anhang noch meine fhem.pl falls Du sie zur Recherche brauchst (fhem.pl:13700/2017-03-14)

Wüsste jetzt nicht wozu; die fhem.pl ist - abgesehen vom Updatestand - überall gleich. Falls du die fhem.cfg senden wolltest: Bitte nicht :-)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 10:38:57
Ich habe jetzt gestern auch mal meinen FireTV Stick mit Deinem Modul eingebunden. Das hat auch soweit funktioniert. Aber beim Neustart verfällt FHEM in eine Start-Schleife. Geholfen hat bei mir nur, adb aus dem Suchpfad zu nehmen, so daß es nicht gefunden wird. Danach startet FHEM auch wieder normal.

Fehlermeldungen im Log von 98_FireTV:
Use of uninitialized value $apk[0] in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value $apk[1] in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value $apk[2] in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value $apk[0] in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value $apk[1] in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value $apk[1] in sort at ./FHEM/98_FireTV.pm line 172.
Use of uninitialized value $apk[0] in join or string at ./FHEM/98_FireTV.pm line 173.
Use of uninitialized value $apk[1] in join or string at ./FHEM/98_FireTV.pm line 173.
Use of uninitialized value $apk[2] in join or string at ./FHEM/98_FireTV.pm line 173.
Use of uninitialized value $apk[0] in join or string at ./FHEM/98_FireTV.pm line 174.
Use of uninitialized value $apk[1] in join or string at ./FHEM/98_FireTV.pm line 174.
Use of uninitialized value $apk[2] in join or string at ./FHEM/98_FireTV.pm line 174.


Die letzten Zeilen im Log, bevor FHEM sich wieder (und wieder) neu startet, sind:
2017.03.29 09:00:01.051 0: Server shutdown
2017.03.29 09:00:06.379 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.03.29 09:00:06.382 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.03.29 09:00:14.150 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.03.29 09:00:14.153 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
connect error: Connection refused (111)
connect error: Connection refused (111)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 11:06:14
Anscheinend werden keine Packages gefunden - ist ein Fall den ich nicht Bedacht habe, ich sehe aber auch noch nicht weshalb der Start blockiert wird. Sind das alle Logmeldungen zum FireTV beim Start? Werden sie wiederholt? Kannst du mir bitte die Ausgaben von

a) list <FIRETV-DEVICE>
b) in der Shell:
adb connect <FIRETV-IP>
adb shell pm list packages -f -3


posten?

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 12:00:00
Ok, es gibt da gleich mehrere Probleme.

- Da der Stick keine statische IP hat, hatte sich die IP geändert und er war nicht mehr erreichbar.

- adb verbindet sich scheinbar nur als root:
pi@raspberrypi:~ $ adb connect 192.168.1.102
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
pi@raspberrypi:~ $ sudo adb connect 192.168.1.102
connected to 192.168.1.102:5555


Dann gibt's auch eine Liste der Packages:
pi@raspberrypi:~ $ sudo adb shell pm list packages -f -3
package:/data/app/de.prosiebensat1digital.seventv-2.apk=de.prosiebensat1digital.seventv
package:/data/app/de.swr.ard.avp.mobile.android.amazon-1.apk=de.swr.ard.avp.mobile.android.amazon
package:/data/app/de.belu.firestarter-2.apk=de.belu.firestarter
package:/data/app/com.magine.aliceoid-1/base.apk=com.magine.aliceoid
package:/data/app/mekmedia.dmax.firetv-1/base.apk=mekmedia.dmax.firetv
package:/data/app/com.zdf.android.mediathek-1.apk=com.zdf.android.mediathek
package:/data/app/com.daserste.daserste-1/base.apk=com.daserste.daserste
package:/data/app/org.chromium.youtube_apk-2/base.apk=org.chromium.youtube_apk
package:/data/app/de.exaring.waipu.firetv.live-2/base.apk=de.exaring.waipu.firetv.live


Logauszüge mit verbose 5:
2017.03.29 11:50:01.852 4: [FireTV] FireTV_adb response: cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
2017.03.29 11:50:01.853 4: [FireTV] FireTV_connect (connect): cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *

2017.03.29 11:50:15.303 5: PRESENCE (FireTV) - stopping timer
2017.03.29 11:50:15.304 5: PRESENCE (FireTV) - starting blocking call for mode lan-ping
2017.03.29 11:50:15.349 5: PRESENCE (FireTV) - starting ping scan: FireTV|192.169.1.102|0|4
2017.03.29 11:50:28.467 5: PRESENCE (FireTV) - ping command returned with output:
PING 192.169.1.102 (192.169.1.102) 56(84) bytes of data.

--- 192.169.1.102 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3082ms

2017.03.29 11:50:28.487 5: PRESENCE (FireTV) - blocking scan result: FireTV|0|absent
2017.03.29 11:50:28.517 4: PRESENCE (FireTV) - rescheduling next check in 30 seconds


Ach ja, noch die Definitionen meines FireTV:
defmod FireTV FireTV 192.169.1.102
attr FireTV group TV
attr FireTV room Schlafzimmer
attr FireTV verbose 5

setstate FireTV absent
setstate FireTV 2017-03-29 11:52:38 .absenceThresholdCounter 0
setstate FireTV 2017-03-29 11:52:38 presence absent
setstate FireTV 2017-03-29 11:52:38 state absent


list:
Internals:
   ADB        /usr/bin/adb
   ADBVERSION Android Debug Bridge version 1.0.31

   ADDRESS    192.169.1.102
   CFGFN
   DEF        192.169.1.102
   IP         192.169.1.102
   MODE       lan-ping
   NAME       FireTV
   NOTIFYDEV  global,FireTV
   NR         273
   NTFY_ORDER 50-FireTV
   PORT       5555
   STATE      absent
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TYPE       FireTV
   VERSION    0.5.1
   adbconnected 1
   Readings:
     2017-03-29 11:53:23   presence        absent
     2017-03-29 11:53:23   state           absent
   Helper:
     ABSENT_COUNT 0
     Firetv:
       PRESENCE_loaded 1
       lastadbcmd /usr/bin/adb  connect 192.169.1.102
       lastadbresponse cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
       packages   ,,,,
Attributes:
   group      TV
   room       Schlafzimmer
   verbose    5
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 13:13:50
Zitat von: mahowi am 29 März 2017, 12:00:00
- Da der Stick keine statische IP hat, hatte sich die IP geändert und er war nicht mehr erreichbar.

Wenn adb die IP nicht erreicht blockiert's in der Regel eigentlich nicht:

fhem@wopr:~$ adb connect 192.168.178.23
unable to connect to 192.168.178.23:5555


Bitte beobachten ob das öfter und unter welchen Voraussetzungen auftritt.

Zitat- adb verbindet sich scheinbar nur als root:
pi@raspberrypi:~ $ adb connect 192.168.1.102
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon

Der Fehler kommt vor, Ursache ist mir nicht klar geworden, aber ich fang ihn im Modul mit adb kill-server && adb start-server und anschließend neuem connect ab. Dein Logauszug zeigt aber noch etwas anderes:

2017.03.29 11:50:15.349 5: PRESENCE (FireTV) - starting ping scan: FireTV|192.169.1.102|0|4
2017.03.29 11:50:28.467 5: PRESENCE (FireTV) - ping command returned with output:
PING 192.169.1.102 (192.169.1.102) 56(84) bytes of data.

--- 192.169.1.102 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3082ms

2017.03.29 11:50:28.487 5: PRESENCE (FireTV) - blocking scan result: FireTV|0|absent


Der Stick ist nicht unter der IP 192.168.1.102 erreichbar. Prüf die IP bzw. die Verbindung zum Stick bitte nochmal.

Sollte auch nichts mit root zu tun haben, zumindest kann ich adb hier auch als unprivilegierter User nutzen:

fhem@wopr:~$ whoami
fhem
fhem@wopr:~$ which adb
/usr/bin/adb
fhem@wopr:~$ ls -la /usr/bin/adb
-rwxr-xr-x 1 root root 134048 Nov 30  2014 /usr/bin/adb
fhem@wopr:~$ adb version
Android Debug Bridge version 1.0.31
fhem@wopr:~$ adb kill-server
fhem@wopr:~$ adb connect 192.168.178.41
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 192.168.178.41:5555
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 13:55:37
Zitat von: nesges am 29 März 2017, 13:13:50
2017.03.29 11:50:15.349 5: PRESENCE (FireTV) - starting ping scan: FireTV|192.169.1.102|0|4
2017.03.29 11:50:28.467 5: PRESENCE (FireTV) - ping command returned with output:
PING 192.169.1.102 (192.169.1.102) 56(84) bytes of data.

--- 192.169.1.102 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3082ms

2017.03.29 11:50:28.487 5: PRESENCE (FireTV) - blocking scan result: FireTV|0|absent


Der Stick ist nicht unter der IP 192.168.1.102 erreichbar. Prüf die IP bzw. die Verbindung zum Stick bitte nochmal.
Das ist die richtige IP. Auf der Konsole ist der Stick auch anpingbar:
pi@raspberrypi:~ $ ping 192.168.1.102
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=20.5 ms
64 bytes from 192.168.1.102: icmp_seq=2 ttl=64 time=42.5 ms
64 bytes from 192.168.1.102: icmp_seq=3 ttl=64 time=64.6 ms
^C
--- 192.168.1.102 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 20.506/42.554/64.649/18.022 ms


Zitat von: nesges am 29 März 2017, 13:13:50
Sollte auch nichts mit root zu tun haben, zumindest kann ich adb hier auch als unprivilegierter User nutzen:

fhem@wopr:~$ whoami
fhem
fhem@wopr:~$ which adb
/usr/bin/adb
fhem@wopr:~$ ls -la /usr/bin/adb
-rwxr-xr-x 1 root root 134048 Nov 30  2014 /usr/bin/adb
fhem@wopr:~$ adb version
Android Debug Bridge version 1.0.31
fhem@wopr:~$ adb kill-server
fhem@wopr:~$ adb connect 192.168.178.41
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 192.168.178.41:5555


Hier nochmal die Ausgaben als User fhem:
fhem@raspberrypi:~$ whoami
fhem
fhem@raspberrypi:~$ groups
dialout plugdev
fhem@raspberrypi:~$ ls -la `which adb`
-rwxr-xr-x 1 root root 134048 Mär 29 11:29 /usr/bin/adb
fhem@raspberrypi:~$ adb version
Android Debug Bridge version 1.0.31
fhem@raspberrypi:~$ adb kill-server
fhem@raspberrypi:~$ adb connect 192.168.1.102
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
fhem@raspberrypi:~$ ping 192.168.1.102
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=161 ms
64 bytes from 192.168.1.102: icmp_seq=2 ttl=64 time=74.8 ms
^C
--- 192.168.1.102 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 74.833/118.132/161.431/43.299 ms


Laut netstat läuft auch nichts anderes auf Port 5037.


Als root kann ich problemlos verbinden:
root@raspberrypi:~# whoami
root
root@raspberrypi:~# adb kill-server
root@raspberrypi:~# adb connect 192.168.1.102
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 192.168.1.102:5555
root@raspberrypi:~# adb devices -l
List of devices attached
192.168.1.102:5555     device product:montoya model:AFTM device:montoya
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 14:53:55
Zitat von: mahowi am 29 März 2017, 13:55:37
Das ist die richtige IP. Auf der Konsole ist der Stick auch anpingbar:

Funktionieren normale PRESENCE-Devices? Kannst du bitte ein PRESENCE-Device mit der IP des FireTV testen?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 15:24:59
Als normales PRESENCE-Device funktioniert es:
Internals:
   ADDRESS    192.168.1.102
   CFGFN
   DEF        lan-ping 192.168.1.102
   MODE       lan-ping
   NAME       firetest
   NOTIFYDEV  global
   NR         3870
   NTFY_ORDER 50-firetest
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TYPE       PRESENCE
   Readings:
     2017-03-29 15:02:43   presence        present
     2017-03-29 15:02:43   state           present
   Helper:
     CURRENT_STATE present
Attributes:


shutdown restart hat jetzt auch wieder ohne Blockieren funktioniert. Aber der PRESENCE-ping geht immer noch nicht durch:
2017.03.29 15:14:40.547 5: PRESENCE (FireTV) - ping command returned with output:
PING 192.169.1.102 (192.169.1.102) 56(84) bytes of data.

--- 192.169.1.102 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3046ms

2017.03.29 15:14:40.562 5: PRESENCE (FireTV) - blocking scan result: FireTV|0|absent


Gibt es noch irgendwelche Möglichkeiten, zu testen, woran es liegt?

Ist es möglich, das Modul so zu ändern, daß man auch den Hostnamen statt der IP für die DEF nutzen kann? Und könnte man ähnlich wie im Nmap-Modul auch optional per Attribut einstellen, daß adb mit sudo genutzt wird?



Edit: Ich habe jetzt mal für adb das SUID-Bit gesetzt (chmod 4755). Damit kann ich als User connecten. FHEM verfällt aber wieder in eine Restart-Schleife. Wenn ich das Log mit tail -f und gleichzeitig die Prozesse mit htop im Auge behalte, kann ich beobachten, wie FHEM erstmal steht, wenn adb gestartet wird (2 Prozesse adb -P 5037 fork-server server).

Wenn ich adb aus dem Pfad lösche, startet FHEM sofort einwandfrei durch.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 15:44:31
Zitat von: mahowi am 29 März 2017, 15:24:59
Ist es möglich, das Modul so zu ändern, daß man auch den Hostnamen statt der IP für die DEF nutzen kann?

Ändert sich die IP denn immernoch?

ZitatUnd könnte man ähnlich wie im Nmap-Modul auch optional per Attribut einstellen, daß adb mit sudo genutzt wird?

Kann ich machen, aber ich bezweifle, dass das viel bringen wird. Offensichtlich gehen die Probleme ja über den reinen Aufruf hinaus. Du kannst testweise aber mal in 98_FireTV.pm diese Zeile suchen:

$hash->{ADB}        = $param[3] || '/usr/bin/adb';

und sudo ergänzen:

$hash->{ADB}        = $param[3] || 'sudo /usr/bin/adb';

Danach shutdown restart
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 16:00:35
Zitat von: mahowi am 29 März 2017, 15:24:59
Edit: Ich habe jetzt mal für adb das SUID-Bit gesetzt (chmod 4755). Damit kann ich als User connecten. FHEM verfällt aber wieder in eine Restart-Schleife. Wenn ich das Log mit tail -f und gleichzeitig die Prozesse mit htop im Auge behalte, kann ich beobachten, wie FHEM erstmal steht, wenn adb gestartet wird (2 Prozesse adb -P 5037 fork-server server).

Wenn ich adb aus dem Pfad lösche, startet FHEM sofort einwandfrei durch.

Interessant! Wie lange blockt Fhem beim Start und ist das Modul danach normal verwendbar? Wird Presence jetzt richtig angezeigt? Die Version deines adb sieht nach dem normalen Raspbian-Package aus. Kannst du bitte die Version von https://github.com/DeepSilence/adb-arm testen. Ggf. wären noch adb shell cat /proc/version und die FireOS-Version (getprop ro.build.version.name) interessant.


Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 16:59:34
Ich muß mal grad mein System reparieren.  ::)
Nach über 20 Jahren Linux habe ich doch noch eine neue Methode gefunden, mich aus dem System auszusperren. Ein Syntaxfehler in einer sudoers-Datei und kein gesetztes root-Paßwort reichen, und schon komm ich an keine Systemdateien mehr dran.  :o
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 17:33:35
Also, die Blockierung dauert so ca. 1-1,5 Minuten. Solange geht gar nix mehr in FHEM. Außerdem ignoriert das Modul das disable-Attribut. Trotz disable=1 startet es adb, sobald ich die Device-Seite aufrufe. adb blockiert auch mit sudo solange, wenn die IP falsch ist.

Mit der Änderung im Modul, so daß adb über sudo aufgerufen wird, klappt der connect:
2017.03.29 17:21:24.595 4: [FireTV] FireTV_adb command: sudo /usr/bin/adb  connect 192.168.1.102
2017.03.29 17:21:24.702 4: [FireTV] FireTV_adb response: connected to 192.168.1.102:5555
2017.03.29 17:21:24.703 4: [FireTV] FireTV_connect (connect): connected to 192.168.1.102:5555


PRESENCE-ping funktioniert jetzt auch:
2017.03.29 17:21:32.137 5: PRESENCE (FireTV) - stopping timer
2017.03.29 17:21:32.138 5: PRESENCE (FireTV) - starting blocking call for mode lan-ping
2017.03.29 17:21:32.185 5: PRESENCE (FireTV) - starting ping scan: FireTV|192.168.1.102|0|4
2017.03.29 17:21:35.244 5: PRESENCE (FireTV) - ping command returned with output:
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=40.4 ms
64 bytes from 192.168.1.102: icmp_seq=2 ttl=64 time=62.6 ms
64 bytes from 192.168.1.102: icmp_seq=3 ttl=64 time=84.4 ms
64 bytes from 192.168.1.102: icmp_seq=4 ttl=64 time=24.2 ms

--- 192.168.1.102 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 24.230/52.929/84.403/22.724 ms
2017.03.29 17:21:35.262 5: PRESENCE (FireTV) - blocking scan result: FireTV|0|present
2017.03.29 17:21:35.290 4: PRESENCE (FireTV) - rescheduling next check in 30 seconds


auch ein get FireTV packages funktioniert jetzt.

Hier noch die Ausgaben zum Stick:
fhem@raspberrypi:~$ sudo adb shell cat /proc/version
Linux version 3.0.31+ (build@ip-10-11-19-147) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #3 SMP PREEMPT Thu Dec 29 02:09:34 UTC 2016
fhem@raspberrypi:~$ sudo adb shell getprop ro.build.version.name
Fire OS 5.2.1.2 (562254320)


Was den Hostnamen als Alternative zur IP angeht, über firetv ist der Stick immer erreichbar. Die IP kann sich wegen DHCP ändern. Kann ich dem Stick eine feste IP vergeben? Ich bin leider auf den Telekom-Router angewiesen wegen Hybrid und habe keine Fritz-Box. und im Speedport kann ich keine IPs vergeben.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 17:42:53
Zitat von: mahowi am 29 März 2017, 17:33:35
Außerdem ignoriert das Modul das disable-Attribut. Trotz disable=1 startet es adb, sobald ich die Device-Seite aufrufe. adb blockiert auch mit sudo solange, wenn die IP falsch ist.

Ja, disable ist nicht konsequent implementiert, da muss ich noch nachbessern.

ZitatMit der Änderung im Modul, so daß adb über sudo aufgerufen wird, klappt der connect:

Ich versteh's nicht, aber wenn das hilft, bau ich ein Attribut dafür ein :-)

ZitatHier noch die Ausgaben zum Stick:
fhem@raspberrypi:~$ sudo adb shell cat /proc/version
Linux version 3.0.31+ (build@ip-10-11-19-147) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #3 SMP PREEMPT Thu Dec 29 02:09:34 UTC 2016
fhem@raspberrypi:~$ sudo adb shell getprop ro.build.version.name
Fire OS 5.2.1.2 (562254320)

Entspricht meinem

ZitatWas den Hostnamen als Alternative zur IP angeht, über firetv ist der Stick immer erreichbar.

An und für sich spricht da nichts gegen, adb geht mit Namen und PRESENCE scheint auch keine Probleme mit Namen statt IP zu haben. Ich schau's mir an.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 18:42:55
Das wäre super, wenn Du die beiden Änderungen einbaust.  :)  Danke!

Ich habe im Netz nur Anleitungen gefunden, um über udev-Rules die Rechte zu vergeben, wenn das Android-Gerät über USB angeschlossen wird. Warum es bei mir nur mit sudo und bei Dir ohne geht, ist mir auch ein Rätsel. Bei mir läuft FHEM auf einem Pi mit aktuellem Raspbian Jessie und Kernel 4.9.17.

In den Netzwerkeinstellungen des Sticks findet sich kein Punkt, um die IP manuell zu vergeben. Daher bin ich leider auf DHCP angewiesen und der FireTV bekommt beim Einschalten eine zufällige neue IP. Den Netzwerknamen konnte ich aber im Router vergeben, und der ändert sich auch nicht.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 29 März 2017, 23:04:31
Ich habe grade Version 0.5.2 auf github veröffentlicht. Neben einigen kleineren Änderungen (verbessertes Logging, einige neue Internals mit Infos über das FireTV) gibt es jetzt die Möglichkeit statt IP einen Hostname zu verwenden und den adb call mit sudo durchzuführen. Ich habe die sudo Option nicht in ein Attribut sondern die Definition gepackt, sie ändert sich wie folgt:

define <name> FireTV <HOST[:PORT]> [sudo] [<ADB_PATH>] [<PRESENCE_TIMEOUT_ABSENT>] [<PRESENCE_TIMEOUT_PRESENT>] [<PRESENCE_MODE>] [<PRESENCE_ADDRESS>]
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 29 März 2017, 23:30:28
Super, funktioniert jetzt einwandfrei.  :)

Einen kleinen Schönheitsfehler hätte ich da noch. In OSNAME, OSVERSION und SERIAL stehen Fehlermeldungen von adb statt der entsprechenden Werte:
   OSNAME     error: device not found

   OSVERSION  error: device not found
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

   SERIAL     error: device not found
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 30 März 2017, 00:19:47
Zitat von: mahowi am 29 März 2017, 23:30:28
Super, funktioniert jetzt einwandfrei.  :)

Fein :-)

ZitatEinen kleinen Schönheitsfehler hätte ich da noch. In OSNAME, OSVERSION und SERIAL stehen Fehlermeldungen von adb statt der entsprechenden Werte:

... Version 0.5.3 wäre dann jetzt verfügbar. Ich hoffe es ist damit gefixt. Ggf. bleiben die Internals leer, aber ein Fehler sollte dort nicht mehr auftauchen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mahowi am 30 März 2017, 09:01:41
Ja, jetzt sind auch die Internals richtig.  :)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 05 Mai 2017, 00:00:50
Gibt es eine Möglichkeit, den play state zu bekommen?
Hier geht das anscheinend: https://github.com/happyleavesaoc/python-firetv/ (https://github.com/happyleavesaoc/python-firetv/)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 05 Mai 2017, 01:06:21
Zitat von: Markus M. am 05 Mai 2017, 00:00:50
Gibt es eine Möglichkeit, den play state zu bekommen?
Hier geht das anscheinend: https://github.com/happyleavesaoc/python-firetv/ (https://github.com/happyleavesaoc/python-firetv/)

Nach überfliegen der Python-Sourcen: Sind ein paar schöne Sachen drin, die ich wahrscheinlich übernehmen kann. Schaue ich mir noch genauer an!
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 05 Mai 2017, 20:13:59
Im Github-Repository steht Version 0.6 bereit (update 98_FireTV).

Es gibt zwei neue Get Befehle:
Ganz zufrieden bin ich mit der Implementierung nicht, die Statusabfrage liefert beim Wechsel zwischen play und pause oft erst nach einigen Sekunden den richtigen Wert. Ein zyklisches Polling ist noch nicht implementiert, ich möchte zuerst noch ein paar Tage testen und ggf. Erfahrungen von euch abwarten.

Daneben habe ich noch die search-Methoden an die neue UI angepasst. Es ist eine Versionsabfrage enthalten, so dass auch alte Versionen noch funktionieren sollten (testen konnte ich das nicht, da bereits alle Geräte upgedatet sind).
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: AmunRe am 09 Mai 2017, 21:50:36
Hi,




ich bin begeistert von deinem Modul..


Endlich kann ich wieder Apps starten.


Ich würde das auch gern anstelle von AMAD ausschließlich nutzen. Leider nutze ich eine Funktion die Screen Messages anzeigt.


geht das über die Shell auch irgendwie?


Dann würde ich umsteigen.



Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 12 Mai 2017, 14:30:51
Das freut mich, danke!

Zitat von: AmunRe am 09 Mai 2017, 21:50:36
Ich würde das auch gern anstelle von AMAD ausschließlich nutzen. Leider nutze ich eine Funktion die Screen Messages anzeigt.
geht das über die Shell auch irgendwie?

Ich habe bislang keine Möglichkeit dafür gefunden
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Macshrek am 12 Mai 2017, 23:10:41
Hallo Zusammen,

ich bekomme bei der Nutzung folgender Funktion:

set FireTV text  TEST

folgendes von FHEM als Feedback:

Unknown argument text choose one of appstart appstop apptoggle connect disconnect screen screenshot search searchonly text upload uploadandview view deletefile install adb key button window statusRequest

Was läuft da falsch ?

Gruß

MacShrek
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 14 Mai 2017, 16:49:31
Zitat von: Macshrek am 12 Mai 2017, 23:10:41
set FireTV text  TEST

folgendes von FHEM als Feedback:

Unknown argument text choose one of appstart appstop apptoggle connect disconnect screen screenshot search searchonly text upload uploadandview view deletefile install adb key button window statusRequest

Was läuft da falsch ?

War ein Fehler im Modul, habe ihn grade (v0.6.1) behoben - danke für den Hinweis!
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 19 Mai 2017, 22:16:06
Zitat von: nesges am 05 Mai 2017, 20:13:59
screen_state liefert einen der Status "off, idle, daydream, standby, playing, paused" zurück und schreibt sie parallel in ein Reading screen_state

Die Erkennung von "paused" funktioniert bei mir nicht, es kommt trotzdem "playing".
Auch noch wenn ich schon Kodi offen habe.


2017.05.19 22:09:39 4: [firetv] FireTV_adb command: /usr/bin/adb -s 192.168.178.45:5555 shell dumpsys window windows
2017.05.19 22:09:39 4: [firetv] FireTV_adb response: WINDOW MANAGER WINDOWS (dumpsys window windows)
  Window #2 Window{39025adb u0 org.xbmc.kodi/org.xbmc.kodi.Main}:
    mAttrs.type=1
    attachedWindow=null    mTouchableRegion=SkRegion((0,0,1920,1080))    mDisplayId=0 mSession=Session{82f008c 22152:u0a10018} mClient=android.os.BinderProxy@260f87ea
    mOwnerUid=10018 mShowToOwnerOnly=true package=org.xbmc.kodi appop=NONE
    mAttrs=WM.LayoutParams{(0,0)(fillxfill) sim=#10 ty=1 fl=#1810500 fmt=-2 preferredDisplayMode=16 vsysui=0x1706 surfaceInsets=Rect(0, 0 - 0, 0) needsMenuKey=2}
    Requested w=1920 h=1080 mLayoutSeq=217
    mBaseLayer=21000 mSubLayer=0 mAnimLayer=21010+0=21010 mLastLayer=21010
    mToken=AppWindowToken{1965c6f4 token=Token{d9520c7 ActivityRecord{2f334206 u0 org.xbmc.kodi/.Main t286}}}
    mRootToken=AppWindowToken{1965c6f4 token=Token{d9520c7 ActivityRecord{2f334206 u0 org.xbmc.kodi/.Main t286}}}
    mAppToken=AppWindowToken{1965c6f4 token=Token{d9520c7 ActivityRecord{2f334206 u0 org.xbmc.kodi/.Main t286}}}
    mViewVisibility=0x0 mHaveFrame=true mObscured=false
    mSeq=0 mSystemUiVisibility=0x1706
    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
    mConfiguration={1.0 ?mcc?mnc en_US ?layoutDir sw540dp w960dp h515dp 320dpi lrg long land television -touch -keyb/v/h dpad/v s.4}
    mHasSurface=true mShownFrame=[0.0,0.0][1920.0,1080.0] isReadyForDisplay()=true
    mFrame=[0,0][1920,1080] last=[0,0][1920,1080]
    mSystemDecorRect=[0,0][1920,1080] last=[0,0][0,0]
    Frames: containing=[0,0][1920,1080] parent=[0,0][1920,1080]
        display=[0,0][1920,1080] overscan=[0,0][1920,1080]
        content=[0,0][1920,1080] visible=[0,0][1920,1080]
        decor=[0,0][1920,1080]
    Cur insets: overscan=[0,0][0,0] content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
    Lst insets: overscan=[0,0][0,0] content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
    WindowStateAnimator{256d8089 org.xbmc.kodi/org.xbmc.kodi.Main}:
      mSurface=Surface(name=org.xbmc.kodi/org.xbmc.kodi.Main)
      mDrawState=HAS_DRAWN mLastHidden=false
      Surface: shown=true layer=21010 alpha=1.0 rect=(0.0,0.0) 1920.0 x 1080.0
  Window #1 Window{15111851 u0 SurfaceView}:
    mAttrs.type=1001
    attachedWindow=Window{39025adb u0 org.xbmc.kodi/org.xbmc.kodi.Main}    mTouchableRegion=SkRegion((0,0,1920,1080))    mDisplayId=0 mSession=Session{82f008c 22152:u0a10018} mClient=android.os.BinderProxy@1e119978
    mOwnerUid=10018 mShowToOwnerOnly=true package=null appop=NONE
    mAttrs=WM.LayoutParams{(0,0)(1920x1080) gr=#800033 ty=1001 fl=#4218 pfl=0x40 fmt=-2 surfaceInsets=Rect(0, 0 - 0, 0)}
    Requested w=1920 h=1080 mLayoutSeq=217
    mAttachedWindow=Window{39025adb u0 org.xbmc.kodi/org.xbmc.kodi.Main} mLayoutAttached=true
    mBaseLayer=21000 mSubLayer=-2 mAnimLayer=21005+0=21005 mLastLayer=21005
    mToken=WindowToken{3fbfa88e android.os.BinderProxy@260f87ea}
    mRootToken=AppWindowToken{1965c6f4 token=Token{d9520c7 ActivityRecord{2f334206 u0 org.xbmc.kodi/.Main t286}}}
    mAppToken=AppWindowToken{1965c6f4 token=Token{d9520c7 ActivityRecord{2f334206 u0 org.xbmc.kodi/.Main t286}}}
    mViewVisibility=0x0 mHaveFrame=true mObscured=false
    mSeq=0 mSystemUiVisibility=0x0
    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
    mConfiguration={1.0 ?mcc?mnc en_US ?layoutDir sw540dp w960dp h515dp 320dpi lrg long land television -touch -keyb/v/h dpad/v s.4}
    mHasSurface=true mShownFrame=[0.0,0.0][1920.0,1080.0] isReadyForDisplay()=true
    mFrame=[0,0][1920,1080] last=[0,0][1920,1080]
    mSystemDecorRect=[0,0][1920,1080] last=[0,0][0,0]
    Frames: containing=[0,0][1920,1080] parent=[0,0][1920,1080]
        display=[-10000,-10000][10000,10000] overscan=[-10000,-10000][10000,10000]
        content=[0,0][1920,1080] visible=[0,0][1920,1080]
        decor=[0,0][1920,1080]
    Cur insets: overscan=[0,0][0,0] content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
    Lst insets: overscan=[0,0][0,0] content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
    WindowStateAnimator{35ca38af SurfaceView}:
      mSurface=Surface(name=SurfaceView)
      mDrawState=HAS_DRAWN mLastHidden=false
      Surface: shown=true layer=21005 alpha=1.0 rect=(0.0,0.0) 1920.0 x 1080.0
  Window #0 Window{28571f8e u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}:
    mAttrs.type=1
    attachedWindow=null    mTouchableRegion=SkRegion((0,0,1920,1080))    mDisplayId=0 mSession=Session{863ab8d 899:u0a32073} mClient=android.os.BinderProxy@b50fe90
    mOwnerUid=32073 mShowToOwnerOnly=true package=com.amazon.tv.launcher appop=NONE
    mAttrs=WM.LayoutParams{(0,0)(fillxfill) sim=#20 ty=1 fl=#83810100 fmt=-2 wanim=0x7f0f0011 vsysui=0x1e06 surfaceInsets=Rect(0, 0 - 0, 0) needsMenuKey=2}
    Requested w=1920 h=1080 mLayoutSeq=191
    mBaseLayer=21000 mSubLayer=0 mAnimLayer=21000+0=21000 mLastLayer=21000
    mToken=AppWindowToken{28e7c89 token=Token{28018b90 ActivityRecord{2b40e653 u0 com.amazon.tv.launcher/.ui.HomeActivity_vNext t280}}}
    mRootToken=AppWindowToken{28e7c89 token=Token{28018b90 ActivityRecord{2b40e653 u0 com.amazon.tv.launcher/.ui.HomeActivity_vNext t280}}}
    mAppToken=AppWindowToken{28e7c89 token=Token{28018b90 ActivityRecord{2b40e653 u0 com.amazon.tv.launcher/.ui.HomeActivity_vNext t280}}}
    mViewVisibility=0x8 mHaveFrame=true mObscured=false
    mSeq=0 mSystemUiVisibility=0x1e06
    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
    mConfiguration={1.0 ?mcc?mnc en_US ?layoutDir sw540dp w960dp h515dp 320dpi lrg long land television -touch -keyb/v/h dpad/v s.4}
    mHasSurface=false mShownFrame=[0.0,0.0][1920.0,1080.0] isReadyForDisplay()=false
    mFrame=[0,0][1920,1080] last=[0,0][1920,1080]
    mSystemDecorRect=[0,0][1920,1080] last=[0,0][0,0]
    Frames: containing=[0,0][1920,1080] parent=[0,0][1920,1080]
        display=[0,0][1920,1080] overscan=[0,0][1920,1080]
        content=[0,0][1920,1080] visible=[0,0][1920,1080]
        decor=[0,0][1920,1080]
    Cur insets: overscan=[0,0][0,0] content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
    Lst insets: overscan=[0,0][0,0] content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
    WindowStateAnimator{1339b626 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}:
      mShownAlpha=1.0 mAlpha=1.0 mLastAlpha=0.0
    mLastFreezeDuration=+3h11m22s392ms

  mCurConfiguration={1.0 ?mcc?mnc en_US ?layoutDir sw540dp w960dp h515dp 320dpi lrg long land television -touch -keyb/v/h dpad/v s.4}
  mHasPermanentDpad=true
  mCurrentFocus=Window{39025adb u0 org.xbmc.kodi/org.xbmc.kodi.Main}
  mFocusedApp=AppWindowToken{1965c6f4 token=Token{d9520c7 ActivityRecord{2f334206 u0 org.xbmc.kodi/.Main t286}}}
  mInTouchMode=false mLayoutSeq=217
  mLastDisplayFreezeDuration=0 due to Window{28571f8e u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}
  mSystemDecorLayer=0 mScreenRect=[0,0][1920,1080]
  mWallpaperTarget=null
  mLastWallpaperX=-1.0 mLastWallpaperY=-1.0
  mSystemBooted=true mDisplayEnabled=true
  mTransactionSequence=458
  mDisplayFrozen=false windows=0 client=false apps=0 waitingForConfig=false
  mRotation=0 mAltOrientation=false
  mLastWindowForcedOrientation=-1 mForcedAppOrientation=6
  mDeferredRotationPauseCount=0
  Animation settings: disabled=false window=1.0 transition=1.0 animator=1.0
  mTraversalScheduled=false
  mStartingIconInTransition=false mSkipAppTransitionAnimation=false
  mLayoutToAnim:
mNextAppTransition=0xffffffff  mAppTransitionState=APP_STATE_IDLE
2017.05.19 22:09:39 4: [firetv] FireTV_adb command: /usr/bin/adb -s 192.168.178.45:5555 shell dumpsys power
2017.05.19 22:09:39 4: [firetv] FireTV_adb response: POWER MANAGER (dumpsys power)

Power Manager State:
  mDirty=0x0
  mWakefulness=Awake
  mWakefulnessChanging=false
  mIsPowered=true
  mPlugType=2
  mBatteryLevel=100
  mBatteryLevelWhenDreamStarted=100
  mDockState=0
  mStayOn=false
  mProximityPositive=false
  mBootCompleted=true
  mSystemReady=true
  mHalAutoSuspendModeEnabled=false
  mHalInteractiveModeEnabled=true
  mWakeLockSummary=0x23
  mUserActivitySummary=0x1
  mRequestWaitForNegativeProximity=false
  mSandmanScheduled=false
  mSandmanSummoned=false
  mLowPowerModeEnabled=false
  mBatteryLevelLow=false
  mLastWakeTime=11482284 (296928 ms ago)
  mLastSleepTime=5103860 (6675352 ms ago)
  mLastUserActivityTime=11723820 (55392 ms ago)
  mLastUserActivityTimeNoChangeLights=11701153 (78059 ms ago)
  mLastInteractivePowerHintTime=11723820 (55392 ms ago)
  mLastScreenBrightnessBoostTime=0 (11779212 ms ago)
  mScreenBrightnessBoostInProgress=false
  mDisplayReady=true
  mHoldingWakeLockSuspendBlocker=true
  mHoldingDisplaySuspendBlocker=true

Settings and Configuration:
  mDecoupleHalAutoSuspendModeFromDisplayConfig=false
  mDecoupleHalInteractiveModeFromDisplayConfig=false
  mWakeUpWhenPluggedOrUnpluggedConfig=true
  mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false
  mTheaterModeEnabled=false
  mSuspendWhenScreenOffDueToProximityConfig=false
  mDreamsSupportedConfig=true
  mDreamsEnabledByDefaultConfig=true
  mDreamsActivatedOnSleepByDefaultConfig=true
  mDreamsActivatedOnDockByDefaultConfig=true
  mDreamsEnabledOnBatteryConfig=false
  mDreamsBatteryLevelMinimumWhenPoweredConfig=-1
  mDreamsBatteryLevelMinimumWhenNotPoweredConfig=15
  mDreamsBatteryLevelDrainCutoffConfig=5
  mDreamsEnabledSetting=true
  mDreamsActivateOnSleepSetting=true
  mDreamsActivateOnDockSetting=true
  mDozeAfterScreenOffConfig=false
  mLowPowerModeSetting=false
  mAutoLowPowerModeConfigured=false
  mAutoLowPowerModeSnoozing=false
  mMinimumScreenOffTimeoutConfig=10000
  mMaximumScreenDimDurationConfig=7000
  mMaximumScreenDimRatioConfig=0.20000005
  mScreenOffTimeoutSetting=300000
  mSleepTimeoutSetting=1200000
  mMaximumScreenOffTimeoutFromDeviceAdmin=2147483647 (enforced=false)
  mStayOnWhilePluggedInSetting=0
  mScreenBrightnessSetting=76
  mScreenAutoBrightnessAdjustmentSetting=0.0
  mScreenBrightnessModeSetting=0
  mScreenBrightnessOverrideFromWindowManager=-1
  mUserActivityTimeoutOverrideFromWindowManager=-1
  mTemporaryScreenBrightnessSettingOverride=-1
  mTemporaryScreenAutoBrightnessAdjustmentSettingOverride=NaN
  mDozeScreenStateOverrideFromDreamManager=0
  mDozeScreenBrightnessOverrideFromDreamManager=-1
  mScreenBrightnessSettingMinimum=10
  mScreenBrightnessSettingMaximum=255
  mScreenBrightnessSettingDefault=171

Sleep timeout: 1200000 ms
Screen off timeout: 300000 ms
Screen dim duration: 7000 ms

Wake Locks: size=4
  SCREEN_BRIGHT_WAKE_LOCK        'org.xbmc.kodi' (uid=10018, pid=22152, ws=null)
  PARTIAL_WAKE_LOCK              'AudioDirectOut' (uid=1013, pid=0, ws=WorkSource{10018})
  PARTIAL_WAKE_LOCK              'wake:com.amazon.kso.blackbird/.service.BlackbirdServiceImpl' (uid=32058, pid=1229, ws=null)
  PARTIAL_WAKE_LOCK              'wake:com.amazon.kso.blackbird/.service.BlackbirdServiceImpl' (uid=32058, pid=1229, ws=null)

Suspend Blockers: size=4
  PowerManagerService.WakeLocks: ref count=1
  PowerManagerService.Display: ref count=1
  PowerManagerService.Broadcasts: ref count=0
  PowerManagerService.WirelessChargerDetector: ref count=0

Display Power: state=ON

Wireless Charger Detector State:
  mGravitySensor=null
  mPoweredWirelessly=false
  mAtRest=false
  mRestX=0.0, mRestY=0.0, mRestZ=0.0
  mDetectionInProgress=false
  mDetectionStartTime=0 (never)
  mMustUpdateRestPosition=false
  mTotalSamples=0
  mMovingSamples=0
  mFirstSampleX=0.0, mFirstSampleY=0.0, mFirstSampleZ=0.0
  mLastSampleX=0.0, mLastSampleY=0.0, mLastSampleZ=0.0
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 06 Juni 2017, 17:00:51
Zitat von: Markus M. am 19 Mai 2017, 22:16:06
Die Erkennung von "paused" funktioniert bei mir nicht, es kommt trotzdem "playing".
Auch noch wenn ich schon Kodi offen habe.

Ich habe bei mir eine relative "Trägheit" im Übergang von playing nach paused festgestellt. D.h. es dauert ggf. einige Sekunden bis der Status sich ändert. Ist das bei dir ggf. auch der Fall? Eine bessere Lösung für die Erkennung habe ich derzeit leider nicht.

PS: Sorry für die späte Antwort, war im Urlaub
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 07 Juni 2017, 12:18:49
Wenn ich die Seite neu lade passt es tatsächlich.
Funktioniert aber im UI nicht automatisch, weil anscheinend kein Event generiert wird. Die andere beiden Readings werden aktualisiert.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: ChristianR am 08 Juni 2017, 13:37:02
Zitat von: nesges am 05 Mai 2017, 20:13:59
Im Github-Repository steht Version 0.6 bereit (update 98_FireTV).

Ganz zufrieden bin ich mit der Implementierung nicht, die Statusabfrage liefert beim Wechsel zwischen play und pause oft erst nach einigen Sekunden den richtigen Wert. Ein zyklisches Polling ist noch nicht implementiert, ich möchte zuerst noch ein paar Tage testen und ggf. Erfahrungen von euch abwarten.

Gibt es dazu schon etwas Neues (bzgl. Polling)?
Möchte gerne auf das Reading "screen_state" reagieren, aber auch bei mir aktualisiert es sich erst nach einem neuen laden der Seite.

Oder habe ich etwas übersehen?

Gruß Christian
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Ascos am 09 Juni 2017, 21:11:22
Hi,

ich habe das Modul über Update all installiert.
Hat sich auch mit dem Fire TV verbunden, auch wenn ich bestätigen kann, das es teilweise eine ganze Weile dauert, bis sich der Screen-state aktualisiert, bzw. ein Neuladen der Seite nötig ist.
Leider funktioniert die Steuerung über die KEY-Befehle nicht.
Ich bekomme dann immer folgende Fehlermeldung:
Unknown argument key choose one of appstart appstop apptoggle connect disconnect screen screenshot search searchonly text upload uploadandview view deletefile install adb key button window statusRequest

Komischerweise funktioniert die Steuerung aber über die Weblink-Fernbedienung. Leider hilft mir das nur bedingt weiter, da ich den FireTV gerne +über FHEM ein- und wieder ausschalten würde.
Kann mir jemand helfen?

VIele Grüße
Tino
Titel: screen-state aktualisieren
Beitrag von: Clyde am 03 Juli 2017, 11:22:03
Der Status des Reading screen-state wird bei mir nicht automatisch aktualisiert. Wenn ich die Seite neu lade bzw. per get einlese aktualisiert sich der Wert auf den gegenwärtigen Zustand.

Da ich den Fernseher in Abhängigkeit dieses Readings an/aus schalten möchte, wäre ein automatisches Aktualisieren besser. Könnte man das so ändern?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 17 Juli 2017, 10:03:11
Habe grade Version 0.6.2 veröffentlicht. Es gibt jetzt ein Attribut "interval". Wird es auf einen numerischen Wert größer 0 gesetzt, wird ein zyklischer Refresh von screen_state im Abstand von interval Sekunden gestartet.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 17 Juli 2017, 10:14:43
Zitat von: nesges am 17 Juli 2017, 10:03:11Es gibt jetzt ein Attribut "interval". Wird es auf einen numerischen Wert größer 0 gesetzt, wird ein zyklischer Refresh von screen_state im Abstand von interval Sekunden gestartet.

Der Refresh hatte doch eigentlich schon gepasst, nur das Event abzufeuern hat nicht funktioniert.
Verursacht das jetzt zusätzliche Abfragen?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 17 Juli 2017, 10:34:39
Der Refresh (genauer: FireTV_screen_state) wurde in den Set- und Get-Methoden aufgerufen. Dadurch wird zB beim Fhemweb-Refresh und beim senden von Befehlen gepollt. Da der Status im Fire-TV aber verzögert gesetzt wird, steht er zu diesen Zeitpunkten nicht zuverlässig zur Verfügung. Deshalb muss man - sofern man den Wert zuverlässig nutzen möchte - auf klassisches zyklisches Polling zurück fallen. Das ist der neu implementierte Part.

D.h.: ja, mit Setzen von interval werden zusätzliche Abfragen (genauer:  FireTV_FetchStatus->FireTV_screen_state) ausgelöst
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 17 Juli 2017, 11:32:11
Aah ok!
Das hatte ich mir schon selber gebaut, hab aber leider vergessen es hier zu posten.

Ein paar Punkte kannst du vielleicht übernehmen:
Schau dir mal an wie ich die ADB Abfragen beim Screen State zusammengefasst habe, ich glaube dass dein Code aktuell zu viele adb Calls startet, weil du teilweise mehrmalige Vergleiche auf Funktionsergebnisse machst ohne das Ergebnis zwischenzuspeichern.
Und bitte nicht direkt in $hash->{STATE} schreiben, das ist uncool ;)

Sorry für den etwas erschwerten Diff, hab alles mit PRESENCE rausgenommen da ich das nicht nutze.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 17 Juli 2017, 13:38:32
Zitat von: Markus M. am 17 Juli 2017, 11:32:11
Ein paar Punkte kannst du vielleicht übernehmen:
Schau dir mal an wie ich die ADB Abfragen beim Screen State zusammengefasst habe, ich glaube dass dein Code aktuell zu viele adb Calls startet, weil du teilweise mehrmalige Vergleiche auf Funktionsergebnisse machst ohne das Ergebnis zwischenzuspeichern.

Stimmt, die FireTV_dumpsys_has() kann man da noch optimieren. Schau ich mir an, Danke!

ZitatUnd bitte nicht direkt in $hash->{STATE} schreiben, das ist uncool ;)

Wie ist's richtig?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 17 Juli 2017, 14:13:52
Zitat von: nesges am 17 Juli 2017, 13:38:32
Wie ist's richtig?

Einfach nur ins state Reading.
Sonst überschreibst du was auch immer der User in stateFormat festgelegt hat.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 16 August 2017, 21:36:18
Hi nesges!

Vielen, vielen Dank für das Modul!!

Habe ja schon länger einen FireTV-Stick und schon fleißig mitgelesen...
...aber noch keine Zeit es zu installieren...

Bis jetzt! :)

Läuft (bislang) super!
Aktuell noch auf dem Testsystem (wie alle "neuen" Module) aber so wie es aussieht wohl nicht mehr lange ;)

Jetzt mal testen... :)

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: enno am 25 August 2017, 11:10:01
Moin nesges

vielen Dank für das Modul. Habe ich gestern auf dem Testsystem installiert. Klappt soweit wie oben beschrieben.

Ich suche jetzt noch eine Möglichkeit wie ich den Status currentapp als Reading bekomme. Versuche mit userreadings führen zum Stillstand von FHEM. Vermutlich muss ich das anders lösen. Habt ihr einen TIP?

Hier mein Versuch der es nicht tut:

attr FIRETV userReadings FIRETV currentapp {fhem("get FIRETV currentapp")}

Gruss
  Enno
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 25 August 2017, 12:39:09
Hi Enno,

quick and dirty:

in der Sub, welche den "screen_state" setzt (und zyklisch gerufen wird), folgendes ergänzen:


sub FireTV_screen_state($) {
    my $hash = shift;

...

    my $current_app = FireTV_currentFocus($hash);
    readingsSingleUpdate($hash, "current_app", $current_app, 1);

    readingsSingleUpdate($hash, "screen_state", $screen_state, 1);

    return $screen_state;
}



EDIT: genauso quick nicht ganz so dirty (statt den beiden readingsSingleUpdate):


readingsBeginUpdate($hash);
readingsBulkUpdate($hash,"current_app",$current_app);
readingsBulkUpdate($hash,"screen_state",$screen_state);
readingsEndUpdate($hash, 1);


EDIT 2: Noch mal ganz klar der Hinweis: quick&dirty. Update erfolgt hier mit dem Updateintervall von screen_state. Noch etwas "sauberer" wäre das Setzen des Readings "current_app" in der Sub FireTV_currentFocus und diese Sub dann zusätzlich zur Sub FireTV_screen_state in der Sub FireTV_FetchStatus aufzurufen... Die sauberste Lösung käme nat. von nesges... Evtl. wären/sind ja noch andere Readings interessant...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Laire am 27 August 2017, 18:52:53
Ohne jetzt alle Beiträge detailliert durchgearbeitet zu haben, kurze Frage:

Kann ich mit Hilfe des Moduls erkennen, welche App gerade läuft bzw. gestartet wird und wenn ja wie schnell erkennt FHEM dieses?

Hintergrund: Ich habe Plex auf einem separaten Server laufen. und würde diesen gerne über FHEM mithilfe eines Notfify oder DOIF per WOL starten, wenn auf dem FireTV die Plex App gestartet wird. Mein System, auf dem Plex läuft, ist ziemlich flink beim hochfahren und starten, aber wäre störend wenn es dann ne halbe Minute dauert bis überhaupt FHEM reagiert und den Server anlaufen lässt.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 27 August 2017, 19:01:03
Zitat von: Laire am 27 August 2017, 18:52:53
Ohne jetzt alle Beiträge detailliert durchgearbeitet zu haben, kurze Frage:

Kann ich mit Hilfe des Moduls erkennen, welche App gerade läuft bzw. gestartet wird und wenn ja wie schnell erkennt FHEM dieses?

Hintergrund: Ich habe Plex auf einem separaten Server laufen. und würde diesen gerne über FHEM mithilfe eines Notfify oder DOIF per WOL starten, wenn auf dem FireTV die Plex App gestartet wird. Mein System, auf dem Plex läuft, ist ziemlich flink beim hochfahren und starten, aber wäre störend wenn es dann ne halbe Minute dauert bis überhaupt FHEM reagiert und den Server anlaufen lässt.

Brauchst nicht alle lesen, nur die paar letzten ;)

Da es aktuell kein Reading gibt wo das drin steht (Frage von Enno), gibt es auch keinen Event ergo geht kein Notify...
(mal abgesehen von meiner quick&dirty Ergänzung)

Da das Modul (wie ich es verstehe) pollt, geht die Aktualisierung so schnell wie gepollt wird, lässt sich über das Attribut (so wie ich gesehen habe) intervall beeinflussen bzw. setzen...

Aktuell kann die laufende App nur mit get abgefragt werden...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: enno am 27 August 2017, 22:07:14
@MadMax-FHEM: Danke für den Vorschlag. Bevor ich das versuche, wollte ich das erstmal mit einem "DOIF" versuchen. Habe allerdings noch nicht herausgefunden, ob ein reading mit get in DOIF gesetzt werden kann.

Ich werden mir erstmal wieder die https://fhem.de/commandref_DE.html#DOIF zu Gemüte führen.

Gruss
  Enno
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 27 August 2017, 22:17:44
Hi Enno,

klar, kein Problem.

Allerdings kommt die Ausgabe von get FireTV currentapp in einem Popup...
Daher hat es vermutlich bei dir in dem/den Versuch/en auch blockiert...

Wenn es klappt poste die Lösung...

Viel Erfolg, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: AmunRe am 06 September 2017, 20:20:54
Hi Zusammen,




Ich habe das modul schon lange am laufen, aber seit jetzt so zwei tagen geht es nicht mehr.


Im Log krieg ich nur folgenden Eintrag:


Zitat
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555
No such device 192.168.0.106:5555


Dabei hab ich grad nachgesehen die IP stimmt noch. Und adb ist am Fire auch aktiviert.


ZitatInternals:
   ADB        /usr/bin/adb
   ADBVERSION Android Debug Bridge version 1.0.32


   ADDRESS    192.168.0.106
   CFGFN
   DEF        192.168.0.106
   IP         192.168.0.106
   MODE       lan-ping
   NAME       FireTV_Wohnzimmer
   NOTIFYDEV  global,FireTV_Wohnzimmer
   NR         275
   NTFY_ORDER 50-FireTV_Wohnzimmer
   PORT       5555
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       FireTV
   VERSION    0.6.1
   adbconnected 1
   READINGS:
     2017-09-06 20:19:44   presence        present
     2017-09-06 20:19:51   screen_state    off
     2017-09-06 20:19:44   state           present
   helper:
     CURRENT_STATE present
     PRESENT_COUNT 0
     FireTV_Wohnzimmer:
       PRESENCE_loaded 1
       lastadbcmd /usr/bin/adb -s 192.168.0.106:5555 shell dumpsys power
       lastadbresponse error: device not found
       packages
Attributes:
   DbLogExclude .*
   room       FireTV,Wohnzimmer
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 06 September 2017, 21:44:47
Ist noch was anderes per adb drauf?

Hatte die gleiche Meldung als ich das Modul auf meinem Testsystem laufen hatte (aber disabled) und parallel auf meinem Hauptsystem eingerichtet habe...

Zunächst dachte ich die adb Version auf dem Hauptsystem (hatte sie auf meinem Hauptsystem per apt-get installiert auf dem Testsystem das binary verwendet) macht Probleme...
Ging aber weg als ich das Testsystem gebootet habe und dann nur noch das Hauptsystem drauf war...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: zobi am 15 Oktober 2017, 18:28:05
Hi,
vielen Dank dafür.

Ich habe das Modul hinzugefügt
update all https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt


und adb
sudo apt-get install android-tools-adb

Ich verstehe allerdings noch nicht ganz wie genau ich den FireTV definiere...

ich habe es damit versucht:
define WZ_Fire FireTV 192.168.2.104

Der Rest hilft mir irgendwie nicht weiter...
define <name> FireTV <HOST[:PORT]> [sudo] [<ADB_PATH>] [<PRESENCE_TIMEOUT_ABSENT>] [<PRESENCE_TIMEOUT_PRESENT>] [<PRESENCE_MODE>] [<PRESENCE_ADDRESS>]

Kann mir jemand mal ein Beispiel schreiben?

ADB
/usr/bin/adb
ADBVERSION
Android Debug Bridge version 1.0.36 Revision 1:7.0.0+r33-1
ADDRESS
192.168.2.104
CFGFN
DEF
192.168.2.104
IP
192.168.2.104
MODE
lan-ping
NAME
WZ_Fire
NOTIFYDEV
global,WZ_Fire
NR
190
NTFY_ORDER
50-WZ_Fire
PORT
5555
STATE
present
TIMEOUT_NORMAL
30
TIMEOUT_PRESENT
30
TRIGGERTIME
0
TRIGGERTIME_FMT
TYPE
FireTV
VERSION
0.6.1
adbconnected
0


Das hier ist dann das Ergebnis. Wenn ich ein set button down schicke, erhalte ich couldnt connect to FireTV
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 25 Oktober 2017, 11:58:30
Zitat von: zobi am 15 Oktober 2017, 18:28:05
Das hier ist dann das Ergebnis. Wenn ich ein set button down schicke, erhalte ich couldnt connect to FireTV

Dein Define ist schon in Ordnung. Hast du adb-Debugging am Fire-Stick aktiviert (-> https://github.com/nesges/Fhem-Modules/wiki/98_FireTV.pm)?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 25 Oktober 2017, 15:40:37
Wichtig ist auch noch dass ADB nicht schon durch was anderes blockiert ist.
Firestarter war glaube ich ein Beispiel dafür.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: zobi am 27 Oktober 2017, 21:11:10
Danke, ich musste den FireStick zurücksetzen und dann hat es mit dem adb funktioniert. Ich hatte damit vor Jahren ein rumexperimentiert... da wahr wohl was geblockt.



Viele Grüße zobi
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Phiolin am 29 November 2017, 12:37:52
Habe das heute auch mal installiert und auf Anhieb zum Laufen bekommen.
Was mir aufgefallen ist: Bei der Ausführung der adb Befehle (z.B. set appstart/appstop) friert FHEM immer kurz ein, Perfmon bestätigt das auch im Log:

2017.11.29 12:31:58 4: [OG.sz.FireTV] FireTV_adb command: /usr/bin/adb -s 10.0.0.50:5555 shell input keyevent KEYCODE_WAKEUP
2017.11.29 12:31:59 4: [OG.sz.FireTV] FireTV_adb command: /usr/bin/adb -s 10.0.0.50:5555 shell am force-stop com.plexapp.android
2017.11.29 12:32:00 1: Perfmon: possible freeze starting at 12:31:58, delay is 2.621
...
2017.11.29 12:36:02 4: [OG.sz.FireTV] FireTV_adb command: /usr/bin/adb -s 10.0.0.50:5555 shell input keyevent KEYCODE_WAKEUP
2017.11.29 12:36:03 4: [OG.sz.FireTV] FireTV_adb command: /usr/bin/adb -s 10.0.0.50:5555 shell am force-stop com.plexapp.android
2017.11.29 12:36:04 1: Perfmon: possible freeze starting at 12:36:03, delay is 1.743
...
2017.11.29 12:36:56 4: [OG.sz.FireTV] FireTV_adb command: /usr/bin/adb -s 10.0.0.50:5555 shell input keyevent KEYCODE_WAKEUP
2017.11.29 12:36:57 4: [OG.sz.FireTV] FireTV_adb command: /usr/bin/adb -s 10.0.0.50:5555 shell input keyevent KEYCODE_POWER
2017.11.29 12:36:57 1: Perfmon: possible freeze starting at 12:36:56, delay is 1.877


Für die Performance des Gesamtsystems wäre es vielleicht schön, wenn beim set die adb Calls im Hintergrund non-blocking, z.B. in einem separaten Thread, laufen würden?
Das ist wahrscheinlich etwas Umbau-Arbeit, aber für die Stabilität des FHEM Gesamtsystems bestimmt eher positiv.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: lammy am 31 Dezember 2017, 17:48:28
Hi,

ich habe leider ein Problem mit der "playpause" Taste, diese ist die einzige die nicht funktioniert. Gibt es dafür ggf. eine Lösung?

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: onkeloki am 28 Januar 2018, 14:29:15
same here playpause verhällt sich so wie enter

set <name> button playpause
tut das falsche..
ich habe es schon git reportet

mein device: firetv 4k
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: onkeloki am 28 Januar 2018, 18:49:07

2018.01.28 18:46:37 1: [playpause] 
2018.01.28 18:46:37 1: [HASH(0x43b4698)]
2018.01.28 18:46:37 1: KEY [KEYCODE_DPAD_CENTER]
2018.01.28 18:46:38 1: [1] 


2018.01.28 18:46:52 1: [enter]
2018.01.28 18:46:52 1: [HASH(0x43b4698)] 
2018.01.28 18:46:52 1: KEY [KEYCODE_DPAD_CENTER]



ich habe von .pm files nicht wirklich viel Ahnung aber kann gernerell programmieren
ich habe mal eine log eingebaut. in der tat wird bei enter und bei playpause der selbe key code "KEYCODE_DPAD_CENTER"  verwendet.. weshalb das so ist habe ich noch nicht verstanden
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: onkeloki am 28 Januar 2018, 19:04:54
fehler gefunden

https://github.com/nesges/Fhem-Modules/blob/master/FHEM/98_FireTV.pm#L327

die zeile darüber für "prev" sieht auch nicht richtig aus
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: raimundl am 31 Januar 2018, 09:27:41
Hallo!

Kann man mit dem Modul auch den Fernseher ausschalten (POWEROFF)?

Will nur ausschalten, habe dazu hier nichts gefunden, verwende derzeit 70_STV - funkt aber nicht immer.
Oder kennt jemand noch eine andere Lösung (Samsung C Reihe mit FireTVStick)?

MfG
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: onkeloki am 02 Februar 2018, 10:47:34
Zitat von: raimundl am 31 Januar 2018, 09:27:41
Hallo!

Kann man mit dem Modul auch den Fernseher ausschalten (POWEROFF)?

Will nur ausschalten, habe dazu hier nichts gefunden, verwende derzeit 70_STV - funkt aber nicht immer.
Oder kennt jemand noch eine andere Lösung (Samsung C Reihe mit FireTVStick)?

MfG

dieses modul steuert einen amazon  FireTV
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: raimundl am 02 Februar 2018, 12:57:24
Zitat von: onkeloki am 02 Februar 2018, 10:47:34
dieses modul steuert einen amazon  FireTV

Richtig, jedoch kann ich z.B. mit der AndroidApp "Notification for FireTV" oder auch der FireTV Ferndbedienung den Fernseher einschalten. Daher sollte es m.E. vielleicht auch möglich sein den Fernseher so auszuschalten.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: onkeloki am 04 Februar 2018, 15:27:42
Zitat von: raimundl am 02 Februar 2018, 12:57:24
Richtig, jedoch kann ich z.B. mit der AndroidApp "Notification for FireTV" oder auch der FireTV Ferndbedienung den Fernseher einschalten. Daher sollte es m.E. vielleicht auch möglich sein den Fernseher so auszuschalten.

ich glaube das ist über CRC gelöst.. also ein feature von deinem TV.. der Fire TV hat ja keinen "power" Knopf. Dein TV geht halt nur an wenn "signal" kommt..

zu deiner Frage: man kann halt mit dem Modul Tasten der Fernbedienung triggern und Apps wechseln.
ich gehe mal davon aus dass dann "alles so läuft als wenn man die original Fernbeidenung oder eine app nutzt".
es sich also genau so wie momentan verhällt ;)

man kann bei der Original Fernbedienung lange "Optionen" drücken und "Ruhemodus" wählen.. geht der TV dann mit aus bei dir?

ich weiß nicht ob der firetv das "tv aus" signal sendet..
vielleicht gibt es sogar eine firetv app die CRC-off heißt oder so..


Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: raimundl am 04 Februar 2018, 15:56:02
Zitat von: onkeloki am 04 Februar 2018, 15:27:42
man kann bei der Original Fernbedienung lange "Optionen" drücken und "Ruhemodus" wählen.. geht der TV dann mit aus bei dir?

ich weiß nicht ob der firetv das "tv aus" signal sendet..
vielleicht gibt es sogar eine firetv app die CRC-off heißt oder so..

Eben nicht, sondern in Ruhestellung

LG

PS.: Poweroff mit Modul STV funktioniert nun. 10 sec. sleep bei fhem start eingebaut.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Eistee am 30 März 2018, 17:22:35
Hi,

hat jemand eine Idee was da los ist? Das modul ist aktuell von github das hab ich auch verglichen.

BEGIN failed--compilation aborted at ./FHEM/98_FireTV.pm line 26.
2018.03.30 17:12:33 0: Unimplemented: POSIX::tmpnam() at ./FHEM/98_FireTV.pm line 26.

BEGIN failed--compilation aborted at ./FHEM/98_FireTV.pm line 26.
Unimplemented: POSIX::tmpnam() at ./FHEM/98_FireTV.pm line 26.
2018.03.30 17:12:33 1: reload: Error:Modul 98_FireTV deactivated:
2018.03.30 17:12:33 1: PERL WARNING: Unimplemented: POSIX::tmpnam(): use File::Temp instead at /usr/local/lib/perl5/5.26.1/armv7l-linux/POSIX.pm line 185.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: patator am 16 April 2018, 20:17:58
Hallo,

habt Ihr mir noch nen Tip wenn ich folgendes erhalte?

error: error: 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.

Hier mein Internal:
Internals:
   ADB        sudo /usr/bin/adb
   ADBVERSION Android Debug Bridge version 1.0.36
Revision 1:7.0.0+r33-1

   ADDRESS    10.10.20.145
   CFGFN     
   DEF        10.10.20.145 sudo /usr/bin/adb
   IP         10.10.20.145
   MODE       lan-ping
   NAME       FIRETV
   NOTIFYDEV  global,FIRETV
   NR         45185
   NTFY_ORDER 50-FIRETV
   PORT       5555
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       FireTV
   VERSION    0.6.1
   adbconnected 1
   READINGS:
     2018-04-16 20:16:07   presence        present
     2018-04-16 20:15:28   screen_state    off
     2018-04-16 20:16:07   state           present
   helper:
     CURRENT_STATE present
     FIRETV:
       PRESENCE_loaded 1
       lastadbcmd sudo /usr/bin/adb -s 10.10.20.145:5555 shell dumpsys window windows
       lastadbresponse error: 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.
       packages   ,,,
     RUNNING_PID:
       abortFn    PRESENCE_ProcessAbortedScan
       arg        FIRETV|10.10.20.145|0|4
       bc_pid     44420
       finishFn   PRESENCE_ProcessLocalScan
       fn         PRESENCE_DoLocalPingScan
       pid        21449
       telnet     telnetForBlockingFn_1523883379_127.0.0.1_48866
       timeout    60
       abortArg:
Attributes:


Ich muss dazu sagen, die Bestätigung am FIRETV erhalte ich nicht obwohl ADB Debug an ist.
Schon mehrmals aus an auch neu gestartet...


Danke schon mal im Voraus.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: patator am 17 April 2018, 09:57:16
komisch heute morgen auf den firetv gesehen, und da war die bestätigung.
ist gelöst, danke
Zitat von: patator am 16 April 2018, 20:17:58
Hallo,

habt Ihr mir noch nen Tip wenn ich folgendes erhalte?

error: error: 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.

Hier mein Internal:
Internals:
   ADB        sudo /usr/bin/adb
   ADBVERSION Android Debug Bridge version 1.0.36
Revision 1:7.0.0+r33-1

   ADDRESS    10.10.20.145
   CFGFN     
   DEF        10.10.20.145 sudo /usr/bin/adb
   IP         10.10.20.145
   MODE       lan-ping
   NAME       FIRETV
   NOTIFYDEV  global,FIRETV
   NR         45185
   NTFY_ORDER 50-FIRETV
   PORT       5555
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       FireTV
   VERSION    0.6.1
   adbconnected 1
   READINGS:
     2018-04-16 20:16:07   presence        present
     2018-04-16 20:15:28   screen_state    off
     2018-04-16 20:16:07   state           present
   helper:
     CURRENT_STATE present
     FIRETV:
       PRESENCE_loaded 1
       lastadbcmd sudo /usr/bin/adb -s 10.10.20.145:5555 shell dumpsys window windows
       lastadbresponse error: 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.
       packages   ,,,
     RUNNING_PID:
       abortFn    PRESENCE_ProcessAbortedScan
       arg        FIRETV|10.10.20.145|0|4
       bc_pid     44420
       finishFn   PRESENCE_ProcessLocalScan
       fn         PRESENCE_DoLocalPingScan
       pid        21449
       telnet     telnetForBlockingFn_1523883379_127.0.0.1_48866
       timeout    60
       abortArg:
Attributes:


Ich muss dazu sagen, die Bestätigung am FIRETV erhalte ich nicht obwohl ADB Debug an ist.
Schon mehrmals aus an auch neu gestartet...


Danke schon mal im Voraus.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: gbomacfly am 06 Mai 2018, 22:58:47
Könnte man bei der Weblink-Remote den Buttons noch folgendes Attribut mitgeben?
style="cursor: pointer;"

Würde mich freuen, wäre dann irgendwie intuitiver :)
Hab mir remoteHTML angepasst, funktioniert prima:
{         my $device = 'FireTV';         my $cmd = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd.$device=set $device ";              return "<tr>                     <td><a title=\"Sleep\" style=\"cursor: pointer;\" onClick=\"$cmd screen sleep')\">".FW_makeImage("general_aus\@red", "sleep", "rc-button")."</a></td>                     <td><a title=\"Screenshot\" style=\"cursor: pointer;\" onClick=\"$cmd screenshot')\">".FW_makeImage("im_eye2", "sleep", "rc-button")."</a></td>                     <td><a title=\"Wakeup\" style=\"cursor: pointer;\" onClick=\"$cmd screen wakeup')\">".FW_makeImage("general_an", "wakeup", "rc-button")."</a></td>                 </tr>                 <tr>                     <td align=\"center\" colspan='3'><a title=\"Netflix\" style=\"cursor: pointer;\" onClick=\"$cmd appstart com.netflix.ninja')\">".FW_makeImage("Netflix", "Netflix", "rc-button")."</a></td>                 </tr>                 <tr>                  <td align=\"center\" colspan='3'><a title=\"Spotify\" style=\"cursor: pointer;\" onClick=\"$cmd appstart com.spotify.tv.android')\">".FW_makeImage("Spotify", "Spotify", "rc-button")."</a></td>                 </tr>";     }

Allerdings funktioniert es nicht, wenn ich folgendes Attribut angebe:
attr FireTV widgetOverride remotehtml:textField-long und dann dies in remotehtml angebe:{
my $device = 'FireTV';
my $cmd = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd.$device=set $device ";
return "<tr>
<td><a title=\"Sleep\" style=\"cursor: pointer;\" onClick=\"$cmd screen sleep')\">".FW_makeImage("general_aus\@red", "sleep", "rc-button")."</a></td>
<td><a title=\"Screenshot\" style=\"cursor: pointer;\" onClick=\"$cmd screenshot')\">".FW_makeImage("im_eye2", "sleep", "rc-button")."</a></td>
<td><a title=\"Wakeup\" style=\"cursor: pointer;\" onClick=\"$cmd screen wakeup')\">".FW_makeImage("general_an", "wakeup", "rc-button")."</a></td>
</tr>
<tr>
<td align=\"center\" colspan='3'><a title=\"Netflix\" style=\"cursor: pointer;\" onClick=\"$cmd appstart com.netflix.ninja')\">".FW_makeImage("Netflix", "Netflix", "rc-button")."</a></td>
</tr>
<tr>
<td align=\"center\" colspan='3'><a title=\"Spotify\" style=\"cursor: pointer;\" onClick=\"$cmd appstart com.spotify.tv.android')\">".FW_makeImage("Spotify", "Spotify", "rc-button")."</a></td>
</tr>";
}

Ist exakt dasselbe wie oben, nur eben mit Zeilenumbrüchen, damit es besser lesbar ist.
Aber dann sieht meine FireTV-Remote aus wie im Anhang zu sehen.

Liegt der Fehler hier bei mir oder am Modul?

Besten Dank schonmal :)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: laserbacke am 08 Juli 2018, 19:43:58
Hallo zusammen,
ich habe seit ein paar Tagen folgende Meldungen im Logfile, welche plötzlich aufgetreten sind. Einen Fire Stick habe ich ca. eine Woche in Fhem eingebunden und seit heute einen Zweiten. Die Meldungen sind aber schon mit nur einem Stick aufgetreten, aber nicht von Anfang an.


2018.07.08 19:28:33 3: eval: {PRESENCE_ProcessLocalScan('WZ_FireTV|0|present')}
2018.07.08 19:28:33 1: PERL WARNING: Use of uninitialized value $seconds in concatenation (.) or string at ./FHEM/73_PRESENCE.pm line 1153, <GEN13> line 99.
2018.07.08 19:28:33 3: eval: {PRESENCE_ProcessLocalScan('MZ_FireTV|0|present')}
2018.07.08 19:28:33 1: PERL WARNING: Use of uninitialized value $seconds in addition (+) at ./FHEM/73_PRESENCE.pm line 1156, <GEN13> line 99.
2018.07.08 19:28:33 3: eval: {PRESENCE_ProcessLocalScan('MZ_FireTV|0|present')}
2018.07.08 19:28:39 1: PERL WARNING: Use of uninitialized value $seconds in concatenation (.) or string at ./FHEM/73_PRESENCE.pm line 1153, <GEN13> line 103.
2018.07.08 19:28:39 3: eval: {PRESENCE_ProcessLocalScan('WZ_FireTV|0|present')}
2018.07.08 19:28:39 1: PERL WARNING: Use of uninitialized value $seconds in addition (+) at ./FHEM/73_PRESENCE.pm line 1156, <GEN13> line 103.
2018.07.08 19:28:39 3: eval: {PRESENCE_ProcessLocalScan('WZ_FireTV|0|present')}
2018.07.08 19:29:01 1: PERL WARNING: Use of uninitialized value $seconds in concatenation (.) or string at ./FHEM/73_PRESENCE.pm line 1153, <GEN13> line 109.
2018.07.08 19:29:01 3: eval: {PRESENCE_ProcessLocalScan('WZ_FireTV|0|present')}
2018.07.08 19:29:01 1: PERL WARNING: Use of uninitialized value $seconds in addition (+) at ./FHEM/73_PRESENCE.pm line 1156, <GEN13> line 109.


Danke für das tolle Modul, funktioniert bis auf die Einträge sehr gut.
Hat jemand eine Erklärung dafür?
Danke...
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus Bloch am 12 Juli 2018, 21:10:41
Dieses Problem haben bereits mehrere User mir berichtet. Den Grund dafür habe ich in einem anderen Thread bereits erläutert (https://forum.fhem.de/index.php/topic,83805.msg817958.html#msg817958). Hier ist eine Änderung in 98_FireTV.pm notwendig.

Viele Grüße

Markus
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus Bloch am 12 Juli 2018, 21:28:34
Ich habe dazu mal einen Pull-Request erzeugt: https://github.com/nesges/Fhem-Modules/pull/6

Gruß
Markus
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: laserbacke am 12 Juli 2018, 21:35:39
Hallo Markus, vielen Dank dafür.

Gruß Elmar
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: laserbacke am 13 Juli 2018, 18:59:05
Nach Änderung der 2 Zeilen, seit gestern keine Einträge bez. Presence mehr im Logfile  ;)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tfriedrich85 am 17 Juli 2018, 11:08:07
Hallo,

ich würde gerne das FireTV Modul nutzen, bekomme aber bei der Eingabe von:

define TV FireTV 192.168.178.24 /usr/local/bin/adb

Die Meldung: Unknown module FireTV

Ich hab die Anleitung natürlich befolgt und im Ordner Fhem liegt auch die Datei 98_FireTv.pm.

Hat jemand eine Idee woran das liegen könnte?

Vielen Dank!
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 24 August 2018, 11:38:49
Hi,

ich vermute mal deine Rechtevergabe ist falsch. Oder aber du hast nicht die korrekte Datei dort liegen.


Ich habe auch eine Frage, kann bitte der Ersteller die Datei (https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt)
anpassen? Datum und Dateigröße ist nicht mehr korrekt und deswegen geht UPD auch nicht.

Danke :)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 24 August 2018, 13:00:35
Reload 98_FireTv.pm oder fhem shutdown restart gemacht?

Ansonsten wie geschrieben: Rechte geprüft...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 24 August 2018, 19:58:46
Hey zusammen,

ich bekomme meinen Stick einfach nicht verbunden. ADB ist mir bekannt (flashen von Andoiden usw....). Aber ich bekomme nur einen Ping und keinen Status oder Pakete oder sonst was. Ich kenne es normal bei allen ADB Geräten das ich auf "erlauben" klicken muss. Diese Anfrage erscheint erst garnicht. Habe das Teil nun X mal neu gestartet und der ist frisch aus der Verpackung. USB Debug + Fremde Quellen sind aktiv.



Internals:
   ADB        /usr/bin/adb
   ADBVERSION Android Debug Bridge version 1.0.36
Revision 1:7.0.0+r33-1

   ADDRESS    192.168.20.41
   DEF        192.168.20.41
   INTERVAL_NORMAL 30
   INTERVAL_PRESENT 30
   IP         192.168.20.41
   MODE       lan-ping
   NAME       sz_FireTV
   NOTIFYDEV  global,sz_FireTV
   NR         281
   NTFY_ORDER 50-sz_FireTV
   PORT       5555
   STATE      present
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       FireTV
   VERSION    0.6.1
   adbconnected 1
   READINGS:
     2018-08-24 19:57:55   presence        present
     2018-08-24 19:57:52   screen_state    off
     2018-08-24 19:30:01   screenshot     
     2018-08-24 19:57:55   state           present
   helper:
     CURRENT_STATE present
     PRESENT_COUNT 0
     sz_FireTV:
       PRESENCE_loaded 1
       lastadbcmd /usr/bin/adb -s 192.168.20.41:5555 shell dumpsys power
       lastadbresponse error: 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.
       packages   ,,,
Attributes:



Den Raspi habe ich auch schon neu gestartet. Ich weiß leider nicht mehr weiter :-\

pi@Raspi:~ $ adb devices
List of devices attached
192.168.20.41:5555      unauthorized



Warum?


EDIT:
Hab nun über Putty den Server gekillt und manuell verbunden. Danach bekam ich auch die Anfrage am Stick.
adb kill-server
adb connect IP
und zum checken
adb devices

pi@Raspi:~ $ adb devices
List of devices attached
192.168.20.41:5555      device


Danach kurz erlauben am TV/Stick.


Nun habe ich aber noch immer keinen Screen State. Pakete usw kann ich auslesen aber nicht ob der Bildschirm an oder aus ist..
Hintergrund: Ich würde gerne im SZ, immer wenn ich den TV anschalte (nur der FTV Stick hängt da dran) die Rollos runter fahren. Allerdings brauche ich dafür eine verwertbare Info. Und bis auf Screenstate fällt mir da nichts ein.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Eistee am 25 August 2018, 20:57:46
Hol dir lieber etwas um den IR Befehl deiner TV Fernbedienung aus zu lesen. Ich hatte da mal einen kleinen Controller gebaut der aus IR Codes z.B. Intertechno Schaltbefehle macht. https://github.com/Eistee82/ATtiny85_IR2RF433
Alternativ dazu kann man bestimmt auch ein Logitech Harmony Hub verwenden. Oder den hier im Forum angebotenen IR Blaster der hat wohl auch einen Empfänger.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 25 August 2018, 23:26:20
Hey und DANKE erst mal.

Ich habe eine Harmony und auch einen IR / RF Wandler (433Mhz). Diese kleinen Pyramiden gibt es ja für kleines Geld.
Allerdings verwende ich diesen im WZ und da soll er auch bleiben. Es geht auch darum, dass ich zb immer einen Sleeptimer setze.
Die ganze Story geht ja noch weiter und da will ich natürlich Möglichkeiten haben, das zu erweitern.

Dein Text liest sich, als würde das Modul an sich nichts taugen oder zumindest du bist davon "enttäuscht". Die Idee an sich ist gut. Dachte aber eher
daran dieses Modul hier zu nutzen, aufgrund der Möglichkeiten. Hast du Infos dazu, wann ein Screen (on/off) erkannt wird?
Geht das zb nur wenn CEC im Spiel ist oder einfach aufgrund von Wiedererstand oder so?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Eistee am 26 August 2018, 10:55:16
Also. Erstmal funktioniert das ganze ja über adb. Das heißt das das FireTV Modul zyklisch werte aus dem FireTV ausließt. Wie diese werte zustande kommen weiß nur Amazon. Der nächste nachteil ist das der FireTV kein Event in FHEM auslösen kann auf diesem weg. Es wird nur ein Event vom Modul generiert wenn ein wert beim auslesen der werte sich ändert. Daher ist das nicht wirklich zu gebrauchen um damit direkt sowas wie Lichtszenen zu steuern.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Ascos am 02 September 2018, 14:38:24
Hi,

seit Neustem scheint es bei mir Probleme in der Verbindung zwischen FHEM und meinen FireTV Geräten (Box und Stick) zu geben.
Ich bekomme keinen korrekten Screen_State mehr (er wird immer als off angezeigt) und ich kann keine Befehle mehr absetzen.
Allerdings werden die Geräte noch als present erkannt.

Möglicherweise haben die Geräte mal wieder alleine ein Update gemacht, meine Version ist: 5.2.6.6

Hat jemand anderes da auch Probleme mit?

Viele Grüße
Ascos
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 03 September 2018, 09:32:22
Zitat von: Ascos am 02 September 2018, 14:38:24
Hi,

seit Neustem scheint es bei mir Probleme in der Verbindung zwischen FHEM und meinen FireTV Geräten (Box und Stick) zu geben.
Ich bekomme keinen korrekten Screen_State mehr (er wird immer als off angezeigt) und ich kann keine Befehle mehr absetzen.
Allerdings werden die Geräte noch als present erkannt.

Möglicherweise haben die Geräte mal wieder alleine ein Update gemacht, meine Version ist: 5.2.6.6

Hat jemand anderes da auch Probleme mit?

Viele Grüße
Ascos

Moin, moin...

hatte ich auch schon gemeldet. Direkt über deinem Post.
Da ich das Modul erst letzte Woche eingerichtet habe, kenne ich den Status davor natürlich nicht.
Aber um z.B. die Erlaubnisabfrage zu bekommen, die es erlaubt, dass ein Gerät per ADB auf den Stick/die Box zugreifen darf, musste ich auch manuell triggern.
Kannst du alles vor deinem Post lesen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 04 September 2018, 01:23:11
Wollte auf meinem Nebensystem, auf dem nur Googlecast und FireTV laufen soll, die Tage mal ein Update machen. Da gibt's die Meldung


fhem
nothing to do...

nesges-fhem-modules
UPD FHEM/98_FireTV.pm
Got 66588 bytes for FHEM/98_FireTV.pm, expected 66587
aborting


und FireTV funktioniert nicht mehr. Ist das jemanden bekannt?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 04 September 2018, 07:39:12
Zitat von: duke-f am 04 September 2018, 01:23:11
Wollte auf meinem Nebensystem, auf dem nur Googlecast und FireTV laufen soll, die Tage mal ein Update machen. Da gibt's die Meldung


fhem
nothing to do...

nesges-fhem-modules
UPD FHEM/98_FireTV.pm
Got 66588 bytes for FHEM/98_FireTV.pm, expected 66587
aborting


und FireTV funktioniert nicht mehr. Ist das jemanden bekannt?

Liegt an UPD / UPDATE.. Die txt die angefragt wird für das Update ist nicht aktuell und somit läuft das Update nicht durch...
Siehe Wiki:
Zum Aktualisieren einer Datei. Die Aktualisierung wird nur ausgeführt, wenn das Datum von der lokalen Datei unterschiedlich ist und die Dateigröße der heruntergeladenen Datei übereinstimmt:

UPD <Datum> <Dateigröße> <Datei inkl. Pfad>


Kannst es aber auch manuell machen indem du die Datei in den entsprechenden Ordner deines FHEM schiebst und die Dateirechte anpasst.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 04 September 2018, 09:36:58
Besten Dank. Habe also die Datei selber vom Eingangsthread heruntergeladen und in das FHEM-Verzeichnis gespielt, dann 98_FireTV.pm vom Update ausgeschlossen, um das Problem nicht wieder zu haben. Kann aber ja nicht die Dauerlösung sein.

Sehe ich das richtig, dass der Autor des Moduls die von Dir genannte Korrektur an der txt-Datei vornehmen müsste?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 04 September 2018, 15:29:17
Ich schließe mich dann hier an:
presence wird angezeigt und korrekt erkannt,  adb-Befehle werden nicht erkannt. Habe erst letzte Woche nach dem Sommer mal wieder das Modul und den FireTV in Betrieb genommen und da ging noch alles. Erst gestern abend jedoch nicht mehr. Allerdings hat mich da auch mein FireTV mit einer Änderungsmeldung beim Einschalten überrascht, die ich leider nicht wirklich zu verstehen versucht hatte.

Kurz und gut: Ich vermute eine Änderung in der FireTV-Software.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 05 September 2018, 08:45:26
Guten Morgen,

ggf. hilft dies dem Entwickler ja:
https://github.com/happyleavesaoc/python-firetv

Es scheint aktuell zu sein und hat die Probleme nicht.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 05 September 2018, 09:17:29
Kümmert sich hier noch jemand aktiv drum?
Ich glaube meine modifizierte Version (im Anhang) funktioniert noch, könnt ihr ja mal ausprobieren.

adb funktioniert allgemein nur gut, wenn nur genau ein Device darauf zugreift. Also entweder FHEM oder z.B. ein Launcher auf dem FireTV.
Wenn sich die in die Quere kommen, gibt's Probleme.
Gab es ein Update auf dem FireTV? Meiner ist gerooted, bekomme ich also nicht mit.

Um irgendwas direkt zu steuern finde ich dieses Modul sowieso zu träge, dafür gibt's ja auch noch das Kodi Modul.
Damit habe ich z.B. Licht bei Play/Pause realisiert.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 05 September 2018, 10:34:09
Zitat von: Markus M. am 05 September 2018, 09:17:29
Kümmert sich hier noch jemand aktiv drum?
Ich glaube meine modifizierte Version (im Anhang) funktioniert noch, könnt ihr ja mal ausprobieren.

adb funktioniert allgemein nur gut, wenn nur genau ein Device darauf zugreift. Also entweder FHEM oder z.B. ein Launcher auf dem FireTV.
Wenn sich die in die Quere kommen, gibt's Probleme.
Gab es ein Update auf dem FireTV? Meiner ist gerooted, bekomme ich also nicht mit.

Um irgendwas direkt zu steuern finde ich dieses Modul sowieso zu träge, dafür gibt's ja auch noch das Kodi Modul.
Damit habe ich z.B. Licht bei Play/Pause realisiert.

Teste ich direkt nachher!

ADB an sich ist natürlich zu träge via LAN/WLAN. Ich habe einen FireTV Box und einen Stick. Die Box habe ich auch gerootet aber den Stick nicht. Bei beiden das gleiche Problem. ADB ist aber verbunden. (check über Console). Ich kenne den Versionsstand leider nicht aber es gab definitiv ein Update. Mich würde hier tatsächlich nur der ScreenState interessieren. Alles andere aus diesem Modul hier, ist mir egal. Im Quelltext konnte ich leider nicht auslesen wie der Entwickler es geschafft hat diesen aus zu lesen. Wenn ich das wüsste, würde ich ganz auf das Modul verzichten und mir ein DOIF / notify bauen.

Für das Kodi Modul muss Kodi auch an sein, korrekt? Würde dann für mich auch rauß fallen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 05 September 2018, 11:21:35
Zitat von: 87insane am 05 September 2018, 10:34:09
Mich würde hier tatsächlich nur der ScreenState interessieren. Alles andere aus diesem Modul hier, ist mir egal. Im Quelltext konnte ich leider nicht auslesen wie der Entwickler es geschafft hat diesen aus zu lesen.

Für das Kodi Modul muss Kodi auch an sein, korrekt? Würde dann für mich auch rauß fallen.
Der screenState läuft wie alles andere über Polling, wenn ich mich recht erinnere.
Ganz grosser Mist am FireTV Modul: Es arbeitet blockierend und läuft jedes mal wenn adb nicht erreichbar ist in einen 3s Timeout.
Zudem haut es gefühlt 4x so viele adb Aufrufe raus als eigentlich nötig sein sollten.

Kodi braucht auch ein Modul, das ist richtig. Und das ist in erster Linie dafür da, um den Play/Pause State dort auszulesen.
Wenn du teilweise Kodi auf dem FireTV nutzt, brauchst du eigentlich beide Module.
Auch hier wieder: Unschöne Reaktionen wenn Kodi nicht erreichbar ist.

Naja - spätestens wenn sich meine Frau ein paar mal beschwert dass das Licht wahllos erst nach einigen Sekunden angeht oder andere Dinge verzögert reagieren, schaffen es die Module garantiert auf meine Todo-Liste ;)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 05 September 2018, 11:27:54
Zitat von: Markus M. am 05 September 2018, 11:21:35
Der screenState läuft wie alles andere über Polling, wenn ich mich recht erinnere.
Ganz grosser Mist am FireTV Modul: Es arbeitet blockierend und läuft jedes mal wenn adb nicht erreichbar ist in einen 3s Timeout.
Zudem haut es gefühlt 4x so viele adb Aufrufe raus als eigentlich nötig sein sollten.

Kodi braucht auch ein Modul, das ist richtig. Und das ist in erster Linie dafür da, um den Play/Pause State dort auszulesen.
Wenn du teilweise Kodi auf dem FireTV nutzt, brauchst du eigentlich beide Module.
Auch hier wieder: Unschöne Reaktionen wenn Kodi nicht erreichbar ist.

Naja - spätestens wenn sich meine Frau ein paar mal beschwert dass das Licht wahllos erst nach einigen Sekunden angeht oder andere Dinge verzögert reagieren, schaffen es die Module garantiert auf meine Todo-Liste ;)

Dann senden wir der Dame mal ein paar Blumen und einen leckeren Wein und der Rest regelt sich dann von alleine :-P

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 05 September 2018, 11:44:43
Das mit dem Update kann ich leider nur soweit bestätigen, wie ich es oben  in meiner Beobachtung geschildert habe.

Ob die Kodi-Variante nun für mich die bessere sein würde, kann ich nicht sagen. Mein Modul soll alleinig FireTV in seiner offiziellen Form ansteuern, also nichts gerootetes. Ich muss auch nichts auslesen. Ich will alleinig beispielsweise eine Einknopfbedienung, wie ich sie bereits für andere Konstellationen arfolgreich nutze, erweitern. Beispiel:

FireTV hängt über einen HDMI-Verteiler im Schlafzimmer parallel zu den weiteren Geräten BD-Player und einen Raspberry Pi. Als Ausgänge sind im Schlafzimmer ein Beamer und über ein langes HDMI-Kabel der Fernseher im Wohnzimmer verbunden. Diesen Verteiler kann ich per Infrarot - und damit mittels FHEM - ansteuern. Das Einschalten einer Funktion kann dann schon mal knapp eine Minute dauern, das lässt sich aber auch nicht wirklich vermeiden und ich kann damit leben.

Typisch ist eben jetzt die Situation, dass wir im Wohnzimmer sitzen und einen Film beginnen zusehen. Einer kommt auf die Idee: Das könnten wir doch auch im Bett fertig sehen. Also am Tablet die Taste in FHEM "BD -> Beamer" gedrückt und es werden nacheinander die dafür notwendigen Geräte gestartet: Beamer, BD-Player, Surround-Anlage und der HDMI-Verteiler. dann werden die Komponenten jeweils auf die korrekten Kanäle für Eingang und Ausgang geschalten. Wie gesagt, das funktioniert bisher durchaus zufriedenstellend. Entsprechende Schaltungen gibt es dann auch beispielsweise um das BD-Signal auf den Fernseher zu übertragen usw.

Dass jetzt Anfang des Jahres der FireTV für das Schlafzimmer dazu kam, stellte die nächste Stufe der Herausforderung dar, die ich mittels des Moduls bewältigen wollte (im Wohnzimmer wird normalerweise ein Chromecast genutzt, der FireTV bisher nur selten).

Und da genau kommt der Punkt: Das Modul soll einfach mal die rudimentären Funktionen der FireTV-Fernbedienung ersetzen, weil diese im Regelfall eben im Schlafzimmer liegt. Gut, das könnte man auch mit einer anderen App bewerkstelligen, aber schön in FHEM integriert sollte eben doch sein. Zudem kommt die Herausforderung der Verknüpfungen, bei eingehendem Anruf auch die FireTV-Wiedergabe genauso wie TV oder Chromecast auf Pause zu stellen.

Ist recht lang geworden, entschuldigt. Aber mir geht es wirklich nur darum, FireTV ansprechen zu können, ich muss nichts auslesen. Ist dann dieses Modul wirklich geeignet? Wäre dann Kodi überhaupt anwendbar? gäbe es etwas ganz anderes? Ich habe die beiden Module für Chromecast und FireTV extra auf einem Nebensystem, um mein Hauptsystem nicht zu blockieren, beide haben immer noch so ihre Schwächen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 06 September 2018, 01:28:06
Habe die oben verlinkte modifizierte Version probiert - geht genauso wenig.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 08 September 2018, 19:59:41
http://www.aftvnews.com/how-to-remotely-control-an-amazon-fire-tv-or-fire-tv-stick-via-adb/

Hab's immerhin soweit, dass mein FireTV auf diese Terminaleingaben reagiert. Ein Problem war, dass ich die Berechtigung auf den Stick zugreifen zu dürfen für den entsprechenden Raspberry wiederholen musste.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: nesges am 24 Oktober 2018, 11:37:57
Zitat von: Markus M. am 05 September 2018, 09:17:29
Kümmert sich hier noch jemand aktiv drum?

Jain, ich schaue hier nur noch selten rein, aber wenn ich nen Fehler mitbekomme (PM, github) schau ich's mir gern an. Zumindest das Update-Problem sollte aber seit 20.09. erledigt sein
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 24 Oktober 2018, 12:17:55
Dann werde ich das nochmal probieren. Habe das Modul seit dem Problem nicht mehr genutzt und zugegebenermaßen eigentlich schon abgeschrieben, als hier keine Meldung mehr kam. Ist sicher kein Vorwurf, nicht falsch verstehen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 26 Oktober 2018, 00:15:26
Nein, war nichts. Wie gehabt, presence zeigt present, screen_state zeigt off, obwohl an ist. Ich kann am Tablet per App steuern, aber nicht von FHEM aus. Muss irgend ein Update bewirkt haben, da vor dem Sommer alles funktioniert hat.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 26 Oktober 2018, 00:25:45
Hatte letztens irgendwelche "Anmelde-Probleme" die hatte ich dann behoben und sah alles gut aus.

Mache (noch) nicht wirklich viel mit dem Modul aber nach dem Lesen deines Beitrages hab ich eben mal geschaut:

auch bei mir present aber screen_state off obwohl ich grad kucke ;)

Ein get currentApp abgesetzt und schon war der screen_state auch richtig...

Scheint wohl was mit der Aktualisierung zu sein...
Habe aber vermutlich nicht die allerneueste Version (0.6.1).
Gab ja irgendwas wegen Update und seit das wohl behoben ist hab ich keins mehr gemacht...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 26 Oktober 2018, 00:34:40
Da liegt eben schon der Knoten. Ich bekomme auf get currentApp die Antwort:

error: error: device offline

EDIT
Version wird bei mir auch 0.6.1 angezeigt. Im Terminal bekomme ich folgendes:


root@pi:/usr/bin# adb devices
List of devices attached
192.168.178.173:5555 offline

root@pi:/usr/bin# adb disconnect 192.168.178.173:5555

root@pi:/usr/bin# adb devices
List of devices attached

root@pi:/usr/bin# adb devices
List of devices attached

root@pi:/usr/bin# adb connect 192.168.178.173:5555
connected to 192.168.178.173:5555
root@pi:/usr/bin# adb devices
List of devices attached
192.168.178.173:5555 offline

root@pi:/usr/bin# adb connect 192.168.178.173:5555
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 26 Oktober 2018, 00:48:40
Steht etwas im Log?

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 26 Oktober 2018, 00:58:22
nein - zumindest nichts zu FireTV. Obenhabe ich etwa ergänzt, was ich bei meinem Test, direkt im Terminal adb zu nutzen bekommen habe.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 26 Oktober 2018, 01:07:17
Hm, als es zwischendrin bei mir nicht ging hatte ich schon Probleme beim connect...

So wie es aussieht liegt es dann wohl nicht am Modul...

Welche Version von adb hast du und woher?

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 26 Oktober 2018, 01:20:16
adb ist Version 1.0.31., woher weiß ich nicht mehr, aber eigentlich habe ich mich an die Doku hier gehalten.

Habe gerade nochmal den adb-Server gekillt und nochmal im Terminal einen Versuch gestartet. Und siehe da: FireTV reagiert. Mein Test war:


root@pi:/usr/bin# adb kill-server
root@pi:/usr/bin# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached

root@pi:/usr/bin# adb devices
List of devices attached

root@pi:/usr/bin# adb connect 192.168.178.173:5555
connected to 192.168.178.173:5555
root@pi:/usr/bin# adb devices
List of devices attached
192.168.178.173:5555 device

adb shell input keyevent 85


Und FireTV geht wie gewünscht auf Pause bzw spielt weiter. Also adb kann das Problem nicht sein.

EDIT
Jetzt bekomme ich auch Meldungen im Log:


...
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
...


Werde mal den Pi ganz neu starten, aber für heute ist es genug.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 24 Januar 2019, 17:09:01
Ich habe das ganze jetzt einige Monate ruhen lassen wegen anderer Aktivitäten. Dennoch interessiert mich nach wie vor: Bin ich alleine mit dem Problem?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 25 Januar 2019, 12:58:13
Habe keine Probleme aktuell aber das sieht für mich auch eher nach ADB aus.
Ggf. bekommt er über deinen FHEM Server die falsche Adresse mit. Hast du das einfach mal neu eingerichtet? Also bei mir wäre das in zwei min gemacht, da ich nicht so viel drin habe in dem Plugin.

Habe nur nach wie vor kein Screenstate. Das nervt mich viel mehr :(
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 25 Januar 2019, 13:17:21
Zitat von: duke-f am 24 Januar 2019, 17:09:01
Ich habe das ganze jetzt einige Monate ruhen lassen wegen anderer Aktivitäten. Dennoch interessiert mich nach wie vor: Bin ich alleine mit dem Problem?

Keine Probleme.

Ich hatte vor einiger Zeit mal was bzgl. "Anmelden" bzw. "Zulassen von adb" beim FireTV-Stick.
Aber da lautete die Fehlermeldung anders...
...und seither dann wieder alles gut.


Zitat von: 87insane am 25 Januar 2019, 12:58:13
Habe nur nach wie vor kein Screenstate. Das nervt mich viel mehr :(

Quick and Dirty gab es da mal was: https://forum.fhem.de/index.php/topic,68748.msg676838.html#msg676838

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 25 Januar 2019, 13:28:06
Okay, ich habe mittlerweile schon mal fast alles neu eingerichtet, dachte ich zumindest. Und ja, ich denke auch, es liegt an ADB. War auch nur mal ein Versuch. Vielleicht soll ich das einfach mal auf einem anderen Raspie installieren. Auf diesem hier hatte ich ja extra alles aktualisiert für GOOGLECAST.

Besten Dank.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 25 Januar 2019, 13:31:23
Zitat von: duke-f am 25 Januar 2019, 13:28:06
Okay, ich habe mittlerweile schon mal fast alles neu eingerichtet, dachte ich zumindest. Und ja, ich denke auch, es liegt an ADB. War auch nur mal ein Versuch. Vielleicht soll ich das einfach mal auf einem anderen Raspie installieren. Auf diesem hier hatte ich ja extra alles aktualisiert für GOOGLECAST.

Besten Dank.

GOOGLECAST und adb FireTV-Stick lief bei mir problemlos zusammen...
...allerdings ist adb FireTV-Stick jetzt auf's Hauptsystem umgezogen (und es geht ja nur eine adb-Verbindung) und das GOOGLECAST hat es (noch) nicht dort hin geschafft...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 25 Januar 2019, 13:34:42
Ich würde über Console und adb einfach die Authentifizierung neu machen. Einfach am Stick bzw Fire tv adb aus, neu starten, adb bzw debug wieder an.... Danach eben die anfrage senden

Gesendet von meinem LG-H850 mit Tapatalk

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 25 Januar 2019, 14:08:30
Gut, kann ich versuchen. Seltsam ist ja nur, dass ich (ist schon wieder länger her) über ADB durchaus mal ran komme, aber die Anbindung nicht stabil ist bzw. FirTV sie selber gar nicht aufbaut. Aber trotzdem, es sich sicher der richtige Ansatz, nochmal einige Schritte zurück und nochmal das ganze. - vor allem, da ich offensichtlich der Einzige mit dem Problem bin:)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Markus M. am 02 Februar 2019, 09:51:30
Ich hatte das Problem erst auch wieder.
ADB ist da wohl wirklich etwas empfindlich - auf dem FireTV scheint es da keinen wirklichen Timeout zu geben und so blockiert adb recht leicht.
Da ich meinen FireTV normalerweise abschalte ist mir das nur nicht oft aufgefallen.
Aber auch wenn ich KODI manuell update und das Modul vor einem FireTV Restart deaktiviere brauche ich immer mehrere Versuche.

Im Anhang noch eine Version mit ein paar Bugfixes und Verbesserungen bei den Readings.
@nesges Bitte bei Gelegenheit mal übernehmen ;)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 15 Februar 2019, 02:26:34
So, habe auf dem Raspberry adb herunter geschmissen und neu installiert, auf dem Fite TV debugging deaktiviert und wieder aktiviert und trotzdem geht es nach wie vor nicht, die Steuerung durch FHEM zu übernehmen.

Muss ich hier wohl erst mal kapitulieren
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 15 Februar 2019, 07:30:25
Gibt es irgendwelche Meldungen?
Fhem-log?

Kannst du per adb auf der Console verbinden!?

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 15 Februar 2019, 19:36:15
Nein, im FHEM-Log habe ich diesmal gar keine Meldungen. Und hinsichtlich des direkten Zugriffs per ADB auf der Konsole muss ich nochmal prüfen. Muss mich da wieder etwas einlesen, aber viel Hoffnung habe ich da eigentlich nicht. Wahrscheinlich ist das wieder wie gehabt.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 15 Februar 2019, 20:28:51
Auf die Schnelle:

adb start-server

Bzw. prüfen, ob adb läuft:

ps -ax | grep adb | grep -v grep

adb connect IP-FireTV

adb shell input keyevent 22

Oder was ähnliches senden...

Wenn das geht sollte es auch mittels fhem gehen...
...wenn nicht, dann ist irgendwas an adb "quer"...

Neuerdings muss man ja die Erlaubnis zur Steuerung auf dem FireTV "bestätigen" (also nicht nur "aktivieren")...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 16 Februar 2019, 04:15:21
Hi Joachim, danke für die schnelle Reaktion - so schnell komme ich nicht mal hinterher. Also adb läuft, ps liefert:


1731 ?        Sl   189:00 adb -P 5037 fork-server server


adb connect:


already connected to 192.168.178.173:5555


aber leider gibt's beim letzten Befehl:


error: device offline


Dann mache ich folgendes:

root@pi:~# adb devices
List of devices attached
192.168.178.173:5555 offline

root@pi:~# adb kill-server
root@pi:~# adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
root@pi:~# adb shell input keyevent 22
error: device not found
root@pi:~# adb connect 192.168.178.173
connected to 192.168.178.173:5555
root@pi:~# adb shell input keyevent 22
root@pi:~# adb shell input keyevent 20
root@pi:~# adb shell input keyevent 22


und alles scheint zu funktionieren. Aber nicht aus FHEM heraus. Interessanterweise habe ich jetzt auch plötzlich vieles im FHEM-Log stehen, das gestern aber nicht da war. Allerdings ist in deser Installation von FHEM das Log äußerst seltsam, es gibt immer jede Menge Leerzeilen. Und die Ausgabe hier hat keine Zeitangabe. Ich packe es mal vollständig hier rein, auch wenn ich zweifle, dass man so viel anfangen kann damit, außer eben, dass die Kommunikation mit adb nicht läuft.


cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon
* daemon not running. starting it now on port 5037 *
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 16 Februar 2019, 10:09:44
Arbeitest du IMMER als ROOT auf deinem System!?

Mit welchem User hast du "meine" Befehle eingegeben!?

Hast du für den User "fhem" einen Eintrag in sudoers!?
Damit fhem die adb-Befehle mittels sudo und OHNE Passwort ausführen kann/darf!?

Welches System hast du?
Also (HW), OS!?

EDIT: und nun (besser) nicht einfach "wo" suchen und "irgendwas" mit sudoers machen!

EDIT2: was passiert, wenn du folgendes tust: sudo -su fhem bash  und dann sudo adb "irgendwas" ausführst, also mal die oben genannten Befehle? (wobei wenn du eh als root "arbeitest", dann ginge wohl auch "nur" -su fhem bash ;)  / und wenn du "fertig" bist ein "exit" nicht vergessen, um auf deine ursprüngliche "Console" zurück zu kommen)

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 16 Februar 2019, 10:41:57
Ja, ich mache praktisch auf allen Geräten immer alles als Root. Also auch Deine Befehle.

Und nein, fhem ist auf diesem Gerät nicht bei den sudoers. Sollte das so sein? Habe ich bei meinem Hauptsystem auch nicht.


root@pi:~# sudo -su fhem bash
fhem@pi:/root$ sudo devices

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for fhem:



Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 16 Februar 2019, 10:44:58
Also ich musste am Anfang auch über ein putty einfach mal "adb devices" und dann poppte am TV schon die Meldung auf, zum bestätigen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 16 Februar 2019, 10:54:04
Teil zwei der Antwort habe ich vergessen:


root@pi:~# cat /etc/issue
Raspbian GNU/Linux 8 \n \l


auf einem Raspberry Pi Version B

@87insane
Über die Konsole kann ich ja zugreifen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 16 Februar 2019, 10:59:31
Zitat von: duke-f am 16 Februar 2019, 10:41:57
Ja, ich mache praktisch auf allen Geräten immer alles als Root. Also auch Deine Befehle.

OT:

Dir ist aber bewusst wie gefährlich das ist!!!!!!!!!

EDIT: und dass dann u.U. manche Sachen NICHT funktionieren (wenn z.B. ein "normaler" User [z.B. fhem ;)  ] dann was ausführen soll) ist dir auch klar!

END-OT

Hmm, wenn meine Befehle auch (und die waren doch die selben die du danach eingegeben hast), eigenartig, dass es mal geht und mal nicht...


Zitat von: duke-f am 16 Februar 2019, 10:41:57
Und nein, fhem ist auf diesem Gerät nicht bei den sudoers. Sollte das so sein? Habe ich bei meinem Hauptsystem auch nicht.

Auf dem Hautpsystem geht die FireTV-Steuerung!? Oder was soll dieses Anmerkung bedeuten?

Wenn du von dort auch den FireTV steuern solltest: es geht immer nur EINE adb-Verbindung!


Ich habe halt in den code geschaut und dort wird (wenn ich mich nicht verkuckt habe) eben sudo verwendet.
Wenn nun der fhem-User nicht in sudoers OHNE Passwortabfrage (für zumindest adb) drin steht, dann wird das Modul immer scheitern...
...weil eben auf eine Passworteingabe gewartet wird, die nat. nie erfolgt.


Zitat von: duke-f am 16 Februar 2019, 10:41:57

root@pi:~# sudo -su fhem bash
fhem@pi:/root$ sudo devices

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for fhem:


Was soll "sudo devices" bewirken!?
Und wie du siehst: es wird auf eine Passworteingabe gewartet...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 16 Februar 2019, 11:13:00
Da habe ich das adb vor devices vergessen.

Die Risiken sind mir absolut klar, daher habe ich immer für die wirklich wichtigen Dinge Backups. Mit dem Hauptsystem meine ich mein FHEM auf dem Cubietruck. Da läuft praktisch erst mal alles FHEM betreffend. Aber FireTV habe ich erst ausgelaert auf den Raspberry Pi, weil da ein neueres Linux gefordert wurde und ich den Cubie nicht anfassen will in der Beziehung. Die Verknüpfung geht dann über FHEM2FHEM und RFHEM, aber natürlich erst dann, wenn es direkt am Raspberry Pi funktioniert.

Was die ganzten Rechte und sudoers betrifft: Es hat doch anfangs genau in dieser Konstellation funktioniert. Dann hatte ich dies einige Wochen nicht genutzt und dann ging es plötzlich nicht mehr. Aber ich werde als nächstes (nicht jetzt, habe keine Zugriffserlaubnis auf den TV) den user fhem mal den sudoers zuordnen. Melde mich dan
Gruß und Dank
duke-f
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 16 Februar 2019, 11:21:35
Wenn es schon mal gelaufen ist (ohne sudoers), dann liegt es (wohl) nicht daran.

Läuft bzw. laufen deine fhem überhaupt unter dem User fhem?

Nachdem du ja scheinbar alles als root machst...

OT-Again:

Und Backup hin oder her: alles als ROOT ist trozdem KEINE gute Idee... Weil neben den Gefahren (durch "Unachtsamkeit" sich das komplette System "zerschießen" eben auch alles was du tust und "anfasst" ROOT "gehört" und somit für andere User nicht [so einfach] zugreifbar ist! Und daher manche Dinge einfach nicht funktionieren...)

EDIT: und ganz nebenbei: es ist total unnötig! Genau dazu gibt es den "sudo-Mechanismus", damit für die Dinge, die wirklich "root" benötigen auch für den "Normal-User" machbar sind. Und man merkt so gleich wann root nötig ist und wann unnötig...

(aber: freies Land, jedem sein System)

End-OT

Was bei FireTV umgestellt wurde (ist aber schon lange/länger her): neben der Freigabe von adb-Debugging-Zugriff muss man auch noch das steurende Gerät (in deinem Fall den PI mit adb) "bestätigen". Da kommt dann normalerweise eine Meldung auf dem FireTV und dann muss man das bestätigen...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 16 Februar 2019, 11:24:04
Das muss er ja schon getan haben, wenn es mal lief. ADB muss mittlerweile bei allen Geräten bestätigt werden. Das ist einfach ein etwas sichererer Debug Zugriff.
Über seine Konsole soll es ja auch gehen....

Würde gerne mal einen Auszug von Putty sehen indem du adb devices eingibst. Da steht auch direkt ob du erlaubt bist oder nicht.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 16 Februar 2019, 11:38:16
Zitat von: MadMax-FHEM am 16 Februar 2019, 11:21:35
Läuft bzw. laufen deine fhem überhaupt unter dem User fhem?
Gruß, Joachim
Ja, tut es / tun sie.

Zum OT:
Was man sich nunmal über Jahrzehnte dummerweise angewohnt hat.... Grundsätzlich hast Du selbstverständlich absolut recht. Hatte gerade die Tage eine annähernd in diese Kathegorie fallende Situation: Ich habe ein weiteres Slave-FHEM auf einem virtuellen Debian, das eine Verknüpfung zur Device über einen USB-WLAN-Konverter regelt. Leider passiertes alle paar Tag, dass die Verbindung nicht mehr selbstständig nach einem Abbruch wieder hergestellt wird. Habe mir für diesen Fall ein Script geschrieben, dass dann den Service restartet - da hatte ich mir etwas mit den Berechtigungen die Zähne ausgebissen, und da musste ich dann eben auch auf diesem System fhem zu den sodoern zufügen.

@87insane: Hast Du doch einige Posts weiter oben. Allerdings noch nicht als "superuser" fhem.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 16 Februar 2019, 11:52:56
Ich weiß nicht ob man es hier darf, aber das werde ich ja gleich wissen....

Guck mal hier:
https://community.openhab.org/t/executecommandline-gives-error-cannot-bind-local-5037/42016/7 (https://community.openhab.org/t/executecommandline-gives-error-cannot-bind-local-5037/42016/7)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 16 Februar 2019, 11:59:02
"superuser" fhem hilft nicht. Zwar dar der jetzt auf der Konsole bedienen, aber FHEM hat immer noch keine Wirkung.

Danke für den Link, sehe ich mir an.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 11 April 2019, 22:21:38
Ich gebe ja noch nicht auf. Mein Problem kann nicht an den Rechten liegen, da ich es im Terminal bedienen kann. Nun hatte ich die Idee, statt
apt-get install android-tools-adb
mal die Version mit
DeepSilence/adb-arm
zu versuchen - und bin da schon mit der Installation gescheitert. Vor ich weiter mache erlaube ich mir mal die einfache Frage: Hat das jemand schon erfolgreich hier installiert?
Ich bekomme eine riesige Liste mit Warnungen wie:

cc1: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C

und am Ende:

make: *** No rule to make target 'list.h', needed by 'adb'.  Stop.

>> Copying adb back into current dir...

cp: cannot stat 'adb': No such file or directory

>> FINISH!

Habe auch mal einfach die Zeile mit dem
-std=c++11
gelöscht, das hilt aber am Ende auch nicht.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: duke-f am 14 April 2019, 00:19:13
Ok, die Lösung liegt offensichtlich wirklich bei den Rechten. Post #38 gibt die Lösung.
Schlagt mich jetzt nicht, sicher wurde das auch schon von jemandem erwähnt (so beispielsweise @MadMax-FHEM, der mich auf die Spur gebracht hat.)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: slor am 25 Juni 2019, 12:46:42
Hallo zusammen,
kann ich mit diesem Modul erkennen, ob der FireTV Stick aktiv genutzt wird oder ob er "aus" ist? Also ob der daran hängende TV aus ist. Den schalte ich via FireTV Fernbedienung an und aus. Der Stick hängt dauerhaft am Strom.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 25 Juni 2019, 14:40:26
Ging wohl mal.. Auf Seite 8 fragte ich danach, da der State leider nicht mehr angezeigt wird.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tomcat.x am 26 Juni 2019, 15:14:31
@slor:

Bei der von mir genutzten Version (Seite vorher von Markus M.) scheint das über screenState zu gehen. Der geht erst auf "standby" und dann auf "off".  Ich schreibe "scheint", weil ich das nicht nutze und daher nicht sagen kann, ob das zuverlässig ist. Sonst wäre currentApp vielleicht noch eine Option. Das ist bei Nichtnutzung der Launcher.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: onkel-tobi am 14 Juli 2019, 13:14:14
Hi,

erst mal danke für das Modul.
Ich versuche das gerade zu verwenden um meine Ring Doorbell besser einzubinden.
Und zwar würde ich gerne, wenn es klingelt das aktuelle Bild auf dem TV wiedergeben.
Wenn ich mir anschaue wie die currentapp heißt bekomme ich: com.amazon.cardinal/com.amazon.android.uamp.ui.ContentRendererActivity

Die bekomme ich bei packages aber ncith angezeigt. Habe ich eine chance das als Befehl auszuführen?
Ein dediziertes Paket auf dem firetv scheint es ja nicht mehr zu geben...

Danke & Gruß,
Tobi
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: KernSani am 21 Dezember 2019, 11:33:56
Hi zusammen,

bei mir liefert der PRESENCE check ein
PERL WARNING: Use of uninitialized value $seconds in addition (+) at ./FHEM/73_PRESENCE.pm line 1199.

Die folgenden zwei Zeilen in 98_FireTV schaffen Abhilfe:

   if($hash->{helper}{$name}{'PRESENCE_loaded'}) {
        # PRESENCE
        $hash->{NOTIFYDEV}          = "global,$name";
        $hash->{TIMEOUT_NORMAL}     = $param[4] || 30;
        $hash->{TIMEOUT_PRESENT}    = $param[5] || $hash->{TIMEOUT_NORMAL};
        $hash->{INTERVAL_NORMAL}  = $param[4] || 30; # ++KernSani
        $hash->{INTERVAL_PRESENT} = $param[5] || $hash->{INTERVAL_NORMAL}; # ++KernSani
        $hash->{MODE}               = $param[6] || 'lan-ping';
        $hash->{ADDRESS}            = $param[7] || $hash->{IP};



Grüße und Schöne Feiertage,

Oli
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: KernSani am 21 Dezember 2019, 12:04:23
Als Ergänzung noch:
* Nach der o.g. Anpassung ist ein defmod auf das FireTV Device notwendig (die Werte werden in der define-Routine gesetzt) und weil ich gerade dabei bin, hier meine angepasste screen_state-Routine, die etwas optimiert ist bez. Performance und (in einigen definierten Fällen) ein weiteres Reading mit der gerade laufenden Anwendung befüllt:


sub FireTV_screen_state($) {
    my $hash = shift;
    my $name = $hash->{NAME};

    my $screen_state;
    my $screen_app = "-";

    if ( !FireTV_connect($hash) ) {
        Log3 $name, 3, "[$name] error: " . $hash->{helper}{$name}{'lastadbresponse'};
    }

    my $dump = FireTV_dumpsys( $hash, "power" );

    if ( $dump =~ "error" ) {
        Log3 $name, 3, "[$name] Connection error";
        readingsSingleUpdate( $hash, "lastError", $dump, 0 );
        return $dump;
    }
    elsif ( !$dump =~ 'Display Power: state=ON' ) {
        $screen_state = 'off';
    }
    elsif ( $dump =~ "mWakefulness=Dreaming" ) {
        $screen_state = 'daydream';
    }
    elsif ( $dump =~ "mWakefulness=Asleep" ) {
        $screen_state = 'standby';
    }
    elsif ( $dump =~ "mWakefulness=Awake" ) {
        my $window = FireTV_currentFocus($hash);
        Log3 $name, 5, "------------>" . $window;
        if ( $window =~ /mCurrentFocus.*youtube.*/gm ) {
            $screen_state = 'playing';
            $screen_app   = "youtube";
        }
        elsif ( $window =~ /.*com.amazon.tv.launcher.*/ ) {
            $screen_state = 'home';
        }
        elsif ( $window =~ /com.amazon.avod.*/ ) {
            $screen_state = 'playing';
            $screen_app   = "video";
        }
        elsif ( $window =~ /.*parentalcontrols.*/ ) {
            $screen_state = 'pin';
        }
        else {
            $screen_state = 'playing';
            $screen_app   = "unknown";
        }
    }
    else {
        $screen_state = 'unknown';
    }

    # if(! FireTV_dumpsys_has($hash, 'power', 'Display Power: state=ON')) {
    # $screen_state = 'off';
    # } elsif(! FireTV_dumpsys_has($hash, 'power', 'mWakefulness=Awake')) {
    # if(FireTV_currentFocus($hash) =~ /^dream$/) {
    # $screen_state = 'daydream';
    # } else {
    # $screen_state = 'idle';
    # }
    # } elsif(FireTV_currentFocus($hash) =~ /^com.amazon.tv.launcher/) {
    # $screen_state = 'standby'
    # } elsif(! FireTV_dumpsys_has($hash, 'power', 'Locks: size=0')) {
    # $screen_state = 'playing'
    # } else {
    # $screen_state = 'paused'
    # }

    readingsSingleUpdate( $hash, "screen_state", $screen_state, 1 );
    readingsSingleUpdate( $hash, "screen_app",   $screen_app,   1 );
    return $screen_state;
}
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 21 März 2020, 14:08:12
ICh habe die beiden Befehle aus dem ersten Post ausgeführt und den sh adb-download-make.sh im Ordner adb.

Nach dem Define hat er mir das angelegt:

DB /usr/local/bin/adb
ADBVERSION Permission denied
ADDRESS 192.168.1.4
CFGFN
DEF
192.168.178.3 /usr/local/bin/adb
FUUID ...
IP 192.168.1.4
MODE lan-ping
NAME FIRETV
NOTIFYDEV global,FIRETV
NR 133
NTFY_ORDER 50-FIRETV
OSVERSION
PORT 5555
SERIAL
STATE present
TIMEOUT_NORMAL 30
TIMEOUT_PRESENT 30
TRIGGERTIME 0
TRIGGERTIME_FMT
TYPE FireTV
VERSION 0.6.1
adbconnected 1


Was habe ich falsch gemacht da sich ein Permission denied erhalte?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Eistee am 23 März 2020, 14:23:21
Hast dem fhem Benutzer keine Berechtigung gegeben adb auszuführen.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 26 März 2020, 17:29:13
Kann ich diesen Hinweis im Event Monitor abstellen? Warum kommt dieser überhaupt dauerhaft wieder?



2020-03-26 17:27:57 FireTV FIRETV presence: present
2020-03-26 17:28:00 FireTV FIRETV present
2020-03-26 17:28:00 FireTV FIRETV presence: present
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 26 März 2020, 17:30:33
Zitat von: Eistee am 23 März 2020, 14:23:21
Hast dem fhem Benutzer keine Berechtigung gegeben adb auszuführen.

Danke für den Hinweis, es lag letztendlich daran das ich einen Pfad angegeben habe. Wenn ich nur die IP beim Define anlege ist alles gut.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 26 März 2020, 17:49:45
Zitat von: mister am 26 März 2020, 17:29:13
Kann ich diesen Hinweis im Event Monitor abstellen? Warum kommt dieser überhaupt dauerhaft wieder?



2020-03-26 17:27:57 FireTV FIRETV presence: present
2020-03-26 17:28:00 FireTV FIRETV present
2020-03-26 17:28:00 FireTV FIRETV presence: present


Schon mit event-on-change-reading versucht!?

EDIT: oder disable
Zitat von: Device specific help
disabled
presence-check is disabled, all other functions may still work

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 26 März 2020, 18:42:26
Perfekt hat funktioniert.

Jetzt muss ich nur noch dahinter kommen wie der adb befehl für DeveloperOptions heißt. Hat da jemand eine idee?

kenne nur "adb shell am start com.amazon.ssm/com.amazon.ssm.ControlPanel"
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 04 April 2020, 17:36:53
Ich bekomme keine Verbindung zum FireTV.

Habe die beiden Befehle aus dem ersten Beitrag unter FHEM ausgeführt und habe apt-get install android-tools-adb ausgeführt.

define FireTV FireTV 192.178.100.37
Von diesem FHEM Server verbinde ich mich das erste mal auf den Stick ich bekomme aber vom Stick nicht bekannten Hinweis um die Verbindung zuzulassen.

Ich denke es liegt auch daran das ich diesen Hinweis auf dem FIRETV nicht bekomme aber wie kann ich das anstoßen?


Habe den Stick schon auf Werkseinstellungen zurück gesetzt.

Internals:
   ADB        /usr/bin/adb
   ADBVERSION Android Debug Bridge version 1.0.36
Revision 1:7.0.0+r33-1

   ADDRESS    192.168.100.37
   CFGFN     
   DEF        192.168.100.37:5555
   FUUID      ****
   IP         192.168.100.37
   MODE       lan-ping
   NAME       FireTV
   NOTIFYDEV  global,FireTV
   NR         173
   NTFY_ORDER 50-FireTV
   PORT       5555
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       FireTV
   VERSION    0.6.1
   adbconnected 1
   READINGS:
     2020-04-04 17:49:22   presence        present
     2020-04-04 17:49:18   screen_state    off
     2020-04-04 17:49:22   state           present
   helper:
     CURRENT_STATE present
     FireTV:
       PRESENCE_loaded 1
       lastadbcmd /usr/bin/adb -s 192.168.100.37:5555 shell dumpsys power
       lastadbresponse error: 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.
       packages   ,,,
     RUNNING_PID:
       abortFn    PRESENCE_ProcessAbortedScan
       arg        FireTV|192.168.100.37|0|4
       bc_pid     113
       finishFn   PRESENCE_ProcessLocalScan
       fn         PRESENCE_DoLocalPingScan
       pid        1579
       telnet     ***
       timeout    60
       abortArg:
Attributes:
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tomcat.x am 04 April 2020, 18:32:50
@ mister
adb-Zugang hast Du auf dem Stick aktiviert? Berechtigung für adb auf dem fhem Server scheint ja kein Thema zu sein, wie ich weiter oben sehe. Aber habe nicht das Ganze Thema durchgelesen um zu sehen, ob Du schon mal eine Verbindung zu einem anderen Fire TV eingerichtet hattest. Falls aktiviert: Bei mir hatte es früher auch schon mal geholfen adb auf dem FireTV aus und wieder einzuschalten.

Irgendwie erinnere ich mich auch an eine Option, die berechtigten Geräte zurückzusetzen. Die habe ich aber bei mir schon nicht wiedergefunden.

Auch eine Möglichkeit: Greifst Du mit einem anderen Gerät per adb zu?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 04 April 2020, 20:52:09
Zitat von: tomcat.x am 04 April 2020, 18:32:50
@ mister
adb-Zugang hast Du auf dem Stick aktiviert?


Ich habe testweise mit einem anderen Gerät in einemandern Netzwerk zugegriffen ja.Dort kam dann auh die Anfrage auf dem stick ob ich den zugriff gewähre. Jetzt im neuen Netzwerk mit einem anderen FHEM kommt nichts und es lässt sich auch kein Befehl auführen. Deshalb dachte ich setze ich mal de Stick komplett auf Werkseinstellungen zurückaber auch das hilft nicht

Adb habe ih aktiviert und auch schon mehrfach an und ausgechaltet.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 04 April 2020, 21:51:29
Hast du mal vom fhem Rechner aus auf der Linux-Console ein adb connect aufgerufen!?

Kommt dann die Abfrage!?
Wenn ja, dann ist ja der fhem Rechner zugelassen und es sollte gehen...

Wobei bei mir der neue FireTV-Stick 4k nicht zuverlässig funktioniert.
Da muss(te) ich öfter auf der Console kill server und connect aufrufen, also immer wieder mal...

Daher hab ich das wieder sein lassen...

Mit einem "alten" FireTV-Stick läuft es problemlos...
...ist für mich aber nicht der "wichtige" Stick und daher nur aber nur auf meinem Testsystem...


Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 05 April 2020, 20:10:34
Okay also ich komme hier nicht weiter. Es scheint ein proble it adb selbst zu sein ich glaube er ist zwar verbunden sendet aber keine befehle an de FireTV. Hab jetzt mal versucht über sh adb-download-make.sh was aber überhaupt nicht funktioniert.

root@raspberrypi:/usr/local/bin/adb# sh adb-download-make.sh

>> >>> ADB for ARM <<<


>> Downloading necessay files (android-5.1.1_r33 branch)

mkdir: cannot create directory 'android-adb': File exists
mkdir: cannot create directory 'system': File exists
adb-download-make.sh: 19: adb-download-make.sh: git: not found
adb-download-make.sh: 20: adb-download-make.sh: git: not found
mkdir: cannot create directory 'external': File exists
adb-download-make.sh: 24: adb-download-make.sh: git: not found
adb-download-make.sh: 25: adb-download-make.sh: git: not found
adb-download-make.sh: 26: adb-download-make.sh: git: not found

>> Copying makefile into system/core/adb...

cp: cannot create regular file 'system/core/adb/makefile': No such file or direc                                                                             tory
adb-download-make.sh: 34: cd: can't cd to system/core/adb/

>> Make...

make: *** No rule to make target 'clean'.  Stop.
make: *** No targets specified and no makefile found.  Stop.

>> Copying adb back into current dir...

cp: cannot stat 'adb': No such file or directory

>> FINISH!



Hat jemand noch eine Idee?

Mir fehlt im define auch den Eintrag Installed as /usr/lib/android-sdk/platform-tools/adb
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 05 April 2020, 20:30:10
Zitat von: mister am 05 April 2020, 20:10:34
Hat jemand noch eine Idee?

Mir fehlt im define auch den Eintrag Installed as /usr/lib/android-sdk/platform-tools/adb

Du hattest doch ein laufendes adb!?

Hast du mal von der Linux-Console des PI probiert!?
(evtl. besser gewesen bevor du mit einem nicht funktionafähigem "Selbstbau-adb" rumgespielt hast)

Wo hast du denn das her was du da als ROOT in die Console "geweorfen" hast!?

Hast du git installiert!?

Hast du gewusst was du tust!?
Ich hoffe: ja!
Weil einfach als ROOT irgendwas aus dem Internet in die Console werfen macht es meist nicht besser...

EDIT: ich hätte adb sowieso zuerst mal "ausprobiert" (also auf der Console, ob es tut) bevor ich das Modul definiere...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 05 April 2020, 20:51:29
Ich habe ein laufendes adb auf einem anderen Server

Ichhabe versucht adb zu Fuß zu installieren wie oben geschrieben aber das funktioniert leider nicht

verstehe einfach nicht warum es in dieser instanz nicht fumktioniert. Ich hab mir mal /usr/lib/android-sdk/platform-tools angesehen hier liegt auf meiner fuktionierenden Version 3 dateien adb packages und source auf der die nicht funktioneirt aber nur adb und auch noch eine ältere Veriosn aus 2017
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 05 April 2020, 21:07:37
Wildes Rumprobieren (noch dazu IMMER als ROOT!!) bringt doch nichts...

Du hattest doch hier das "ganz normale" adb aus dem Repository installiert!?

https://forum.fhem.de/index.php/topic,68748.msg1038551.html#msg1038551

Oder hat die Installation nicht geklappt?!

Dein selbstbau, auch dazu habe ich eine Frage gestellt: ist git installiert!? Es steht ja im Fehler: git not found...

Ich hätte halt damit (zuerst) mal auf der Console das adb nach der Installation "getestet"...

adb connect IP-TV-Stick

etc. (es gibt ja zu adb auch eine Hilfe auf der Console)...

Wenn das dann geht, hätte ich das Modul in fhem definiert...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 05 April 2020, 21:23:54
Ja genau das hatte ich installiert aber ich bekomme keine Verbindung wenn ich dann am define noch :5555 anhänge bekomme ich eine Verbdinung aber der FieTv empfängt nichts.

Deshalb habe ich von Seite 1 https://github.com/DeepSilence/adb-arm aufgerufen und probiert

Git ist installiert ich prüfe aber nochmals
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 05 April 2020, 21:33:24
Ich meinte ja auch immer noch nicht mit dem Modul sondern auf der Linux Console!

adb connect IP-TV-Stick

z.B.

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 05 April 2020, 21:38:37
Ah sry das hatte ich missverstanden.

Üer die console kann ich connecten
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 05 April 2020, 22:07:27
Zitat von: mister am 05 April 2020, 21:38:37
Ah sry das hatte ich missverstanden.

Üer die console kann ich connecten

Vom fhem Rechner aus!?

Kommt/kam da das Bestätigen beim TV-Stick!?

EDIT: weil damit wäre dann ja der fhem-Rechner (also dessen MAC [glaube ich wird "registriert"]) als erlaubtes Gerät gelistet... So hab ich das "damals" machen müssen/bzw. gemacht... Aber (wie auch schon geschrieben): mit dem neuen FireTV-Stick 4k hat es nie so richtig zuverlässig funktioniert (zumindest nach irgendeinem FW-Update)... Mit einem "alten" (V2 oder so) FireTV-Stick habe ich keine Probleme...

Was liefert:


adb devices


Und was:


which adb


EDIT: kannst du da auch Befehle absetzen, z.B. "Home":

adb shell input keyevent 3


Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 06 April 2020, 18:39:39
sry hatte gestern keine Zeit mehr

Auf dem Raspberry bekomme ich genau wie befürchtet mit

adb connect 192.168.100.37:5555 connected to 192.168.100.37:5555


adb devices
192.168.100.37:5555     unauthorized


which adb
/usr/bin/adb


Wenn ich das richtig verstehe fehlt im schlicht die Freigabe also dieses Fenster auf dem FireTV zur freigabe das über adb von diesem PC befehle akzeptiert werden. Genau DAS kommt einfach nicht
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 06 April 2020, 19:09:05
Hast du mal kill server ausgeführt (oder auch ein disconnect)...

Dann am FireTV-Stick mal adb-Debugging deaktiviert...
...neu gestartet...

adb Degugging wieder aktiviert und dann noch mal connect!?

Welchen FireTV-Stick hast du!?

Den 4k?
Damit hatte ich auch so meine "Probleme"...
...bis ich dann beschlossen haben es sein zu lassen... :-\

Wenn du es von der Console geschafft hast, dann ist auf jeden Fall schon mal der PI "genehmigt"...
...dann sollte auch das fhem Modul gehen...

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 07 April 2020, 10:25:34
ADB server über die Konsole killen
ADB connect ausführen, wie in dem Beitrag zuvor

Glücklich sein...

Gesendet von meinem LM-G810 mit Tapatalk

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: mister am 09 April 2020, 12:46:14
wollte nur berichten hat genau so funktioniert.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: 87insane am 09 April 2020, 12:46:39
Danke

Gesendet von meinem LM-G810 mit Tapatalk

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 09 April 2020, 13:05:37
Sag(te) ich doch... ;)

Mich würde noch interessieren "welcher" TV-Stick...
...und hören wollen, ob es auch länger gut bleibt...

Weil wenn 4k und ja, dann probiere ich's (vielleicht) auch noch mal... :)

Viel Spaß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: kjmEjfu am 06 Mai 2020, 19:27:06
Wer übrigens damit kämpft, dass der ADB-Server nicht starten will, und unter Buster unterwegs ist, der sollte sich mal https://stackoverflow.com/questions/61299677/why-is-my-android-folder-not-automatically-generating-the-adbkey-and-other-file anschauen.
Buster hat nämlich in der aktuellen Version einen Fehler drin, dadurch werden keyfiles nicht generiert. Ohne die Keyfiles kann der Server nicht starten.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Toto1973 am 19 Mai 2021, 10:33:55
Ich habe folgendes Problem:
Unter ADBVERSION wird mir Permission denied angezeigt. Kann man das irgendwie freischalten?
Wenn ja, wie?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tomcat.x am 19 Mai 2021, 13:20:32
Je nach verwendeter Plattform/User/Berechtigung: Hast Du in der Geräte-Definition "sudo" ergänzt und sudo ohne Kennwort für den User fhem insudoers/sudoers.d erlaubt?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: Ryker am 07 Dezember 2021, 11:41:58
Ich hab seit Kurzem den FireTV-Stick-4k-MAX.
Im Prinzip funktioniert das FireTV-Modul auch hier. Nur er zeigt mir nicht mehr an welche Packages installiert sind - also "get firetv packages" liefert nicht zurück. Demzufolge geht auch nichts, was darauf aufsetzt wie z.b. "set firetv appstart xxxxx"
Ist das ein Problem vom Modul, oder liefert da die FireTV wirklich nichts mehr über ADB ?

Ryker
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 07 Dezember 2021, 11:56:29
Zitat von: Ryker am 07 Dezember 2021, 11:41:58
Ich hab seit Kurzem den FireTV-Stick-4k-MAX.
Im Prinzip funktioniert das FireTV-Modul auch hier. Nur er zeigt mir nicht mehr an welche Packages installiert sind - also "get firetv packages" liefert nicht zurück. Demzufolge geht auch nichts, was darauf aufsetzt wie z.b. "set firetv appstart xxxxx"
Ist das ein Problem vom Modul, oder liefert da die FireTV wirklich nichts mehr über ADB ?

Ryker

Habe mir bei Amazon den Cube "geschossen": ist da genauso...

Mit dem FireTV-Stick 4K ging das noch, wobei da die Verbindung generell "instabil" war...
...scheint jetzt besser zu sein, dafür eben keine Pakete.
(irgendwas ist halt immer ;)  )

Aber: wenn du weißt wie das Paket heißt, dann kannst du das auch einfach manuell/per Kommando setzen.


set FireTV appstart Paketname


Also: Paket/App starten, abfragen "get FireTV currentapp" (geht bei mir noch) -> Paketname :)

Gruß, Joachim
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 29 Oktober 2022, 23:08:25
Hallo zusammen,

mal ne dumme Frage: läuft das Modul aktuell noch richtig? Es scheint seit längerer Zeit nicht mehr (weiter)entwickelt worden zu sein.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tomcat.x am 31 Oktober 2022, 08:25:26
Also bei mir funktioniert es zumindest noch, um Apps auf dem FireTV zu starten und zu stoppen. Für die eigentliche Bedienung nutze ich eine Harmony.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 31 Oktober 2022, 09:57:16
OK, gut zu wissen. Die Hauptanwendung wäre für mich, den FireTV überhaupt einzuschalten, so dass ein "Alexa, Fernseher an" direkt z.B. ARD abspielt. Irgendwie bekomme ich das mit "Bordmitteln" leider nicht hin.
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tomcat.x am 01 November 2022, 09:31:17
Genau das (Fernsehen aktivieren plus auf ARD schalten) hatte ich auch schon gemacht, allerdings komplett über fhem. Also die Fernseh-App gestartet plus Sender ausgewählt.

Wirklich aus ist der FireTV aber doch nie oder hat sich da mit den letzten Versionen etwas geändert?
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 01 November 2022, 10:02:59
Ok, dann werde ich das Modul mal ausprobieren!

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.

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;))
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 01 November 2022, 10:31:06
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
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag 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;)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 01 November 2022, 11:03:38
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
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 01 November 2022, 12:27:04
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;)

Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 01 November 2022, 12:31:30
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...
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 01 November 2022, 12:38:19
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...
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag 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)

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...
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 01 November 2022, 13:39:56
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
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 01 November 2022, 18:51:10
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;)
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: MadMax-FHEM am 01 November 2022, 18:56:18
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
Titel: Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: maddhin am 01 November 2022, 19:23:57
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...
Titel: Automatisches Kamerastreaming mit VLC
Beitrag von: Tillersen am 19 August 2023, 09:19:21
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


Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: bertl am 11 Januar 2024, 15:27:36
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.


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

 
Hier das modifizierte Modul 98_FireTV.pm - Vielleicht hilft es ja jemanden!

Schönen Tag
Robert
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: bertl am 15 Januar 2024, 09:30:36
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 98_FireTV.pm !

Schönen Tag
Robert
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: ph1959de am 15 Januar 2024, 13:12:27
@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
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: carlos am 16 Januar 2024, 21:16:55
Ein Problem gibt es hier noch.
Das Modul benutzt das aktuelle 73_PRESENCE.pm aus dem svn.
Es gibt jedoch ein Überarbeitetes Presence Modul (https://forum.fhem.de/index.php?topic=117007.0) das ich (andere auch denke ich) gerne einsetzen würde.
Es handelt sich um folgenden Aufruf:

PRESENCE_StartLocalScan($hash, 1);

Ich habe im Moment die Zeile auskommentiert, denn sonst stürzt FHEM einfach ab, weil die Routine nicht geladen ist.

Evtl kann man das ja anders implementieren.

Gruß

Hubert
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: tomcat.x am 17 Januar 2024, 14:34:53
Das neue Presence Modul nutze ich noch nicht, war aber schon mal dran und bin über das gleiche Problem gestolpert. Habe es auch auf gleiche Weise gelöst und keine Probleme festgestellt. Die Presence Funktion im FireTV Gerät fand ich schon immer komisch und nutze das nicht. Wenn man die Presence des FireTV-Geräts prüfen möchte, kann man das auf gleiche Weise wie bei anderen Geräten machen oder?

@ carlos: Würde Dir etwas fehlen oder könnte es auch aus Deiner Sicht einfach raus?
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: carlos am 17 Januar 2024, 14:44:09
Fehlen würde mir hier jetzt nichts.
Wenn es raus kann, dann ist es ok für mich.
Ich konnte nur nicht beurteilen, ob es irgendwelche Auswirkungen im module hat.
Und ja, die Presence meines FireTVs kann ich ja mit dem Presence module auch machen.

Aus meiner Sicht raus mit der Abhängigkeit.
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: bertl am 22 Januar 2024, 16:56:07
Hallo FireTV nutzer!

Ich habe dieses Modul jetzt ziemlich stark überarbeitet und PRESENCE gänzlich entfernt.
Dabei habe ich 'versucht', den Overload (zu viele und zu häufige adb-Aufrufe) zu vermeiden und trotzdem dem Konzept von @nesges treu zu bleiben.

Einfach mal ausprobieren und eure Erfahrungen bzw. Probleme damit mitteilen.

Hier das überarbeitete Modul 98_FireTV.pm

Schönen Tag
Robert
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: matze1999 am 28 Januar 2024, 16:41:24
Hallo,

ich hab mal eine Frage:

was müsste bei:

set FIRETV text Test
passieren?

matze1999
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: bertl am 28 Januar 2024, 17:42:32
Der eingegebene Text 'Test' wird im Suchfeld übernommen/angezeigt!

Also, gehe am FireTV auf suchen und dann gib den Befehl in FHEM ein.
Dieser sollte dann im Suchfeld angezeigt werden.
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: matze1999 am 04 Februar 2024, 14:53:58
Hallo,

ich hab das hier (https://forum.fhem.de/index.php?topic=136940.0) schon mal gefragt, aber ich denke das ist eher dieses Modul.

2024.02.04 14:49:37 1: PERL WARNING: Use of uninitialized value $seconds in concatenation (.) or string at ./FHEM/73_PRESENCE.pm line 1211.
2024.02.04 14:49:37 1: eval: {PRESENCE_ProcessLocalScan('FIRETVCube|0|present')}
2024.02.04 14:49:37 1: stacktrace:
2024.02.04 14:49:37 1:     main::__ANON__                      called by ./FHEM/73_PRESENCE.pm (1211)
2024.02.04 14:49:37 1:     main::PRESENCE_ProcessLocalScan     called by (eval 3907794) (1)
2024.02.04 14:49:37 1:     (eval)                              called by fhem.pl (1177)
2024.02.04 14:49:37 1:     main::AnalyzePerlCommand            called by fhem.pl (1206)
2024.02.04 14:49:37 1:     main::AnalyzeCommand                called by fhem.pl (1133)
2024.02.04 14:49:37 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (263)
2024.02.04 14:49:37 1:     main::telnet_Read                   called by fhem.pl (3985)
2024.02.04 14:49:37 1:     main::CallFn                        called by fhem.pl (786)
2024.02.04 14:49:37 1: PERL WARNING: Use of uninitialized value $seconds in addition (+) at ./FHEM/73_PRESENCE.pm line 1214.
2024.02.04 14:49:37 1: eval: {PRESENCE_ProcessLocalScan('FIRETVCube|0|present')}
2024.02.04 14:49:37 1: stacktrace:
2024.02.04 14:49:37 1:     main::__ANON__                      called by ./FHEM/73_PRESENCE.pm (1214)
2024.02.04 14:49:37 1:     main::PRESENCE_ProcessLocalScan     called by (eval 3907794) (1)
2024.02.04 14:49:37 1:     (eval)                              called by fhem.pl (1177)
2024.02.04 14:49:37 1:     main::AnalyzePerlCommand            called by fhem.pl (1206)
2024.02.04 14:49:37 1:     main::AnalyzeCommand                called by fhem.pl (1133)
2024.02.04 14:49:37 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (263)
2024.02.04 14:49:37 1:     main::telnet_Read                   called by fhem.pl (3985)
2024.02.04 14:49:37 1:     main::CallFn                        called by fhem.pl (786)

73_PRESENCE erwartet etwas, was es nicht bekommt.

matze1999

Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: JoWiemann am 04 Februar 2024, 15:03:21
Zitat von: matze1999 am 04 Februar 2024, 14:53:58Hallo,

ich hab das hier (https://forum.fhem.de/index.php?topic=136940.0) schon mal gefragt, aber ich denke das ist eher dieses Modul.

2024.02.04 14:49:37 1: PERL WARNING: Use of uninitialized value $seconds in concatenation (.) or string at ./FHEM/73_PRESENCE.pm line 1211.
2024.02.04 14:49:37 1: eval: {PRESENCE_ProcessLocalScan('FIRETVCube|0|present')}
2024.02.04 14:49:37 1: stacktrace:
2024.02.04 14:49:37 1:     main::__ANON__                      called by ./FHEM/73_PRESENCE.pm (1211)
2024.02.04 14:49:37 1:     main::PRESENCE_ProcessLocalScan     called by (eval 3907794) (1)
2024.02.04 14:49:37 1:     (eval)                              called by fhem.pl (1177)
2024.02.04 14:49:37 1:     main::AnalyzePerlCommand            called by fhem.pl (1206)
2024.02.04 14:49:37 1:     main::AnalyzeCommand                called by fhem.pl (1133)
2024.02.04 14:49:37 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (263)
2024.02.04 14:49:37 1:     main::telnet_Read                   called by fhem.pl (3985)
2024.02.04 14:49:37 1:     main::CallFn                        called by fhem.pl (786)
2024.02.04 14:49:37 1: PERL WARNING: Use of uninitialized value $seconds in addition (+) at ./FHEM/73_PRESENCE.pm line 1214.
2024.02.04 14:49:37 1: eval: {PRESENCE_ProcessLocalScan('FIRETVCube|0|present')}
2024.02.04 14:49:37 1: stacktrace:
2024.02.04 14:49:37 1:     main::__ANON__                      called by ./FHEM/73_PRESENCE.pm (1214)
2024.02.04 14:49:37 1:     main::PRESENCE_ProcessLocalScan     called by (eval 3907794) (1)
2024.02.04 14:49:37 1:     (eval)                              called by fhem.pl (1177)
2024.02.04 14:49:37 1:     main::AnalyzePerlCommand            called by fhem.pl (1206)
2024.02.04 14:49:37 1:     main::AnalyzeCommand                called by fhem.pl (1133)
2024.02.04 14:49:37 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (263)
2024.02.04 14:49:37 1:     main::telnet_Read                   called by fhem.pl (3985)
2024.02.04 14:49:37 1:     main::CallFn                        called by fhem.pl (786)

73_PRESENCE erwartet etwas, was es nicht bekommt.

matze1999



Hallo Matze,

das ist eine interner Aufruf einer Sub durch das FireTV Modul. Mir ist nicht klar warum das so gemacht worden ist. Bitte poste nochmal ein List vom FireTV Device.

Grüße Jörg
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: bertl am 04 Februar 2024, 15:30:14
Zitat von: bertl am 22 Januar 2024, 16:56:07Hier das überarbeitete Modul [url="https://forum.fhem.de/index.php?action=dlattach;attach=175845;type=preview;file"]98_FireTV.pm[/url]

Ich habe in dieser überarbeiteten Version  sämtliche PRESENCE Aufrufe entfernt und einige Fehler ausgebessert.

Einfach mal probieren.
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: JoWiemann am 04 Februar 2024, 16:04:21
Zitat von: matze1999 am 04 Februar 2024, 14:53:5873_PRESENCE erwartet etwas, was es nicht bekommt.

matze1999


Hallo Matze,

hier: https://forum.fhem.de/index.php/topic,83805.msg817958.html#msg817958 findest Du den Grund.

Anbei die 98_FireTV, in der ich das für Dich korrigiert habe.

Grüße Jörg
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: matze1999 am 04 Februar 2024, 16:28:23
Hallo,

super, danke, damit sind die Meldungen im log verschwunden.

matze1999
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: matze1999 am 08 Februar 2024, 11:26:24
Hallo, nach einem Update war der Fehler wieder da, das o.g. neue modul ist noch nicht per Update verfügbar, oder?

matze1999
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: bertl am 08 Februar 2024, 12:20:55
Hallo Matze,

ich habe das Update über FHEM wieder entfernt (update delete https://raw.githubusercontent.com/nesges/Fhem-Modules/master/controls_nesges-fhem-modules.txt), da nesges leider keinerlei Änderungen, Verbesserungen, ... mehr einpflegt bzw. darauf reagiert.

Wie gesagt, sämtliche hier diskutierten Änderungen und Verbesserungen wurden in der von mir geposteten Version eingepflegt und das PRESENCE-Modul entfernt - bei mir funktioniert das überarbeitete Modul einwandfrei. 98_FireTV.pm

Gruß, Robert
Titel: Aw: 98_FireTV: Fernbedienung eines Amazon FireTV per adb
Beitrag von: matze1999 am 08 Februar 2024, 14:46:30
Hallo,

ja, das geänderte Modul funktioniert super, ich hab es jetzt vom update ausgeschlossen.

Danke,

matze1999