[ AMAD2 - obsolete] 74_AMAD.pm zur Steuerung eines Androidgerätes

Begonnen von CoolTux, 02 März 2016, 11:14:41

Vorheriges Thema - Nächstes Thema

viegener

Ein Beispiel ist folgendes:

"Achtung: <pause 1-2sec> Haustür steht offen."

Ich hatte das Gefühl ein Komma erzeugt eine (kurze) Pause, aber mehrere Kommas haben (zumindest bei meinen Tests) keine längeren Pausen erzeugt.

Habe gerade keinen Zugriff aufs System, um das zu probieren,
Johannes

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

Genau das selbe habe ich auch. Mache es immer so.

Achtung! Fenster offen.

Oder halt wirklich mit sleep.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hillbicks

Ich kann das mit dem deviceState offline leider reproduzieren. Es handelt sich hierbei um ein odroid C2 mit Android 5.1. Sobald ich das Haus verlasse, fahre ich den Odroid runter und er wird erst wieder gestartet sobald der Anwesenheitsstatus wieder auf Home gesetzt wird.

Das Geraet steht dann zwar auf active und ich sehe auch das einige der Attribute wieder befuellt werden, bzw. einen aktuellen Zeitstempel haben (flow_SetCommands, flow_informations, lastStatusRequestState um ein paar zu nennen). Der deviceStatus bleibt allerdings auf offline stehen. Ich kann jetzt zwar in den Anwesenheitsflow "Home" ein set odroid deviceState onlone setzen, aber das ist ja irgendwie nicht Sinn und Zweck der Uebung :D

Brauchst Du hier noch logs vom Start mit verbose 5 um das besser beurteilen zu koennen, oder ist das erwartetes Verhalten?

CoolTux

Zitat von: hillbicks am 03 Mai 2016, 18:59:33
Das Geraet steht dann zwar auf active und ich sehe auch das einige der Attribute wieder befuellt werden, bzw. einen aktuellen Zeitstempel haben (flow_SetCommands, flow_informations, lastStatusRequestState um ein paar zu nennen). Der deviceStatus bleibt allerdings auf offline stehen. Ich kann jetzt zwar in den Anwesenheitsflow "Home" ein set odroid deviceState onlone setzen, aber das ist ja irgendwie nicht Sinn und Zweck der Uebung :D

Doch genau das ist Sinn und Zweck der Übung. Der Gedanke ist immer noch so das wenn das Gerät auf offline steht es keine set Befehle mehr ausführt, was Ressourcen spart. Aber ob und wie offline/online gesetzt wird überlasse ich dem User. Einzig 3 Dinge sorgen für eine automatische Umstellung. 1. Das Gerät wird mittels shutdown über FHEM runtergefahren. 2. Der Airplainmod (Flugmodus) wird über FHEM aktiviert. 3. Es wurde mehr wie 5 mal ein statusRequest erfolglos und mehr wie 3 mal ein set Command erfolglos abgeschickt.

Noch mal zum manuellen setzen. Ich setze alle Handys über das presence Modul bei absent offline und bei present wieder online. set Handy deviceState blabla



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hillbicks

Danke fuer die Erklaerung, das hatte ich bisher einfach nicht finden koennen.

Argumentation kann ich nachvollziehen und ist ja auch kein Ding das so entsprechend einzurichten. :)

CoolTux

Werde da mal eine eigene Sektion im AMAD Wikieintrag für machen. Oder ein anderer netter Mitwirkender findet sich   ;)


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hillbicks

./done

Ich hab jetzt erstmal die STATE Sektion entsprechend um online und offline erweitert. Die entsprechende Erklärung hattest Du ja im Grunde schon geliefert. Kannst ja mal gucken ob das so passt :)

http://www.fhemwiki.de/wiki/AMAD2#STATE

btw. Hattest Du meinen Kommentar bzgl. Spotify gesehen? Reicht Dir das als Info? Funktioniert letztendlich genauso wie Google Play, es braeuchte dann vermutlich nur noch einen Parameter fuer den Player ansich.

CoolTux

Unterhalb von State ist es falsch. Da kommt nur das hin was das Reading state und/oder das Internal STATE liefert. Sorry.

Das mit Spotify habe ich gesehen. Ich schaue es mir die Tage mal an. Eventuell geht es wirklich ganz einfach.
Du kannst aber auch mal testen. Suche zum Beispiel unter SetCommands Flow den Eintrag für play Media. Editiere ihn so das du den Haken entfernst bei an angegebene App senden und öffne Spotify. Versuche nun ob du play über FHEM machen kannst
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hillbicks

 ??? Du hast natuerlich Recht. Ich hab stattdessen eine devicestate Sektion unterhalb von State angelegt und online und offline dahin gepackt.
http://www.fhemwiki.de/wiki/AMAD2#deviceState

Das mit Spotify hatte ich schon probiert. In der entsprechenden Sektion die beiden Optionen geandert und anschliessend von fhem aus die Befehle gesendet. Funktionierte einwandfrei, allerdings habe ich nur exemplarisch Play probiert.

Ich könnte Dir anbieten den kompletten Mediaplayer Flow von Google Play auf Spotify zu aendern, dann kannst Du die Sektionen zumindest schonmal da rauskopieren. Ich lade das dann spaeter hier hoch wenn ich es fertig getestet und umgebaut habe.

CoolTux

Das ist nett aber mach Ydir erstmal nicht die Mühe. Ich glaube man kann die Mediaaktionen für alles versuchen zu nehmen. Ich schaue gerade
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hillbicks

Alles klar, aber kein Stress :)

Getestet habe ich grade. Alle 4 Funktionen, play, stop, next und back funktionieren mit Spotify und den entsprechenden Einstellungen.


CoolTux

Ich habe es gerade mal getestet. Leider geht es als Allgemein nicht, bei mir geht es nur wenn ich eine App mit angebe. Ohne App Angabe spielt er immer wieder GooglePlayMusic
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Zitat von: viegener am 03 Mai 2016, 16:41:29
Ein Beispiel ist folgendes:

"Achtung: <pause 1-2sec> Haustür steht offen."

Ich hatte das Gefühl ein Komma erzeugt eine (kurze) Pause, aber mehrere Kommas haben (zumindest bei meinen Tests) keine längeren Pausen erzeugt.

Habe gerade keinen Zugriff aufs System, um das zu probieren,
Johannes

Gerade nochmal getestet: Ein Komma erzeugt eine kleine Pause. Die Satzzeichen erzeugen wohl keine Pause (zumindest nicht immer).
Mehrere Kommas erzeugen aber keine längere Pause

Habe noch einiges an anderen Zeichen ausprobiert, aber ein wirkliches "Pausenzeichen" gibt es wohl nicht.

Bei mehreren Aufrufen muss man nichtmal ein sleep verwenden, denn es dauert sowieso ein paar Sekunden ;)

Die einzige Idee, um eine relativ kurze Pause hinzubekommen wäre also wenn ich das im flow realisieren würde.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hillbicks

Zitat von: CoolTux am 03 Mai 2016, 22:10:24
Ich habe es gerade mal getestet. Leider geht es als Allgemein nicht, bei mir geht es nur wenn ich eine App mit angebe. Ohne App Angabe spielt er immer wieder GooglePlayMusic

Ich glaube wir haben da aneinander vorbei geredet, ich hab bei meinem Test den die Mediabutton Flows fuer die jeweilige Aktion geaendert damit es mit Spotify funktioniert.

PackageName: com.spotify.music
Class Name: com.spotify.mobile.android.service.MediaButtonReceiver

Deswegen meinte ich das man zusaetzlichen Parameter den Player mit uebergibt und dann im Flow fuer die 4 Aktionen nochmal abfragt welcher Player uebergeben wurde und dann in die jeweilige Aktion laeuft. ;)

CoolTux

Ja ich fürchte anders wird es auch nicht gehe. Was hältst Du von

set Nexus7Wohnzimmer mediaPlayer spotify play

Ich habe überlegt dafür einen eigenen MediaPlayeControl Flow zu machen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net