Autor Thema: 98_FireTV: Fernbedienung eines Amazon FireTV per adb  (Gelesen 4927 mal)

Offline Clyde

  • Jr. Member
  • **
  • Beiträge: 98
screen-state aktualisieren
« Antwort #60 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?
Cubietruck, CUL868, HM-USB-CFG2
FS20, FHT, KS300, HM

Offline nesges

  • Sr. Member
  • ****
  • Beiträge: 767
    • FTUI Live Demo
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #61 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.

Offline Markus M.

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1792
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #62 am: 17 Juli 2017, 10:14:43 »
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.

Der Refresh hatte doch eigentlich schon gepasst, nur das Event abzufeuern hat nicht funktioniert.
Verursacht das jetzt zusätzliche Abfragen?
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7490 + FRITZ!Powerline 546E

HM Aktoren/Sensoren/Winmatic/Keymatic/Thermostate, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony
https://paypal.me/mm0

Offline nesges

  • Sr. Member
  • ****
  • Beiträge: 767
    • FTUI Live Demo
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #63 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

Offline Markus M.

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1792
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #64 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.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7490 + FRITZ!Powerline 546E

HM Aktoren/Sensoren/Winmatic/Keymatic/Thermostate, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony
https://paypal.me/mm0

Offline nesges

  • Sr. Member
  • ****
  • Beiträge: 767
    • FTUI Live Demo
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #65 am: 17 Juli 2017, 13:38:32 »
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!

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

Wie ist's richtig?

Offline Markus M.

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1792
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #66 am: 17 Juli 2017, 14:13:52 »
Wie ist's richtig?

Einfach nur ins state Reading.
Sonst überschreibst du was auch immer der User in stateFormat festgelegt hat.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7490 + FRITZ!Powerline 546E

HM Aktoren/Sensoren/Winmatic/Keymatic/Thermostate, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony
https://paypal.me/mm0

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 2204
  • Niveau ist keine Creme...
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #67 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
FHEM 5.8 Pi 2, HM-CFG-USB2, 8x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-WDS10-TH-O, 1x HM-DIS-WM55
FHEM 5.8 PI B+, HM-CFG-USB2, 7x HM-CC-RT-DN, 3x HM-TC-IT-WM-W-EU, 4x HM-Sec-SCo
FHEM 5.8 PI 2 (Testsystem), CUL868, 1x HM-TC-IT-WM-W-EU, 1x HumTempESP8266, 1x mySensorsFillingLevel

Offline enno

  • Full Member
  • ***
  • Beiträge: 131
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #68 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
FHEM@CUBIETRUCK (einer Live und der zweite als Testsystem), FS20, Homematic, 1-Wire, Somfy Tahoma, Buderus RC300, Yamaha HTR-4068, Helios EC500W, Lightify, Fritzbox, MPD

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 2204
  • Niveau ist keine Creme...
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #69 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
« Letzte Änderung: 25 August 2017, 13:23:49 von MadMax-FHEM »
FHEM 5.8 Pi 2, HM-CFG-USB2, 8x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-WDS10-TH-O, 1x HM-DIS-WM55
FHEM 5.8 PI B+, HM-CFG-USB2, 7x HM-CC-RT-DN, 3x HM-TC-IT-WM-W-EU, 4x HM-Sec-SCo
FHEM 5.8 PI 2 (Testsystem), CUL868, 1x HM-TC-IT-WM-W-EU, 1x HumTempESP8266, 1x mySensorsFillingLevel

Offline Laire

  • Jr. Member
  • **
  • Beiträge: 53
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #70 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.

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 2204
  • Niveau ist keine Creme...
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #71 am: 27 August 2017, 19:01:03 »
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
FHEM 5.8 Pi 2, HM-CFG-USB2, 8x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-WDS10-TH-O, 1x HM-DIS-WM55
FHEM 5.8 PI B+, HM-CFG-USB2, 7x HM-CC-RT-DN, 3x HM-TC-IT-WM-W-EU, 4x HM-Sec-SCo
FHEM 5.8 PI 2 (Testsystem), CUL868, 1x HM-TC-IT-WM-W-EU, 1x HumTempESP8266, 1x mySensorsFillingLevel

Offline enno

  • Full Member
  • ***
  • Beiträge: 131
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #72 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
FHEM@CUBIETRUCK (einer Live und der zweite als Testsystem), FS20, Homematic, 1-Wire, Somfy Tahoma, Buderus RC300, Yamaha HTR-4068, Helios EC500W, Lightify, Fritzbox, MPD

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 2204
  • Niveau ist keine Creme...
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #73 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
FHEM 5.8 Pi 2, HM-CFG-USB2, 8x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-WDS10-TH-O, 1x HM-DIS-WM55
FHEM 5.8 PI B+, HM-CFG-USB2, 7x HM-CC-RT-DN, 3x HM-TC-IT-WM-W-EU, 4x HM-Sec-SCo
FHEM 5.8 PI 2 (Testsystem), CUL868, 1x HM-TC-IT-WM-W-EU, 1x HumTempESP8266, 1x mySensorsFillingLevel

Offline AmunRe

  • Full Member
  • ***
  • Beiträge: 198
Antw:98_FireTV: Fernbedienung eines Amazon FireTV per adb
« Antwort #74 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.


Zitat
Internals:
   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
FHEm 5.8 , 3 x Echo Dot, 1x Echo, HMLAN Gateway, und diverse HM Komponenten, Philips Hue, Osram Lightify Gateway + Plugs