98_FireTV: Fernbedienung eines Amazon FireTV per adb

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

Vorheriges Thema - Nächstes Thema

BillyPbg

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

nesges

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.

xanker

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
Maintainer vom flex Style.
Intel NUC mit fhem in Docker Container | Homematic | SIGNALduino 433MHz | HUE Bridge | Harmony HUB | lepresenced | alexa-fhem ...

nesges

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

Sieht gut aus, vielen Dank!

nesges

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

Hauswart

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.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

nesges

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.

BillyPbg

Hallo NESGES,

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

VG.
BillyPbg

@Dank auch an XANKER für seine Mitarbeit.

BillyPbg

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

BillyPbg

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

nesges

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.

nesges

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 ;-)

BillyPbg

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)

Hauswart

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.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

nesges

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.