AMAD - Automagic Android Device

    AMAD - Automagic Android Device Dieses Modul liefert, in Verbindung mit der Android APP Automagic, diverse Informationen von Android Geräten. Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher. Im Auslieferiungszustand werden folgende Zustände dargestellt:
    • Zustand von Automagic auf dem Gerät
    • aktuell abgespieltes Musikalbum des verwendeten Mediaplayers
    • aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
    • aktuell abgespielter Musiktitel des verwendeten Mediaplayers
    • Status des Androidgerätes - Online/Offline
    • nächster Alarmtag
    • nächste Alarmzeit
    • Batteriestatus in %
    • Ladestatus - Netztei angeschlossen / nicht angeschlossen
    • Bildschirnstatus An/Aus
    • Bildschirmhelligkeit
    • Vollbildmodus An/Aus
    • Bildschirmausrichtung Auto/Landscape/Portrait
    • Standardlautstärke
    • Media Lautstärke des Lautsprechers am Gerät
    • Media Lautstärke des Bluetooth Lautsprechers

    Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich einer kleinen Anpassung des "Information" Flows

    Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden.
    • Status des Gerätes (Online,Offline)
    • Mediaplayer steuern (Play, Stop, nächster Titel, vorheriger Titel)
    • nächste Alarmzeit setzen
    • eine App auf dem Gerät öffnen
    • eine URL im Browser öffnen
    • Bildschirm An/Aus machen
    • Bildschirmhelligkeit einstellen
    • Vollbildmodus einschalten
    • eine Nachricht senden welche am Bildschirm angezeigt wird
    • Bildschirmausrichtung einstellen (Auto,Landscape,Portrait)
    • neuen Statusreport des Gerätes anfordern
    • Systembefehle setzen (Reboot)
    • eine Nachricht senden welche angesagt wird (TTS)
    • Medienlautstärke regeln


    Für all diese Aktionen und Informationen wird auf dem Androidgerät Automagic und ein so genannter Flow benötigt. Die App müßt Ihr Euch besorgen, die Flows bekommt Ihr von mir zusammen mit dem AMAD Modul.

    Wie genau verwendet man nun AMAD?
    • Installiert Euch die App "Automagic Premium" aus dem App Store oder die Testversion von hier
    • ladet Euch das AMAD Modul und die Flowfiles von GitHub runter
    • installiert die zwei Flows und aktiviert erstmal nur den "Information" Flow, eventuell bei den FlowUpdates mal schauen ob es was neueres gibt und den entsprechenden Flow auf dem Gerät löschen und den neuen Flow von GitHub installieren
    • kopiert die Moduldatei 74_AMAD.pm nach $FHEMPATH/FHEM. Geht auf die FHEM Frontendseite und gebt dort in der Kommandozeile reload 74_AMAD.pm ein

    Nun müsst Ihr nur noch ein Device in FHEM anlegen.

    Define

      define <name> AMAD <IP-ADRESSE> <PORT> <INTERVAL>

      Beispiel:

        define WandTabletWohnzimmer AMAD 192.168.0.23 8090 180

      Diese Anweisung erstellt ein neues AMAD-Device. Die Parameter IP-ADRESSE und PORT legen die IP Adresse des Android Gerätes sowie den, in den Flows des Trigger HTTP Request, angegebenen Port fest.
      INTERVAL ist der Zeitabstand in dem ein erneuter Informationsabruf stattfinden soll. Alle x Sekunden. Bei mir hat sich 180 gut bewährt, also alle 3 Minuten
      Bitte gebt für sofortige Erfolge als Port 8090 ein, das ist der Port der in den mitgelieferten Automagic Flows als Trigger Port eingetragen ist.
      Dieser kann später mit Erfahrung auch geändert werden


    Fertig! Nach anlegen des Devices sollten bereits die ersten Readings reinkommen.

    Readings
    • automagicState - Statusmeldungen von der AutomagicApp
    • currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers
    • currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
    • currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers
    • deviceState - Status des Androidgerätes, muss selbst mit setreading gesetzt werden z.B. über die Anwesenheitskontrolle.
      Ist Offline gesetzt, wird der Intervall zum Informationsabruf aus gesetzt.
    • lastSetCommandError - letzte Fehlermeldung vom set Befehl
    • lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet
    • lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl
    • lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet
    • nextAlarmDay - aktiver Alarmtag
    • nextAlarmTime - aktive Alarmzeit
    • powerLevel - Status der Batterie in %
    • powerPlugged - Netzteil angeschlossen? 0=NEIN, 2=JA
    • screen - Bildschirm An oderAus
    • screenBrightness - Bildschirmhelligkeit von 0-255
    • screenFullscreen - Vollbildmodus (On,Off)
    • screenOrientation - Bildschirmausrichtung (Auto,Landscape,Portrait)
    • volume - Lautstärkewert welcher über "set volume" gesetzt wurde.
    • volumeMusikBluetooth - Media Lautstärke von angeschlossenden Bluetooth Lautsprechern
    • volumeMusikSpeaker - Media Lautstärke der internen Lautsprecher

    • Die Readings volumeMusikBluetooth und volumeMusikSpeaker spiegeln die jeweilige Medialautstärke der angeschlossenden Bluetoothlautsprechern oder der internen Lautsprecher wieder.
      Sofern man die jeweiligen Lautstärken ausschließlich über den Set Befehl setzt, wird eine der beiden immer mit dem "volume" Reading über ein stimmen.



    Set
    • deviceState - setzt den Device Status Online/Offline. Siehe Readings
    • mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor.
    • nextAlarmTime - setzt die Alarmzeit. Geht aber nur innerhalb der nächsten 24Std.
    • openURL - öffnet eine URL im Standardbrowser
    • screen - setzt den Bildschirm on/off mit Sperre, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht.
    • screenMsg - versendet eine Bildschirmnachricht
    • statusRequest - Fordert einen neuen Statusreport beim Device an
    • ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird
    • volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher

    Set abhängig von gesetzten Attributen
    • mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor. Attribut fhemServerIP
    • openApp - öffnet eine ausgewählte App. Attribut setOpenApp
    • screenBrightness - setzt die Bildschirmhelligkeit, von 0-255 Attribut setScreenBrightness
    • Wenn Ihr das "set screenBrightness" verwenden wollt, muss eine kleine Anpassung im Flow SetCommand vorgenommen werden. Öffnet die Aktion (eines der Vierecke ganz ganz unten) SetzeSystemeinstellung:System und macht einen Haken bei "Ich habe die Einstellungen überprüft, ich weiss was ich tue".
    • screenFullscreen - Schaltet den Vollbildmodus on/off. Attribut setFullscreen
    • screenOrientation - Schaltet die Bildschirmausrichtung Auto/Landscape/Portait. Attribut setScreenOrientation
    • system - setzt Systembefehle ab (nur bei gerootetet Geräen). Reboot Attribut root, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden
    • Um openApp verwenden zu können, muss als Attribut ein, oder durch Komma getrennt, mehrere App Namen gesetzt werden. Der App Name ist frei wählbar und nur zur Wiedererkennung notwendig. Der selbe App Name muß im Flow SetCommands auf der linken Seite unterhalb der Raute Expression:"openApp" in einen der 5 Stränge (eine App pro Strang) in beide Rauten eingetragen werden. Danach wird in das Viereck die App ausgewält welche durch den Attribut App Namen gestartet werden soll.


    STATE
    • initialized - Ist der Status kurz nach einem define..
    • activ - Das Modul ist im aktiven Status.



    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.



    Und zu guter letzt möchte ich 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 :-)
Description
No description provided
Readme 1.4 MiB
Languages
Perl 100%