diff --git a/74_AMAD.pm b/74_AMAD.pm
index 8fda20d..3bb1ade 100644
--- a/74_AMAD.pm
+++ b/74_AMAD.pm
@@ -37,8 +37,8 @@ use TcpServerUtils;
use Encode qw(encode);
-my $modulversion = "2.1.0";
-my $flowsetversion = "2.1.0";
+my $modulversion = "2.1.1";
+my $flowsetversion = "2.1.1";
@@ -122,10 +122,10 @@ sub AMAD_Define($$) {
$attr{$name}{room} = "AMAD" if( !defined( $attr{$name}{room} ) );
readingsSingleUpdate ( $hash, "state", "initialized", 1 ) if( $hash->{HOST} );
- #readingsSingleUpdate ( $hash, "deviceState", "online", 1 ) if( $hash->{HOST} );
+ readingsSingleUpdate ( $hash, "deviceState", "unknown", 1 ) if( $hash->{HOST} );
RemoveInternalTimer($hash);
- InternalTimer( gettimeofday()+15, "AMAD_GetUpdate", $hash, 0 ) if( ($hash->{HOST}) && ($hash->{APSSID}) );
+ InternalTimer( gettimeofday()+30, "AMAD_GetUpdate", $hash, 0 ) if( ($hash->{HOST}) && ($hash->{APSSID}) );
$modules{AMAD}{defptr}{$hash->{HOST}} = $hash;
@@ -187,9 +187,10 @@ sub AMAD_Attr(@) {
}
}
- elsif( $attrName eq "setScreenBrightness" ) {
- Log3 $name, 1, "AMAD ($name) - !!!The Attribut \"setScreenBrightness\" is obsolete and will be remove in the future!!! Please delete the attribut description in your AMAD Device";
- Log3 $name, 1, "AMAD ($name) - !!!Das Attribut \"setScreenBrightness\" wird nicht mehr benötigt und in zukünftigen Versionen entfernt!!! Bitte lösche die Attributszuweisung aus Deinem AMAD Device";
+ elsif( $attrName eq "checkActiveTask" ) {
+
+ AMAD_statusRequest( $hash );
+ Log3 $name, 3, "AMAD ($name) - $cmd $attrName $attrVal and run statusRequest";
}
elsif( $attrName eq "port" ) {
@@ -246,9 +247,10 @@ my ( $hash ) = @_;
RemoveInternalTimer( $hash );
- if( $init_done && ReadingsVal( $name, "deviceState", "online" ) eq "online" && AttrVal( $name, "disable", 0 ) ne "1" && ReadingsVal( $bname, "fhemServerIP", "not set" ) ne "not set" && $hash->{APSSID} ) {
+ if( $init_done && ( ReadingsVal( $name, "deviceState", "unknown" ) eq "unknown" or ReadingsVal( $name, "deviceState", "online" ) eq "online" ) && AttrVal( $name, "disable", 0 ) ne "1" && ReadingsVal( $bname, "fhemServerIP", "not set" ) ne "not set" && $hash->{APSSID} ) {
AMAD_statusRequest( $hash );
+ AMAD_checkDeviceState( $hash );
} else {
@@ -496,7 +498,6 @@ sub AMAD_Set($$@) {
$list .= "screenMsg ";
$list .= "ttsMsg ";
$list .= "volume:slider,0,1,15 ";
- $list .= "deviceState:online,offline ";
$list .= "googleMusic:play,stop,next,back " if( ReadingsVal( $bname, "fhemServerIP", "none" ) ne "none");
$list .= "amazonMusic:play,stop,next,back " if( ReadingsVal( $bname, "fhemServerIP", "none" ) ne "none");
$list .= "spotifyMusic:play,stop,next,back " if( ReadingsVal( $bname, "fhemServerIP", "none" ) ne "none");
@@ -530,7 +531,6 @@ sub AMAD_Set($$@) {
|| lc $cmd eq 'amazonmusic'
|| lc $cmd eq 'spotifymusic'
|| lc $cmd eq 'tuneinradio'
- || lc $cmd eq 'devicestate'
|| lc $cmd eq 'screenbrightness'
|| lc $cmd eq 'screenorientation'
|| lc $cmd eq 'screenfullscreen'
@@ -559,7 +559,7 @@ sub AMAD_Set($$@) {
return "set command only works if state not equal initialized" if( ReadingsVal( $hash->{NAME}, "state", 0 ) eq "initialized");
return "Cannot set command, FHEM Device is disabled" if( AttrVal( $name, "disable", "0" ) eq "1" );
- return AMAD_SelectSetCmd( $hash, $cmd, @val ) if( @val ) && ( ReadingsVal( $name, "deviceState", "online" ) eq "offline" ) && ( lc $cmd eq 'devicestate' );
+ return "Cannot set command, FHEM Device is unknown" if( ReadingsVal( $name, "deviceState", "online" ) eq "unknown" );
return "Cannot set command, FHEM Device is offline" if( ReadingsVal( $name, "deviceState", "online" ) eq "offline" );
return AMAD_SelectSetCmd( $hash, $cmd, @val ) if( @val ) || ( lc $cmd eq 'statusrequest' ) || ( lc $cmd eq 'activatevoiceinput' ) || ( lc $cmd eq 'vibrate' ) || ( lc $cmd eq 'currentflowsetupdate' );
@@ -647,15 +647,6 @@ sub AMAD_SelectSetCmd($$@) {
return AMAD_HTTP_POST( $hash,$url );
}
- elsif( lc $cmd eq 'devicestate' ) {
-
- my $v = join( " ", @data );
-
- readingsSingleUpdate( $hash, $cmd, $v, 1 );
-
- return undef;
- }
-
elsif( lc $cmd eq 'screenbrightness' ) {
my $bri = join( " ", @data );
@@ -749,7 +740,7 @@ sub AMAD_SelectSetCmd($$@) {
elsif( lc $cmd eq 'statusrequest' ) {
- AMAD_GetUpdate( $hash );
+ AMAD_statusRequest( $hash );
return undef;
}
@@ -1018,6 +1009,20 @@ sub AMAD_HTTP_POSTerrorHandling($$$) {
return undef;
}
+sub AMAD_checkDeviceState($) {
+
+ my ( $hash ) = @_;
+ my $name = $hash->{NAME};
+
+ 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 );
+
+ Log3 $name, 4, "AMAD ($name) - AMAD_checkDeviceState: set new Timer";
+}
+
sub AMAD_CommBridge_Open($) {
my ( $hash ) = @_;
@@ -1164,7 +1169,7 @@ sub AMAD_CommBridge_Read($) {
elsif ( $fhemcmd =~ /readingsval\b/ ) {
my $fhemCmd = $data[1];
- my @datavalue = split( ' ', $data[1] );
+ my @datavalue = split( ' ', $fhemCmd );
$response = ReadingsVal( $datavalue[0], $datavalue[1], $datavalue[2] );
$c = $hash->{CD};
@@ -1182,7 +1187,7 @@ sub AMAD_CommBridge_Read($) {
Log3 $bname, 4, "AMAD ($bname) - AMAD_CommBridge: receive fhem-function command";
- if( $fhemcmd =~ /^{.*}$/ ) {
+ if( $fhemCmd =~ /^{.*}$/ ) {
$response = $fhemCmd if( ReadingsVal( $bname, "expertMode", 0 ) eq "1" );
diff --git a/74_AMADautomagicFlowset_2.1.0.xml b/74_AMADautomagicFlowset_2.1.1.xml
similarity index 79%
rename from 74_AMADautomagicFlowset_2.1.0.xml
rename to 74_AMADautomagicFlowset_2.1.1.xml
index d7c7d61..ef5d615 100644
--- a/74_AMADautomagicFlowset_2.1.0.xml
+++ b/74_AMADautomagicFlowset_2.1.1.xml
@@ -274,6 +274,28 @@ irname=getString("name")
8090
true
+
+ false
+ Periodischer Timer: alle 30s
+ true
+ 30000
+ true
+ false
+ false
+ Mon
+ Tue
+ Wed
+ Thu
+ Fri
+ Sat
+ Sun
+ 8
+ 0
+ 17
+ 0
+ true
+ false
+
true
Sprachbefehl angefordert
@@ -441,7 +463,7 @@ irname=getString("name")
false
- Expression: Amozon Music Player
+ Expression: Amazon Music Player
param_mplayer == "amazonMusic"
@@ -805,6 +827,11 @@ or global_deviceport!= {header_dport}
Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
trigger == "HTTP Request: /fhem-amad/setCommands/*"
+
+ true
+ Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
true
Expression: trigger == "Sprachbefehl angefordert"
@@ -1454,6 +1481,27 @@ FHEMCMD: setreading
60000
true
FHEMDEVICE: {global_fhemdevice}
+FHEMCMD: setreading
+ true
+ response
+ /storage/emulated/0/Download/file.bin
+ false
+
+
+ false
+ Device State
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ POST
+ GENERAL_TEXT
+ text/plain
+ deviceState@@online@@@@
+ @@@@readingsNameXYZ@@readingsValueABC
+ 60000
+ true
+ FHEMDEVICE: {global_fhemdevice}
FHEMCMD: setreading
true
response
@@ -2172,8 +2220,8 @@ FHEMCMD: setreading
true
- Script: amad_flowset_version = "2.1.0"
-
+ Script: amad_flowset_version = "2.1.1"
+
true
@@ -2610,7 +2658,7 @@ FHEMCMD: setreading
Informations
- AMAD2 Info/Control Flowset v2.1.0
+ AMAD2 Info/Control Flowset v2.1.1
true
PARALLEL
900
@@ -2685,66 +2733,64 @@ FHEMCMD: setreading
Lautstärke / Volume
Nächster Alarm
Stromversorgung und Akkustand
- Daydream State
- Screen Brightness
- Screen Orientation
- Dock State
- Incoming Call
- Incoming WhatsApp Message
- IntentRadio Status
- Flowsetversion
- Flow Status SetCommands
- Expression: getAndroidSDKVersion() >= "19"
- 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
- WLAN Verbunden: {global_apssid}
- 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: udef_trigger == "setLockPin"
- 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
- Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"
- 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
- Stromversorgung: Angeschlossen
- 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}
- Prüfe und setze globale Variablen
- Get Android Version
- Script: androidVersion = "not supported funktion"
- Android Version
- Expression: trigger == "Flugmodus: Aus"
- Expression: package_name == {global_activetask}
- Expression: trigger == "App Task Beendet"
- KeyGuard Set
- Keyguard mit Sicherheit
- Script: amad_flowset_version = "2.1.0"
-
+ 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
+ Stromversorgung: Angeschlossen
+ 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}
+ Prüfe und setze globale Variablen
+ 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}
+
Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE
Stromversorgung: Angeschlossen
Genereller Broadcast: wenn org.smblott.intentradio.STATE
Systemeinstellung verändert: System volume_music_headphone
- Bluetooth Status: Schaltet ein, Ein
Stromversorgung: Entfernt
+ Bluetooth Status: Schaltet ein, Ein
Display Status: Aus
Display Orientierung: Portrait
Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE
@@ -2754,36 +2800,41 @@ FHEMCMD: setreading
Daydream Status: Gestoppt
Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic
Eingehender Anruf. Status: Klingelt, Nummern: Alle
- Systemeinstellung verändert: System volume_music_speaker
- Systemeinstellung verändert: System screen_brightness
Display Status: Ein
+ Systemeinstellung verändert: System screen_brightness
+ Systemeinstellung verändert: System volume_music_speaker
Daydream Status: Gestartet
Akku Ladestand: grösser als 0%
- Dock Event: Docked
com.android.music.playstatechanged
+ Dock Event: Docked
Systemeinstellung verändert: System volume_music_bt_a2dp
HTTP Request: /fhem-amad/deviceInfo/
- Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT
com.android.music.metachanged
- Systemeinstellung verändert: System next_alarm
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT
Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic
+ Systemeinstellung verändert: System next_alarm
App Task Beendet
Dock Event: Undocked
Display Orientierung: Landscape
Flugmodus: Aus
Systemeinstellung verändert: System volume_ring_speaker
+ Periodischer Timer: alle 30s
+ Device State
+ Script: amad_flowset_version = "2.1.1"
+ Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
-
-
-
+
+
+
-
+
@@ -2792,9 +2843,9 @@ FHEMCMD: setreading
-
-
-
+
+
+
@@ -2803,14 +2854,14 @@ FHEMCMD: setreading
-
-
-
-
-
-
+
+
+
+
+
+
-
+
@@ -2829,7 +2880,7 @@ FHEMCMD: setreading
-
+
@@ -2839,547 +2890,549 @@ FHEMCMD: setreading
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MultimediaControl
- AMAD2 Info/Control Flowset v2.1.0
+ AMAD2 Info/Control Flowset v2.1.1
true
PARALLEL
- Expression: param_button == "play"
- Expression: param_button == "back"
- Expression: param_button == "next"
- Expression: param_button == "stop"
- Expression: param_button == "play"
- Expression: param_button == "back"
- Expression: param_button == "next"
- Expression: param_button == "stop"
- Expression: param_button == "play"
- Expression: param_button == "back"
- Expression: param_button == "next"
- Expression: param_button == "stop"
- Audio Player steuern: Medienknopf Stopp (Amazon Music)
- Audio Player steuern: Medienknopf Play (Amazon Music)
- Audio Player steuern: Medienknopf Weiter (Amazon Music)
- Audio Player steuern: Medienknopf Zurück (Amazon Music)
- Audio Player steuern: Medienknopf Stopp (Spotify)
- Audio Player steuern: Medienknopf Play (Spotify)
- Audio Player steuern: Medienknopf Weiter (Spotify)
- Audio Player steuern: Medienknopf Zurück (Spotify)
- Audio Player steuern: Medienknopf Stopp (TuneIn Radio)
- Audio Player steuern: Medienknopf Play (TuneIn Radio)
- Audio Player steuern: Medienknopf Weiter (TuneIn Radio)
- Audio Player steuern: Medienknopf Zurück (TuneIn Radio)
- Audio Player steuern: Medienknopf Weiter (Google Play Musik)
- Audio Player steuern: Medienknopf Play (Google Play Musik)
- Audio Player steuern: Medienknopf Stopp (Google Play Musik)
- Expression: param_button == "stop"
- Expression: param_button == "play"
- Expression: param_button == "next"
- Expression: param_button == "back"
- Audio Player steuern: Medienknopf Zurück (Google Play Musik)
-
+
HTTP Request: /fhem-amad/multimediaControl
+ Expression: param_button == "play"
+ Expression: param_button == "back"
+ Expression: param_button == "next"
+ Expression: param_button == "stop"
+ Expression: param_button == "play"
+ Expression: param_button == "back"
+ Expression: param_button == "next"
+ Expression: param_button == "stop"
+ Expression: param_button == "play"
+ Expression: param_button == "back"
+ Expression: param_button == "next"
+ Expression: param_button == "stop"
+ Audio Player steuern: Medienknopf Stopp (Amazon Music)
+ Audio Player steuern: Medienknopf Play (Amazon Music)
+ Audio Player steuern: Medienknopf Weiter (Amazon Music)
+ Audio Player steuern: Medienknopf Zurück (Amazon Music)
+ Audio Player steuern: Medienknopf Stopp (Spotify)
+ Audio Player steuern: Medienknopf Play (Spotify)
+ Audio Player steuern: Medienknopf Weiter (Spotify)
+ Audio Player steuern: Medienknopf Zurück (Spotify)
+ Audio Player steuern: Medienknopf Stopp (TuneIn Radio)
+ Audio Player steuern: Medienknopf Play (TuneIn Radio)
+ Audio Player steuern: Medienknopf Weiter (TuneIn Radio)
+ Audio Player steuern: Medienknopf Zurück (TuneIn Radio)
+ Audio Player steuern: Medienknopf Weiter (Google Play Musik)
+ Audio Player steuern: Medienknopf Play (Google Play Musik)
+ Audio Player steuern: Medienknopf Stopp (Google Play Musik)
+ Expression: param_button == "stop"
+ Expression: param_button == "play"
+ Expression: param_button == "next"
+ Expression: param_button == "back"
+ Audio Player steuern: Medienknopf Zurück (Google Play Musik)
Expression: Google Music Player
- Expression: Amozon Music Player
- Expression: Spotify Music Player
- Expression: TuneIn Radio
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Expression: Spotify Music Player
+ Expression: TuneIn Radio
+ Expression: Amazon Music Player
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
SetCommands
- AMAD2 Info/Control Flowset v2.1.0
+ AMAD2 Info/Control Flowset v2.1.1
true
QUEUE
900
- Expression: param_screen=="on"
- Expression: setBrightness"
- Expression: setScreenFullscreen"
- Expression: param_orientation == "auto"
- Setze Display Orientierung: Portrait
- Setze Display Orientierung: Landscape
- Expression: param_orientation == "landscape"
- Setze Vollbild Modus: Navigation nicht anzeigen
- Setze Vollbild Modus: Auf Default zurücksetzen
- Setze Display Orientierung: Auf Default zurücksetzen
- Expression: param_screen=="off"
- Expression: setScreenOnOff"
- Flow Aktiv: Informations
- Expression: ttsMsg"
- Display automatisch drehen ein-/ausschalten: Aus
- Display automatisch drehen ein-/ausschalten: Ein
- Expression: setScreenOrientation"
- Expression: param_fullscreen == "off"
- Expression: param_fullscreen == "on"
- Expression: setBluetooth"
- Expression: param_bluetooth == "off"
- Expression: param_bluetooth == "on"
- Bluetooth ein-/ausschalten: Ein
- Script: informationFlow_state = "inaktiv"
- Bluetooth eingeschaltet
- Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdeviceone}
- Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdeviceone}
- Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdeviceone}
- 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 Headset {param_btdeviceone}
- Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdevicetwo}
- Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdevicetwo}
- Pause: 3s (Gerät wach halten)
- Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
- Pause: 2s (Gerät wach halten)
- Expression: setBTDevice"
- Bluetooth ein-/ausschalten: Aus
- Expression: setVolume"
- Expression: param_orientation == "portrait"
- Expression: Reboot
- Expression: System Command"
- Neustart
- Expression: Shutdown
- Herunterfahren
- Benachrichtigung aus Statusbar entfernen: Alle
- Benachrichtigung aus Statusbar entfernen: Alle (Automagic)
- Expression: Automagic
- Expression: All
- Expression: setNotifiVolume"
- Expression: notifysnd"
- NotificationLautstärke auf Level 7
- Notification Lautstärke Speichern
- Expression: param_notifyfile == "RedAlert.mp3"
- Notification Lautstärke Wiederherstellen
- Expression: setVoiceCommand"
- Flows ausführen: VoiceControl
- Expression: Clear Automagic Meldungen"
- Flugmodus ein-/ausschalten: Ein
- Setze Display Helligkeit: {param_brightness}
- Expression: setScreenlock"
- Broadcast senden: {param_action}
- Expression: sendIntent"
- Setze Flow Status: Aktivieren Informations
- Script: informationFlow_state = "aktiv"
- Expression: Airplanemode
- Pause: 1s (Gerät wach halten)
- Airplainemode ON
- Expression: param_lockmod == "lock"
- Setze Lock PIN/Passwort: PIN/Passwort zurücksetzen
- Setze Lock PIN/Passwort: Setze PIN von Variable param_lockpin
- Expression: trigger == "Sprachbefehl angefordert"
- WLAN Verbunden: {global_apssid}
- Setze Alarm: um {param_hour}:{param_minute}
- Expression: setAlarm"
- Setze Timer
- Expression: setVibrate"
- Expression: openApp"
- App Starten: App
- Schalte Display ein: Hell für {param_screenontime}s
- Flow Status Informations
- App Task läuft: App (neuster)
- Expression: screenMsg"
- Benachrichtigung auf Bildschirm: {param_message} (lange)
- Expression: openURL"
- URL in Browser öffnen: {param_url} (mit {param_browserapp}/{param_browserappclass})
- Vibrieren: Pattern 2 (-- --)
- Expression: global_apssid != "usb-ethernet"
- Expression: installFlow"
- Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/emulated/0/Download
- Flows/Widgets importieren: /storage/emulated/0/Download/installFlow_{param_flowname}
- Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
- Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
- Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
- Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
- Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
- Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
- Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
- Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
- Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
- Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
- Automagic State
- Script: notification_text = "Flow install: path for download not exist"
- Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
- Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
- Sound: {param_notifypath}{param_notifyfile} als Benachrichtigung
- Dateien löschen: /storage/emulated/0/Download/installFlow_{param_flowname}
- Gerät sperren
- Script: udef_trigger = "setLockPin"
- Flows ausführen: udef_trigger setLockPin
- Display eingeschaltet
- Gerät sperren
- Schalte Display ein
- Gerät sperren
- Sprachausgabe: {param_message}
- Expression: mediaPlayer"
- Expression: param_button == "stop"
- Audio Player steuern: Medienknopf Stopp (Google Play Musik)
- Expression: param_button == "play"
- Audio Player steuern: Medienknopf Play (Google Play Musik)
- Expression: param_button == "next"
- Audio Player steuern: Medienknopf Weiter (Google Play Musik)
- Expression: param_button == "back"
- Audio Player steuern: Medienknopf Zurück (Google Play Musik)
- Lautstärken setzen param_volume
- Lautstärken setzen param_notifivolume
-
+
Akku Ladestand: grösser als 0%
Sprachbefehl angefordert
HTTP Request: /fhem-amad/deviceInfo/
Display Status: Ein
HTTP Request: /fhem-amad/setCommands/*
+ Expression: param_screen=="on"
+ Expression: setBrightness"
+ Expression: setScreenFullscreen"
+ Expression: param_orientation == "auto"
+ Setze Display Orientierung: Portrait
+ Setze Display Orientierung: Landscape
+ Expression: param_orientation == "landscape"
+ Setze Vollbild Modus: Navigation nicht anzeigen
+ Setze Vollbild Modus: Auf Default zurücksetzen
+ Setze Display Orientierung: Auf Default zurücksetzen
+ Expression: param_screen=="off"
+ Expression: setScreenOnOff"
+ Flow Aktiv: Informations
+ Expression: ttsMsg"
+ Display automatisch drehen ein-/ausschalten: Aus
+ Display automatisch drehen ein-/ausschalten: Ein
+ Expression: setScreenOrientation"
+ Expression: param_fullscreen == "off"
+ Expression: param_fullscreen == "on"
+ Expression: setBluetooth"
+ Expression: param_bluetooth == "off"
+ Expression: param_bluetooth == "on"
+ Bluetooth ein-/ausschalten: Ein
+ Script: informationFlow_state = "inaktiv"
+ Bluetooth eingeschaltet
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdeviceone}
+ 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 Headset {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdevicetwo}
+ Pause: 3s (Gerät wach halten)
+ Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
+ Pause: 2s (Gerät wach halten)
+ Expression: setBTDevice"
+ Bluetooth ein-/ausschalten: Aus
+ Expression: setVolume"
+ Expression: param_orientation == "portrait"
+ Expression: Reboot
+ Expression: System Command"
+ Neustart
+ Expression: Shutdown
+ Herunterfahren
+ Benachrichtigung aus Statusbar entfernen: Alle
+ Benachrichtigung aus Statusbar entfernen: Alle (Automagic)
+ Expression: Automagic
+ Expression: All
+ Expression: setNotifiVolume"
+ Expression: notifysnd"
+ NotificationLautstärke auf Level 7
+ Notification Lautstärke Speichern
+ Expression: param_notifyfile == "RedAlert.mp3"
+ Notification Lautstärke Wiederherstellen
+ Expression: setVoiceCommand"
+ Flows ausführen: VoiceControl
+ Expression: Clear Automagic Meldungen"
+ Flugmodus ein-/ausschalten: Ein
+ Setze Display Helligkeit: {param_brightness}
+ Expression: setScreenlock"
+ Broadcast senden: {param_action}
+ Expression: sendIntent"
+ Setze Flow Status: Aktivieren Informations
+ Script: informationFlow_state = "aktiv"
+ Expression: Airplanemode
+ Pause: 1s (Gerät wach halten)
+ Airplainemode ON
+ Expression: param_lockmod == "lock"
+ Setze Lock PIN/Passwort: PIN/Passwort zurücksetzen
+ Setze Lock PIN/Passwort: Setze PIN von Variable param_lockpin
+ Expression: trigger == "Sprachbefehl angefordert"
+ WLAN Verbunden: {global_apssid}
+ Setze Alarm: um {param_hour}:{param_minute}
+ Expression: setAlarm"
+ Setze Timer
+ Expression: setVibrate"
+ Expression: openApp"
+ App Starten: App
+ Schalte Display ein: Hell für {param_screenontime}s
+ Flow Status Informations
+ App Task läuft: App (neuster)
+ Expression: screenMsg"
+ Benachrichtigung auf Bildschirm: {param_message} (lange)
+ Expression: openURL"
+ URL in Browser öffnen: {param_url} (mit {param_browserapp}/{param_browserappclass})
+ Vibrieren: Pattern 2 (-- --)
+ Expression: global_apssid != "usb-ethernet"
+ Expression: installFlow"
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/emulated/0/Download
+ Flows/Widgets importieren: /storage/emulated/0/Download/installFlow_{param_flowname}
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
+ Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
+ Automagic State
+ Script: notification_text = "Flow install: path for download not exist"
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
+ Sound: {param_notifypath}{param_notifyfile} als Benachrichtigung
+ Dateien löschen: /storage/emulated/0/Download/installFlow_{param_flowname}
+ Gerät sperren
+ Script: udef_trigger = "setLockPin"
+ Flows ausführen: udef_trigger setLockPin
+ Display eingeschaltet
+ Gerät sperren
+ Schalte Display ein
+ Gerät sperren
+ Sprachausgabe: {param_message}
+ Expression: mediaPlayer"
+ Expression: param_button == "stop"
+ Audio Player steuern: Medienknopf Stopp (Google Play Musik)
+ Expression: param_button == "play"
+ Audio Player steuern: Medienknopf Play (Google Play Musik)
+ Expression: param_button == "next"
+ Audio Player steuern: Medienknopf Weiter (Google Play Musik)
+ Expression: param_button == "back"
+ Audio Player steuern: Medienknopf Zurück (Google Play Musik)
+ Lautstärken setzen param_volume
+ Lautstärken setzen param_notifivolume
Expression: setTimer"
- Expression: openCall"
+ Expression: openCall"
Nummer anrufen: {param_callnumber}
- Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
-
+
Update AMAD Flowset
- AMAD2 Info/Control Flowset v2.1.0
+ AMAD2 Info/Control Flowset v2.1.1
true
PARALLEL
HTTP Request: /fhem-amad/currentFlowsetUpdate
- Prüfe und setze Bridgeport Variable
- Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml to /storage/emulated/0/Download
- Flows/Widgets importieren: /storage/emulated/0/Download/currentFlowsetUpdate.xml
- Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
- Dateien löschen: /storage/emulated/0/Download/currentFlowsetUpdate.xml
- Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
- Dateien löschen: /storage/sdcard0/Download/currentFlowsetUpdate.xml
- Flows/Widgets importieren: /storage/sdcard0/Download/currentFlowsetUpdate.xml
- Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml to /storage/sdcard0/Download
- Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml to /sdcard/Download
- Flows/Widgets importieren: /sdcard/Download/currentFlowsetUpdate.xml
- Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
- Dateien löschen: /sdcard/Download/currentFlowsetUpdate.xml
- Script: notification_text = "Flowset Update: path for download not exist"
- Automagic State
- Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
- Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
- Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
-
-
+ Flows/Widgets importieren: /storage/emulated/0/Download/currentFlowsetUpdate.xml
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Dateien löschen: /storage/emulated/0/Download/currentFlowsetUpdate.xml
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Dateien löschen: /storage/sdcard0/Download/currentFlowsetUpdate.xml
+ Flows/Widgets importieren: /storage/sdcard0/Download/currentFlowsetUpdate.xml
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml to /storage/sdcard0/Download
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml to /sdcard/Download
+ Flows/Widgets importieren: /sdcard/Download/currentFlowsetUpdate.xml
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Dateien löschen: /sdcard/Download/currentFlowsetUpdate.xml
+ Script: notification_text = "Flowset Update: path for download not exist"
+ Automagic State
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
+ Prüfe und setze Bridgeport Variable
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml to /storage/emulated/0/Download
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
VoiceControl
- AMAD2 Info/Control Flowset v2.1.0
+ AMAD2 Info/Control Flowset v2.1.1
true
QUEUE
60