From 3cf2ac2b9fb1c47c004babb900bd97a20936e713 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 16 May 2016 22:00:57 +0200 Subject: [PATCH] =?UTF-8?q?automatisches=20deviceState=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 74_AMAD.pm | 51 +- ...0.xml => 74_AMADautomagicFlowset_2.1.1.xml | 1171 +++++++++-------- 2 files changed, 640 insertions(+), 582 deletions(-) rename 74_AMADautomagicFlowset_2.1.0.xml => 74_AMADautomagicFlowset_2.1.1.xml (79%) 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