diff --git a/74_AMAD.pm b/74_AMAD.pm
index dce13ec..5e1532b 100644
--- a/74_AMAD.pm
+++ b/74_AMAD.pm
@@ -35,7 +35,7 @@ use Time::HiRes qw(gettimeofday);
use HttpUtils;
use TcpServerUtils;
-my $version = "0.7.8";
+my $version = "0.7.9";
@@ -459,6 +459,7 @@ sub AMAD_Set($$@) {
$list .= "system:reboot " if( AttrVal( $name, "root", "1" ) eq "1" );
$list .= "bluetooth:on,off ";
$list .= "notifySndFile ";
+ $list .= "clearNotificationBar:All,Automagic ";
$list .= "changetoBTDevice:$btdev " if( AttrVal( $name, "setBluetoothDevice", "none" ) ne "none" );
if( lc $cmd eq 'screenmsg'
@@ -477,6 +478,7 @@ sub AMAD_Set($$@) {
|| lc $cmd eq 'system'
|| lc $cmd eq 'notifysndfile'
|| lc $cmd eq 'changetobtdevice'
+ || lc $cmd eq 'clearnotificationbar'
|| lc $cmd eq 'statusrequest' ) {
Log3 $name, 5, "AMAD ($name) - set $name $cmd ".join(" ", @val);
@@ -669,6 +671,14 @@ sub AMAD_SelectSetCmd($$@) {
return AMAD_HTTP_POST( $hash,$url );
}
+
+ elsif( lc $cmd eq 'clearnotificationbar' ) {
+ my $appname = join( " ", @data );
+
+ my $url = "http://" . $host . ":" . $port . "/fhem-amad/setCommands/clearnotificationbar?app=$appname";
+
+ return AMAD_HTTP_POST( $hash,$url );
+ }
return undef;
}
@@ -1108,7 +1118,8 @@ sub AMAD_CommBridge_Read($) {
- Zustand von Automagic auf dem Gerät
- Bluetooth An/Aus
- - verbundene Bluetoothgeräte
+ - 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
@@ -1131,9 +1142,12 @@ sub AMAD_CommBridge_Read($) {
Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden.
+ - 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
@@ -1168,20 +1182,34 @@ sub AMAD_CommBridge_Read($) {
define WandTabletWohnzimmer AMAD 192.168.0.23
- Diese Anweisung erstellt ein neues AMAD-Device. Der Parameter <IP-ADRESSE< legt die IP Adresse des Android Gerätes fest.
+ 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
- automagicState - Statusmeldungen von der AutomagicApp
- bluetooth on/off - ist auf dem Gerät Bluetooth an oder aus
- - connectedBTdevices - eine Lieste der verbundenen Gerät
+ - 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
@@ -1204,17 +1232,22 @@ sub AMAD_CommBridge_Read($) {
- volume - Lautstärkewert welcher über "set volume" gesetzt wurde.
- volumeMusikBluetooth - Media Lautstärke von angeschlossenden Bluetooth Lautsprechern
- volumeMusikSpeaker - Media Lautstärke der internen Lautsprecher
-
- Die Readings volumeMusikBluetooth und volumeMusikSpeaker spiegeln die jeweilige Medialautstärke der angeschlossenden Bluetoothlautsprechern oder der internen Lautsprecher wieder.
+
+ 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.
+
Set
+ - bluetooth - Schaltet Bluetooth on/off
- 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
@@ -1225,6 +1258,8 @@ sub AMAD_CommBridge_Read($) {
Set abhängig von gesetzten Attributen
+
+ - 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
@@ -1233,10 +1268,14 @@ sub AMAD_CommBridge_Read($) {
- screenFullscreen - Schaltet den Vollbildmodus on/off. Attribut setFullscreen
- screenOrientation - Schaltet die Bildschirmausrichtung Auto/Landscape/Portait. Attribut setScreenOrientation
- system - setzt Systembefehle ab (nur bei gerootetet Geräen). Reboot Attribut root, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden
+
Um openApp verwenden zu können, muss als Attribut ein, oder durch Komma getrennt, mehrere App Namen gesetzt werden. Der App Name ist frei wählbar und nur zur Wiedererkennung notwendig.
Der selbe App Name muß im Flow SetCommands auf der linken Seite unterhalb der Raute Expression:"openApp" in einen der 5 Stränge (eine App pro Strang) in beide Rauten eingetragen werden. Danach wird
- in das
- Viereck die App ausgewält welche durch den Attribut App Namen gestartet werden soll.
+ 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
diff --git a/74_AMADautomagicFlows0.7.8.xml b/74_AMADautomagicFlows0.7.9.xml
similarity index 72%
rename from 74_AMADautomagicFlows0.7.8.xml
rename to 74_AMADautomagicFlows0.7.9.xml
index 0e4f662..c48b08a 100644
--- a/74_AMADautomagicFlows0.7.8.xml
+++ b/74_AMADautomagicFlows0.7.9.xml
@@ -161,6 +161,11 @@ global_album = getString("album");
Display Orientierung: Portrait
true
+
+ false
+ Expression: All
+ param_app == "All"
+
false
Expression: App3
@@ -176,6 +181,16 @@ global_album = getString("album");
Expression: App5
param_app == ""
+
+ false
+ Expression: Automagic
+ param_app == "Automagic"
+
+
+ false
+ Expression: Clear Automagic Meldungen"
+ request_path == "/fhem-amad/setCommands/clearnotificationbar"
+
true
Expression: global_touched=="ja"
@@ -466,6 +481,28 @@ global_album = getString("album");
0
0
+
+ true
+ Benachrichtigung aus Statusbar entfernen: Alle
+ false
+ true
+ 1
+ true
+
+ true
+
+
+
+ true
+ Benachrichtigung aus Statusbar entfernen: Alle (Automagic)
+ true
+ true
+ 1
+ false
+
+ true
+
+
true
Bluetooth ein-/ausschalten: Aus
@@ -492,6 +529,54 @@ global_album = getString("album");
false
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdeviceone}
+ INPUT_DEVICE
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdevicetwo}
+ INPUT_DEVICE
+ {param_btdevicetwo}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdeviceone}
+ HEADSET
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdevicetwo}
+ HEADSET
+ {param_btdevicetwo}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdeviceone}
+ PAN
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdevicetwo}
+ PAN
+ {param_btdevicetwo}
+
+ false
+
true
Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
@@ -629,6 +714,12 @@ FHEMCMD: setreading
2s
true
+
+ true
+ Pause: 3s (Gerät wach halten)
+ 3s
+ true
+
false
Reading Music Metachanged
@@ -897,7 +988,7 @@ FHEMCMD: statusrequest
Informations
- FHEM Info / Steuerung über AMAD Modul v0.7.8
+ FHEM Info / Steuerung über AMAD Modul v0.7.9
true
QUEUE
120
@@ -925,82 +1016,82 @@ FHEMCMD: statusrequest
Flow Aktiv: SetCommands
Script: setCommandFlow_state = "aktiv"
Setze Flow Status: Aktivieren SetCommands
- Benachrichtigung in Statusbar angezeigt: Automagic
- Script: global_artist = "no soundplayer activ"; global_track = "no soundplayer activ"; global_album = "no soundplayer activ";
- Musik Aktiv
- Pause: 2s (Gerät wach halten)
- Expression: trigger == "com.android.music.metachanged"
- Expression: trigger == "Globale Variable: global_own_reading"
- WLAN Verbunden: Alle SSIDs
- WLAN Verbunden: Alle SSIDs
- Script: bluetooth_state = "on"
- Bluetooth Gerät verbunden: Beliebiges Geräte
- Akku Ladestand: grösser als 0%
- Script: setCommandFlow_state = "inaktiv"
- Script: global_fhemip = {header_fhemip} global_fhemdevice = {header_fhemdevice}
- App Task läuft: {header_activetask} (neuster)
- Script: runTask = "0"
- Script: runTask = "1"
- Reading Music Metachanged
- Own Reading
- HTTP Response Information
-
-
-
+ Script: global_artist = "no soundplayer activ"; global_track = "no soundplayer activ"; global_album = "no soundplayer activ";
+ Musik Aktiv
+ Pause: 2s (Gerät wach halten)
+ Expression: trigger == "com.android.music.metachanged"
+ Expression: trigger == "Globale Variable: global_own_reading"
+ WLAN Verbunden: Alle SSIDs
+ WLAN Verbunden: Alle SSIDs
+ Script: bluetooth_state = "on"
+ Bluetooth Gerät verbunden: Beliebiges Geräte
+ Akku Ladestand: grösser als 0%
+ Script: setCommandFlow_state = "inaktiv"
+ Script: global_fhemip = {header_fhemip} global_fhemdevice = {header_fhemdevice}
+ App Task läuft: {header_activetask} (neuster)
+ Script: runTask = "0"
+ Script: runTask = "1"
+ Reading Music Metachanged
+ Own Reading
+ HTTP Response Information
+ Benachrichtigung in Statusbar angezeigt: Automagic
+
+
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Meldung Display An
@@ -1063,7 +1154,7 @@ FHEMCMD: statusrequest
SetCommands
- FHEM Info / Steuerung über AMAD Modul v0.7.8
+ FHEM Info / Steuerung über AMAD Modul v0.7.9
true
QUEUE
120
@@ -1089,161 +1180,188 @@ FHEMCMD: statusrequest
Expression: param_button == "back"
Expression: param_button == "next"
Setze Display Orientierung: Auf Default zurücksetzen
- Audio Player steuern: Medienknopf Play (Google Play Musik)
- Expression: param_button == "play"
- Expression: mediaPlayer"
- Audio Player steuern: Medienknopf Weiter (Google Play Musik)
- Expression: param_button == "stop"
- Expression: param_screen=="off"
- Gerät sperren
- Expression: setScreenOnOff"
- App Task läuft: App5 (neuster)
- Expression: App5
- Expression: App4
- App Task läuft: App3 (neuster)
- Expression: App3
- App Starten: App3
- App Starten: App4
- App Task läuft: App4 (neuster)
- Expression: tuneinradio
- App Task läuft: tuneinradio (neuster)
- App Starten: tuneinradio
- App Starten: App5
- App Task läuft: gplay (neuster)
- Expression: gplay
- App Starten: PlayMusic
- Expression: openApp"
- Expression: System Command"
- Neustart
- Setze Flow Status: Aktivieren Informations
- Script: informationFlow_state = "inaktiv"
- Script: informationFlow_state = "aktiv"
- Flow Aktiv: Informations
- Expression: ttsMsg"
- Lautstärken setzen
- Setze Systemeinstellung: System screen_brightness auf {param_brightness}
- Schalte Display ein: Hell für 120s
- Display automatisch drehen ein-/ausschalten: Aus
- Display automatisch drehen ein-/ausschalten: Ein
- Setze Alarm: um {param_hour}:{param_minute}
- HTTP Response SetCommand
- Audio Player steuern: Medienknopf Stopp (Google Play Musik)
- Expression: setScreenOrientation"
- Expression: param_fullscreen == "off"
- Expression: param_fullscreen == "on"
- Expression: setBluetooth"
- Expression: openURL"
- Expression: Reboot
- Expression: setVolume"
- Sprachausgabe: {param_message}
- Sound: /storage/emulated/0/Notifications/{param_notifyfile} als Benachrichtigung
- StatusRequest
- Expression: notifysnd"
- Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
- Expression: param_bluetooth == "off"
- Bluetooth ein-/ausschalten: Aus
- Expression: param_bluetooth == "on"
- Bluetooth ein-/ausschalten: Ein
- Expression: setBTDevice"
- Bluetooth eingeschaltet
- Bluetooth Gerät verbunden: {param_btdeviceone}
- Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdeviceone}
- Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
- Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdevicetwo}
- Bluetooth Gerät verbunden: {param_btdevicetwo}
-
-
-
-
+ Expression: param_button == "play"
+ Expression: mediaPlayer"
+ Audio Player steuern: Medienknopf Weiter (Google Play Musik)
+ Expression: param_button == "stop"
+ Expression: param_screen=="off"
+ Gerät sperren
+ Expression: setScreenOnOff"
+ App Task läuft: App5 (neuster)
+ Expression: App5
+ Expression: App4
+ App Task läuft: App3 (neuster)
+ Expression: App3
+ App Starten: App3
+ App Starten: App4
+ App Task läuft: App4 (neuster)
+ Expression: tuneinradio
+ App Task läuft: tuneinradio (neuster)
+ App Starten: tuneinradio
+ App Starten: App5
+ App Task läuft: gplay (neuster)
+ Expression: gplay
+ App Starten: PlayMusic
+ Expression: System Command"
+ Neustart
+ Setze Flow Status: Aktivieren Informations
+ Script: informationFlow_state = "inaktiv"
+ Script: informationFlow_state = "aktiv"
+ Flow Aktiv: Informations
+ Expression: ttsMsg"
+ Lautstärken setzen
+ Setze Systemeinstellung: System screen_brightness auf {param_brightness}
+ Schalte Display ein: Hell für 120s
+ Display automatisch drehen ein-/ausschalten: Aus
+ Display automatisch drehen ein-/ausschalten: Ein
+ Setze Alarm: um {param_hour}:{param_minute}
+ Audio Player steuern: Medienknopf Stopp (Google Play Musik)
+ Expression: setScreenOrientation"
+ Expression: param_fullscreen == "off"
+ Expression: param_fullscreen == "on"
+ Expression: setBluetooth"
+ Expression: openURL"
+ Expression: setVolume"
+ Sprachausgabe: {param_message}
+ Sound: /storage/emulated/0/Notifications/{param_notifyfile} als Benachrichtigung
+ StatusRequest
+ Expression: param_bluetooth == "off"
+ Bluetooth ein-/ausschalten: Aus
+ Expression: param_bluetooth == "on"
+ Bluetooth ein-/ausschalten: Ein
+ Expression: setBTDevice"
+ Bluetooth eingeschaltet
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdevicetwo}
+ HTTP Response SetCommand
+ Bluetooth Gerät verbunden: {param_btdeviceone}
+ Bluetooth Gerät verbunden: {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
+ Pause: 3s (Gerät wach halten)
+ Expression: notifysnd"
+ Audio Player steuern: Medienknopf Play (Google Play Musik)
+ Expression: openApp"
+ Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
+ Expression: Reboot
+ Benachrichtigung aus Statusbar entfernen: Alle
+ Expression: All
+ Benachrichtigung aus Statusbar entfernen: Alle (Automagic)
+ Expression: Automagic
+ Expression: Clear Automagic Meldungen"
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file