AMAD: Unterschied zwischen den Versionen
Zeile 272: | Zeile 272: | ||
=== Schaltbefehle an FHEM senden mit Hilfe eines eigenen Flows === | === Schaltbefehle an FHEM senden mit Hilfe eines eigenen Flows === | ||
== Lister aller Variablen für die AMADCommandBridge == | ==== Lister aller Variablen für die AMADCommandBridge ==== | ||
fhemcmd Variable | fhemcmd Variable | ||
* Wert "set" - Variable für den Schaltbefehl 'setcmd' | * Wert "set" - Variable für den Schaltbefehl 'setcmd' |
Version vom 16. August 2018, 13:33 Uhr
AMAD | |
---|---|
Zweck / Funktion | |
Steuern von Androidgerä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.2 [AMADNG]
73_AMADCommBridge / 74_AMADDevice
Vorwort
Warum AMADNG
Nach fast 6 Monaten Entwicklungszeit wurde die neuste AMAD Version am 24.07.2017 offiziell frei gegeben. 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 hinzu, die ich dann fähig war umzusetzen. Eine dieser Anforderungen war eine einfachere und besser funktionierende Installation. Herausgekommen 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.
Es ist darauf zu achten, das Autocreate aktiv ist, da sonst kein Device mit Hilfe des Assistenten angelegt werden kann!
Vorstellung
Dieses 2-stufige Modul liefert, in Verbindung mit der Android App Automagic, diverse Informationen von Android Geräten. Die AndroidAPP Automagic (die nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem benutzungsfreundlicher.
Features / Funktionen
Im Auslieferungszustand 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, die Automagic bereit stellt, in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows, der 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 dann durch die Einrichtung des AMAD Gerätes und sorgt dafür, dass am Ende des Installationsprozess das Androidgerät als AMAD Device in FHEM angelegt wird.
Readings
- JSON_ERROR - JSON Fehlermeldung, die von Perl gemeldet wird
- JSON_ERROR_STRING - der String, der 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 gesetzt 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 Steuerung von FHEM Devices. Es können über die Bridge auf 2 Arten FHEM-Devices angesteuert werden: 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 Fernseher an
- setControl - alle set Befehle, die 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 Android App Automagic (die 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, die Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows, der 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?
- sicherstellen, dass als allererstes die AMADCommBridge in FHEM definiert wurde
- installieren der App "Automagic Premium" aus dem PlayStore
- installieren des Flowset 74_AMADDeviceautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät
- aktivieren des 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
define <name> AMADDevice <IP-ADRESSE> <AMAD_ID> <REMOTESERVER>
Beispiel
define WandTabletWohnzimmer AMADDevice 192.168.0.23 123456 Automagic
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 Automagic App (Voraussetzung Android >4.3). Ist Android größer 4.3 vorhanden und im Reading steht "wird nicht unterstützt", muss 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 Dockingstation 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 gestreamter Intent Radio Name
- intentRadioState - Status des IntentRadio Players
- keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht, dass 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? 1=AC Adapter, 2=USB, 4=Kabellos 0=nicht eingesteckt
- 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ührt 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 24 h
- 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 Clock-App auf dem Device. Es können nur Sekunden angegeben werden.
- ttsMsg - versendet eine Nachricht, die 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öht 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 Zeitdauer, die 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äten). 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öß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, muss das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. attr <DEVICE> BTdeviceName1|MAC,BTDeviceName2|MAC Es muss zwingend darauf geachtet werden, dass beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Bei der MAC ist darauf zu achten, dass wirklich nach jeder zweiten Zahl ein : steht
- 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 heruntergesetzt, 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 ReadingsVal, halt nur ohne Komma und ohne Anführungszeichen
WIRD GERADE ÜBERARBEITET
Schaltbefehle vom Androidgerät an FHEM senden
Hierfür ist ein eigener Flow einzurichten. Wie das genau geht, verrät die Hilfe. Um einen Schaltbefehl für FHEM zu erstellen, folgt nach dem Trigger eine Aktion als Script (Aktion Type: Script). Hier ist folgendes einzutragen:
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.
Mit FHEM ein Flow ausführen
Es gibt den set Befehl userFlowRun. Als Argument übergibt man einen Flownamen. Achtung dieser Flowname darf keine Sonder oder Leerzeichen enthalten!!!
Schaltbefehle an FHEM senden mit Hilfe eines eigenen Flows
Lister aller Variablen für die AMADCommandBridge
fhemcmd Variable
- Wert "set" - Variable für den Schaltbefehl 'setcmd'
- Wert "setreading" - Variable für die Readingswerte 'fhemdata'
- "readingsval" - Variable für die Abfragewerte 'readingsvalcmd'
- "fhemfunc" - Variable für den Funktionsnamen 'fhemsub'
Beispiele für Skriptinhalte:
Schalten einer Lampe
setcmd = "LichtWohnzimmerLampeRechts on";
fhemcmd = "set"
Status eines Device abfragen
readingsvalcmd = "DEVICE READING DEFAULT";
fhemcmd = "readingsval"
Die Rückgabevariable, die dann weiter verarbeitet werden kann, heißt respreadingsval
Aufruf einer 99_myUtils Subroutine
fhemsub = "mySub()"; oder natürlich auch "mySub('was_auch_immer')"
fhemcmd = "fhemfunc"
Die Rückgabevariable, die dann weiter verarbeitet werden kann, heißt respfhemfunc
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 und in FHEM für das Device das Attribut setAPSSID gesetzt werden. Alles andere macht das Modul selbst.