From 51d40e12c05633b6c9545a21f1e1fab832bb081c Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Thu, 27 Aug 2015 14:08:52 +0200 Subject: [PATCH] =?UTF-8?q?Routine=20f=C3=BCr=20MediaReadings=20komplett?= =?UTF-8?q?=20umgeschrieben,=20setCommand=20system:reboot=20hinzugef=C3=BC?= =?UTF-8?q?gt,=20Kritische=20SetCommands=20werden=20erst=20nach=20Attribut?= =?UTF-8?q?=20setzen=20angezeigt,=20Trigger=20MediaMetachanged=20in=20Info?= =?UTF-8?q?rmationflow=20und=20mit=20variablen=20Respons=20ohne=20h=C3=A4n?= =?UTF-8?q?dische=20Anpassung,=20openApp=20mit=20App=20Auswahl=20und=20Pr?= =?UTF-8?q?=C3=BCfung=20ob=20die=20App=20schon=20gestartet=20ist.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 74_AMAD.pm | 20 +- ...=> Automagic_FHEM-AMAD_FlowsSet_v0.5.2.xml | 450 ++++++++++-------- 2 files changed, 267 insertions(+), 203 deletions(-) rename Automagic_FHEM-AMAD_FlowsSet_v0.5.1.xml => Automagic_FHEM-AMAD_FlowsSet_v0.5.2.xml (62%) diff --git a/74_AMAD.pm b/74_AMAD.pm index fc39e62..6681d28 100644 --- a/74_AMAD.pm +++ b/74_AMAD.pm @@ -33,7 +33,7 @@ use Time::HiRes qw(gettimeofday); use HttpUtils; -my $version = "0.5.1"; +my $version = "0.5.2"; @@ -50,7 +50,8 @@ sub AMAD_Initialize($) { "setFullscreen:0,1 ". "setScreenOrientation:0,1 ". "setScreenBrightness:0,1 ". - "setMediaPlayer:0,1 ". + "fhemServerIP ". + "root:0,1 ". "interval ". "port ". "disable:1 "; @@ -169,7 +170,7 @@ sub AMAD_Set($$@) $list .= "ttsMsg "; $list .= "volume:slider,0,1,15 "; $list .= "deviceState:online,offline "; - $list .= "mediaPlayer:play,stop,next,back " if (AttrVal("$name","setMediaPlayer","0") eq "1"); + $list .= "mediaPlayer:play,stop,next,back " if (AttrVal("$name","fhemServerIP","none") ne "none"); $list .= "screenBrightness:slider,0,1,255 " if (AttrVal("$name","setScreenBrightness","0") eq "1"); $list .= "screen:on,off "; $list .= "screenOrientation:landscape,portrait,default " if (AttrVal("$name","setScreenOrientation","0") eq "1"); @@ -178,6 +179,7 @@ sub AMAD_Set($$@) $list .= "openApp:$apps " if (AttrVal("$name","setOpenApp","none") ne "none"); $list .= "nextAlarmTime:time "; $list .= "statusRequest:noArg "; + $list .= "system:reboot " if (AttrVal("$name","root","none") ne "none"); if (lc $cmd eq 'screenmsg' @@ -192,6 +194,7 @@ sub AMAD_Set($$@) || lc $cmd eq 'openurl' || lc $cmd eq 'openapp' || lc $cmd eq 'nextalarmtime' + || lc $cmd eq 'system' || lc $cmd eq 'statusrequest') { Log3 $name, 5, "AMAD ($name) - set $name $cmd ".join(" ", @val); @@ -208,6 +211,7 @@ sub AMAD_RetrieveAutomagicInfo($) my $name = $hash->{NAME}; my $host = $hash->{HOST}; my $port = $hash->{PORT}; + my $fhemip = AttrVal("$name","fhemServerIP","none"); my $url = "http://" . $host . ":" . $port . "/fhem-amad/deviceInfo/"; @@ -217,6 +221,7 @@ sub AMAD_RetrieveAutomagicInfo($) timeout => 5, hash => $hash, method => "GET", + header => "fhemIP: $fhemip\r\nfhemDevice: $name", doTrigger => 1, callback => \&AMAD_RetrieveAutomagicInfoFinished, } @@ -263,6 +268,7 @@ sub AMAD_RetrieveAutomagicInfoFinished($$$) my $t; my $v; while (($t, $v) = each %buffer) { + $v =~ s/null//g; readingsBulkUpdate($hash, $t, $v) if (defined($v)); } readingsEndUpdate($hash, 1); @@ -461,6 +467,14 @@ sub AMAD_SelectSetCmd($$@) return AMAD_HTTP_POST ($hash,$url); } + + elsif (lc $cmd eq 'system') { + my $systemcmd = join(" ", @data); + + my $url = "http://" . $host . ":" . $port . "/fhem-amad/setCommands/systemcommand?syscmd=$systemcmd"; + + return AMAD_HTTP_POST ($hash,$url); + } return undef; } diff --git a/Automagic_FHEM-AMAD_FlowsSet_v0.5.1.xml b/Automagic_FHEM-AMAD_FlowsSet_v0.5.2.xml similarity index 62% rename from Automagic_FHEM-AMAD_FlowsSet_v0.5.1.xml rename to Automagic_FHEM-AMAD_FlowsSet_v0.5.2.xml index 8fc487f..434d02c 100644 --- a/Automagic_FHEM-AMAD_FlowsSet_v0.5.1.xml +++ b/Automagic_FHEM-AMAD_FlowsSet_v0.5.2.xml @@ -12,9 +12,9 @@ - artist = getString("artist"); -track = getString("track"); -album = getString("album"); + global_artist = getString("artist"); +global_track = getString("track"); +global_album = getString("album"); false @@ -39,6 +39,36 @@ album = getString("album"); 0 HIGHER_THAN + + false + App Task läuft: App3 (neuster) + + true + + + false + App Task läuft: App1 (neuster) + com.google.android.music + true + + + false + App Task läuft: App2 (neuster) + tunein.player + true + + + false + App Task läuft: App4 (neuster) + + true + + + false + App Task läuft: App5 (neuster) + + true + false Benachrichtigung in Statusbar angezeigt: Automagic @@ -87,6 +117,16 @@ album = getString("album"); Expression: App5 param_app == "" + + true + Expression: global_fhemdevice == "null" + global_fhemdevice == "null" + + + true + Expression: global_fhemip == "null" + global_fhemip == "null" + false Expression: mediaPlayer" @@ -157,6 +197,11 @@ album = getString("album"); Expression: param_screen=="on" param_screen=="on" + + false + Expression: Reboot + param_syscmd == "reboot" + false Expression: screenMsg" @@ -192,6 +237,11 @@ album = getString("album"); Expression: setVolume" request_path == "/fhem-amad/setCommands/setVolume" + + false + Expression: System Command" + request_path == "/fhem-amad/setCommands/systemcommand" + true Expression: trigger == "com.android.music.metachanged" @@ -202,11 +252,9 @@ album = getString("album"); Expression: ttsMsg" request_path == "/fhem-amad/setCommands/ttsMsg" - + true - WLAN Verbunden: TuxNet-AP01 - false - TuxNet-AP01 + Musik Aktiv false @@ -304,46 +352,8 @@ album = getString("album"); true - HTTP Request: GET http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicAlbum%20{encodeURLForm(album)} speichern in response - http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicAlbum%20{encodeURLForm(album)} - true - false - - GET - X_WWW_FORM_URLENCODED - text/plain - - Lastname=XYZ,Firstname=ABC - 60000 - false - - true - response - /storage/emulated/0/Download/file.bin - - - true - HTTP Request: GET http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicArtist%20{encodeURLForm(artist)} speichern in response - http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicArtist%20{encodeURLForm(artist)} - true - false - - GET - X_WWW_FORM_URLENCODED - text/plain - - Lastname=XYZ,Firstname=ABC - 60000 - false - - true - response - /storage/emulated/0/Download/file.bin - - - true - HTTP Request: GET http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicTrack%20{encodeURLForm(track)} speichern in response - http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicTrack%20{encodeURLForm(track)} + HTTP Request: GET http://{global_fhemip}:8085/fhem?cmd=set%20{global_fhemdevice}%20statusRequest speichern in response + http://{global_fhemip}:8085/fhem?cmd=set%20{global_fhemdevice}%20statusRequest true false @@ -362,7 +372,7 @@ album = getString("album"); false HTTP Response - powerLevel@@{battery_percentage}@@@@powerPlugged@@{battery_plugged}@@@@volumeMusikBluetooth@@{volumeMusikBluetooth}@@@@volumeMusikSpeaker@@{volumeMusikSpeaker}@@@@screenBrightness@@{screenBrightness}@@@@nextAlarmTime@@{next_alarmtime}@@@@nextAlarmDay@@{next_alarmday}@@@@screen@@{screen_state}@@@@automagicState@@{notification_text}@@@@screenOrientation@@{screen_orientation} + powerLevel@@{battery_percentage}@@@@powerPlugged@@{battery_plugged}@@@@volumeMusikBluetooth@@{volumeMusikBluetooth}@@@@volumeMusikSpeaker@@{volumeMusikSpeaker}@@@@screenBrightness@@{screenBrightness}@@@@nextAlarmTime@@{next_alarmtime}@@@@nextAlarmDay@@{next_alarmday}@@@@screen@@{screen_state}@@@@automagicState@@{notification_text}@@@@screenOrientation@@{screen_orientation}@@@@currentMusicTrack@@{global_track}@@@@currentMusicAlbum@@{global_album}@@@@currentMusicArtist@@{global_artist} true text/plain @@ -414,6 +424,11 @@ album = getString("album"); false global_interruptions_mode + + true + Neustart + + true Pause: 2s (Gerät wach halten) @@ -427,6 +442,19 @@ album = getString("album"); 120s true + + true + Script: global_artist = "no soundplayer aktiv"; global_track = "no soundplayer aktiv"; global_album = "no soundplayer aktiv"; + + + + true + Script: global_fhemip = {header_fhemip} global_fhemdevice = {header_fhemdevice} + + true Script: next_alarmday = "{next_alarm,dateformat,c}" @@ -541,52 +569,69 @@ album = getString("album"); Script: next_alarmday = "{next_alarm,dateformat,c}" Display eingeschaltet Script: screen_state = "on" - Script: screen_state = "off" - Script: screen_orientation = "default" - Script: screen_orientation = "portrait" - Script: screen_orientation = "landscape" - Display Orientierung: Portrait - HTTP Response - Pause: 2s (Gerät wach halten) - Akku Ladestand: grösser als 0% - Initialisiere Variable Systemeinstellung: volumeMusikBluetooth - Initialisiere Variable Systemeinstellung: volumeMusikSpeaker - Initialisiere Variable Systemeinstellung: screenBrightness - Initialisiere Variable Nächster Alarm: next_alarm - Benachrichtigung in Statusbar angezeigt: Automagic - Display automatisch drehen eingeschaltet - Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}" - + Script: screen_orientation = "default" + Script: screen_orientation = "portrait" + Script: screen_orientation = "landscape" + Display Orientierung: Portrait + Initialisiere Variable Systemeinstellung: volumeMusikBluetooth + Initialisiere Variable Systemeinstellung: volumeMusikSpeaker + Initialisiere Variable Systemeinstellung: screenBrightness + Initialisiere Variable Nächster Alarm: next_alarm + Benachrichtigung in Statusbar angezeigt: Automagic + Display automatisch drehen eingeschaltet + Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}" + Expression: trigger == "com.android.music.metachanged" + Script: screen_state = "off" + Akku Ladestand: grösser als 0% + Script: global_fhemip = {header_fhemip} global_fhemdevice = {header_fhemdevice} + Expression: global_fhemip == "null" + Expression: global_fhemdevice == "null" + Musik Aktiv + Script: global_artist = "no soundplayer aktiv"; global_track = "no soundplayer aktiv"; global_album = "no soundplayer aktiv"; + HTTP Request: /fhem-amad/deviceInfo/, Port 8090 + com.android.music.metachanged - + HTTP Response + Pause: 2s (Gerät wach halten) + HTTP Request: GET http://{global_fhemip}:8085/fhem?cmd=set%20{global_fhemdevice}%20statusRequest speichern in response + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SetCommands @@ -594,117 +639,122 @@ album = getString("album"); true QUEUE 120 - - com.android.music.metachanged + Expression: param_screen=="off" + Expression: param_screen=="on" + Audio Player steuern: Medienknopf Stopp (Google Play Musik) + Expression: param_button == "play" + Audio Player steuern: Medienknopf Play (Google Play Musik) + Audio Player steuern: Medienknopf Weiter (Google Play Musik) + Expression: param_button == "next" + Audio Player steuern: Medienknopf Zurück (Google Play Musik) + Sprachausgabe: {param_message} + Expression: param_button == "stop" + Expression: param_button == "back" + Setze Display Orientierung: Landscape + Setze Display Orientierung: Portrait + Setze Display Orientierung: Auf Default zurücksetzen + Expression: param_orientation == "landscape" + Expression: param_orientation == "portrait" + Expression: param_orientation == "default" + Expression: param_fullscreen == "on" + Expression: param_fullscreen == "off" + Setze Vollbild Modus: Auf Default zurücksetzen + App Starten: tuneinradio + Expression: setVolume" + Expression: ttsMsg" + Expression: setBrightness" + Expression: setAlarm" + Expression: screenMsg" + Expression: openURL" + Expression: mediaPlayer" + Expression: setScreenFullscreen" + Expression: setScreenOrientation" + Lautstärken setzen + Setze Systemeinstellung: System screen_brightness auf {param_brightness} + Setze Alarm: um {param_hour}:{param_minute} + URL in Browser öffnen: {param_url} (mit Chrome) + Benachrichtigung auf Bildschirm: {param_message} (lange) + Setze Vollbild Modus: Navigation nicht anzeigen + Gerät sperren + Schalte Display ein: Hell für 120s + App Starten: App3 + App Starten: App4 + App Starten: App5 + Expression: App2 + Expression: App3 + Expression: App4 + Expression: App5 + App Task läuft: App1 (neuster) + App Task läuft: App3 (neuster) + App Task läuft: App4 (neuster) + App Task läuft: App5 (neuster) + App Task läuft: App2 (neuster) + Expression: openApp" + Expression: setScreenOnOff" + Expression: App1 + Expression: System Command" + App Starten: PlayMusic + Expression: Reboot + HTTP Request: /fhem-amad/setCommands/*, Port 8090 - Expression: param_screen=="off" - Expression: param_screen=="on" - Audio Player steuern: Medienknopf Stopp (Google Play Musik) - Expression: param_button == "play" - Audio Player steuern: Medienknopf Play (Google Play Musik) - Audio Player steuern: Medienknopf Weiter (Google Play Musik) - Expression: param_button == "next" - Audio Player steuern: Medienknopf Zurück (Google Play Musik) - Sprachausgabe: {param_message} - Expression: param_button == "stop" - Expression: trigger == "com.android.music.metachanged" - Expression: param_button == "back" - Setze Display Orientierung: Landscape - Setze Display Orientierung: Portrait - Setze Display Orientierung: Auf Default zurücksetzen - Expression: param_orientation == "landscape" - Expression: param_orientation == "portrait" - Expression: param_orientation == "default" - Expression: param_fullscreen == "on" - Expression: param_fullscreen == "off" - Setze Vollbild Modus: Auf Default zurücksetzen - Expression: App3 - Expression: App4 - Expression: App5 - App Starten: tuneinradio - WLAN Verbunden: TuxNet-AP01 - HTTP Request: GET http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicTrack%20{encodeURLForm(track)} speichern in response - HTTP Request: GET http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicAlbum%20{encodeURLForm(album)} speichern in response - HTTP Request: GET http://fhem-tuxnet.tuxnet.local:8085/fhem?cmd=setreading%20Nexus10Wohnzimmer%20currentMusicArtist%20{encodeURLForm(artist)} speichern in response - Expression: setVolume" - Expression: openApp" - Expression: setScreenOnOff" - Expression: ttsMsg" - Expression: setBrightness" - Expression: setAlarm" - Expression: screenMsg" - Expression: openURL" - Expression: mediaPlayer" - Expression: setScreenFullscreen" - Expression: setScreenOrientation" - Lautstärken setzen - Setze Systemeinstellung: System screen_brightness auf {param_brightness} - Setze Alarm: um {param_hour}:{param_minute} - URL in Browser öffnen: {param_url} (mit Chrome) - Benachrichtigung auf Bildschirm: {param_message} (lange) - Setze Vollbild Modus: Navigation nicht anzeigen - Gerät sperren - Schalte Display ein: Hell für 120s - App Starten: App3 - App Starten: App4 - App Starten: App5 - App Starten: PlayMusic - Expression: App2 - Expression: App1 - - - - - - - - - - - - - - - - - - - + Neustart + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file