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