AMAD
-
AMAD - Automagic Android Device
- Android Version
- Zustand von Automagic auf dem Gerät
- Bluetooth An/Aus
- Zustand einer definierten App (läuft aktiv im Vordergrund oder nicht?)
- verbundene Bluetoothgeräte, inklusive deren MAC Adresse
- 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
- Bildschirmstatus 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
- aktiviert Spracheingabe
- Bluetooth Ein/Aus schalten
- zu einem bestimmten Bluetoothgerät wechseln/verbinden
- Status des Gerätes (Online,Offline)
- Mediaplayer steuern (Play, Stop, nächster Titel, vorheriger Titel)
- nächste Alarmzeit setzen
- ein Benachrichtigungston abspielen (Notificationsound)
- 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
- installiert Euch die App "Automagic Premium" aus dem App Store oder die Testversion von hier
- installiert das Flowset 74_AMADautomagicFlows$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf Eurem Androidgerät und aktiviert erstmal nur den "Informations" Flow.
- androidVersion - aktuell installierte Androidversion
- automagicState - Statusmeldungen von der AutomagicApp (Voraussetzung Android >4.3). Wer ein Android >4.3 hat und im Reading steht "wird nicht unterstützt", muß in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken setzen für Automagic
- bluetooth on/off - ist auf dem Gerät Bluetooth an oder aus
- checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, siehe Hinweis unten
- connectedBTdevices - eine Liste der verbundenen Gerät
- connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte
- 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. - flow_SetCommands active/inactive - gibt den Status des SetCommands Flow wieder
- flow_informations active/inactive - gibt den Status des Informations Flow wieder
- 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, 1|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
- zunächst erstellt man sich, soweit nicht bereits geschehen, einen Automagic-Flow der die Information, die in ein Reading übernommen werden soll zur Verfügung stellt
- diese Information speichert man nun mittels Automagic Action Script in eine globale Variable namens global_reading_ (beim auf Groß- und Kleinschreibung achten):
- abschließend muss noch die Übertragung des Wertes initiiert werden. Dies erfolgt, indem der Wert der Variable global_own_reading auf den Wert _ gesetzt wird (auch hier auf Groß- und Kleinschreibung achten):
- Möchte man nun als nächstes z.B. eine sofortige Benachrichtigung, wenn das Display des Tablets an- oder ausgeschaltet wird, könnte man sich Flows bauen, welche beim De-/Aktivieren des Display ausgeführt werden:
- activateVoiceInput - schaltet die Spracheingabe ein
- bluetooth - Schaltet Bluetooth on/off
- clearNotificationBar - (All,Automagic) löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste
- 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.
- notifySndFile - spielt die angegebende Mediadatei auf dem Androidgerät ab. Die aufzurufende Mediadatei muß sich im Ordner /storage/emulated/0/Notifications/ befinden.
- 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
- changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten!
- 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 SetCommands 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
- initialized - Ist der Status kurz nach einem define.
- active - die Geräteinstanz ist im aktiven Status.
- disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert
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 Auslieferungszustand werden folgende Zustände dargestellt:
Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich einer kleinen Anpassung des "Informations" Flows
Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden.
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?
Nun müsst Ihr nur noch ein Device in FHEM anlegen.
Define
define <name> AMAD <IP-ADRESSE>
Beispiel:
define WandTabletWohnzimmer AMAD 192.168.0.23
Diese Anweisung erstellt ein neues AMAD-Device im Raum AMAD.Der Parameter <IP-ADRESSE< legt die IP Adresse des Android Gerätes fest.
Das Standard Abfrageinterval ist 180 Sekunden und kann über das Attribut intervall geändert werden. Wer den Port ändern möchte, kann dies über das Attribut port tun. Ihr solltet aber wissen was Ihr tut, da dieser Port im HTTP Response Trigger der beiden Flows eingestellt ist. Demzufolge muß dieser dort auch verädert werden.
Fertig! Nach anlegen der Geräteinstanz sollten nach spätestens 3 Minuten bereits die ersten Readings reinkommen.
AMAD Communication Bridge
-
Beim ersten anlegen einer AMAD Deviceinstanz wird automatisch ein Gerät Namens AMADCommBridge im Raum AMAD angelegt. BITTE NIEMALS DEN NAMEN DER BRIDGE ÄNDERN!!!
Alle anderen Eigenschaften können geändert werden. Dieses Gerät diehnt zur Kommunikation
vom Androidgerät zu FHEM ohne das zuvor eine Anfrage von FHEM aus ging. Damit das Androidgerät die IP von FHEM kennt, muss diese sofort nach dem anlegen der Bridge
über den set Befehl in ein entsprechendes Reading in die Bridge geschrieben werden. DAS IST SUPER WICHTIG UND FÜR DIE FUNKTION DER BRIDGE NOTWENDIG.
Bitte führt hierzu folgenden Befehl aus. set AMADCommBridge fhemServerIP <FHEM-IP>.
Als zweites Reading könnt Ihr expertModesetzen. Mit diesem Reading wird eine unmittelbare Komminikation mit FHEM erreicht ohne die Einschränkung über ein Notify gehen zu müssen und nur reine set Befehle ausführen zu können.
Readings
Die Readings volumeMusikBluetooth und volumeMusikSpeaker spiegeln die jeweilige Medialautstärke der angeschlossenden Bluetoothlautsprecher 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.
Beim Reading checkActivTask muß zuvor der Packagename der zu prüfenden App als Attribut checkActiveTask angegeben werden. Beispiel: attr Nexus10Wohnzimmer checkActiveTask com.android.chrome für den Chrome Browser.
-
Es ist möglich, aus beliebigen eigenen Automagic-Flows eigene Readings im AMAD-Device zu erstellen und zu füllen. Die Übertragung zum FHEM AMAD-Device erfolgt umgehend über die AMADCommBridge - daher sollte auf eine zu häufige Aktualisierung verzichtet werden. Die Vorgehensweise in Automagic hierfür ist folgende:
Beispiel: Das Reading Touch soll den Wert "ja" erhalten
Action Script: global_reading_Touch="ja"
Beispiel: Das Reading Touch soll übertragen werden
Action Script: global_own_reading="{getDate()}_Touch"
Hinweis: man kann auch beide Aktionen in ein Script packen:
global_reading_Touch="ja";global_own_reading="{getDate()}_Touch"
Action Script beim Aktivieren des Displays: global_reading_Display="an";global_own_reading="{getDate()}_Display"
Action Script beim Deaktivieren des Displays: global_reading_Display="aus";global_own_reading="{getDate()}_Display"
Set
Set abhängig von gesetzten Attributen
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.
Um zwischen Bluetoothgeräten wechseln zu können, muß das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. attr <DEVICE> BTdeviceName1|MAC,BTDeviceName2|MAC Es muss zwingend darauf geachtet werden das beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Achtet bei der MAC darauf das Ihr wirklich nach jeder zweiten Zahl auch einen : drin habt
Beispiel: attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76
state
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.
Description
Languages
Perl
100%