[ VERSION 1.2.0 ] 74_AMAD.pm zur Steuerung eines Androidgerätes

Begonnen von CoolTux, 07 August 2015, 09:39:01

Vorheriges Thema - Nächstes Thema

CoolTux

Guten Morgen FHEM User,

Seit vielen Wochen beschäftige ich mich nun mit der Möglichkeit, meine Androidgeräte mit FHEM zu steuern und Informationen von ihnen in FHEM darzustellen.
Da mich die bisherigen Lösungen nicht wirklich zufrieden gestellt haben, habe ich begonnen ein Modul zu schreiben welches mir diese Möglichkeiten bieten sollte. Daraus entstand nun AMAD (Automagic Android Device). Das eigentliche Herzstück ist die AndroidAPP Automagic (welche nicht von mir stammt und 2.90 Euro kostet). Diese App funktioniert wie Tasker, ist aber bei weitem User freundlicher.


Das Modul und das Flowset gibt es ab sofort über FHEM Update
Zum Wikieintrag


Letztes Changelog
Version 1.2.0

  • neues Reading airplanemode
  • neue SetCommand system:shutdown
  • neues SetCommand system:airplainemode
  • neues SetCommand vibrate
  • Bug Fixes
  • Code Säuberung

Version 1.0.0

  • neues Reading androidVersion
  • Spracheingabe wurde integriert
  • über ein HTTP Request von Automagic aus kann man eine ReadingsVal Abfrage mit Response zum auswerten starten
  • bei einem set DEVICE notifySndFile RedAlert.mp3 wird automatisch auf volle Notifylautstärke gestellt. Thema Alarmanlage
  • Bug Fixes
  • Code Säuberung

Version 0.8.3

  • bugfix:  74_AMAD: Bessere Variante zur HTTP Headeranalyse, Code aufgeräumt

Version 0.8.2

  • bugfix:  74_AMAD: fix AMADCommBridge communication problem with Automagic 1.29

Version 0.8.1

  • updated: 74_AMAD: New Mijor Release 0.8.1
  • bugfix:  74_AMAD: fix call statusRequest then screen off is set
                                   fix change room then device modify
  • feature: 74_AMAD: insert first code parts of voice input


Möchte mich noch bedanken.
Der größte Dank geht an meinen Mentor Andre (justme1968), er hat mir mit hilfreichen Tips geholfen Perlcode zu verstehen und Spaß am programmieren zu haben.
Auch möchte ich mich bei Jens bedanken (jensb) welcher mir ebenfalls mit hilfreichen Tips bei meinen aller ersten Gehversuchen beim Perlcode schreiben unterstützt hat.
So und nun noch ein besonderer Dank an pah (Prof. Dr. Peter Henning ), ohne seine Aussage "Keine Ahnung hatten wir alle mal, das ist keine Ausrede" hätte ich bestimmt nicht angefangen Interesse an Modulentwicklung zu zeigen :-)
Danke auch an Ronny(RoBra81) für seine tollte Idee und Umsetzung von eigenen AMAD Readings aus externen Flows. DANKE
Danke an Jürgen der sich um die Übersetzung der Commandref ins Englische gekümmert hat und hoffentlich weiter kümmern wird



Anwendungsbeispiele:
Ich habe die Ladegeräte für meine Androidgeräte an Funkschaltsteckdosen. ein DOIF schaltet bei unter 30% die Steckdose ein und bei über 90% wieder aus.
Morgens lasse ich mich über mein Tablet im Schlafzimmer mit Musik wecken. Verwendet wird hierzu der wakeuptimer des RESIDENTS Modules. Das abspielen stoppe ich dann von Hand. Danach erfolgt noch eine Ansage wie das Wetter gerade ist und wird.
Mein 10" Tablet im Wohnzimmer ist Mediaplayer für das Wohnzimmer mit Bluetoothlautsprechern. Die Lautstärke wird automatisch runter gesetzt wenn die Fritzbox einen Anruf auf das Wohnzimmer Handgerät signalisiert.



Nun aber viel Spaß mit dem AMAD FHEM Modul


Grüße
Leon


Wie geht es nun weiter?
Ganz klar, ich werde zusammen mit Eurer Hilfe am Modul weiter entwickeln. Hierfür brauche ich Wünsche, Ratschläge und Fehlermeldungen.
Wie entwickel ich weiter?
In erster Linie steht für mich der Spaß mit dem Modul im Fordergrund. Abstürze oder Hänger vermindern diesen und bringen schnell Frust. Daher ist die oberste Priorität immer zu erst einmal die Fehler zu beseitigen.
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

Doggiebert

cool, damit kann ich das Lade- und Displaymanagement von meinem FHEM-Displaygerät machen.  8)

P.S.:  Zefix, wie soll ich denn da mal in einen finalen SmartHome-Status kommen, wenn hier ständig neue interessante Module und Ideen daherkommen... >:(
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

kvo1

Hallo CoolTux,

coole Idee, werde ich bei Gelegenheit mal testen , Danke  ;)
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

CoolTux

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

DJ_SAMMY190

Werde es wenn ich zeit hab nachher mal draufklatschen. In 2 Wochen kommt mein 10" für die Wand also perfekt um es mit dem nexus jetzt zu testen.

Gesendet von meinem Z30 mit Tapatalk

FHEM auf Raspberry Pi 2 b mit Homematic Komponenten

DJ_SAMMY190

so eben mal testen mit der Demo.
So sieht es schoneinmal echt schick aus. Respekt^^
Dank Testversion nur 3 flows. diese gehen aber.
Wenn man deviceState setzt ist es dann groß geschrieben, und tauchen 2 auf.
Versuch mal überall Kleinschreibung. Wenn das 10" dann da ist gibts mehr^^

DeviceState - online - 2015-08-07 11:48:56
deviceState - online - 2015-08-07 11:47:14
FHEM auf Raspberry Pi 2 b mit Homematic Komponenten

CoolTux

#6
Hi DJ_SAMMY190

Vielen Dank für den ersten kleinen Test.
Also das Reading sollte deviceState heißen und eigentlich automatisch angelegt werden beim anlegen des Devices. Standard bei der erstinitialisierung ist der Wert auf "online".
Willst Du den Wert ändern musst Du das über das setreading machen und dabei auf die genaue Schreibweise achten.


Gruß
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

marvin78

Nettes Modul. Danke dafür.

Ich habe es kurz angetestet und natürlich prompt einen Zahlendreher im Port gehabt. Versucht man dann einen Befehl zu senden, stürzt FHEM ohne Kommentar ab. Ich nehme zwar an, dass ist dir bewusst, da du oben schon auf den korrekten Port hinweist, ich dachte, ich erwähne es trotzdem.

CoolTux

Hallo Marvin,

Ich danke Dir für den Hinweis. Ehrlich gesagt wusste ivch das nicht. Gut das Du es so getestet hast  :D . Ich schaue es mir die Tage mal genau an, sowas darf nie passieren. Das Modul kann gerne abstürzen, aber ich persönlich hasse es wenn es das ganze FHEM mit zieht. Daher habe ich beim erstellen des Modules auch sehr darauf geachtet das Nonblocking verwendet wird.


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

marvin78

#9
@NonBlocking: Super!

Idee für die (mittlere) Zukunft: Eigene, individuelle Befehle (evtl. über Attribute konfigurierbar). Ich habe mir bspw. Quick&Dirty einen SetAlarm-Befehl ins Modul gebaut. Das klappt schon prima, ist natürlich bei einem Update weg.

sub AMAD_SetAlarm($@) {
    my ($hash, @data) = @_;
    my $name = $hash->{NAME};
    my $host = $hash->{HOST};
    my $port = $hash->{PORT};
   
    my $alarmTime = join(" ", @data);
    my @alarm = split(":", $alarmTime);
   

    my $url = "http://" . $host . ":" . $port . "/automagic/setAlarm?hour=".$alarm[0]."&minute=".$alarm[1];
   
    AMAD_GetUpdateLocal($hash);
    Log3 $name, 4, "AMAD ($name) - Starte Update GetUpdateLocal";
    return AMAD_HTTP_POST ($hash,$url);
}


Mit etwas Hirnschmalz könnte man evtl. eine allgemein nutzbare sub für einfache Flows bauen.

CoolTux

Zitat von: marvin78 am 08 August 2015, 08:16:22

Idee für die (mittlere) Zukunft: Eigene, individuelle Befehle (evtl. über Attribute konfigurierbar). Ich habe mir bspw. Quick&Dirty einen SetAlarm-Befehl ins Modul gebaut. Das klappt schon prima, ist natürlich bei einem Update weg.

Mit etwas Hirnschmalz könnte man evtl. eine allgemein nutzbare sub für einfache Flows bauen.

Eine allgemeine sub finde ich gut, ich werde mir da mal Gedanken wegen der Umsetzung machen.
Auch habe ich überlegt sie Set Befehle alle in einem Flow unter zu bringen. Denke aber das der Flow dann zu unübersichtlich wird mit den ganzen Bedingungen.
Was denkst Du?

Danke für Deinen Code, ich werde ihn ins Modul mit auf nehmen   :D
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

marvin78

Die Frage ist, ob das Modul nicht wirklich so allgemein sein sollte, dass die Leute eigene Flows verwenden können. Ich bin leider sehr eingespannt , andernfalls würde ich mir mal eine sub überlegen, mit der das machbar wäre. Wenn die fest vorgebebenen Befehle (die ich so auch durchaus für Sinnvoll erachte) in einem einzigen Flow abgearbeitet werden, halte ich das für nicht so schlimm. Das kann sogar helfen. Die andere Seite der Medaille ist, dass die jetzigen Flows schnell dabei helfen können, zu lernen, wie man Flows gestaltet.

marvin78

Ich habe noch etwas festgestellt: Schläft die App auf dem Android Gerät, kann ein Befehl FHEM tatsächlich doch blockieren, bis die App wieder "wach" ist. Das Verhalten konnte ich mit dem TTS Befehl reproduzieren.

CoolTux

Hallo Marvin,

Das mit dem lernen war ja genau mein Gedanke. Stell Dir mal vor Du zahlst 3 Euro nur wegen dem Modul und dann siehst Du bei dem Flow da nicht durch. Das verärgert nur.
Schöner würde es aber definitiv aus sehen.

Seltsam mit den blockieren. Habe extra 3 Wochen lang getestet. Aber ich werde da mal die Tage schauen wie ich da besser testen kann. Man kann ja auch noch ein paar Befehle im http Aufruf mit geben. Mal schauen.

Das mit dem eingespannt kenne ich. Habe 3 Kinder, das jüngste ist 1,5 Jahre und meine Frau arbeitet Schicht. Du siehst, alles nicht so einfach. Aber jetzt habe ich erstmal Urlaub. 3 Wochen.
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

moorjunge

Nabend, ich habe gerade auch mal mein Flur Tablet auf AMAD umgestellt. Bisher läuft alles wirklich sehr gut.

Gruß
Thiemo