diff --git a/74_AMAD.pm b/74_AMAD.pm
index 92a17ed..41e52fa 100644
--- a/74_AMAD.pm
+++ b/74_AMAD.pm
@@ -37,8 +37,8 @@ use TcpServerUtils;
use Encode qw(encode);
-my $modulversion = "2.1.3";
-my $flowsetversion = "2.1.4";
+my $modulversion = "2.1.5";
+my $flowsetversion = "2.1.5";
@@ -97,6 +97,7 @@ sub AMAD_Define($$) {
$hash->{VERSIONFLOWSET} = $flowsetversion;
$hash->{helper}{infoErrorCounter} = 0 if( $hash->{HOST} );
$hash->{helper}{setCmdErrorCounter} = 0 if( $hash->{HOST} );
+ $hash->{helper}{deviceStateErrorCounter} = 0 if( $hash->{HOST} );
@@ -138,7 +139,7 @@ sub AMAD_Undef($$) {
my ( $hash, $arg ) = @_;
if( $hash->{BRIDGE} ) {
- delete $modules{AMAD}{defptr}{BRIDGE};
+ delete $modules{AMAD}{defptr}{BRIDGE} if(defined($modules{AMAD}{defptr}{BRIDGE}));
TcpServer_Close( $hash );
} else {
@@ -479,6 +480,8 @@ sub AMAD_ResponseProcessing($$) {
readingsBulkUpdate( $hash, "state", "active" ) if( ReadingsVal( $name, "state", 0 ) eq "initialized" );
readingsEndUpdate( $hash, 1 );
+ $hash->{helper}{deviceStateErrorCounter} = 0 if( $hash->{helper}{deviceStateErrorCounter} > 0 and ReadingsVal( $name, "deviceState", "offline") eq "online" );
+
return undef;
}
@@ -1019,8 +1022,15 @@ sub AMAD_checkDeviceState($) {
Log3 $name, 4, "AMAD ($name) - AMAD_checkDeviceState: run Check";
RemoveInternalTimer( $hash );
- readingsSingleUpdate( $hash, "deviceState", "offline", 1 ) if( ReadingsAge($name,"deviceState",180) > 180 );
- InternalTimer( gettimeofday()+180, "AMAD_checkDeviceState", $hash, 0 );
+
+ if( ReadingsAge( $name, "deviceState", 90 ) > 90 ) {
+
+ AMAD_statusRequest( $hash ) if( $hash->{helper}{deviceStateErrorCounter} == 0 );
+ readingsSingleUpdate( $hash, "deviceState", "offline", 1 ) if( ReadingsAge( $name, "deviceState", 180) > 180 and $hash->{helper}{deviceStateErrorCounter} > 0 );
+ $hash->{helper}{deviceStateErrorCounter} = ( $hash->{helper}{deviceStateErrorCounter} + 1 );
+ }
+
+ InternalTimer( gettimeofday()+90, "AMAD_checkDeviceState", $hash, 0 );
Log3 $name, 4, "AMAD ($name) - AMAD_checkDeviceState: set new Timer";
}
@@ -1081,7 +1091,7 @@ sub AMAD_CommBridge_Read($) {
my @data = split( '\R\R', $buf );
my $header = AMAD_Header2Hash( $data[0] );
- my $device = $header->{FHEMDEVICE};
+ my $device = $header->{FHEMDEVICE} if(defined($header->{FHEMDEVICE}));
my $dhash = $defs{$device};
my $response;
my $c;
@@ -1289,7 +1299,7 @@ sub AMAD_decrypt($) {
How to use AMAD?
- install the "Automagic Premium" app from the Google Play store or use the test version from here
- - install the flowset 74_AMADautomagicFlowset$VERSION.xml from the directory $INSTALLFHEM/FHEM/lib/ on your Android device. Do not yet activate the flows.
+ - install the flowset 74_AMADautomagicFlowset$VERSION.xml from the directory $INSTALLFHEM/FHEM/lib/ on your Android device and activate.
Now you need to define a device in FHEM.
@@ -1316,7 +1326,6 @@ sub AMAD_decrypt($) {
Please us the following command for configuration of the FHEM server IP address in the AMADCommBridge: set AMADCommBridge fhemServerIP <FHEM-IP>.
Additionally the expertMode may be configured. By this setting a direct communication with FHEM will be established without the restriction of needing to make use of a notify to execute set commands.
- NOW please activate the flows in Automagic!!!
You are finished now! After 15 seconds latest the readings of your AMAD Android device should be updated. Consequently each 15 seconds a status request will be sent. If the state of your AMAD Android device does not change to "active" over a longer period of time one should take a look into the log file for error messages.
@@ -1334,7 +1343,7 @@ sub AMAD_decrypt($) {
currentMusicArtist - currently playing artist of mediaplayer
currentMusicTrack - currently playing song title of mediaplayer
daydream - on/off, daydream currently active
- deviceState - state of Android devices. !!!It does not show the real state!!! deviceState must be set manually by the command "set DEVICE deviceState" e.g. by your PRESENCE function.
In case deviceState is set to "offline" no set commands can be issued.
+ deviceState - state of Android devices. unknown, online, offline.
dockingState - undocked/docked, Android device in docking station
flow_SetCommands - active/inactive, state of SetCommands flow
flow_informations - active/inactive, state of Informations flow
@@ -1369,17 +1378,18 @@ sub AMAD_decrypt($) {
Set
- activateVoiceInput - start voice input on Android device
+ - amazonMusic - play/stop/next/back , controlling the amazon music media player
- bluetooth - on/off, switch bluetooth on/off
- clearNotificationBar - All/Automagic, deletes all or only Automagic notifications in status bar
- currentFlowsetUpdate - start flowset update on Android device
- - deviceState - online/offline, sets device state . For more information see section Readings
+ - googleMusic - play/stop/next/back , controlling the google play music media player
- installFlowSource - install a Automagic flow on device, XML file must be stored in /tmp/ with extension xml. Example: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml
- - mediaPlayer - play/stop/next/back , controlling the standard media player
- nextAlarmTime - sets the alarm time. Only valid for the next 24 hours.
- notifySndFile - start playing the defined media file on the Android device The media file must be stored in /storage/emulated/0/Notifications/
- screenBrightness - 0-255, set screen brighness
- screenMsg - display message on screen of Android device
- sendintent - send intent string Example: set $AMADDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio, first parameter contains the action, second parameter contains the extra. At most two extras can be used.
+ - spotifyMusic - play/stop/next/back , controlling the spotify media player
- statusRequest - Get a new status report of Android device. Not all readings can be updated using a statusRequest as some readings are only updated if the value of the reading changes.
- timer - set a countdown timer in the "Clock" stock app. Only seconds are allowed as parameter.
- ttsMsg - send a message which will be played as voice message
@@ -1440,7 +1450,7 @@ sub AMAD_decrypt($) {
Wie genau verwendet man nun AMAD?
- man installiert die App "Automagic Premium" aus dem PlayStore oder die Testversion von hier
- - dann installiert man das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät. NOCH NICHT die Flows aktivieren
+ - dann installiert man das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät und aktiviert die Flows.
Es muß noch ein Device in FHEM anlegt werden.
@@ -1486,7 +1496,7 @@ sub AMAD_decrypt($) {
- currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
- currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers
- daydream - on/off, Daydream gestartet oder nicht
- - deviceState - Status des Androidgerätes. !!!Gibt nicht den tatsächlichen Status des Gerätes wieder!!! deviceState muss von Hand selbst gesetzt werden. (set DEVICE deviceState) z.B. über die Anwesenheitskontrolle.
Ist Offline gesetzt, können keine set Befehle abgesetzt werden.
+ - deviceState - Status des Androidgerätes. unknown, online, offline.
- 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
@@ -1521,17 +1531,18 @@ sub AMAD_decrypt($) {
Set
- activateVoiceInput - aktiviert die Spracheingabe
+ - amazonMusic - play, stop, next, back ,steuert den Amazon Musik Mediaplayer
- bluetooth - on/off, aktiviert/deaktiviert Bluetooth
- clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste
- currentFlowsetUpdate - fürt ein Flowsetupdate auf dem Device durch
- - deviceState - online/offline, setzt den Device Status . mehr Info unter Readings
+ - googleMusic - play, stop, next, back ,steuert den Google Play Musik Mediaplayer
- 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
- - mediaPlayer - play, stop, next, back ,steuert den Standard Mediaplayer
- nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der nächsten 24Std.
- notifySndFile - spielt die angegebene Mediadatei auf dem Androidgerät ab. Die aufzurufende Mediadatei muß sich im Ordner /storage/emulated/0/Notifications/ befinden.
- screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.
- screenMsg - versendet eine Bildschirmnachricht
- sendintent - sendet einen Intentstring Bsp: set $AMADDEVICE 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.
+ - spotifyMusic - play, stop, next, back ,steuert den Spotify Mediaplayer
- 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
diff --git a/74_AMADautomagicFlowset_2.1.4.xml b/74_AMADautomagicFlowset_2.1.5.xml
similarity index 88%
rename from 74_AMADautomagicFlowset_2.1.4.xml
rename to 74_AMADautomagicFlowset_2.1.5.xml
index 7b28921..7e895f8 100644
--- a/74_AMADautomagicFlowset_2.1.4.xml
+++ b/74_AMADautomagicFlowset_2.1.5.xml
@@ -2231,8 +2231,8 @@ FHEMCMD: setreading
true
- Script: amad_flowset_version = "2.1.4"
-
+ Script: amad_flowset_version = "2.1.5"
+
true
@@ -2669,11 +2669,135 @@ FHEMCMD: setreading
Informations
- AMAD2 Info/Control Flowset v2.1.4
+ AMAD2 Info/Control Flowset v2.1.5
true
PARALLEL
900
-
+ Expression: trigger == "Daydream Status: Gestartet"
+ Script: setCommandFlow_state = "inaktiv"
+ Script: daydream_state = "on"
+ Script: daydream_state = "off"
+ Script: next_alarmday = "{next_alarm,dateformat,c}"
+ Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"
+ Initialisiere Variable Nächster Alarm: next_alarm
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: runTask = "1"
+ Script: runTask = "0"
+ Script: runTask = "not supported android version"
+ Script: runTask = "null"
+ Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"
+ Expression: trigger == "Systemeinstellung verändert: System next_alarm"
+ Expression: trigger == "Systemeinstellung verändert: System screen_brightness"
+ Script: airplanemode = "off"
+ Expression: airpcount < 11
+ Script: keyguard = "unlocked"
+ Script: screen_state = "off {keyguard}"
+ Display Orientierung: Portrait
+ Script: screen_orientation = "portrait"
+ Script: screen_orientation = "landscape"
+ Display automatisch drehen eingeschaltet
+ Script: dock_state = "docked"
+ Script: dock_state = "undocked"
+ Script: keyguardSet = "1"
+ Script: keyguardSet = "0"
+ Script: screen_orientation_mode = "auto"
+ Script: screen_orientation_mode = "manual"
+ Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus"
+ Script: setCommandFlow_state = "aktiv"
+ Flow Aktiv: SetCommands
+ Setze Flow Status: Aktivieren SetCommands
+ Script: screen_state = "on {keyguard}"
+ Script: scrcount = 0
+ Script: keyguard = "locked"
+ Display eingeschaltet
+ Keyguard gesperrt
+ Expression: scrcount < 5
+ Script: scrcount = scrcount + 1
+ Pause: 2s (Gerät wach halten)
+ Expression: keyguard == "locked"
+ Expression: trigger == "Systemeinstellung verändert: System volume_music_bt_a2dp" or trigger == "Systemeinstellung verändert: System volume_music_speaker" or trigger == "Systemeinstellung verändert: System volume_music_headphone"
+ Expression: trigger == "com.android.music.playstatechanged" or trigger == "com.android.music.metachanged"
+ Pause: 1s (Gerät wach halten)
+ Musik Aktiv
+ Bluetooth eingeschaltet
+ Script: bluetooth_state = "off"
+ Script: bluetooth_state = "on"
+ Bluetooth Gerät verbunden: Beliebiges Geräte
+ Script: connected_devices_names = "null"; connected_devices_addresses = "null"
+ Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"
+ Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Benachrichtigung in Statusbar angezeigt: Automagic
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Script: notification_text = "not supported from your device"
+ Benachrichtigung in Statusbar angezeigt: WhatsApp
+ Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
+ Check run Task
+ Screen State
+ Reading Music Metachanged.2
+ Bluetooth Status
+ Bluetooth Device Status
+ Notification Volume
+ Lautstärke / Volume
+ Nächster Alarm
+ Screen Brightness
+ Screen Orientation
+ Dock State
+ Incoming WhatsApp Message
+ IntentRadio Status
+ Flowsetversion
+ Flow Status SetCommands
+ Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin"
+ Airplainemode
+ Script: airpcount = airpcount + 1
+ Expression: trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE"
+ Script: if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT") { nextalarmstate = "alert" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS") { nextalarmstate = "dismiss" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE") { nextalarmstate = "done" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE") { nextalarmstate = "snooze" }
+ Next Alarm State
+ Expression: global_apssid != "usb-ethernet"
+ Script: airpcount = 0
+ Pause: 2s (Gerät wach halten)
+ Expression: global_apssid != "usb-ethernet"
+ WLAN Verbunden: {global_apssid}
+ Dock Status: Docked
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"
+ Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked"
+ Expression: global_activetask != null
+ Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Status: Schaltet ein, Ein"
+ App Task läuft: {global_activetask} (neuster)
+ Script: global_artist = "no soundplayer active"; global_track = "no soundplayer active"; global_album = "no soundplayer active";
+ Automagic State
+ Script: notification_text = "not supported from your device"
+ Expression: global_fhemip != null or header_fhemip != null
+ Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2
+ Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2
+ Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)
+ Script: volume = {volumeBT}
+ Script: volume = {volumeSP}
+ Initialisiere Variable Systemeinstellung: screenBrightness
+ Initialisiere Variable Systemeinstellung: volumeNotification
+ Expression: global_bridgeport == null or global_bridgeport != {header_bport} or global_fhemip == null or global_fhemip != {header_fhemip} or global_fhemdevice == null or global_fhemdevice != {header_fhemdevice} or global_activetask == null or global_activetask != {header_activetask} or global_apssid == null or global_apssid != {header_apssid} or global_deviceport != null or global_deviceport!= {header_dport}
+ Script: androidVersion = "not supported funktion"
+ Android Version
+ Expression: trigger == "Flugmodus: Aus"
+ Expression: package_name == {global_activetask}
+ Expression: trigger == "App Task Beendet"
+ Keyguard mit Sicherheit
+ Daydream State
+ Expression: getAndroidSDKVersion() >= "19"
+ Get Android Version
+ Expression: udef_trigger == "setLockPin"
+ Incoming Call
+ KeyGuard Set
+ Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Device State
+ Stromversorgung: Angeschlossen
+ Expression: trigger == "Akku Ladestand: grösser als 0%"
+ Stromversorgung und Akkustand
+ Prüfe und setze globale Variablen
+
Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE
Stromversorgung: Angeschlossen
Genereller Broadcast: wenn org.smblott.intentradio.STATE
@@ -2709,327 +2833,203 @@ FHEMCMD: setreading
Systemeinstellung verändert: System volume_ring_speaker
Periodischer Timer: alle 30s
- Expression: trigger == "Daydream Status: Gestartet"
- Script: setCommandFlow_state = "inaktiv"
- Script: daydream_state = "on"
- Script: daydream_state = "off"
- Script: next_alarmday = "{next_alarm,dateformat,c}"
- Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"
- Initialisiere Variable Nächster Alarm: next_alarm
- Expression: getAndroidSDKVersion() >= "19"
- Script: runTask = "1"
- Script: runTask = "0"
- Script: runTask = "not supported android version"
- Script: runTask = "null"
- Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"
- Expression: trigger == "Systemeinstellung verändert: System next_alarm"
- Expression: trigger == "Systemeinstellung verändert: System screen_brightness"
- Script: airplanemode = "off"
- Expression: airpcount < 11
- Script: keyguard = "unlocked"
- Script: screen_state = "off {keyguard}"
- Display Orientierung: Portrait
- Script: screen_orientation = "portrait"
- Script: screen_orientation = "landscape"
- Display automatisch drehen eingeschaltet
- Script: dock_state = "docked"
- Script: dock_state = "undocked"
- Script: keyguardSet = "1"
- Script: keyguardSet = "0"
- Script: screen_orientation_mode = "auto"
- Script: screen_orientation_mode = "manual"
- Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus"
- Script: setCommandFlow_state = "aktiv"
- Flow Aktiv: SetCommands
- Setze Flow Status: Aktivieren SetCommands
- Script: screen_state = "on {keyguard}"
- Script: scrcount = 0
- Script: keyguard = "locked"
- Display eingeschaltet
- Keyguard gesperrt
- Expression: scrcount < 5
- Script: scrcount = scrcount + 1
- Pause: 2s (Gerät wach halten)
- Expression: keyguard == "locked"
- Expression: trigger == "Systemeinstellung verändert: System volume_music_bt_a2dp" or trigger == "Systemeinstellung verändert: System volume_music_speaker" or trigger == "Systemeinstellung verändert: System volume_music_headphone"
- Expression: trigger == "com.android.music.playstatechanged" or trigger == "com.android.music.metachanged"
- Pause: 1s (Gerät wach halten)
- Musik Aktiv
- Bluetooth eingeschaltet
- Script: bluetooth_state = "off"
- Script: bluetooth_state = "on"
- Bluetooth Gerät verbunden: Beliebiges Geräte
- Script: connected_devices_names = "null"; connected_devices_addresses = "null"
- Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"
- Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
- Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
- Benachrichtigung in Statusbar angezeigt: Automagic
- Expression: getAndroidSDKVersion() >= "19"
- Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
- Script: notification_text = "not supported from your device"
- Benachrichtigung in Statusbar angezeigt: WhatsApp
- Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
- Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
- Check run Task
- Screen State
- Reading Music Metachanged.2
- Bluetooth Status
- Bluetooth Device Status
- Notification Volume
- Lautstärke / Volume
- Nächster Alarm
- Screen Brightness
- Screen Orientation
- Dock State
- Incoming WhatsApp Message
- IntentRadio Status
- Flowsetversion
- Flow Status SetCommands
- Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin"
- Airplainemode
- Script: airpcount = airpcount + 1
- Expression: trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE"
- Script: if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT") { nextalarmstate = "alert" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS") { nextalarmstate = "dismiss" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE") { nextalarmstate = "done" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE") { nextalarmstate = "snooze" }
- Next Alarm State
- Expression: global_apssid != "usb-ethernet"
- Script: airpcount = 0
- Pause: 2s (Gerät wach halten)
- Expression: global_apssid != "usb-ethernet"
- WLAN Verbunden: {global_apssid}
- Dock Status: Docked
- Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"
- Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked"
- Expression: global_activetask != null
- Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Status: Schaltet ein, Ein"
- App Task läuft: {global_activetask} (neuster)
- Script: global_artist = "no soundplayer active"; global_track = "no soundplayer active"; global_album = "no soundplayer active";
- Automagic State
- Script: notification_text = "not supported from your device"
- Expression: global_fhemip != null or header_fhemip != null
- Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2
- Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2
- Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)
- Script: volume = {volumeBT}
- Script: volume = {volumeSP}
- Initialisiere Variable Systemeinstellung: screenBrightness
- Initialisiere Variable Systemeinstellung: volumeNotification
- Expression: global_bridgeport == null or global_bridgeport != {header_bport} or global_fhemip == null or global_fhemip != {header_fhemip} or global_fhemdevice == null or global_fhemdevice != {header_fhemdevice} or global_activetask == null or global_activetask != {header_activetask} or global_apssid == null or global_apssid != {header_apssid} or global_deviceport != null or global_deviceport!= {header_dport}
- Script: androidVersion = "not supported funktion"
- Android Version
- Expression: trigger == "Flugmodus: Aus"
- Expression: package_name == {global_activetask}
- Expression: trigger == "App Task Beendet"
- Keyguard mit Sicherheit
- Daydream State
- Expression: getAndroidSDKVersion() >= "19"
- Get Android Version
- Expression: udef_trigger == "setLockPin"
- Incoming Call
- KeyGuard Set
- WLAN Verbunden: {global_apssid}
- Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"
- Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
- Device State
- Stromversorgung: Angeschlossen
- Expression: trigger == "Akku Ladestand: grösser als 0%"
- Stromversorgung und Akkustand
- Prüfe und setze globale Variablen
- Script: amad_flowset_version = "2.1.4"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ WLAN Verbunden: {global_apssid}
+ Script: amad_flowset_version = "2.1.5"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MultimediaControl
- AMAD2 Info/Control Flowset v2.1.4
+ AMAD2 Info/Control Flowset v2.1.5
true
PARALLEL
@@ -3110,7 +3110,7 @@ FHEMCMD: setreading
SetCommands
- AMAD2 Info/Control Flowset v2.1.4
+ AMAD2 Info/Control Flowset v2.1.5
true
QUEUE
900
@@ -3244,7 +3244,7 @@ FHEMCMD: setreading
Nummer anrufen: {param_callnumber}
Expression: param_option
Pause: {param_hanguptime}s (Gerät wach halten)
- Anruf beenden
+ Anruf beenden
@@ -3383,7 +3383,7 @@ FHEMCMD: setreading
Update AMAD Flowset
- AMAD2 Info/Control Flowset v2.1.4
+ AMAD2 Info/Control Flowset v2.1.5
true
PARALLEL
@@ -3431,7 +3431,7 @@ FHEMCMD: setreading
VoiceControl
- AMAD2 Info/Control Flowset v2.1.4
+ AMAD2 Info/Control Flowset v2.1.5
true
QUEUE
60
diff --git a/README.md b/README.md
index dc444ad..d1dc30f 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
Wie genau verwendet man nun AMAD?
- man installiert die App "Automagic Premium" aus dem PlayStore oder die Testversion von hier
- - dann installiert man das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät. NOCH NICHT die Flows aktivieren
+ - dann installiert man das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät und aktiviert die Flows
Es muß noch ein Device in FHEM anlegt werden.
@@ -40,7 +40,6 @@
Als zweites Reading kann expertMode gesetzen werden. 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.
- NUN bitte die Flows AKTIVIEREN!!!
Fertig! Nach anlegen der Geräteinstanz und dem eintragen der fhemServerIP in der CommBridge sollten nach spätestens 15 Sekunden bereits die ersten Readings reinkommen. Nun wird alle 15 Sekunden probiert einen Status Request erfolgreich ab zu schließen. Wenn der Status sich über einen längeren Zeitraum nicht auf "activ" ändert, sollte man im Log nach eventuellen Fehlern suchen.
@@ -58,7 +57,7 @@
- currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
- currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers
- daydream - on/off, Daydream gestartet oder nicht
- - deviceState - Status des Androidgerätes. !!!Gibt nicht den tatsächlichen Status des Gerätes wieder!!! deviceState muss von Hand selbst gesetzt werden. (set DEVICE deviceState) z.B. über die Anwesenheitskontrolle.
Ist Offline gesetzt, können keine set Befehle abgesetzt werden.
+ - deviceState - Status des Androidgerätes. unknown, online, offline
- 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
@@ -96,7 +95,6 @@
- bluetooth - on/off, aktiviert/deaktiviert Bluetooth
- clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste
- currentFlowsetUpdate - fürt ein Flowsetupdate auf dem Device durch
- - deviceState - online/offline, setzt den Device Status . mehr Info unter Readings
- 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
- mediaPlayer - play, stop, next, back ,steuert den Standard Mediaplayer
- nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der nächsten 24Std.