Version 0.8.0

This commit is contained in:
Marko Oldenburg 2015-10-29 09:14:58 +01:00
commit e008ce335c
4 changed files with 2002 additions and 1179 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,902 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<data version="1.28.0">
<trigger type="general_broadcast">
<useDefaultName>false</useDefaultName>
<name>com.android.music.metachanged</name>
<enabled>true</enabled>
<action>com.android.music.metachanged</action>
<categoryList></categoryList>
<dataSchemeList></dataSchemeList>
<dataAuthorityList></dataAuthorityList>
<dataPathLiteralList></dataPathLiteralList>
<dataPathPrefixList></dataPathPrefixList>
<dataPathGlobList></dataPathGlobList>
<dataTypeList></dataTypeList>
<extras>global_artist = getString("artist");
global_track = getString("track");
global_album = getString("album");</extras>
<receiveInitialStickyBroadcast>false</receiveInitialStickyBroadcast>
</trigger>
<trigger type="http_request">
<useDefaultName>false</useDefaultName>
<name>HTTP Request: /fhem-amad/deviceInfo/</name>
<enabled>true</enabled>
<path>/fhem-amad/deviceInfo/</path>
<port>8090</port>
<acquireWifiLock>true</acquireWifiLock>
</trigger>
<trigger type="http_request">
<useDefaultName>false</useDefaultName>
<name>HTTP Request: /fhem-amad/setCommands/*</name>
<enabled>true</enabled>
<path>/fhem-amad/setCommands/*</path>
<port>8090</port>
<acquireWifiLock>true</acquireWifiLock>
</trigger>
<condition type="battery_level">
<useDefaultName>true</useDefaultName>
<name>Akku Ladestand: grösser als 0%</name>
<levelPercentage>0</levelPercentage>
<batteryLevelCondition>HIGHER_THAN</batteryLevelCondition>
</condition>
<condition type="app_task_running">
<useDefaultName>false</useDefaultName>
<name>App Task läuft: App3 (neuster)</name>
<packageNameList></packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
<condition type="app_task_running">
<useDefaultName>false</useDefaultName>
<name>App Task läuft: App4 (neuster)</name>
<packageNameList></packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
<condition type="app_task_running">
<useDefaultName>false</useDefaultName>
<name>App Task läuft: App5 (neuster)</name>
<packageNameList></packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
<condition type="app_task_running">
<useDefaultName>false</useDefaultName>
<name>App Task läuft: gplay (neuster)</name>
<packageNameList>com.google.android.music</packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
<condition type="app_task_running">
<useDefaultName>false</useDefaultName>
<name>App Task läuft: tuneinradio (neuster)</name>
<packageNameList>tunein.player</packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
<condition type="notification_status_bar_displayed">
<useDefaultName>false</useDefaultName>
<name>Benachrichtigung in Statusbar angezeigt: Automagic</name>
<packageNameFilter>ch.gridvision.ppam.androidautomagic</packageNameFilter>
<textMatchField>TEXT</textMatchField>
<textMatchType>CONTAINS_TEXT</textMatchType>
<textFilter></textFilter>
<ignoreRegular>false</ignoreRegular>
<ignoreOngoing>false</ignoreOngoing>
</condition>
<condition type="bluetooth_enabled">
<useDefaultName>true</useDefaultName>
<name>Bluetooth eingeschaltet</name>
</condition>
<condition type="bluetooth_device_connected">
<useDefaultName>true</useDefaultName>
<name>Bluetooth Gerät verbunden: Beliebiges Geräte</name>
<any>true</any>
<deviceAddress></deviceAddress>
<deviceName></deviceName>
</condition>
<condition type="auto_rotate_screen_enabled">
<useDefaultName>true</useDefaultName>
<name>Display automatisch drehen eingeschaltet</name>
</condition>
<condition type="screen_on">
<useDefaultName>true</useDefaultName>
<name>Display eingeschaltet</name>
</condition>
<condition type="screen_orientation">
<useDefaultName>true</useDefaultName>
<name>Display Orientierung: Portrait</name>
<portrait>true</portrait>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: App3</name>
<expression>param_app == ""</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: App4</name>
<expression>param_app == ""</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: App5</name>
<expression>param_app == ""</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: global_fhemdevice == "null"</name>
<expression>global_fhemdevice == "null"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: global_fhemip == "null"</name>
<expression>global_fhemip == "null"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: gplay</name>
<expression>param_app == "gplay"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: mediaPlayer"</name>
<expression>request_path == "/fhem-amad/setCommands/mediaPlayer"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: openApp"</name>
<expression>request_path == "/fhem-amad/setCommands/openApp"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: openURL"</name>
<expression>request_path == "/fhem-amad/setCommands/openURL"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_button == "back"</name>
<expression>param_button == "back"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_button == "next"</name>
<expression>param_button == "next"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_button == "play"</name>
<expression>param_button == "play"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_button == "stop"</name>
<expression>param_button == "stop"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_fullscreen == "off"</name>
<expression>param_fullscreen == "off"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_fullscreen == "on"</name>
<expression>param_fullscreen == "on"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_orientation == "auto"</name>
<expression>param_orientation == "auto"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_orientation == "landscape"</name>
<expression>param_orientation == "landscape"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_orientation == "portrait"</name>
<expression>param_orientation == "portrait"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_screen=="off"</name>
<expression>param_screen=="off"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: param_screen=="on"</name>
<expression>param_screen=="on"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: Reboot</name>
<expression>param_syscmd == "reboot"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: screenMsg"</name>
<expression>request_path == "/fhem-amad/setCommands/screenMsg"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: setAlarm"</name>
<expression>request_path == "/fhem-amad/setCommands/setAlarm"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: setBrightness"</name>
<expression>request_path == "/fhem-amad/setCommands/setBrightness"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: setScreenFullscreen"</name>
<expression>request_path == "/fhem-amad/setCommands/setScreenFullscreen"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: setScreenOnOff"</name>
<expression>request_path == "/fhem-amad/setCommands/setScreenOnOff"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: setScreenOrientation"</name>
<expression>request_path == "/fhem-amad/setCommands/setScreenOrientation"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: setVolume"</name>
<expression>request_path == "/fhem-amad/setCommands/setVolume"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: System Command"</name>
<expression>request_path == "/fhem-amad/setCommands/systemcommand"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: trigger == "com.android.music.metachanged"</name>
<expression>trigger == "com.android.music.metachanged"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"</name>
<expression>trigger == "HTTP Request: /fhem-amad/setCommands/*"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: ttsMsg"</name>
<expression>request_path == "/fhem-amad/setCommands/ttsMsg"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: tuneinradio</name>
<expression>param_app == "tuneinradio"</expression>
</condition>
<condition type="flow_enabled">
<useDefaultName>true</useDefaultName>
<name>Flow Aktiv: Informations</name>
<flowName>Informations</flowName>
</condition>
<condition type="flow_enabled">
<useDefaultName>true</useDefaultName>
<name>Flow Aktiv: SetCommands</name>
<flowName>SetCommands</flowName>
</condition>
<condition type="music_active">
<useDefaultName>true</useDefaultName>
<name>Musik Aktiv</name>
</condition>
<condition type="wifi_connected">
<useDefaultName>true</useDefaultName>
<name>WLAN Verbunden: Alle SSIDs</name>
<all>true</all>
<ssidList></ssidList>
</condition>
<action type="launch_app">
<useDefaultName>false</useDefaultName>
<name>App Starten: App3</name>
<packageName></packageName>
<className></className>
</action>
<action type="launch_app">
<useDefaultName>false</useDefaultName>
<name>App Starten: App4</name>
<packageName></packageName>
<className></className>
</action>
<action type="launch_app">
<useDefaultName>false</useDefaultName>
<name>App Starten: App5</name>
<packageName></packageName>
<className></className>
</action>
<action type="launch_app">
<useDefaultName>false</useDefaultName>
<name>App Starten: PlayMusic</name>
<packageName>com.google.android.music</packageName>
<className></className>
</action>
<action type="launch_app">
<useDefaultName>false</useDefaultName>
<name>App Starten: tuneinradio</name>
<packageName>tunein.player</packageName>
<className></className>
</action>
<action type="control_audio_player">
<useDefaultName>true</useDefaultName>
<name>Audio Player steuern: Medienknopf Play (Google Play Musik)</name>
<simulateMediaButton>true</simulateMediaButton>
<broadcastAction>LAUNCH</broadcastAction>
<mediaButton>KEYCODE_MEDIA_PLAY</mediaButton>
<explicitComponent>true</explicitComponent>
<packageName>com.google.android.music</packageName>
<className>com.google.android.music.playback.MediaButtonIntentReceiver</className>
<appName>Google Play Musik</appName>
</action>
<action type="control_audio_player">
<useDefaultName>true</useDefaultName>
<name>Audio Player steuern: Medienknopf Stopp (Google Play Musik)</name>
<simulateMediaButton>true</simulateMediaButton>
<broadcastAction>LAUNCH</broadcastAction>
<mediaButton>KEYCODE_MEDIA_STOP</mediaButton>
<explicitComponent>true</explicitComponent>
<packageName>com.google.android.music</packageName>
<className>com.google.android.music.playback.MediaButtonIntentReceiver</className>
<appName>Google Play Musik</appName>
</action>
<action type="control_audio_player">
<useDefaultName>true</useDefaultName>
<name>Audio Player steuern: Medienknopf Weiter (Google Play Musik)</name>
<simulateMediaButton>true</simulateMediaButton>
<broadcastAction>LAUNCH</broadcastAction>
<mediaButton>KEYCODE_MEDIA_NEXT</mediaButton>
<explicitComponent>true</explicitComponent>
<packageName>com.google.android.music</packageName>
<className>com.google.android.music.playback.MediaButtonIntentReceiver</className>
<appName>Google Play Musik</appName>
</action>
<action type="control_audio_player">
<useDefaultName>true</useDefaultName>
<name>Audio Player steuern: Medienknopf Zurück (Google Play Musik)</name>
<simulateMediaButton>true</simulateMediaButton>
<broadcastAction>LAUNCH</broadcastAction>
<mediaButton>KEYCODE_MEDIA_PREVIOUS</mediaButton>
<explicitComponent>true</explicitComponent>
<packageName>com.google.android.music</packageName>
<className>com.google.android.music.playback.MediaButtonIntentReceiver</className>
<appName>Google Play Musik</appName>
</action>
<action type="notification_screen">
<useDefaultName>true</useDefaultName>
<name>Benachrichtigung auf Bildschirm: {param_message} (lange)</name>
<showText>true</showText>
<text>{param_message}</text>
<widgetName></widgetName>
<width>200</width>
<height>250</height>
<stretchToFillArea>false</stretchToFillArea>
<opacity>1.0</opacity>
<durationLong>true</durationLong>
<customPosition>false</customPosition>
<gravityType>TOP_LEFT</gravityType>
<xOffset>0</xOffset>
<yOffset>0</yOffset>
</action>
<action type="set_auto_rotate_screen_state">
<useDefaultName>true</useDefaultName>
<name>Display automatisch drehen ein-/ausschalten: Aus</name>
<enable>false</enable>
</action>
<action type="set_auto_rotate_screen_state">
<useDefaultName>true</useDefaultName>
<name>Display automatisch drehen ein-/ausschalten: Ein</name>
<enable>true</enable>
</action>
<action type="lock_device">
<useDefaultName>true</useDefaultName>
<name>Gerät sperren</name>
</action>
<action type="http_request">
<useDefaultName>true</useDefaultName>
<name>HTTP Request: GET http://{global_fhemip}:8085/fhem?cmd=sleep%202%3Bset%20{global_fhemdevice}%20statusRequest speichern in response</name>
<url>http://{global_fhemip}:8085/fhem?cmd=sleep%202%3Bset%20{global_fhemdevice}%20statusRequest</url>
<verifyCertificates>true</verifyCertificates>
<basicAuthentication>false</basicAuthentication>
<username></username>
<httpMethod>GET</httpMethod>
<httpContentType>X_WWW_FORM_URLENCODED</httpContentType>
<contentType>text/plain</contentType>
<generalTextData></generalTextData>
<formFieldList>Lastname=XYZ,Firstname=ABC</formFieldList>
<timeout>60000</timeout>
<setCustomHTTPHeaders>false</setCustomHTTPHeaders>
<customHTTPHeaders></customHTTPHeaders>
<storeInVariable>true</storeInVariable>
<variable>response</variable>
<path>/storage/emulated/0/Download/file.bin</path>
</action>
<action type="write_http_response_text">
<useDefaultName>false</useDefaultName>
<name>HTTP Response Information</name>
<text>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}@@@@bluetooth@@{bluetooth_state}@@@@connectedBTdevices@@{connected_devices_names}@@@@flow_SetCommands@@{setCommandFlow_state}</text>
<replaceVariables>true</replaceVariables>
<contentType>text/plain</contentType>
</action>
<action type="write_http_response_text">
<useDefaultName>false</useDefaultName>
<name>HTTP Response SetCommand</name>
<text>flow_informations@@{informationFlow_state}@@@@</text>
<replaceVariables>true</replaceVariables>
<contentType>text/plain</contentType>
</action>
<action type="init_variable_next_alarm">
<useDefaultName>false</useDefaultName>
<name>Initialisiere Variable Nächster Alarm: next_alarm</name>
<variable>next_alarm</variable>
</action>
<action type="init_variable_system_setting">
<useDefaultName>false</useDefaultName>
<name>Initialisiere Variable Systemeinstellung: screenBrightness</name>
<settingCategory>SYSTEM</settingCategory>
<settingName>screen_brightness</settingName>
<variable>screenBrightness</variable>
</action>
<action type="init_variable_system_setting">
<useDefaultName>false</useDefaultName>
<name>Initialisiere Variable Systemeinstellung: volumeMusikBluetooth</name>
<settingCategory>SYSTEM</settingCategory>
<settingName>volume_music_bt_a2dp</settingName>
<variable>volumeMusikBluetooth</variable>
</action>
<action type="init_variable_system_setting">
<useDefaultName>false</useDefaultName>
<name>Initialisiere Variable Systemeinstellung: volumeMusikSpeaker</name>
<settingCategory>SYSTEM</settingCategory>
<settingName>volume_music_speaker</settingName>
<variable>volumeMusikSpeaker</variable>
</action>
<action type="restore_audio_stream_volume">
<useDefaultName>false</useDefaultName>
<name>Lautstärken setzen</name>
<restoreVolumeAlarm>false</restoreVolumeAlarm>
<variableVolumeAlarm>global_volume_alarm</variableVolumeAlarm>
<restoreVolumeDTMF>false</restoreVolumeDTMF>
<variableVolumeDTMF>global_volume_dtmf</variableVolumeDTMF>
<restoreVolumeMusic>true</restoreVolumeMusic>
<variableVolumeMusic>param_volume</variableVolumeMusic>
<restoreVolumeNotification>false</restoreVolumeNotification>
<variableVolumeNotification>global_volume_notification</variableVolumeNotification>
<restoreVolumeRing>false</restoreVolumeRing>
<variableVolumeRing>global_volume_ring</variableVolumeRing>
<restoreVolumeSystem>false</restoreVolumeSystem>
<variableVolumeSystem>global_volume_system</variableVolumeSystem>
<restoreVolumeVoiceCall>false</restoreVolumeVoiceCall>
<variableVolumeVoiceCall>global_volume_voice_call</variableVolumeVoiceCall>
<restoreRingerMode>false</restoreRingerMode>
<variableRingerMode>global_ringer_mode</variableRingerMode>
<restoreInterruptionsMode>false</restoreInterruptionsMode>
<variableInterruptionsMode>global_interruptions_mode</variableInterruptionsMode>
</action>
<action type="reboot">
<useDefaultName>true</useDefaultName>
<name>Neustart </name>
<options></options>
</action>
<action type="sleep">
<useDefaultName>true</useDefaultName>
<name>Pause: 2s (Gerät wach halten)</name>
<duration>2s</duration>
<keepDeviceAwake>true</keepDeviceAwake>
</action>
<action type="turn_screen_on">
<useDefaultName>true</useDefaultName>
<name>Schalte Display ein: Hell für 120s</name>
<bright>true</bright>
<duration>120s</duration>
<resetUserActivityTimer>true</resetUserActivityTimer>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: bluetooth_state = "off"</name>
<script>bluetooth_state = "off"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: bluetooth_state = "on"</name>
<script>bluetooth_state = "on"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: global_artist = "no soundplayer activ"; global_track = "no soundplayer activ"; global_album = "no soundplayer activ";</name>
<script>global_artist = "no soundplayer activ";
global_track = "no soundplayer activ";
global_album = "no soundplayer activ";</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: global_fhemip = {header_fhemip} global_fhemdevice = {header_fhemdevice}</name>
<script>global_fhemip = {header_fhemip}
global_fhemdevice = {header_fhemdevice}</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: informationFlow_state = "aktiv"</name>
<script>informationFlow_state = "aktiv"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: informationFlow_state = "inaktiv"</name>
<script>informationFlow_state = "inaktiv"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: next_alarmday = "{next_alarm,dateformat,c}"</name>
<script>next_alarmday = "{next_alarm,dateformat,c}"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</name>
<script>next_alarmtime = "{next_alarm,dateformat,HH:mm}"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: notification_text = "no supported from your device"</name>
<script>notification_text = "no supported from your device"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: screen_orientation = "auto"</name>
<script>screen_orientation = "auto"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: screen_orientation = "landscape"</name>
<script>screen_orientation = "landscape"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: screen_orientation = "portrait"</name>
<script>screen_orientation = "portrait"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: screen_state = "off"</name>
<script>screen_state = "off"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: screen_state = "on"</name>
<script>screen_state = "on"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: setCommandFlow_state = "aktiv"</name>
<script>setCommandFlow_state = "aktiv"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: setCommandFlow_state = "inaktiv"</name>
<script>setCommandFlow_state = "inaktiv"</script>
</action>
<action type="set_alarm">
<useDefaultName>true</useDefaultName>
<name>Setze Alarm: um {param_hour}:{param_minute}</name>
<label></label>
<hour>{param_hour}</hour>
<minutes>{param_minute}</minutes>
</action>
<action type="set_screen_orientation">
<useDefaultName>true</useDefaultName>
<name>Setze Display Orientierung: Auf Default zurücksetzen</name>
<screenOrientation>UNSPECIFIED</screenOrientation>
<showResetNotification>false</showResetNotification>
</action>
<action type="set_screen_orientation">
<useDefaultName>true</useDefaultName>
<name>Setze Display Orientierung: Landscape</name>
<screenOrientation>LANDSCAPE</screenOrientation>
<showResetNotification>false</showResetNotification>
</action>
<action type="set_screen_orientation">
<useDefaultName>true</useDefaultName>
<name>Setze Display Orientierung: Portrait</name>
<screenOrientation>PORTRAIT</screenOrientation>
<showResetNotification>false</showResetNotification>
</action>
<action type="set_flow_state">
<useDefaultName>true</useDefaultName>
<name>Setze Flow Status: Aktivieren Informations</name>
<enable>true</enable>
<includeFlowNamePatternList>Informations</includeFlowNamePatternList>
<excludeFlowNamePatternList></excludeFlowNamePatternList>
</action>
<action type="set_flow_state">
<useDefaultName>true</useDefaultName>
<name>Setze Flow Status: Aktivieren SetCommands</name>
<enable>true</enable>
<includeFlowNamePatternList>SetCommands</includeFlowNamePatternList>
<excludeFlowNamePatternList></excludeFlowNamePatternList>
</action>
<action type="set_system_setting">
<useDefaultName>true</useDefaultName>
<name>Setze Systemeinstellung: System screen_brightness auf {param_brightness}</name>
<settingCategory>SYSTEM</settingCategory>
<settingName>screen_brightness</settingName>
<value>{param_brightness}</value>
<verified>true</verified>
</action>
<action type="set_immersive_mode">
<useDefaultName>true</useDefaultName>
<name>Setze Vollbild Modus: Auf Default zurücksetzen</name>
<immersiveMode>UNSPECIFIED</immersiveMode>
<showResetNotification>false</showResetNotification>
</action>
<action type="set_immersive_mode">
<useDefaultName>true</useDefaultName>
<name>Setze Vollbild Modus: Navigation nicht anzeigen</name>
<immersiveMode>HIDE_NAVIGATION</immersiveMode>
<showResetNotification>false</showResetNotification>
</action>
<action type="speech_output">
<useDefaultName>true</useDefaultName>
<name>Sprachausgabe: {param_message}</name>
<audioStreamType>MUSIC</audioStreamType>
<text>{param_message}</text>
<locale>de_DE</locale>
<usePitch>true</usePitch>
<pitch>1.0</pitch>
<useSpeechRate>true</useSpeechRate>
<speechRate>1.0</speechRate>
<embeddedSynthesis>true</embeddedSynthesis>
<networkSynthesis>false</networkSynthesis>
<showStopSpeechNotification>false</showStopSpeechNotification>
<requestAudioFocus>false</requestAudioFocus>
<audioFocusType>TRANSIENT</audioFocusType>
</action>
<action type="open_browser_url">
<useDefaultName>true</useDefaultName>
<name>URL in Browser öffnen: {param_url} (mit Chrome)</name>
<url>{param_url}</url>
<explicitComponent>true</explicitComponent>
<packageName>com.android.chrome</packageName>
<className>com.google.android.apps.chrome.Main</className>
<appName>Chrome</appName>
</action>
<flow type="flow">
<name>Informations</name>
<group>FHEM Info / Steuerung über AMAD Modul v0.6</group>
<enabled>true</enabled>
<executionPolicy>SKIP</executionPolicy>
<emergencyStopCount>120</emergencyStopCount>
<triggercontainer id="t1" x="1015.0" y="-1172.5">
<trigger>com.android.music.metachanged</trigger>
<trigger>HTTP Request: /fhem-amad/deviceInfo/</trigger>
</triggercontainer>
<actioncontainer id="t2" x="1505.0" y="857.5">Script: notification_text = "no supported from your device"</actioncontainer>
<actioncontainer id="t3" x="1715.0" y="857.5">Script: screen_orientation = "auto"</actioncontainer>
<conditioncontainer id="t4" x="1715.0" y="612.5">Display automatisch drehen eingeschaltet</conditioncontainer>
<actioncontainer id="t5" x="1925.0" y="857.5">Script: screen_orientation = "portrait"</actioncontainer>
<conditioncontainer id="t6" x="2030.0" y="682.5">Display Orientierung: Portrait</conditioncontainer>
<actioncontainer id="t7" x="2135.0" y="857.5">Script: screen_orientation = "landscape"</actioncontainer>
<conditioncontainer id="t8" x="2450.0" y="612.5">Bluetooth eingeschaltet</conditioncontainer>
<actioncontainer id="t9" x="2345.0" y="857.5">Script: bluetooth_state = "on"</actioncontainer>
<conditioncontainer id="t10" x="2485.0" y="857.5">Bluetooth Gerät verbunden: Beliebiges Geräte</conditioncontainer>
<actioncontainer id="t11" x="2625.0" y="857.5">Script: bluetooth_state = "off"</actioncontainer>
<actioncontainer id="t12" x="1295.0" y="857.5">Script: screen_state = "off"</actioncontainer>
<actioncontainer id="t13" x="1085.0" y="857.5">Script: screen_state = "on"</actioncontainer>
<conditioncontainer id="t14" x="1190.0" y="612.5">Display eingeschaltet</conditioncontainer>
<actioncontainer id="t15" x="665.0" y="857.5">Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</actioncontainer>
<actioncontainer id="t16" x="770.0" y="612.5">Initialisiere Variable Nächster Alarm: next_alarm</actioncontainer>
<actioncontainer id="t17" x="875.0" y="857.5">Script: next_alarmday = "{next_alarm,dateformat,c}"</actioncontainer>
<actioncontainer id="t18" x="490.0" y="612.5">Initialisiere Variable Systemeinstellung: screenBrightness</actioncontainer>
<actioncontainer id="t19" x="280.0" y="612.5">Initialisiere Variable Systemeinstellung: volumeMusikSpeaker</actioncontainer>
<actioncontainer id="t20" x="70.0" y="612.5">Initialisiere Variable Systemeinstellung: volumeMusikBluetooth</actioncontainer>
<conditioncontainer id="t21" x="665.0" y="-332.5">Expression: global_fhemip == "null"</conditioncontainer>
<conditioncontainer id="t22" x="805.0" y="-332.5">Expression: global_fhemdevice == "null"</conditioncontainer>
<actioncontainer id="t23" x="735.0" y="-87.5">Script: global_fhemip = {header_fhemip} global_fhemdevice = {header_fhemdevice}</actioncontainer>
<conditioncontainer id="t24" x="-455.0" y="612.5">Flow Aktiv: SetCommands</conditioncontainer>
<actioncontainer id="t25" x="-350.0" y="857.5">Script: setCommandFlow_state = "aktiv"</actioncontainer>
<actioncontainer id="t26" x="-560.0" y="857.5">Script: setCommandFlow_state = "inaktiv"</actioncontainer>
<actioncontainer id="t27" x="-665.0" y="1032.5">Setze Flow Status: Aktivieren SetCommands</actioncontainer>
<conditioncontainer id="t28" x="1435.0" y="612.5">Benachrichtigung in Statusbar angezeigt: Automagic</conditioncontainer>
<actioncontainer id="t29" x="1015.0" y="1487.5">HTTP Response Information</actioncontainer>
<conditioncontainer id="t30" x="1015.0" y="-87.5">Akku Ladestand: grösser als 0%</conditioncontainer>
<actioncontainer id="t31" x="-140.0" y="857.5">Script: global_artist = "no soundplayer activ"; global_track = "no soundplayer activ"; global_album = "no soundplayer activ";</actioncontainer>
<conditioncontainer id="t32" x="-140.0" y="612.5">Musik Aktiv</conditioncontainer>
<actioncontainer id="t33" x="1015.0" y="-332.5">Pause: 2s (Gerät wach halten)</actioncontainer>
<conditioncontainer id="t34" x="1015.0" y="-822.5">Expression: trigger == "com.android.music.metachanged"</conditioncontainer>
<conditioncontainer id="t35" x="2065.0" y="-332.5">WLAN Verbunden: Alle SSIDs</conditioncontainer>
<actioncontainer id="t36" x="2065.0" y="-87.5">HTTP Request: GET http://{global_fhemip}:8085/fhem?cmd=sleep%202%3Bset%20{global_fhemdevice}%20statusRequest speichern in response</actioncontainer>
<connection from="t1" to="t34" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t3" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t6" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t3" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t5" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t5" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t7" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t9" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t11" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t10" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t10" to="t29" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t11" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t12" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t13" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t14" to="t13" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t14" to="t12" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t15" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t15" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t17" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t17" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t19" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t20" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t21" to="t23" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t22" to="t23" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t24" to="t25" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t24" to="t26" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t25" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t26" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t26" to="t27" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t28" to="t2" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t28" to="t29" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t20" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t19" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t18" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t16" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t14" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t28" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t4" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t32" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t8" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t24" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t29" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t32" to="t31" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t33" to="t30" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t33" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t21" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t22" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t35" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t35" to="t36" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
</flow>
<flow type="flow">
<name>SetCommands</name>
<group>FHEM Info / Steuerung über AMAD Modul v0.6</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<emergencyStopCount>120</emergencyStopCount>
<triggercontainer id="t1" x="-805.0" y="-2327.5">
<trigger>HTTP Request: /fhem-amad/deviceInfo/</trigger>
<trigger>HTTP Request: /fhem-amad/setCommands/*</trigger>
</triggercontainer>
<conditioncontainer id="t2" x="-1435.0" y="367.5">Expression: param_screen=="on"</conditioncontainer>
<actioncontainer id="t3" x="-1225.0" y="892.5">Sprachausgabe: {param_message}</actioncontainer>
<conditioncontainer id="t4" x="-1225.0" y="-122.5">Expression: ttsMsg"</conditioncontainer>
<conditioncontainer id="t5" x="-1015.0" y="-122.5">Expression: setBrightness"</conditioncontainer>
<conditioncontainer id="t6" x="-805.0" y="-122.5">Expression: setAlarm"</conditioncontainer>
<conditioncontainer id="t7" x="-595.0" y="-122.5">Expression: screenMsg"</conditioncontainer>
<conditioncontainer id="t8" x="-385.0" y="-122.5">Expression: openURL"</conditioncontainer>
<actioncontainer id="t9" x="-805.0" y="892.5">Setze Alarm: um {param_hour}:{param_minute}</actioncontainer>
<actioncontainer id="t10" x="-385.0" y="892.5">URL in Browser öffnen: {param_url} (mit Chrome)</actioncontainer>
<actioncontainer id="t11" x="-595.0" y="892.5">Benachrichtigung auf Bildschirm: {param_message} (lange)</actioncontainer>
<actioncontainer id="t12" x="-1435.0" y="892.5">Schalte Display ein: Hell für 120s</actioncontainer>
<conditioncontainer id="t13" x="770.0" y="-122.5">Expression: setScreenFullscreen"</conditioncontainer>
<conditioncontainer id="t14" x="1505.0" y="577.5">Expression: param_orientation == "auto"</conditioncontainer>
<actioncontainer id="t15" x="1295.0" y="892.5">Setze Display Orientierung: Portrait</actioncontainer>
<actioncontainer id="t16" x="1085.0" y="892.5">Setze Display Orientierung: Landscape</actioncontainer>
<conditioncontainer id="t17" x="1085.0" y="577.5">Expression: param_orientation == "landscape"</conditioncontainer>
<conditioncontainer id="t18" x="1295.0" y="577.5">Expression: param_orientation == "portrait"</conditioncontainer>
<conditioncontainer id="t19" x="875.0" y="577.5">Expression: param_fullscreen == "off"</conditioncontainer>
<actioncontainer id="t20" x="665.0" y="892.5">Setze Vollbild Modus: Navigation nicht anzeigen</actioncontainer>
<conditioncontainer id="t21" x="665.0" y="577.5">Expression: param_fullscreen == "on"</conditioncontainer>
<actioncontainer id="t22" x="875.0" y="892.5">Setze Vollbild Modus: Auf Default zurücksetzen</actioncontainer>
<actioncontainer id="t23" x="455.0" y="892.5">Audio Player steuern: Medienknopf Zurück (Google Play Musik)</actioncontainer>
<conditioncontainer id="t24" x="455.0" y="577.5">Expression: param_button == "back"</conditioncontainer>
<actioncontainer id="t25" x="1190.0" y="1032.5">Display automatisch drehen ein-/ausschalten: Aus</actioncontainer>
<conditioncontainer id="t26" x="245.0" y="577.5">Expression: param_button == "next"</conditioncontainer>
<actioncontainer id="t27" x="1505.0" y="892.5">Setze Display Orientierung: Auf Default zurücksetzen</actioncontainer>
<actioncontainer id="t28" x="1505.0" y="1032.5">Display automatisch drehen ein-/ausschalten: Ein</actioncontainer>
<actioncontainer id="t29" x="35.0" y="892.5">Audio Player steuern: Medienknopf Play (Google Play Musik)</actioncontainer>
<conditioncontainer id="t30" x="35.0" y="577.5">Expression: param_button == "play"</conditioncontainer>
<conditioncontainer id="t31" x="140.0" y="-122.5">Expression: mediaPlayer"</conditioncontainer>
<actioncontainer id="t32" x="245.0" y="892.5">Audio Player steuern: Medienknopf Weiter (Google Play Musik)</actioncontainer>
<actioncontainer id="t33" x="-175.0" y="892.5">Audio Player steuern: Medienknopf Stopp (Google Play Musik)</actioncontainer>
<conditioncontainer id="t34" x="-175.0" y="577.5">Expression: param_button == "stop"</conditioncontainer>
<conditioncontainer id="t35" x="-1645.0" y="367.5">Expression: param_screen=="off"</conditioncontainer>
<actioncontainer id="t36" x="-1645.0" y="892.5">Gerät sperren</actioncontainer>
<conditioncontainer id="t37" x="-1540.0" y="-122.5">Expression: setScreenOnOff"</conditioncontainer>
<conditioncontainer id="t38" x="-1855.0" y="-122.5">Expression: setVolume"</conditioncontainer>
<actioncontainer id="t39" x="-1855.0" y="892.5">Lautstärken setzen</actioncontainer>
<conditioncontainer id="t40" x="-2065.0" y="577.5">App Task läuft: App5 (neuster)</conditioncontainer>
<conditioncontainer id="t41" x="-2065.0" y="367.5">Expression: App5</conditioncontainer>
<conditioncontainer id="t42" x="-2275.0" y="367.5">Expression: App4</conditioncontainer>
<conditioncontainer id="t43" x="-2485.0" y="577.5">App Task läuft: App3 (neuster)</conditioncontainer>
<conditioncontainer id="t44" x="-2485.0" y="367.5">Expression: App3</conditioncontainer>
<actioncontainer id="t45" x="-2485.0" y="892.5">App Starten: App3</actioncontainer>
<actioncontainer id="t46" x="-2275.0" y="892.5">App Starten: App4</actioncontainer>
<conditioncontainer id="t47" x="-2275.0" y="577.5">App Task läuft: App4 (neuster)</conditioncontainer>
<conditioncontainer id="t48" x="-2695.0" y="367.5">Expression: tuneinradio</conditioncontainer>
<conditioncontainer id="t49" x="-2695.0" y="577.5">App Task läuft: tuneinradio (neuster)</conditioncontainer>
<actioncontainer id="t50" x="-2695.0" y="892.5">App Starten: tuneinradio</actioncontainer>
<actioncontainer id="t51" x="-2065.0" y="892.5">App Starten: App5</actioncontainer>
<conditioncontainer id="t52" x="-2905.0" y="577.5">App Task läuft: gplay (neuster)</conditioncontainer>
<conditioncontainer id="t53" x="-2905.0" y="367.5">Expression: gplay</conditioncontainer>
<actioncontainer id="t54" x="-2905.0" y="892.5">App Starten: PlayMusic</actioncontainer>
<conditioncontainer id="t55" x="-2485.0" y="-122.5">Expression: openApp"</conditioncontainer>
<conditioncontainer id="t56" x="-3115.0" y="-122.5">Expression: System Command"</conditioncontainer>
<conditioncontainer id="t57" x="1295.0" y="-122.5">Expression: setScreenOrientation"</conditioncontainer>
<conditioncontainer id="t58" x="-3115.0" y="367.5">Expression: Reboot</conditioncontainer>
<actioncontainer id="t59" x="-3115.0" y="892.5">Neustart </actioncontainer>
<actioncontainer id="t60" x="-1015.0" y="892.5">Setze Systemeinstellung: System screen_brightness auf {param_brightness}</actioncontainer>
<conditioncontainer id="t61" x="-805.0" y="-2012.5">Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"</conditioncontainer>
<actioncontainer id="t62" x="-1470.0" y="-1557.5">Setze Flow Status: Aktivieren Informations</actioncontainer>
<actioncontainer id="t63" x="-1330.0" y="-1802.5">Script: informationFlow_state = "inaktiv"</actioncontainer>
<actioncontainer id="t64" x="-1120.0" y="-1802.5">Script: informationFlow_state = "aktiv"</actioncontainer>
<conditioncontainer id="t65" x="-1225.0" y="-2012.5">Flow Aktiv: Informations</conditioncontainer>
<actioncontainer id="t66" x="-1225.0" y="-1417.5">HTTP Response SetCommand</actioncontainer>
<connection from="t1" to="t61" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t12" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t3" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t5" to="t60" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t9" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t11" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t10" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t13" to="t21" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t13" to="t19" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t14" to="t27" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t15" to="t25" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t25" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t17" to="t16" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t15" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t19" to="t22" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t21" to="t20" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t24" to="t23" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t26" to="t32" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t27" to="t28" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t30" to="t29" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t34" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t30" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t26" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t24" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t33" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t35" to="t36" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t37" to="t35" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t37" to="t2" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t38" to="t39" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t40" to="t51" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t41" to="t40" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t42" to="t47" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t43" to="t45" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t44" to="t43" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t47" to="t46" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t48" to="t49" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t49" to="t50" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t52" to="t54" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t53" to="t52" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t55" to="t44" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t55" to="t53" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t55" to="t48" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t55" to="t42" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t55" to="t41" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t56" to="t58" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t57" to="t18" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t57" to="t17" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t57" to="t14" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t58" to="t59" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t56" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t55" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t38" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t37" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t4" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t5" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t6" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t7" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t8" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t31" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t13" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t57" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t61" to="t65" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t63" to="t62" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t63" to="t66" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t64" to="t66" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t65" to="t63" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t65" to="t64" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
</flow>
</data>

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,15 @@
<h3>AMAD - Automagic Android Device</h3>
<h3>AMAD</h3>
<ul>
<u><b>AMAD - Automagic Android Device</b></u>
<br>
Dieses Modul liefert, <b><u>in Verbindung mit der Android APP Automagic</u></b>, diverse Informationen von Android Ger&auml;ten.
Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
Im Auslieferiungszustand werden folgende Zust&auml;nde dargestellt:
Im Auslieferungszustand werden folgende Zust&auml;nde dargestellt:
<ul>
<li>Zustand von Automagic auf dem Ger&auml;t</li>
<li>Bluetooth An/Aus</li>
<li>verbundene Bluetoothger&auml;te</li>
<li>Zustand einer definierten App (l&auml;uft aktiv im Vordergrund oder nicht?)</li>
<li>verbundene Bluetoothger&auml;te, inklusive deren MAC Adresse</li>
<li>aktuell abgespieltes Musikalbum des verwendeten Mediaplayers</li>
<li>aktuell abgespielter Musikinterpret des verwendeten Mediaplayers</li>
<li>aktuell abgespielter Musiktitel des verwendeten Mediaplayers</li>
@ -16,7 +18,7 @@
<li>n&auml;chste Alarmzeit</li>
<li>Batteriestatus in %</li>
<li>Ladestatus - Netztei angeschlossen / nicht angeschlossen</li>
<li>Bildschirnstatus An/Aus</li>
<li>Bildschirmstatus An/Aus</li>
<li>Bildschirmhelligkeit</li>
<li>Vollbildmodus An/Aus</li>
<li>Bildschirmausrichtung Auto/Landscape/Portrait</li>
@ -30,9 +32,12 @@
<br><br>
Das Modul gibt Dir auch die M&ouml;glichkeit Deine Androidger&auml;te zu steuern. So k&ouml;nnen folgende Aktionen durchgef&uuml;hrt werden.
<ul>
<li>Bluetooth Ein/Aus schalten</li>
<li>zu einem bestimmten Bluetoothger&auml;t wechseln/verbinden</li>
<li>Status des Ger&auml;tes (Online,Offline)</li>
<li>Mediaplayer steuern (Play, Stop, n&auml;chster Titel, vorheriger Titel)</li>
<li>n&auml;chste Alarmzeit setzen</li>
<li>ein Benachrichtigungston abspielen (Notificationsound)</li>
<li>eine App auf dem Ger&auml;t &ouml;ffnen</li>
<li>eine URL im Browser &ouml;ffnen</li>
<li>Bildschirm An/Aus machen</li>
@ -52,7 +57,7 @@
<b>Wie genau verwendet man nun AMAD?</b>
<ul>
<li>installiert Euch die App "Automagic Premium" aus dem App Store oder die Testversion von <a href="https://automagic4android.com/de/testversion">hier</a></li>
<li>installiert das Flowset 74_AMADautomagicFlows$VERSION.xml aus dem Ordner $INSTALLFHEM/lib/ auf Eurem Androidger&auml;t und aktiviert erstmal nur den "Informations" Flow.</li>
<li>installiert das Flowset 74_AMADautomagicFlows$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf Eurem Androidger&auml;t und aktiviert erstmal nur den "Informations" Flow.</li>
</ul>
<br>
Nun m&uuml;sst Ihr nur noch ein Device in FHEM anlegen.
@ -67,20 +72,34 @@
<code>define WandTabletWohnzimmer AMAD 192.168.0.23</code><br>
</ul>
<br>
Diese Anweisung erstellt ein neues AMAD-Device. Der Parameter &lt;IP-ADRESSE&lt; legt die IP Adresse des Android Ger&auml;tes fest.<br>
Diese Anweisung erstellt ein neues AMAD-Device im Raum AMAD.Der Parameter &lt;IP-ADRESSE&lt; legt die IP Adresse des Android Ger&auml;tes fest.<br>
Das Standard Abfrageinterval ist 180 Sekunden und kann &uuml;ber das Attribut intervall ge&auml;ndert werden. Wer den Port &auml;ndern m&ouml;chte, kann dies &uuml;ber
das Attribut port tun. <b>Ihr solltet aber wissen was Ihr tut, da dieser Port im HTTP Response Trigger der beiden Flows eingestellt ist. Demzufolge mu&szlig; dieser dort
auch ver&auml;ndert werden.</b><br>
auch ver&auml;dert werden.</b><br>
</ul>
<br><br>
<b><u>Fertig! Nach anlegen der Ger&auml;teinstanz sollten nach sp&auml;testens 3 Minuten bereits die ersten Readings reinkommen.</u></b>
<br><br><br>
<a name="AMADCommBridge"></a>
<b>AMAD Communication Bridge</b>
<ul>
Beim ersten anlegen einer AMAD Deviceinstanz wird automatisch ein Ger&auml;t Namens AMADCommBridge im Raum AMAD angelegt. <b>BITTE NIEMALS DEN NAMEN DER BRIDGE &Auml;NDERN!!!</b>
Alle anderen Eigenschaften k&ouml;nnen ge&auml;ndert werden. Dieses Ger&auml;t diehnt zur Kommunikation
vom Androidger&auml;t zu FHEM ohne das zuvor eine Anfrage von FHEM aus ging. <b>Damit das Androidger&auml;t die IP von FHEM kennt, muss diese sofort nach dem anlegen der Bridge
&uuml;ber den set Befehl in ein entsprechendes Reading in die Bridge geschrieben werden. DAS IST SUPER WICHTIG UND F&Uuml;R DIE FUNKTION DER BRIDGE NOTWENDIG.</b><br>
Bitte f&uuml;hrt hierzu folgenden Befehl aus. <i>set AMADCommBridge fhemServerIP &lt;FHEM-IP&gt;.</i><br>
Als zweites Reading k&ouml;nnt Ihr <i>expertMode</i>setzen. Mit diesem Reading wird eine unmittelbare Komminikation mit FHEM erreicht ohne die Einschr&auml;nkung &uuml;ber ein
Notify gehen zu m&uuml;ssen und nur reine set Befehle ausf&uuml;hren zu k&ouml;nnen.
</ul>
<br><br>
<a name="AMADreadings"></a>
<b>Readings</b>
<ul>
<li>automagicState - Statusmeldungen von der AutomagicApp</li>
<li>automagicState - Statusmeldungen von der AutomagicApp <b>(Voraussetzung Android >4.3). Wer ein Android >4.3 hat und im Reading steht "wird nicht unterst&uuml;tzt", mu&szlig; in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken setzen f&uuml;r Automagic</b></li>
<li>bluetooth on/off - ist auf dem Ger&auml;t Bluetooth an oder aus</li>
<li>connectedBTdevices - eine Lieste der verbundenen Ger&auml;t</li>
<li>checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, <b>siehe Hinweis unten</b></li>
<li>connectedBTdevices - eine Liste der verbundenen Ger&auml;t</li>
<li>connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Ger&auml;te</li>
<li>currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers</li>
<li>currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers</li>
<li>currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers</li>
@ -95,7 +114,7 @@
<li>nextAlarmDay - aktiver Alarmtag</li>
<li>nextAlarmTime - aktive Alarmzeit</li>
<li>powerLevel - Status der Batterie in %</li>
<li>powerPlugged - Netzteil angeschlossen? 0=NEIN, 2=JA</li>
<li>powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA</li>
<li>screen - Bildschirm An oderAus</li>
<li>screenBrightness - Bildschirmhelligkeit von 0-255</li>
<li>screenFullscreen - Vollbildmodus (On,Off)</li>
@ -104,16 +123,54 @@
<li>volumeMusikBluetooth - Media Lautst&auml;rke von angeschlossenden Bluetooth Lautsprechern</li>
<li>volumeMusikSpeaker - Media Lautst&auml;rke der internen Lautsprecher</li>
<br>
Die Readings volumeMusikBluetooth und volumeMusikSpeaker spiegeln die jeweilige Medialautst&auml;rke der angeschlossenden Bluetoothlautsprechern oder der internen Lautsprecher wieder.<br>
Die Readings volumeMusikBluetooth und volumeMusikSpeaker spiegeln die jeweilige Medialautst&auml;rke der angeschlossenden Bluetoothlautsprecher oder der internen Lautsprecher wieder.
Sofern man die jeweiligen Lautst&auml;rken ausschlie&szlig;lich &uuml;ber den Set Befehl setzt, wird eine der beiden immer mit dem "volume" Reading &uuml;ber ein stimmen.<br><br>
Beim Reading checkActivTask mu&szlig; zuvor der Packagename der zu pr&uuml;fenden App als Attribut <i>checkActiveTask</i> angegeben werden. Beispiel: <i>attr Nexus10Wohnzimmer
checkActiveTask com.android.chrome</i> f&uuml;r den Chrome Browser.
<br><br>
</ul>
<b>Eigene Readings im AMAD-Device erstellen</b>
<ul>
Es ist m&ouml;glich, aus beliebigen eigenen Automagic-Flows eigene Readings im AMAD-Device zu erstellen und zu f&uuml;llen. Die &Uuml;bertragung zum FHEM AMAD-Device erfolgt umgehend &uuml;ber die AMADCommBridge - daher sollte auf eine zu h&auml;ufige Aktualisierung verzichtet werden. Die Vorgehensweise in Automagic hierf&uuml;r ist folgende:
<ul>
<br>
<li>zun&auml;chst erstellt man sich, soweit nicht bereits geschehen, einen Automagic-Flow der die Information, die in ein Reading &uuml;bernommen werden soll zur Verf&uuml;gung stellt</li>
<li>diese Information speichert man nun mittels Automagic Action Script in eine globale Variable namens global_reading_<Readingname> (beim <Readingname> auf Gro&szlig;- und Kleinschreibung achten):</li>
<br>
<code>
Beispiel: Das Reading Touch soll den Wert "ja" erhalten
Action Script: global_reading_Touch="ja"
</code>
<br><br>
<li>abschlie&szlig;end muss noch die &Uuml;bertragung des Wertes initiiert werden. Dies erfolgt, indem der Wert der Variable global_own_reading auf den Wert <Zeitstempel>_<Readingname> gesetzt wird (auch hier auf Gro&szlig;- und Kleinschreibung achten):</li>
<br>
<code>
Beispiel: Das Reading Touch soll &uuml;bertragen werden<br>
Action Script: global_own_reading="{getDate()}_Touch"<br>
Hinweis: man kann auch beide Aktionen in ein Script packen:
<ul>
global_reading_Touch="ja";global_own_reading="{getDate()}_Touch"
</ul>
</code>
<br>
<li>M&ouml;chte man nun als n&auml;chstes z.B. eine sofortige Benachrichtigung, wenn das Display des Tablets an- oder ausgeschaltet wird, k&ouml;nnte man sich Flows bauen, welche beim De-/Aktivieren des Display ausgef&uuml;hrt werden:</li>
<br>
<code>
Action Script beim Aktivieren des Displays: global_reading_Display="an";global_own_reading="{getDate()}_Display"
Action Script beim Deaktivieren des Displays: global_reading_Display="aus";global_own_reading="{getDate()}_Display"
</code>
</ul>
</ul>
<br><br>
<a name="AMADset"></a>
<b>Set</b>
<ul>
<li>bluetooth - Schaltet Bluetooth on/off</li>
<li>clearNotificationBar - (All,Automagic) l&ouml;scht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste</li>
<li>deviceState - setzt den Device Status Online/Offline. Siehe Readings</li>
<li>mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel z&uuml;r&uuml;ck, Titel vor.</li>
<li>nextAlarmTime - setzt die Alarmzeit. Geht aber nur innerhalb der n&auml;chsten 24Std.</li>
<li>notifySndFile - spielt die angegebende Mediadatei auf dem Androidger&auml;t ab. <b>Die aufzurufende Mediadatei mu&szlig; sich im Ordner /storage/emulated/0/Notifications/ befinden.</b></li>
<li>openURL - &ouml;ffnet eine URL im Standardbrowser</li>
<li>screen - setzt den Bildschirm on/off mit Sperre, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht.</li>
<li>screenMsg - versendet eine Bildschirmnachricht</li>
@ -124,6 +181,7 @@
<br>
<b>Set abh&auml;ngig von gesetzten Attributen</b>
<ul>
<li>changetoBtDevice - wechselt zu einem anderen Bluetooth Ger&auml;t. <b>Attribut setBluetoothDevice mu&szlig; gesetzt sein. Siehe Hinweis unten!</b></li>
<li>mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel z&uuml;r&uuml;ck, Titel vor. <b>Attribut fhemServerIP</b></li>
<li>openApp - &ouml;ffnet eine ausgew&auml;hlte App. <b>Attribut setOpenApp</b></li>
<li>screenBrightness - setzt die Bildschirmhelligkeit, von 0-255 <b>Attribut setScreenBrightness</b></li>
@ -132,16 +190,20 @@
<li>screenFullscreen - Schaltet den Vollbildmodus on/off. <b>Attribut setFullscreen</b></li>
<li>screenOrientation - Schaltet die Bildschirmausrichtung Auto/Landscape/Portait. <b>Attribut setScreenOrientation</b></li>
<li>system - setzt Systembefehle ab (nur bei gerootetet Ger&auml;en). Reboot <b>Attribut root</b>, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden</li>
<br>
Um openApp verwenden zu k&ouml;nnen, muss als Attribut ein, oder durch Komma getrennt, mehrere App Namen gesetzt werden. Der App Name ist frei w&auml;hlbar und nur zur Wiedererkennung notwendig.
Der selbe App Name mu&szlig; im Flow SetCommands auf der linken Seite unterhalb der Raute Expression:"openApp" in einen der 5 Str&auml;nge (eine App pro Strang) in beide Rauten eingetragen werden. Danach wird
in das
Viereck die App ausgew&auml;lt welche durch den Attribut App Namen gestartet werden soll.
in das Viereck die App ausgew&auml;lt welche durch den Attribut App Namen gestartet werden soll.<br><br>
Um zwischen Bluetoothger&auml;ten wechseln zu k&ouml;nnen, mu&szlig; das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. <b>attr &lt;DEVICE&gt; BTdeviceName1|MAC,BTDeviceName2|MAC</b> Es muss
zwingend darauf geachtet werden das beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Achtet bei der MAC darauf das Ihr wirklich nach jeder zweiten Zahl auch
einen : drin habt<br>
Beispiel: <i>attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76</i>
</ul>
<br><br>
<a name="AMADstate"></a>
<b>STATE</b>
<b>state</b>
<ul>
<li>initialized - Ist der Status kurz nach einem define..</li>
<li>initialized - Ist der Status kurz nach einem define.</li>
<li>active - die Ger&auml;teinstanz ist im aktiven Status.</li>
<li>disabled - die Ger&auml;teinstanz wurde &uuml;ber das Attribut disable deaktiviert</li>
</ul>
@ -159,5 +221,7 @@
Der gr&ouml;&szlig;te Dank geht an meinen Mentor Andre (justme1968), er hat mir mit hilfreichen Tips geholfen Perlcode zu verstehen und Spa&szlig; am programmieren zu haben.<br>
Auch m&ouml;chte ich mich bei Jens bedanken (jensb) welcher mir ebenfalls mit hilfreichen Tips bei meinen aller ersten Gehversuchen beim Perlcode schreiben unterst&uuml;tzt hat.<br>
So und nun noch ein besonderer Dank an pah (Prof. Dr. Peter Henning ), ohne seine Aussage "Keine Ahnung hatten wir alle mal, das ist keine Ausrede" h&auml;tte ich bestimmt nicht angefangen Interesse an
Modulentwicklung zu zeigen :-)</b>
Modulentwicklung zu zeigen :-)<br>
Danke an J&uuml;rgen(ujaudio) der sich um die &Uuml;bersetzung der Commandref ins Englische gek&uuml;mmert hat und hoffentlich weiter k&uuml;mmern wird :-)<br>
Danke auch an Ronny(RoBra81) f&uuml;r seine tollte Idee und Umsetzung von eigenen AMAD Readings aus externen Flows.</b>
</ul>