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

Offline Clyde

  • Jr. Member
  • **
  • Beiträge: 97
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: 766
    • 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: 1685
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: 766
    • 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: 1685
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: 766
    • 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: 1685
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