AMAD: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
|ModType=d | |ModType=d | ||
|ModForumArea=Sonstige Systeme | |ModForumArea=Sonstige Systeme | ||
|ModTechName= | |ModTechName=73_AMADCommBridge.pm, 74_AMADDevice.pm | ||
|ModOwner=CoolTux <br />([http://forum.fhem.de/index.php?action=profile;u=13684 Forum] / [[Benutzer:CoolTux|Wiki]]) | |ModOwner=CoolTux <br />([http://forum.fhem.de/index.php?action=profile;u=13684 Forum] / [[Benutzer:CoolTux|Wiki]]) | ||
}} | }} | ||
= | = AMAD 4.0 [AMADNG] = | ||
== | == 73_AMADCommBridge / 74_AMADDevice == | ||
==Vorstellung | |||
Dieses Modul liefert, '''in Verbindung mit der Android APP Automagic''', diverse Informationen von Android Geräten. | |||
= Vorwort = | |||
=== Warum AMADNG === | |||
Nach nun fast 6 Monaten Entwicklungszeit nähert sich die Fertigstellung der neusten AMAD Version. Diesmal lagen mir mehrere Dinge am Herzen. | |||
In erster Linie wollte ich eine softwareseitige Trennung der AMADCommBridge vom eigentlichen Android Device. Daher ist die neue Version ein zweistufiges Modul geworden. | |||
Im Laufe der Entwicklung kamen auch andere Anforderungen welche ich nun fähig bin um zu setzen. Eine dieser Anforderungen war eine einfachere und besser funktionierende Installation. Raus gekommen ist ein Android Installationsassistant. | |||
Mit ihm wird auf einfache Art und Weise direkt per Sprachführung und Eingabedialogen Automagic für AMAD konfiguriert und das Device in FHEM automatisch erstellt. Autocreate! | |||
= Vorstellung = | |||
Dieses 2-stufige 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.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher. | Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher. | ||
=== Features / Funktionen === | |||
== Features / Funktionen == | |||
Im Auslieferiungszustand werden folgende Zustände dargestellt: | Im Auslieferiungszustand werden folgende Zustände dargestellt: | ||
* installierte Android Version | * installierte Android Version | ||
Zeile 44: | Zeile 50: | ||
== | = AMADCommBridge - Kommunikationsbrücke für alle AMAD Geräte = | ||
Dieses Modul ist das Ausgangsmodul zur erfolgreichen Integration von Androidgeräten in FHEM. Es stellt ferner eine Verbindungsebene zwischen AMAD unterstützten Geräten und FHEM zur Verfügung. Alle Kommunikation zwischen AMAD Android und FHEM läuft über diese Schnittstelle. | |||
Daher erfolgt die Ersteinrichtung eines AMAD Devices auch genau über diese Modulinstanz. | |||
Damit erfolgreich ein Androidgerät in FHEM eingerichtet werden kann, muss im ersten Schritt ein AMADCommBridge Device angelegt werden. | |||
=== Definition in FHEM === | |||
<code>define <name> AMADCommBridge</code> | |||
==== Beispiel ==== | |||
<code>define AMADBridge AMADCommBridge</code> | |||
Diese Anweisung erstellt ein neues AMADCommBridge Device Namens AMADBridge. | |||
Im folgenden muß lediglich das Flowset auf dem Android Gerät installiert werden und der Flow 'First Run Assistent' ausgeführt werden. (einfach den Homebutton drücken) | |||
Der Assistent geleitet Dich dann durch die Einrichtung Deines AMAD Gerätes und sorgt dafür das am Ende des Installationsprozess das Androidgerät als AMAD Device in FHEM angelegt wird. | |||
=== Readings === | |||
* JSON_ERROR - JSON Fehlermeldung welche von Perl gemeldet wird | |||
* JSON_ERROR_STRING - der String welcher die JSON Fehlermeldung verursacht hat | |||
* fhemServerIP - die Ip-Adresse des FHEM Servers, wird vom Modul auf Basis des JSON Strings vom Installationsassistenten gesetzt. Kann aber auch mittels set Befehles vom User gesetzt werden | |||
* receiveFhemCommand - ist das Attribut fhemControlMode auf trigger gestellt, wird das Reading gesetzt sobald ein FHEM Befehl übersendet wird. Hierauf kann dann ein Notify triggern. Wird anstelle von trigger setControl als Wert für fhemControlMode eingestellt, wird das Reading nicht gestzt sondern der set Befehl sofort ausgeführt. | |||
* receiveVoiceCommand - wird die Sprachsteuerung von AMAD aktiviert (set DEVICE activateVoiceInput) so wird der letzte erkannten Sprachbefehle in dieses Reading geschrieben. | |||
* receiveVoiceDevice - Name des Devices von wo aus der letzte erkannte Sprachbefehl gesendet wurde | |||
* state - Status der Bridge, open, closed | |||
=== | === Attribute === | ||
* allowFrom - Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut gesetzt wurde, werden ausschließlich Verbindungen von diesen Adressen akzeptiert. Achtung: falls allowfrom nicht gesetzt ist, und keine gütige allowed Instanz definiert ist, und die Gegenstelle eine nicht lokale Adresse hat, dann wird die Verbindung abgewiesen. Folgende Adressen werden als local betrachtet: IPV4: 127/8, 10/8, 192.168/16, 172.16/10, 169.254/16, IPV6: ::1, fe80/10 | |||
* debugJSON - wenn auf 1 gesetzt, werden JSON Fehlermeldungen in Readings geschrieben. Siehe hierzu JSON_ERROR* unter Readings | |||
* fhemControlMode - steuert die zulässige Art der Kontrolle von FHEM Devices. Du kannst über die Bridge auf 2 Arten FHEM Devices steuern. Entweder per direktem FHEM Befehl aus einem Flow heraus, oder als Sprachbefehl mittels Sprachsteuerung (set DEVICE activateVoiceInput) | |||
** trigger - ist der Wert trigger gesetzt, werden alle an die Bridge gesendeten FHEM set Befehle in das Reading receiveFhemCommand geschrieben und können so mittels notify ausgeführt werden. Sprachsteuerung ist möglich, es werden Readings receiveVoice* gesetzt. Auf dem Androidgerät können bei Sprachsteuerung mehrere Sprachbefehle mittels "und" verknüpft/aneinander gereiht werden. Bsp: schalte die Lichtszene Abends an und schalte den Fernsehr an | |||
** setControl - alle set Befehle welche mittels eines Flows über die Bridge gesendet werden, werden automatisch ausgeführt. Das triggern eines Readings ist nicht nötig. Die Steuerung mittels Sprache verhält sich wie beim Wert trigger | |||
** thirdPartControl - verhält sich wie trigger, bei der Sprachsteuerung ist jedoch ein anreihen von Sprachbefehlen mittels "und" nicht möglich. Dient der Sprachsteuerung über Module anderer Modulautoren ((z.B. 39_TEERKO.pm) | |||
= AMADDevice - 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.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher. | |||
Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADDeviceCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern. | |||
Für all diese Aktionen und Informationen wird auf dem Androidgerät "Automagic" und ein so genannter Flow benötigt. Die App ist über den Google PlayStore zu beziehen. Das benötigte Flowset bekommt man aus dem FHEM Verzeichnis. | |||
=== Wie genau verwendet man nun AMADDevice? === | |||
* stelle sicher das als aller erstes die AMADCommBridge in FHEM definiert wurde | |||
* installiere die App "Automagic Premium" aus dem PlayStore. | |||
* installiere das Flowset 74_AMADDeviceautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät | |||
* aktiviere den Installationsassistanten Flow in Automagic. Wenn man nun Automagic in den Hintergrund schickt, z.B. Hometaste drücken, startet der Assistant und legt automatisch ein Device für das Androidgerät an. | |||
=== Ein AMADDevice Gerät von Hand anlegen. === | |||
Define | |||
<code>10.6.9.10 1496497380000 IODev=AMADBridge define <name> AMADDevice <IP-ADRESSE> <AMAD_ID> IODev=<IODEVICE> </code> | |||
==== Beispiel ==== | |||
<code>define WandTabletWohnzimmer AMADDevice 192.168.0.23 123456 IODev=NAME_des_AMADCommBridge_Devices</code> | |||
In diesem Fall wird ein AMADDevice von Hand angelegt. Die AMAD_ID, hier 123456, muß auch exakt so als globale Variable in Automagic eingetragen sein. | |||
==Readings== | === Readings === | ||
* airplanemode - Status des Flugmodus | * airplanemode - Status des Flugmodus | ||
* androidVersion - aktuell installierte Androidversion | * androidVersion - aktuell installierte Androidversion | ||
* automagicState - Statusmeldungen von der AutomagicApp '''(Voraussetzung Android >4.3). | * automagicState - Statusmeldungen von der AutomagicApp '''(Voraussetzung Android >4.3). Ist Android größer 4.3 vorhanden und im Reading steht "wird nicht unterstützt", muß in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken für Automagic gesetzt werden''' | ||
* bluetooth on/off | * batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=Überhitzt, 4=tot, 5=Überspannung, 6=unbekannter Fehler, 7=kalt) | ||
* batterytemperature - Temperatur der Batterie | |||
* bluetooth - on/off, Bluetooth Status an oder aus | |||
* checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, '''siehe Hinweis unten''' | * 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 | * connectedBTdevices - eine Liste der verbundenen Gerät | ||
* connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte | * connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte | ||
* currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers | * currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers | ||
* currentMusicApp - aktuell verwendeter | * currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music) | ||
* currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers | * currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers | ||
* currentMusicIcon - Cover vom aktuell abgespielten Album '''Noch nicht fertig implementiert''' | |||
* currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers | |||
* currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers | * currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers | ||
* daydream - on/off Daydream gestartet oder nicht | * daydream - on/off, Daydream gestartet oder nicht | ||
* deviceState - Status des Androidgerätes | * deviceState - Status des Androidgerätes. unknown, online, offline. | ||
* doNotDisturb - aktueller Status des nicht stören Modus | * doNotDisturb - aktueller Status des nicht stören Modus | ||
* dockingState - undocked/docked Status ob das Gerät in einer Dockinstation | * dockingState - undocked/docked Status ob sich das Gerät in einer Dockinstation befindet. | ||
* flow_SetCommands - active/inactive, | * flow_SetCommands - active/inactive, Status des SetCommands Flow | ||
* flow_informations - active/inactive, | * flow_informations - active/inactive, Status des Informations Flow | ||
* flowsetVersionAtDevice - aktuell | * flowsetVersionAtDevice - aktuell installierte Flowsetversion auf dem Device | ||
* intentRadioName - | * incomingCallerName - Anrufername des eingehenden Anrufes | ||
* incomingCallerNumber - Anrufernummer des eingehenden Anrufes | |||
* incommingWhatsAppMessageFrom - letzte WhatsApp Nachricht | |||
* incommingWhatsTelegramMessageFrom - letzte Telegram Nachricht | |||
* intentRadioName - zuletzt gesrreamter Intent Radio Name | |||
* intentRadioState - Status des IntentRadio Players | * intentRadioState - Status des IntentRadio Players | ||
* keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist | * keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist | ||
Zeile 156: | Zeile 152: | ||
* lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet | * lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet | ||
* nextAlarmDay - aktiver Alarmtag | * nextAlarmDay - aktiver Alarmtag | ||
* nextAlarmState - aktueller Status des Androidinternen Weckers | * nextAlarmState - aktueller Status des "Androidinternen" Weckers | ||
* nextAlarmTime - aktive Alarmzeit | * nextAlarmTime - aktive Alarmzeit | ||
* powerLevel - Status der Batterie in % | * powerLevel - Status der Batterie in % | ||
* powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA | * powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA | ||
* screen - on locked/unlocked, off locked/unlocked | * screen - on locked/unlocked, off locked/unlocked gibt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt | ||
* screenBrightness - Bildschirmhelligkeit von 0-255 | * screenBrightness - Bildschirmhelligkeit von 0-255 | ||
* screenFullscreen - Vollbildmodus ( | * screenFullscreen - on/off, Vollbildmodus (An,Aus) | ||
* screenOrientation - | * screenOrientation - Landscape,Portrait, Bildschirmausrichtung (Horizontal,Vertikal) | ||
* screenOrientationMode - | * screenOrientationMode - auto/manual, Modus für die Ausrichtung (Automatisch, Manuell) | ||
* state - aktueller Status | * state - aktueller Status | ||
* userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut | |||
* volume - Media Lautstärkewert | * volume - Media Lautstärkewert | ||
* volumeNotification - Benachrichtigungs Lautstärke | * volumeNotification - Benachrichtigungs Lautstärke | ||
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. | 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. | ||
===Set=== | === Set === | ||
* activateVoiceInput - | * activateVoiceInput - aktiviert die Spracheingabe | ||
* bluetooth - | * bluetooth - on/off, aktiviert/deaktiviert Bluetooth | ||
* clearNotificationBar - | * clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste | ||
* currentFlowsetUpdate - fürt ein | * closeCall - beendet einen laufenden Anruf | ||
* | * currentFlowsetUpdate - fürt ein Flowsetupdate auf dem Device durch | ||
* installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben. | * doNotDisturb - schaltet den nicht stören Modus, always immer stören, never niemals stören, alarmClockOnly nur Wecker darf stören, onlyImportant nur wichtige Störungen | ||
* | * installFlowSource - installiert einen Flow auf dem Device, <u>das XML File muss unter /tmp/ liegen und die Endung xml haben. <b>Bsp:</b> set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml</u> | ||
* | * mediaAmazonMusic - play, stop, next, back ,steuert den Amazon Musik Mediaplayer | ||
* nextAlarmTime - setzt die Alarmzeit. | * mediaGoogleMusic - play, stop, next, back ,steuert den Google Play Musik Mediaplayer | ||
* | * mediaSpotifyMusic - play, stop, next, back ,steuert den Spotify Mediaplayer | ||
* mediaTuneinRadio - play, stop, next, back ,steuert den TuneIn Radio Mediaplayer | |||
* mediaAldiMusic - play, stop, next, back ,steuert den Aldi Musik Mediaplayer | |||
* mediaAudible - play, stop, next, back ,steuert den Audible Mediaplayer | |||
* mediaYouTube - play, stop, next, back ,steuert den YouTube Mediaplayer | |||
* mediaVlcPlayer - play, stop, next, back ,steuert den VLC Mediaplayer | |||
* nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der nächsten 24Std. | |||
* openCall - ruft eine Nummer an und legt optional nach X Sekunden auf / set DEVICE openCall 01736458 10 / ruft die Nummer an und beendet den Anruf nach 10s | |||
* screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn | |||
* screenBrightness - setzt die Bildschirmhelligkeit, von 0-255. | * screenBrightness - setzt die Bildschirmhelligkeit, von 0-255. | ||
* screenMsg - versendet eine Bildschirmnachricht | * screenMsg - versendet eine Bildschirmnachricht | ||
* sendintent - sendet einen Intentstring Bsp: set $ | * sendintent - sendet einen Intentstring Bsp: set $AMADDeviceDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio, der erste Befehl ist die Aktion und der zweite das Extra. Es können immer zwei Extras mitgegeben werden. | ||
* sendSMS - sendet eine SMS an eine bestimmte Telefonnummer. Bsp.: sendSMS Dies ist ein Test|555487263 | |||
* startDaydream - startet den Daydream | |||
* statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder. | * statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder. | ||
* timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Sekunden angegeben werden. | * timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Sekunden angegeben werden. | ||
* ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird | * ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird | ||
* userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,'''set Nexus7Wohnzimmer Badezimmer vorheizen:inactive oder set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive''' | |||
* vibrate - lässt das Androidgerät vibrieren | * vibrate - lässt das Androidgerät vibrieren | ||
* volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker | * volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautstärke um den Wert. Der maximale Sliderwert kann über das Attribut setVolMax geregelt werden. | ||
* volumeUp - erhöh;t die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen. | |||
* volumeDown - reduziert die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen. | |||
* volumeNotification - setzt die Benachrichtigungslautstärke. | * volumeNotification - setzt die Benachrichtigungslautstärke. | ||
===Set abhängig von gesetzten Attributen=== | ==== Set abhängig von gesetzten Attributen ==== | ||
* changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. | * changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten! | ||
* openApp - öffnet eine ausgewählte App. | * notifySndFile - spielt die angegebene Mediadatei auf dem Androidgerät ab. Die aufzurufende Mediadatei sollte sich im Ordner /storage/emulated/0/Notifications/ befinden. Ist dies nicht der Fall kann man über das Attribut setNotifySndFilePath einen Pfad vorgeben. | ||
* openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das Attribut setOpenUrlBrowser ausgewählt wurde. | * openApp - öffnet eine ausgewählte App. Attribut setOpenApp | ||
* | * openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das Attribut setOpenUrlBrowser ausgewählt wurde. Bsp: attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, das erste ist der Package Name und das zweite der Class Name | ||
* screenFullscreen - | * setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern | ||
* screenLock - Sperrt den Bildschirm mit Pinabfrage. | * setScreenOnForTimer ändert die Zeit wie lange das Display an bleiben soll! | ||
* screenOrientation - | * screenFullscreen - on/off, (aktiviert/deaktiviert) den Vollbildmodus. Attribut setFullscreen | ||
* | * screenLock - Sperrt den Bildschirm mit Pinabfrage. Attribut setScreenlockPIN - hier die Pin dafür eingeben. Erlaubt sind nur Zahlen. Es müßen mindestens 4, bis max 16 Zeichen verwendet werden. | ||
* setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe | * screenOrientation - Auto,Landscape,Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). Attribut setScreenOrientation | ||
* | * system - setzt Systembefehle ab (nur bei gerootetet Geräen). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) Attribut root, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden | ||
* | * setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/ | ||
* | * setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0 | ||
* setTtsMsgSpeed - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de) | |||
* setVolUpDownStep - setzt den Step für volumeUp und volumeDown | |||
* setVolMax - setzt die maximale Volume Gr&uoml;e für den Slider | |||
* setNotifyVolMax - setzt den maximalen Lautstärkewert für Benachrichtigungslautstärke für den Slider | |||
* setRingSoundVolMax - setzt den maximalen Lautstärkewert für Klingellautstärke für den Slider | |||
'''Um openApp verwenden zu können, muss als Attribut der Package Name der App angegeben werden. | |||
'''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 === | ||
* initialized - Ist der Status kurz nach einem define | * initialized - Ist der Status kurz nach einem define. | ||
* active - die Geräteinstanz ist im aktiven Status. | * active - die Geräteinstanz ist im aktiven Status. | ||
* disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert | * disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert | ||
==Anwendungsbeispiele== | ==Anwendungsbeispiele== | ||
Zeile 270: | Zeile 279: | ||
== Bekannte Meldungen/Hinweise/Probleme == | == Bekannte Meldungen/Hinweise/Probleme == | ||
Version vom 24. Juli 2017, 12:15 Uhr
AMAD | |
---|---|
Zweck / Funktion | |
Steuern von Adroidgeräten und Anzeige von bestimmten Informationen dieser Geräte | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Sonstige Systeme |
Modulname | 73_AMADCommBridge.pm, 74_AMADDevice.pm |
Ersteller | CoolTux (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
AMAD 4.0 [AMADNG]
73_AMADCommBridge / 74_AMADDevice
Vorwort
Warum AMADNG
Nach nun fast 6 Monaten Entwicklungszeit nähert sich die Fertigstellung der neusten AMAD Version. Diesmal lagen mir mehrere Dinge am Herzen. In erster Linie wollte ich eine softwareseitige Trennung der AMADCommBridge vom eigentlichen Android Device. Daher ist die neue Version ein zweistufiges Modul geworden. Im Laufe der Entwicklung kamen auch andere Anforderungen welche ich nun fähig bin um zu setzen. Eine dieser Anforderungen war eine einfachere und besser funktionierende Installation. Raus gekommen ist ein Android Installationsassistant. Mit ihm wird auf einfache Art und Weise direkt per Sprachführung und Eingabedialogen Automagic für AMAD konfiguriert und das Device in FHEM automatisch erstellt. Autocreate!
Vorstellung
Dieses 2-stufige 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.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
Features / Funktionen
Im Auslieferiungszustand werden folgende Zustände dargestellt:
- installierte Android Version
- Zustand von Automagic auf dem Gerät
- Spracheingabe
- 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
- ...
Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt, in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern.
AMADCommBridge - Kommunikationsbrücke für alle AMAD Geräte
Dieses Modul ist das Ausgangsmodul zur erfolgreichen Integration von Androidgeräten in FHEM. Es stellt ferner eine Verbindungsebene zwischen AMAD unterstützten Geräten und FHEM zur Verfügung. Alle Kommunikation zwischen AMAD Android und FHEM läuft über diese Schnittstelle. Daher erfolgt die Ersteinrichtung eines AMAD Devices auch genau über diese Modulinstanz.
Damit erfolgreich ein Androidgerät in FHEM eingerichtet werden kann, muss im ersten Schritt ein AMADCommBridge Device angelegt werden.
Definition in FHEM
define <name> AMADCommBridge
Beispiel
define AMADBridge AMADCommBridge
Diese Anweisung erstellt ein neues AMADCommBridge Device Namens AMADBridge.
Im folgenden muß lediglich das Flowset auf dem Android Gerät installiert werden und der Flow 'First Run Assistent' ausgeführt werden. (einfach den Homebutton drücken) Der Assistent geleitet Dich dann durch die Einrichtung Deines AMAD Gerätes und sorgt dafür das am Ende des Installationsprozess das Androidgerät als AMAD Device in FHEM angelegt wird.
Readings
- JSON_ERROR - JSON Fehlermeldung welche von Perl gemeldet wird
- JSON_ERROR_STRING - der String welcher die JSON Fehlermeldung verursacht hat
- fhemServerIP - die Ip-Adresse des FHEM Servers, wird vom Modul auf Basis des JSON Strings vom Installationsassistenten gesetzt. Kann aber auch mittels set Befehles vom User gesetzt werden
- receiveFhemCommand - ist das Attribut fhemControlMode auf trigger gestellt, wird das Reading gesetzt sobald ein FHEM Befehl übersendet wird. Hierauf kann dann ein Notify triggern. Wird anstelle von trigger setControl als Wert für fhemControlMode eingestellt, wird das Reading nicht gestzt sondern der set Befehl sofort ausgeführt.
- receiveVoiceCommand - wird die Sprachsteuerung von AMAD aktiviert (set DEVICE activateVoiceInput) so wird der letzte erkannten Sprachbefehle in dieses Reading geschrieben.
- receiveVoiceDevice - Name des Devices von wo aus der letzte erkannte Sprachbefehl gesendet wurde
- state - Status der Bridge, open, closed
Attribute
- allowFrom - Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut gesetzt wurde, werden ausschließlich Verbindungen von diesen Adressen akzeptiert. Achtung: falls allowfrom nicht gesetzt ist, und keine gütige allowed Instanz definiert ist, und die Gegenstelle eine nicht lokale Adresse hat, dann wird die Verbindung abgewiesen. Folgende Adressen werden als local betrachtet: IPV4: 127/8, 10/8, 192.168/16, 172.16/10, 169.254/16, IPV6: ::1, fe80/10
- debugJSON - wenn auf 1 gesetzt, werden JSON Fehlermeldungen in Readings geschrieben. Siehe hierzu JSON_ERROR* unter Readings
- fhemControlMode - steuert die zulässige Art der Kontrolle von FHEM Devices. Du kannst über die Bridge auf 2 Arten FHEM Devices steuern. Entweder per direktem FHEM Befehl aus einem Flow heraus, oder als Sprachbefehl mittels Sprachsteuerung (set DEVICE activateVoiceInput)
- trigger - ist der Wert trigger gesetzt, werden alle an die Bridge gesendeten FHEM set Befehle in das Reading receiveFhemCommand geschrieben und können so mittels notify ausgeführt werden. Sprachsteuerung ist möglich, es werden Readings receiveVoice* gesetzt. Auf dem Androidgerät können bei Sprachsteuerung mehrere Sprachbefehle mittels "und" verknüpft/aneinander gereiht werden. Bsp: schalte die Lichtszene Abends an und schalte den Fernsehr an
- setControl - alle set Befehle welche mittels eines Flows über die Bridge gesendet werden, werden automatisch ausgeführt. Das triggern eines Readings ist nicht nötig. Die Steuerung mittels Sprache verhält sich wie beim Wert trigger
- thirdPartControl - verhält sich wie trigger, bei der Sprachsteuerung ist jedoch ein anreihen von Sprachbefehlen mittels "und" nicht möglich. Dient der Sprachsteuerung über Module anderer Modulautoren ((z.B. 39_TEERKO.pm)
AMADDevice - 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.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher. Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADDeviceCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern. Für all diese Aktionen und Informationen wird auf dem Androidgerät "Automagic" und ein so genannter Flow benötigt. Die App ist über den Google PlayStore zu beziehen. Das benötigte Flowset bekommt man aus dem FHEM Verzeichnis.
Wie genau verwendet man nun AMADDevice?
- stelle sicher das als aller erstes die AMADCommBridge in FHEM definiert wurde
- installiere die App "Automagic Premium" aus dem PlayStore.
- installiere das Flowset 74_AMADDeviceautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät
- aktiviere den Installationsassistanten Flow in Automagic. Wenn man nun Automagic in den Hintergrund schickt, z.B. Hometaste drücken, startet der Assistant und legt automatisch ein Device für das Androidgerät an.
Ein AMADDevice Gerät von Hand anlegen.
Define
10.6.9.10 1496497380000 IODev=AMADBridge define <name> AMADDevice <IP-ADRESSE> <AMAD_ID> IODev=<IODEVICE>
Beispiel
define WandTabletWohnzimmer AMADDevice 192.168.0.23 123456 IODev=NAME_des_AMADCommBridge_Devices
In diesem Fall wird ein AMADDevice von Hand angelegt. Die AMAD_ID, hier 123456, muß auch exakt so als globale Variable in Automagic eingetragen sein.
Readings
- airplanemode - Status des Flugmodus
- androidVersion - aktuell installierte Androidversion
- automagicState - Statusmeldungen von der AutomagicApp (Voraussetzung Android >4.3). Ist Android größer 4.3 vorhanden und im Reading steht "wird nicht unterstützt", muß in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken für Automagic gesetzt werden
- batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=Überhitzt, 4=tot, 5=Überspannung, 6=unbekannter Fehler, 7=kalt)
- batterytemperature - Temperatur der Batterie
- bluetooth - on/off, Bluetooth Status 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
- currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music)
- currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
- currentMusicIcon - Cover vom aktuell abgespielten Album Noch nicht fertig implementiert
- currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers
- currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers
- daydream - on/off, Daydream gestartet oder nicht
- deviceState - Status des Androidgerätes. unknown, online, offline.
- doNotDisturb - aktueller Status des nicht stören Modus
- dockingState - undocked/docked Status ob sich das Gerät in einer Dockinstation befindet.
- flow_SetCommands - active/inactive, Status des SetCommands Flow
- flow_informations - active/inactive, Status des Informations Flow
- flowsetVersionAtDevice - aktuell installierte Flowsetversion auf dem Device
- incomingCallerName - Anrufername des eingehenden Anrufes
- incomingCallerNumber - Anrufernummer des eingehenden Anrufes
- incommingWhatsAppMessageFrom - letzte WhatsApp Nachricht
- incommingWhatsTelegramMessageFrom - letzte Telegram Nachricht
- intentRadioName - zuletzt gesrreamter Intent Radio Name
- intentRadioState - Status des IntentRadio Players
- keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist
- 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
- nextAlarmState - aktueller Status des "Androidinternen" Weckers
- nextAlarmTime - aktive Alarmzeit
- powerLevel - Status der Batterie in %
- powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA
- screen - on locked/unlocked, off locked/unlocked gibt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt
- screenBrightness - Bildschirmhelligkeit von 0-255
- screenFullscreen - on/off, Vollbildmodus (An,Aus)
- screenOrientation - Landscape,Portrait, Bildschirmausrichtung (Horizontal,Vertikal)
- screenOrientationMode - auto/manual, Modus für die Ausrichtung (Automatisch, Manuell)
- state - aktueller Status
- userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut
- volume - Media Lautstärkewert
- volumeNotification - Benachrichtigungs Lautstärke
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.
Set
- activateVoiceInput - aktiviert die Spracheingabe
- bluetooth - on/off, aktiviert/deaktiviert Bluetooth
- clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste
- closeCall - beendet einen laufenden Anruf
- currentFlowsetUpdate - fürt ein Flowsetupdate auf dem Device durch
- doNotDisturb - schaltet den nicht stören Modus, always immer stören, never niemals stören, alarmClockOnly nur Wecker darf stören, onlyImportant nur wichtige Störungen
- installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben. Bsp: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml
- mediaAmazonMusic - play, stop, next, back ,steuert den Amazon Musik Mediaplayer
- mediaGoogleMusic - play, stop, next, back ,steuert den Google Play Musik Mediaplayer
- mediaSpotifyMusic - play, stop, next, back ,steuert den Spotify Mediaplayer
- mediaTuneinRadio - play, stop, next, back ,steuert den TuneIn Radio Mediaplayer
- mediaAldiMusic - play, stop, next, back ,steuert den Aldi Musik Mediaplayer
- mediaAudible - play, stop, next, back ,steuert den Audible Mediaplayer
- mediaYouTube - play, stop, next, back ,steuert den YouTube Mediaplayer
- mediaVlcPlayer - play, stop, next, back ,steuert den VLC Mediaplayer
- nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der nächsten 24Std.
- openCall - ruft eine Nummer an und legt optional nach X Sekunden auf / set DEVICE openCall 01736458 10 / ruft die Nummer an und beendet den Anruf nach 10s
- screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn
- screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.
- screenMsg - versendet eine Bildschirmnachricht
- sendintent - sendet einen Intentstring Bsp: set $AMADDeviceDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio, der erste Befehl ist die Aktion und der zweite das Extra. Es können immer zwei Extras mitgegeben werden.
- sendSMS - sendet eine SMS an eine bestimmte Telefonnummer. Bsp.: sendSMS Dies ist ein Test|555487263
- startDaydream - startet den Daydream
- statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder.
- timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Sekunden angegeben werden.
- ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird
- userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,set Nexus7Wohnzimmer Badezimmer vorheizen:inactive oder set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
- vibrate - lässt das Androidgerät vibrieren
- volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautstärke um den Wert. Der maximale Sliderwert kann über das Attribut setVolMax geregelt werden.
- volumeUp - erhöh;t die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
- volumeDown - reduziert die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
- volumeNotification - setzt die Benachrichtigungslautstärke.
Set abhängig von gesetzten Attributen
- changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten!
- notifySndFile - spielt die angegebene Mediadatei auf dem Androidgerät ab. Die aufzurufende Mediadatei sollte sich im Ordner /storage/emulated/0/Notifications/ befinden. Ist dies nicht der Fall kann man über das Attribut setNotifySndFilePath einen Pfad vorgeben.
- openApp - öffnet eine ausgewählte App. Attribut setOpenApp
- openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das Attribut setOpenUrlBrowser ausgewählt wurde. Bsp: attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, das erste ist der Package Name und das zweite der Class Name
- setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern
- setScreenOnForTimer ändert die Zeit wie lange das Display an bleiben soll!
- screenFullscreen - on/off, (aktiviert/deaktiviert) den Vollbildmodus. Attribut setFullscreen
- screenLock - Sperrt den Bildschirm mit Pinabfrage. Attribut setScreenlockPIN - hier die Pin dafür eingeben. Erlaubt sind nur Zahlen. Es müßen mindestens 4, bis max 16 Zeichen verwendet werden.
- screenOrientation - Auto,Landscape,Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). Attribut setScreenOrientation
- system - setzt Systembefehle ab (nur bei gerootetet Geräen). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) Attribut root, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden
- setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/
- setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0
- setTtsMsgSpeed - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)
- setVolUpDownStep - setzt den Step für volumeUp und volumeDown
- setVolMax - setzt die maximale Volume Gr&uoml;e für den Slider
- setNotifyVolMax - setzt den maximalen Lautstärkewert für Benachrichtigungslautstärke für den Slider
- setRingSoundVolMax - setzt den maximalen Lautstärkewert für Klingellautstärke für den Slider
Um openApp verwenden zu können, muss als Attribut der Package Name der App angegeben werden.
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
- 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
Anwendungsbeispiele
Lademanagement
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.
Hier mal ein einfaches DOIF Beispiel für ein Lademanagment
... DOIF ([Nexus5Handy:powerLevel] < 30) (set LadenetzteilNexus5Handy:FILTER=STATE=off on) DOELSEIF ([Nexus5Handy:powerLevel] > 90) (set LadenetzteilNexus5Handy:FILTER=STATE=on off) DOELSE
Wecker
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.
Mediacenter
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.
Sprachbefehl - Abfragen von Zuständen diverser Sensoren
Wenn ich die Spracheingabe aktiviere und nach der Temperatur im Wohnzimmer frage, bekomme ich diese angesagt.
Der Teil im Feld Daten ist ein klassisches RadingsVal, halt nur ohne Komma und ohne Anführungszeichen
WIRD GERADE ÜBERARBEITET
Schaltbefehle vom Androidgerät an FHEM senden
Hierfür richte bitte einen eigen Flow ein. Wie das genau geht, verrät Dir die Hilfe. Um einen Schaltbefehl für FHEM zu erstellen, folgt nach dem Trigger eine Aktion als Script (Aktion Type: Script). Hier trägst Du folgendes ein
setcmd = "LichtWohnzimmerLampeRechts on"
fhemcmd = "set"
In der ersten Zeile wird also der Schaltbefehl in der Variablem setcmd eingetragen und in der zweiten Zeile der FHEM Befehl in der Variablen fhemcmd.
Danach müsst Ihr nur noch in einer weiteren Aktion den Flow "Send Data to AMADCommBridge" ausführen (Aktion Type: Flows ausführen). Die Aktion sollte bereits in Eurer Liste Vorhanden sein.
Nun sollte Lampe1 angeschalten werden wenn der Flow ausgeführt wird.
Bekannte Meldungen/Hinweise/Probleme
Wenn auf dem Android-Gerät die Fehlermeldung 'Accessibility service not running' von Automagic kommt, oder im FHEM das reading state 'Flow Informations mit Fehler beendet' steht, dann muss der Accessibility Service auf dem Android-Device aktiviert werden: Einstellungen --> Bedienungshilfen --> Automagic Premium. Hier muss der Schalter auf 'an' stehen. Sollte dies der Fall sein, hilft u.U. ein kurzes Aus- und wieder Einschalten.
Gerät wird oft als offline angezeigt und es können keine set Befehle abgesetzt werden.
Mit der AMAD Version 2.2 hielt eine neue Behandlung des deviceState Readings Einzug. Das Reading stellt nun den tatsächlichen Status des Gerätes gegenüber FHEM da. Bei vielen Android 6 Geräten kommt es aber auf Grund vom DeepSleep Modus zum wegfall der WLAN Verbindung. Hier hilft die neue KeepAlive Funktion in AMAD. Dafür muß lediglich unter
- Einstellungen --> Akku --> oben auf die drei Punkte - Akku Leistungsoptimierung --> alle Apps und dann Automagic auswählen und "Nicht optimieren"
ausgewählt werden. Alles andere macht das Modul selbst.