erste Implementierung von toGo Funktion, zusätzlicher Bluetooth Trigger

This commit is contained in:
Marko Oldenburg 2017-06-07 21:15:59 +02:00
parent 5992f47bf3
commit 33ffccbf89
3 changed files with 146 additions and 51 deletions

View File

@ -68,8 +68,8 @@ use TcpServerUtils;
eval "use JSON;1" or $missingModul .= "JSON ";
my $modulversion = "3.9.65";
my $flowsetversion = "3.9.66";
my $modulversion = "3.9.68";
my $flowsetversion = "3.9.68";

View File

@ -54,8 +54,8 @@ use Encode qw(encode);
eval "use JSON;1" or $missingModul .= "JSON ";
my $modulversion = "3.9.67";
my $flowsetversion = "3.9.66";
my $modulversion = "3.9.68";
my $flowsetversion = "3.9.68";
@ -804,7 +804,7 @@ sub AMADDevice_checkDeviceState($) {
if( ReadingsAge( $name, ".deviceState", 240 ) > 240 ) {
AMADDevice_statusRequest( $hash ) if( $hash->{helper}{deviceStateErrorCounter} == 0 );
readingsSingleUpdate( $hash, "deviceState", "offline", 1 ) if( ReadingsAge( $name, ".deviceState", 300) > 300 and $hash->{helper}{deviceStateErrorCounter} > 0 );
readingsSingleUpdate( $hash, "deviceState", "offline", 1 ) if( ReadingsAge( $name, ".deviceState", 300) > 300 and $hash->{helper}{deviceStateErrorCounter} > 0 and ReadingsVal($name,'deviceState','online') ne 'offline' );
$hash->{helper}{deviceStateErrorCounter} = ( $hash->{helper}{deviceStateErrorCounter} + 1 );
}

View File

@ -1,24 +1,26 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<data version="1.32.0">
<data version="1.33.0">
<trigger type="battery_level">
<useDefaultName>true</useDefaultName>
<name>Akku Ladestand: grösser als 0%</name>
<enabled>true</enabled>
<levelPercentage>0</levelPercentage>
<batteryLevelCondition>HIGHER_THAN</batteryLevelCondition>
<ignoreTemperatureChanges>false</ignoreTemperatureChanges>
<ignoreTemperatureChanges>true</ignoreTemperatureChanges>
<ignoreVoltageChanges>true</ignoreVoltageChanges>
</trigger>
<trigger type="app_task_ended">
<useDefaultName>false</useDefaultName>
<name>App Task Beendet</name>
<enabled>true</enabled>
<method>CLASSIC</method>
<packageNameFilter>*</packageNameFilter>
</trigger>
<trigger type="app_task_ended">
<useDefaultName>true</useDefaultName>
<name>App Task Beendet: ch.gridvision.ppam.androidautomagic</name>
<enabled>false</enabled>
<method>CLASSIC</method>
<packageNameFilter>ch.gridvision.ppam.androidautomagic</packageNameFilter>
</trigger>
<trigger type="notification_status_bar_displayed">
@ -65,6 +67,14 @@
<ignoreRegular>false</ignoreRegular>
<ignoreOngoing>false</ignoreOngoing>
</trigger>
<trigger type="bluetooth_device_disconnected">
<useDefaultName>true</useDefaultName>
<name>Bluetooth Gerät getrennt: Alle Geräte</name>
<enabled>true</enabled>
<all>true</all>
<deviceAddress></deviceAddress>
<deviceName></deviceName>
</trigger>
<trigger type="bluetooth_device_connected">
<useDefaultName>true</useDefaultName>
<name>Bluetooth Gerät verbunden: Alle Geräte</name>
@ -396,15 +406,31 @@ irname=getString("name")</extras>
<enabled>true</enabled>
<interruptionsMode>IMPORTANT_INTERRUPTIONS</interruptionsMode>
</trigger>
<trigger type="wifi_disconnected">
<useDefaultName>false</useDefaultName>
<name>WLAN Getrennt: toGo</name>
<enabled>true</enabled>
<all>false</all>
<ssidList>{global_apssid}</ssidList>
</trigger>
<trigger type="wifi_connected">
<useDefaultName>false</useDefaultName>
<name>WLAN Verbunden: toGo</name>
<enabled>true</enabled>
<all>false</all>
<ssidList>{global_apssid}</ssidList>
</trigger>
<condition type="app_task_running">
<useDefaultName>false</useDefaultName>
<name>App Task läuft: App (neuster)</name>
<method>CLASSIC</method>
<packageNameList>{param_app}</packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
<condition type="app_task_running">
<useDefaultName>true</useDefaultName>
<name>App Task läuft: {global_activetask} (neuster)</name>
<method>CLASSIC</method>
<packageNameList>{global_activetask}</packageNameList>
<checkMostRecentAppTaskOnly>true</checkMostRecentAppTaskOnly>
</condition>
@ -896,9 +922,10 @@ irname=getString("name")</extras>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Gerät verbunden: Alle Geräte" or trigger == "Bluetooth Status: Schaltet ein, Ein" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</name>
<name>Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Gerät verbunden: Alle Geräte" or trigger == "Bluetooth Gerät getrennt: Alle Geräte" or trigger == "Bluetooth Status: Schaltet ein, Ein" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</name>
<expression>trigger == "Bluetooth Status: Schaltet aus, Aus"
or trigger == "Bluetooth Gerät verbunden: Alle Geräte"
or trigger == "Bluetooth Gerät getrennt: Alle Geräte"
or trigger == "Bluetooth Status: Schaltet ein, Ein"
or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</expression>
</condition>
@ -1031,6 +1058,16 @@ or trigger == "Unterbrechnungen-Modus: Nur Wecker (Android 6+)"
or trigger == "Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen"
or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: trigger == "WLAN Getrennt: toGo"</name>
<expression>trigger == "WLAN Getrennt: toGo"</expression>
</condition>
<condition type="expression">
<useDefaultName>true</useDefaultName>
<name>Expression: trigger == "WLAN Getrennt: toGo" or trigger == "WLAN Verbunden: toGo"</name>
<expression>trigger == "WLAN Getrennt: toGo" or trigger == "WLAN Verbunden: toGo"</expression>
</condition>
<condition type="expression">
<useDefaultName>false</useDefaultName>
<name>Expression: ttsMsg"</name>
@ -1715,6 +1752,8 @@ androidVersion = "4.0 - 4.0.2 Ice Cream Sandwich"
<verifyCertificates>false</verifyCertificates>
<basicAuthentication>false</basicAuthentication>
<username></username>
<clientCert>false</clientCert>
<clientCertPath></clientCertPath>
<httpMethod>POST</httpMethod>
<httpContentType>GENERAL_TEXT</httpContentType>
<contentType>text/plain</contentType>
@ -1735,6 +1774,8 @@ androidVersion = "4.0 - 4.0.2 Ice Cream Sandwich"
<verifyCertificates>false</verifyCertificates>
<basicAuthentication>false</basicAuthentication>
<username></username>
<clientCert>false</clientCert>
<clientCertPath></clientCertPath>
<httpMethod>POST</httpMethod>
<httpContentType>GENERAL_TEXT</httpContentType>
<contentType>text/plain</contentType>
@ -1755,6 +1796,8 @@ androidVersion = "4.0 - 4.0.2 Ice Cream Sandwich"
<verifyCertificates>false</verifyCertificates>
<basicAuthentication>false</basicAuthentication>
<username></username>
<clientCert>false</clientCert>
<clientCertPath></clientCertPath>
<httpMethod>POST</httpMethod>
<httpContentType>GENERAL_TEXT</httpContentType>
<contentType>text/plain</contentType>
@ -1775,6 +1818,8 @@ androidVersion = "4.0 - 4.0.2 Ice Cream Sandwich"
<verifyCertificates>false</verifyCertificates>
<basicAuthentication>false</basicAuthentication>
<username></username>
<clientCert>false</clientCert>
<clientCertPath></clientCertPath>
<httpMethod>POST</httpMethod>
<httpContentType>GENERAL_TEXT</httpContentType>
<contentType>text/plain</contentType>
@ -1795,6 +1840,8 @@ androidVersion = "4.0 - 4.0.2 Ice Cream Sandwich"
<verifyCertificates>false</verifyCertificates>
<basicAuthentication>false</basicAuthentication>
<username></username>
<clientCert>false</clientCert>
<clientCertPath></clientCertPath>
<httpMethod>POST</httpMethod>
<httpContentType>GENERAL_TEXT</httpContentType>
<contentType>text/plain</contentType>
@ -1810,6 +1857,20 @@ Connection: close</customHTTPHeaders>
<path>/storage/emulated/0/Download/file.bin</path>
<followRedirects>true</followRedirects>
</action>
<action type="write_to_file">
<useDefaultName>true</useDefaultName>
<name>In Datei Schreiben: getDate() - Aktiviere Flows in /storage/emulated/0/file.txt (anhängen)</name>
<path>/storage/emulated/0/file.txt</path>
<text>getDate() - Aktiviere Flows</text>
<append>true</append>
</action>
<action type="write_to_file">
<useDefaultName>true</useDefaultName>
<name>In Datei Schreiben: getDate() - Deaktiviere Flows in /storage/emulated/0/file.txt (anhängen)</name>
<path>/storage/emulated/0/file.txt</path>
<text>getDate() - Deaktiviere Flows</text>
<append>true</append>
</action>
<action type="init_variable_next_alarm">
<useDefaultName>false</useDefaultName>
<name>Initialisiere Variable Nächster Alarm: next_alarm</name>
@ -2030,6 +2091,7 @@ Connection: close</customHTTPHeaders>
<action type="call_number">
<useDefaultName>true</useDefaultName>
<name>Nummer anrufen: {param_callnumber}</name>
<sim></sim>
<number>{param_callnumber}</number>
<directlyInitiateCall>true</directlyInitiateCall>
</action>
@ -2653,7 +2715,7 @@ fhemcmd = "setreading";</script>
<action type="script">
<useDefaultName>false</useDefaultName>
<name>Script: Set FHEMDATA JSON</name>
<script>fhemdata = "\"flowsetVersionAtDevice\": \"3.9.66\",";
<script>fhemdata = "\"flowsetVersionAtDevice\": \"3.9.68\",";
@ -2927,6 +2989,13 @@ if(param_mplayer == "mediaAudible")
<includeFlowNamePatternList>Informations</includeFlowNamePatternList>
<excludeFlowNamePatternList></excludeFlowNamePatternList>
</action>
<action type="set_flow_state">
<useDefaultName>true</useDefaultName>
<name>Setze Flow Status: Aktivieren Informations,SetCommands</name>
<enable>true</enable>
<includeFlowNamePatternList>Informations,SetCommands</includeFlowNamePatternList>
<excludeFlowNamePatternList></excludeFlowNamePatternList>
</action>
<action type="set_flow_state">
<useDefaultName>true</useDefaultName>
<name>Setze Flow Status: Aktivieren Send Data to AMADCommBridge</name>
@ -2969,6 +3038,13 @@ if(param_mplayer == "mediaAudible")
<includeFlowNamePatternList>First Run Assistant</includeFlowNamePatternList>
<excludeFlowNamePatternList></excludeFlowNamePatternList>
</action>
<action type="set_flow_state">
<useDefaultName>true</useDefaultName>
<name>Setze Flow Status: Deaktivieren Informations,SetCommands</name>
<enable>false</enable>
<includeFlowNamePatternList>Informations,SetCommands</includeFlowNamePatternList>
<excludeFlowNamePatternList></excludeFlowNamePatternList>
</action>
<action type="set_flow_state">
<useDefaultName>true</useDefaultName>
<name>Setze Flow Status: Deaktivieren {param_flowname}</name>
@ -3043,6 +3119,7 @@ if(param_mplayer == "mediaAudible")
<action type="send_sms">
<useDefaultName>true</useDefaultName>
<name>SMS senden an: an {param_smsnumber} '{param_smsmessage}' (10 in 12h)</name>
<sim></sim>
<receiver>{param_smsnumber}</receiver>
<message>{param_smsmessage}</message>
<truncate>true</truncate>
@ -3061,6 +3138,7 @@ if(param_mplayer == "mediaAudible")
<alarmName>Lautlos</alarmName>
<path>{param_notifypath}{param_notifyfile}</path>
<audioStreamType>NOTIFICATION</audioStreamType>
<startPosition></startPosition>
<showStopSoundNotification>false</showStopSoundNotification>
<waitForSoundToFinish>true</waitForSoundToFinish>
<requestAudioFocus>true</requestAudioFocus>
@ -3292,7 +3370,7 @@ Soll der Assistent gelöscht werden?</text>
</action>
<flow type="flow">
<name>First Run Assistant</name>
<group>AMADNG Info/Control Flowset v3.9.66</group>
<group>AMADNG Info/Control Flowset v3.9.68</group>
<enabled>false</enabled>
<executionPolicy>PARALLEL</executionPolicy>
<triggercontainer id="t1" x="69.999725" y="-1487.5">
@ -3532,7 +3610,7 @@ Auf Wiedersehen.</actioncontainer>
</flow>
<flow type="flow">
<name>Informations</name>
<group>AMADNG Info/Control Flowset v3.9.66</group>
<group>AMADNG Info/Control Flowset v3.9.68</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<emergencyStopCount>900</emergencyStopCount>
@ -3715,23 +3793,25 @@ Auf Wiedersehen.</actioncontainer>
<trigger>Medien Session verändert</trigger>
<trigger>Daydream Status: Gestoppt</trigger>
<trigger>Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic</trigger>
<trigger>Akku Ladestand: grösser als 0%</trigger>
<trigger>Eingehender Anruf. Status: Klingelt, Nummern: Alle</trigger>
<trigger>Display Status: Ein</trigger>
<trigger>Systemeinstellung verändert: System volume_music_speaker</trigger>
<trigger>Systemeinstellung verändert: System screen_brightness</trigger>
<trigger>Daydream Status: Gestartet</trigger>
<trigger>Bluetooth Gerät verbunden: Alle Geräte</trigger>
<trigger>Bluetooth Gerät getrennt: Alle Geräte</trigger>
<trigger>Dock Event: Docked</trigger>
<trigger>Periodischer Timer: alle 120s</trigger>
<trigger>Systemeinstellung verändert: System volume_music_bt_a2dp</trigger>
<trigger>Akku Ladestand: grösser als 0%</trigger>
<trigger>Unterbrechnungen-Modus: Alle / Immer unterbrechen</trigger>
<trigger>App Task Beendet</trigger>
<trigger>HTTP Request: /fhem-amad/deviceInfo/</trigger>
<trigger>Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT</trigger>
<trigger>Benachrichtigung in Statusbar angezeigt: org.telegram.messenger</trigger>
<trigger>Stromversorgung: Entfernt</trigger>
<trigger>Systemeinstellung verändert: System next_alarm</trigger>
<trigger>Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic</trigger>
<trigger>App Task Beendet</trigger>
<trigger>Unterbrechnungen-Modus: Keine / Nicht unterbrechen</trigger>
<trigger>Dock Event: Undocked</trigger>
<trigger>Display Orientierung: Landscape</trigger>
@ -3739,9 +3819,8 @@ Auf Wiedersehen.</actioncontainer>
<trigger>Systemeinstellung verändert: System volume_ring</trigger>
<trigger>Flugmodus: Aus</trigger>
<trigger>Systemeinstellung verändert: System volume_ring_speaker</trigger>
<trigger>Bluetooth Gerät verbunden: Alle Geräte</trigger>
</triggercontainer>
<conditioncontainer id="t164" x="-420.0" y="-2782.5">Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Gerät verbunden: Alle Geräte" or trigger == "Bluetooth Status: Schaltet ein, Ein" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</conditioncontainer>
<conditioncontainer id="t164" x="-420.0" y="-2782.5">Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Gerät verbunden: Alle Geräte" or trigger == "Bluetooth Gerät getrennt: Alle Geräte" or trigger == "Bluetooth Status: Schaltet ein, Ein" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</conditioncontainer>
<connection from="t1" to="t129" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t129" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t3" to="t17" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
@ -3978,47 +4057,63 @@ Auf Wiedersehen.</actioncontainer>
</flow>
<flow type="flow">
<name>Send Data to AMADCommBridge</name>
<group>AMADNG Info/Control Flowset v3.9.66</group>
<group>AMADNG Info/Control Flowset v3.9.68</group>
<enabled>true</enabled>
<executionPolicy>PARALLEL</executionPolicy>
<emergencyStopCount>900</emergencyStopCount>
<triggercontainer id="t1" x="-245.0" y="-717.5" />
<conditioncontainer id="t2" x="-245.0" y="192.5">Expression: fhemcmd == "set"</conditioncontainer>
<conditioncontainer id="t3" x="245.0" y="192.5">Expression: fhemcmd == "voiceinputvalue"</conditioncontainer>
<conditioncontainer id="t4" x="-735.0" y="192.5">Expression: amadcmd == "firstrun"</conditioncontainer>
<conditioncontainer id="t5" x="0.0" y="192.5">Expression: fhemcmd == "readingsval"</conditioncontainer>
<conditioncontainer id="t6" x="-245.0" y="-402.5">Host erreichbar: {global_fhemip}:{global_bridgeport}</conditioncontainer>
<actioncontainer id="t7" x="-245.0" y="402.5">Script: Set FHEMSETCMD JSON</actioncontainer>
<actioncontainer id="t8" x="245.0" y="402.5">Script: Set FHEMVOICEINPUTDATA JSON</actioncontainer>
<actioncontainer id="t9" x="0.0" y="402.5">Script: Set FHEMREADINGSVALCMD JSON</actioncontainer>
<actioncontainer id="t10" x="-490.0" y="682.5">HTTP Request: send READINGS data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t11" x="245.0" y="682.5">HTTP Request: send VOICEINPUTVALUE data to AMADCommBridge</actioncontainer>
<conditioncontainer id="t12" x="-490.0" y="192.5">Expression: fhemcmd == "setreading"</conditioncontainer>
<actioncontainer id="t13" x="-735.0" y="682.5">HTTP Request: send FIRSTRUN data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t14" x="-245.0" y="682.5">HTTP Request: send SET data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t15" x="-735.0" y="402.5">Script: Set FHEMDATA JSON First Run Assistant</actioncontainer>
<actioncontainer id="t16" x="0.0" y="682.5">HTTP Request: send READINGSVAL data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t17" x="-490.0" y="402.5">Script: Set FHEMDATA JSON</actioncontainer>
<connection from="t1" to="t6" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t7" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t3" to="t8" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t15" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t5" to="t9" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t12" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t2" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t5" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t3" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t4" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<conditioncontainer id="t1" x="-245.0" y="192.5">Expression: fhemcmd == "set"</conditioncontainer>
<conditioncontainer id="t2" x="245.0" y="192.5">Expression: fhemcmd == "voiceinputvalue"</conditioncontainer>
<conditioncontainer id="t3" x="-735.0" y="192.5">Expression: amadcmd == "firstrun"</conditioncontainer>
<conditioncontainer id="t4" x="0.0" y="192.5">Expression: fhemcmd == "readingsval"</conditioncontainer>
<actioncontainer id="t5" x="-245.0" y="402.5">Script: Set FHEMSETCMD JSON</actioncontainer>
<actioncontainer id="t6" x="245.0" y="402.5">Script: Set FHEMVOICEINPUTDATA JSON</actioncontainer>
<actioncontainer id="t7" x="0.0" y="402.5">Script: Set FHEMREADINGSVALCMD JSON</actioncontainer>
<actioncontainer id="t8" x="-490.0" y="682.5">HTTP Request: send READINGS data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t9" x="245.0" y="682.5">HTTP Request: send VOICEINPUTVALUE data to AMADCommBridge</actioncontainer>
<conditioncontainer id="t10" x="-490.0" y="192.5">Expression: fhemcmd == "setreading"</conditioncontainer>
<actioncontainer id="t11" x="-735.0" y="682.5">HTTP Request: send FIRSTRUN data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t12" x="-245.0" y="682.5">HTTP Request: send SET data to AMADCommBridge JSON</actioncontainer>
<actioncontainer id="t13" x="-735.0" y="402.5">Script: Set FHEMDATA JSON First Run Assistant</actioncontainer>
<actioncontainer id="t14" x="0.0" y="682.5">HTTP Request: send READINGSVAL data to AMADCommBridge JSON</actioncontainer>
<conditioncontainer id="t15" x="770.0" y="192.5">Expression: trigger == "WLAN Getrennt: toGo" or trigger == "WLAN Verbunden: toGo"</conditioncontainer>
<conditioncontainer id="t16" x="770.0" y="402.5">Expression: trigger == "WLAN Getrennt: toGo"</conditioncontainer>
<triggercontainer id="t17" x="-245.0" y="-717.5">
<trigger>WLAN Getrennt: toGo</trigger>
<trigger>WLAN Verbunden: toGo</trigger>
</triggercontainer>
<conditioncontainer id="t18" x="-245.0" y="-402.5">Host erreichbar: {global_fhemip}:{global_bridgeport}</conditioncontainer>
<actioncontainer id="t19" x="700.0" y="682.5">Setze Flow Status: Deaktivieren Informations,SetCommands</actioncontainer>
<actioncontainer id="t20" x="840.0" y="682.5">Setze Flow Status: Aktivieren Informations,SetCommands</actioncontainer>
<actioncontainer id="t21" x="875.0" y="1102.5">In Datei Schreiben: getDate() - Aktiviere Flows in /storage/emulated/0/file.txt (anhängen)</actioncontainer>
<actioncontainer id="t22" x="665.0" y="1102.5001">In Datei Schreiben: getDate() - Deaktiviere Flows in /storage/emulated/0/file.txt (anhängen)</actioncontainer>
<actioncontainer id="t23" x="-490.0" y="402.5">Script: Set FHEMDATA JSON</actioncontainer>
<connection from="t1" to="t5" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t6" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t3" to="t13" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t7" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t5" to="t12" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t9" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t14" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t11" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t9" to="t16" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t12" to="t17" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t15" to="t13" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t17" to="t10" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t10" to="t23" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t13" to="t11" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t15" to="t16" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t19" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t20" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t17" to="t18" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t10" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t1" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t4" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t2" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t3" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t15" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t15" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t19" to="t22" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t20" to="t21" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t23" to="t8" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
</flow>
<flow type="flow">
<name>SetCommands</name>
<group>AMADNG Info/Control Flowset v3.9.66</group>
<group>AMADNG Info/Control Flowset v3.9.68</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<emergencyStopCount>900</emergencyStopCount>
@ -4365,7 +4460,7 @@ Auf Wiedersehen.</actioncontainer>
</flow>
<flow type="flow">
<name>Update AMAD Flowset</name>
<group>AMADNG Info/Control Flowset v3.9.66</group>
<group>AMADNG Info/Control Flowset v3.9.68</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<triggercontainer id="t1" x="420.0" y="-682.5">
@ -4421,7 +4516,7 @@ Auf Wiedersehen.</actioncontainer>
</flow>
<flow type="flow">
<name>VoiceControl</name>
<group>AMADNG Info/Control Flowset v3.9.66</group>
<group>AMADNG Info/Control Flowset v3.9.68</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<triggercontainer id="t1" x="70.0" y="-52.5" />