225 lines
16 KiB
Markdown
225 lines
16 KiB
Markdown
<h3>AMAD</h3>
|
|
<ul>
|
|
<u><b>AMAD - Automagic Android Device</b></u>
|
|
<br>
|
|
Dieses Modul liefert, <b><u>in Verbindung mit der Android APP Automagic</u></b>, 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:
|
|
<ul>
|
|
<li>Android Version</li>
|
|
<li>Zustand von Automagic auf dem Gerät</li>
|
|
<li>Bluetooth An/Aus</li>
|
|
<li>Zustand einer definierten App (läuft aktiv im Vordergrund oder nicht?)</li>
|
|
<li>verbundene Bluetoothgeräte, inklusive deren MAC Adresse</li>
|
|
<li>aktuell abgespieltes Musikalbum des verwendeten Mediaplayers</li>
|
|
<li>aktuell abgespielter Musikinterpret des verwendeten Mediaplayers</li>
|
|
<li>aktuell abgespielter Musiktitel des verwendeten Mediaplayers</li>
|
|
<li>Status des Androidgerätes - Online/Offline</li>
|
|
<li>nächster Alarmtag</li>
|
|
<li>nächste Alarmzeit</li>
|
|
<li>Batteriestatus in %</li>
|
|
<li>Ladestatus - Netztei angeschlossen / nicht angeschlossen</li>
|
|
<li>Bildschirmstatus An/Aus</li>
|
|
<li>Bildschirmhelligkeit</li>
|
|
<li>Vollbildmodus An/Aus</li>
|
|
<li>Bildschirmausrichtung Auto/Landscape/Portrait</li>
|
|
<li>Standardlautstärke</li>
|
|
<li>Media Lautstärke des Lautsprechers am Gerät</li>
|
|
<li>Media Lautstärke des Bluetooth Lautsprechers</li>
|
|
</ul>
|
|
<br>
|
|
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
|
|
<br><br>
|
|
Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden.
|
|
<ul>
|
|
<li>aktiviert Spracheingabe</li>
|
|
<li>Bluetooth Ein/Aus schalten</li>
|
|
<li>zu einem bestimmten Bluetoothgerät wechseln/verbinden</li>
|
|
<li>Status des Gerätes (Online,Offline)</li>
|
|
<li>Mediaplayer steuern (Play, Stop, nächster Titel, vorheriger Titel)</li>
|
|
<li>nächste Alarmzeit setzen</li>
|
|
<li>ein Benachrichtigungston abspielen (Notificationsound)</li>
|
|
<li>eine App auf dem Gerät öffnen</li>
|
|
<li>eine URL im Browser öffnen</li>
|
|
<li>Bildschirm An/Aus machen</li>
|
|
<li>Bildschirmhelligkeit einstellen</li>
|
|
<li>Vollbildmodus einschalten</li>
|
|
<li>eine Nachricht senden welche am Bildschirm angezeigt wird</li>
|
|
<li>Bildschirmausrichtung einstellen (Auto,Landscape,Portrait)</li>
|
|
<li>neuen Statusreport des Gerätes anfordern</li>
|
|
<li>Systembefehle setzen (Reboot)</li>
|
|
<li>eine Nachricht senden welche <b>angesagt</b> wird (TTS)</li>
|
|
<li>Medienlautstärke regeln</li>
|
|
</ul>
|
|
<br><br>
|
|
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.
|
|
<br><br>
|
|
<b>Wie genau verwendet man nun AMAD?</b>
|
|
<ul>
|
|
<li>installiert Euch die App "Automagic Premium" aus dem App Store oder die Testversion von <a href="https://automagic4android.com/de/testversion">hier</a></li>
|
|
<li>installiert das Flowset 74_AMADautomagicFlows$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf Eurem Androidgerät und aktiviert erstmal nur den "Informations" Flow.</li>
|
|
</ul>
|
|
<br>
|
|
Nun müsst Ihr nur noch ein Device in FHEM anlegen.
|
|
<br><br>
|
|
<a name="AMADdefine"></a>
|
|
<b>Define</b>
|
|
<ul><br>
|
|
<code>define <name> AMAD <IP-ADRESSE></code>
|
|
<br><br>
|
|
Beispiel:
|
|
<ul><br>
|
|
<code>define WandTabletWohnzimmer AMAD 192.168.0.23</code><br>
|
|
</ul>
|
|
<br>
|
|
Diese Anweisung erstellt ein neues AMAD-Device im Raum AMAD.Der Parameter <IP-ADRESSE< legt die IP Adresse des Android Gerätes fest.<br>
|
|
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. <b>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.</b><br>
|
|
</ul>
|
|
<br><br>
|
|
<b><u>Fertig! Nach anlegen der Geräteinstanz sollten nach spätestens 3 Minuten bereits die ersten Readings reinkommen.</u></b>
|
|
<br><br><br>
|
|
<a name="AMADCommBridge"></a>
|
|
<b>AMAD Communication Bridge</b>
|
|
<ul>
|
|
Beim ersten anlegen einer AMAD Deviceinstanz wird automatisch ein Gerät Namens AMADCommBridge im Raum AMAD angelegt. <b>BITTE NIEMALS DEN NAMEN DER BRIDGE ÄNDERN!!!</b>
|
|
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. <b>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.</b><br>
|
|
Bitte führt hierzu folgenden Befehl aus. <i>set AMADCommBridge fhemServerIP <FHEM-IP>.</i><br>
|
|
Als zweites Reading könnt Ihr <i>expertMode</i>setzen. 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.
|
|
</ul>
|
|
<br><br>
|
|
<a name="AMADreadings"></a>
|
|
<b>Readings</b>
|
|
<ul>
|
|
<li>androidVersion - aktuell installierte Androidversion</li>
|
|
<li>automagicState - Statusmeldungen von der AutomagicApp <b>(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</b></li>
|
|
<li>bluetooth on/off - ist auf dem Gerät Bluetooth an oder aus</li>
|
|
<li>checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, <b>siehe Hinweis unten</b></li>
|
|
<li>connectedBTdevices - eine Liste der verbundenen Gerät</li>
|
|
<li>connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte</li>
|
|
<li>currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers</li>
|
|
<li>currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers</li>
|
|
<li>currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers</li>
|
|
<li>deviceState - Status des Androidgerätes, muss selbst mit setreading gesetzt werden z.B. über die Anwesenheitskontrolle.<br>
|
|
Ist Offline gesetzt, wird der Intervall zum Informationsabruf aus gesetzt.</li>
|
|
<li>flow_SetCommands active/inactive - gibt den Status des SetCommands Flow wieder</li>
|
|
<li>flow_informations active/inactive - gibt den Status des Informations Flow wieder</li>
|
|
<li>lastSetCommandError - letzte Fehlermeldung vom set Befehl</li>
|
|
<li>lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
|
|
<li>lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl</li>
|
|
<li>lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
|
|
<li>nextAlarmDay - aktiver Alarmtag</li>
|
|
<li>nextAlarmTime - aktive Alarmzeit</li>
|
|
<li>powerLevel - Status der Batterie in %</li>
|
|
<li>powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA</li>
|
|
<li>screen - Bildschirm An oderAus</li>
|
|
<li>screenBrightness - Bildschirmhelligkeit von 0-255</li>
|
|
<li>screenFullscreen - Vollbildmodus (On,Off)</li>
|
|
<li>screenOrientation - Bildschirmausrichtung (Auto,Landscape,Portrait)</li>
|
|
<li>volume - Lautstärkewert welcher über "set volume" gesetzt wurde.</li>
|
|
<li>volumeMusikBluetooth - Media Lautstärke von angeschlossenden Bluetooth Lautsprechern</li>
|
|
<li>volumeMusikSpeaker - Media Lautstärke der internen Lautsprecher</li>
|
|
<br>
|
|
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.<br><br>
|
|
Beim Reading checkActivTask muß zuvor der Packagename der zu prüfenden App als Attribut <i>checkActiveTask</i> angegeben werden. Beispiel: <i>attr Nexus10Wohnzimmer
|
|
checkActiveTask com.android.chrome</i> für den Chrome Browser.
|
|
<br><br>
|
|
</ul>
|
|
<b>Eigene Readings im AMAD-Device erstellen</b>
|
|
<ul>
|
|
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:
|
|
<ul>
|
|
<br>
|
|
<li>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</li>
|
|
<li>diese Information speichert man nun mittels Automagic Action Script in eine globale Variable namens global_reading_<Readingname> (beim <Readingname> auf Groß- und Kleinschreibung achten):</li>
|
|
<br>
|
|
<code>
|
|
Beispiel: Das Reading Touch soll den Wert "ja" erhalten
|
|
Action Script: global_reading_Touch="ja"
|
|
</code>
|
|
<br><br>
|
|
<li>abschließend muss noch die Übertragung des Wertes initiiert werden. Dies erfolgt, indem der Wert der Variable global_own_reading auf den Wert <Zeitstempel>_<Readingname> gesetzt wird (auch hier auf Groß- und Kleinschreibung achten):</li>
|
|
<br>
|
|
<code>
|
|
Beispiel: Das Reading Touch soll übertragen werden<br>
|
|
Action Script: global_own_reading="{getDate()}_Touch"<br>
|
|
Hinweis: man kann auch beide Aktionen in ein Script packen:
|
|
<ul>
|
|
global_reading_Touch="ja";global_own_reading="{getDate()}_Touch"
|
|
</ul>
|
|
</code>
|
|
<br>
|
|
<li>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:</li>
|
|
<br>
|
|
<code>
|
|
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"
|
|
</code>
|
|
</ul>
|
|
</ul>
|
|
<br><br>
|
|
<a name="AMADset"></a>
|
|
<b>Set</b>
|
|
<ul>
|
|
<li>activateVoiceInput - schaltet die Spracheingabe ein</li>
|
|
<li>bluetooth - Schaltet Bluetooth on/off</li>
|
|
<li>clearNotificationBar - (All,Automagic) löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste</li>
|
|
<li>deviceState - setzt den Device Status Online/Offline. Siehe Readings</li>
|
|
<li>mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor.</li>
|
|
<li>nextAlarmTime - setzt die Alarmzeit. Geht aber nur innerhalb der nächsten 24Std.</li>
|
|
<li>notifySndFile - spielt die angegebende Mediadatei auf dem Androidgerät ab. <b>Die aufzurufende Mediadatei muß sich im Ordner /storage/emulated/0/Notifications/ befinden.</b></li>
|
|
<li>openURL - öffnet eine URL im Standardbrowser</li>
|
|
<li>screen - setzt den Bildschirm on/off mit Sperre, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht.</li>
|
|
<li>screenMsg - versendet eine Bildschirmnachricht</li>
|
|
<li>statusRequest - Fordert einen neuen Statusreport beim Device an</li>
|
|
<li>ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird</li>
|
|
<li>volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher</li>
|
|
</ul>
|
|
<br>
|
|
<b>Set abhängig von gesetzten Attributen</b>
|
|
<ul>
|
|
<li>changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. <b>Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten!</b></li>
|
|
<li>mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor. <b>Attribut fhemServerIP</b></li>
|
|
<li>openApp - öffnet eine ausgewählte App. <b>Attribut setOpenApp</b></li>
|
|
<li>screenBrightness - setzt die Bildschirmhelligkeit, von 0-255 <b>Attribut setScreenBrightness</b></li>
|
|
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".
|
|
<li>screenFullscreen - Schaltet den Vollbildmodus on/off. <b>Attribut setFullscreen</b></li>
|
|
<li>screenOrientation - Schaltet die Bildschirmausrichtung Auto/Landscape/Portait. <b>Attribut setScreenOrientation</b></li>
|
|
<li>system - setzt Systembefehle ab (nur bei gerootetet Geräen). Reboot <b>Attribut root</b>, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden</li>
|
|
<br>
|
|
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.<br><br>
|
|
Um zwischen Bluetoothgeräten wechseln zu können, muß das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. <b>attr <DEVICE> BTdeviceName1|MAC,BTDeviceName2|MAC</b> 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<br>
|
|
Beispiel: <i>attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76</i>
|
|
</ul>
|
|
<br><br>
|
|
<a name="AMADstate"></a>
|
|
<b>state</b>
|
|
<ul>
|
|
<li>initialized - Ist der Status kurz nach einem define.</li>
|
|
<li>active - die Geräteinstanz ist im aktiven Status.</li>
|
|
<li>disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert</li>
|
|
</ul>
|
|
<br><br><br>
|
|
<u><b>Anwendungsbeispiele:</b></u>
|
|
<ul><br>
|
|
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.<br>
|
|
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.
|
|
</ul>
|
|
<br><br><br>
|
|
</ul>
|