2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 12:49:34 +00:00

74_AMAD: Conditionssupport for Steinzeittablets, 77_UWZ Support for United Kingdom

git-svn-id: https://svn.fhem.de/fhem/trunk@11698 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
markooldenburg 2016-06-20 09:13:11 +00:00
parent 0e44196056
commit 3917d07cfb
4 changed files with 507 additions and 408 deletions

View File

@ -1,5 +1,8 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
- update: 77_UWZ: New Minor Release 1.2 Support for United Kingdom
- feature: 74_AMAD: add Conditionsupport for older Androisversions
(Kreidezeit)
- bugfix: 73_GasCalculator: Unknown "?"-reading no longer created.
- feature: 74_AMAD: battery_temperature formated
- bugfix: 74_AMAD: deviceState timestamp bugfix for usb-ethernet Devices

View File

@ -37,8 +37,8 @@ use TcpServerUtils;
use Encode qw(encode);
my $modulversion = "2.2.3";
my $flowsetversion = "2.2.3";
my $modulversion = "2.2.4";
my $flowsetversion = "2.2.4";
@ -1091,6 +1091,8 @@ sub AMAD_CommBridge_Read($) {
my $bhash = $modules{AMAD}{defptr}{BRIDGE};
my $bname = $bhash->{NAME};
## Zum testen mal ausgeschalten
if( $hash->{SERVERSOCKET} ) { # Accept and create a child
TcpServer_Accept( $hash, "AMAD" );
@ -1522,7 +1524,7 @@ sub AMAD_decrypt($) {
<li>androidVersion - aktuell installierte Androidversion</li>
<li>automagicState - Statusmeldungen von der AutomagicApp <b>(Voraussetzung Android >4.3). Ist Android gr&ouml;&szlig;er 4.3 vorhanden und im Reading steht "wird nicht unterst&uuml;tzt", mu&szlig; in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken f&uuml;r Automagic gesetzt werden</b></li>
<li>batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=&Uuml;berhitzt, 4=tot, 5=&Uumlberspannung, 6=unbekannter Fehler, 7=kalt)</li>
<li>batterytemperature - Temperatur der Batterie in Grad Fahrenheit</li>
<li>batterytemperature - Temperatur der Batterie</li>
<li>bluetooth - on/off, Bluetooth Status an oder aus</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>

View File

@ -38,6 +38,19 @@
##############################################
### Wünsche von Usern
##
## Hi,
## benutze jetzt seid einigen Tagen erfolgreich das UWZ Modul.
## Habe da noch einen kleinen wunsch zum weblink:
## Könnte mal das attribut htmlattr mit einbinden?
## attr Unwetterzentrale htmlattr width="220" height="330"
## https://forum.fhem.de/index.php/topic,51233.msg461384.html#msg461384
##
##
package main;
use strict;
@ -60,7 +73,7 @@ use vars qw($readingFnAttributes);
use vars qw(%defs);
my $MODUL = "UWZ";
my $version = "1.0.1";
my $version = "1.2.0";
my $countrycode = "DE";
my $plz = "77777";
@ -87,6 +100,7 @@ sub UWZ_Map2Image($$) {
my $uwz_de_url = "http://www.unwetterzentrale.de/images/map/";
my $uwz_at_url = "http://unwetter.wetteralarm.at/images/map/";
my $uwz_en_url = "http://warnings.severe-weather-centre.co.uk/images/map/";
my ( $hash, $smap ) = @_;
my $lmap;
@ -122,6 +136,21 @@ sub UWZ_Map2Image($$) {
$lmap->{'wien'}=$uwz_at_url.'wien_index.png';
$lmap->{'isobaren1'}="http://www.unwetterzentrale.de/images/icons/UWZ_ISO_00.jpg";
$lmap->{'isobaren2'}="http://www.wetteralarm.at/uploads/pics/UWZ_EURO_ISO_GER_00.jpg";
## Maps of United Kingdom
$lmap->{'unitedkingdom'}=$uwz_en_url.'unitedkingdom_index.png';
$lmap->{'eastofengland'}=$uwz_en_url.'eastofengland_index.png';
$lmap->{'eastmidlands'}=$uwz_en_url.'eastmidlands-index.png';
$lmap->{'london'}=$uwz_en_url.'london-index.png';
$lmap->{'northeastengland'}=$uwz_en_url.'northeastengland-index.png';
$lmap->{'northernireland'}=$uwz_en_url.'northernireland-index.png';
$lmap->{'northwestengland'}=$uwz_en_url.'northwestengland-index.png';
$lmap->{'scotland'}=$uwz_en_url.'scotland-index.png';
$lmap->{'southeastengland'}=$uwz_en_url.'southeastengland-index.png';
$lmap->{'southwestengland'}=$uwz_en_url.'southwestengland-index.png';
$lmap->{'wales'}=$uwz_en_url.'wales-index.png';
$lmap->{'westmidlands'}=$uwz_en_url.'westmidlands-index.png';
$lmap->{'yorkshireandthehumber'}=$uwz_en_url.'yorkshireandthehumber-index.png';
return $lmap->{$smap};
}
@ -134,6 +163,7 @@ sub UWZ_Initialize($) {
$hash->{SetFn} = "UWZ_Set";
$hash->{GetFn} = "UWZ_Get";
$hash->{AttrList} = "INTERVAL ".
"CountryCode ". # Added to set country/language
"URL ".
"PLZ ".
"download:0,1 ".
@ -162,7 +192,11 @@ sub UWZ_Define($$) {
$hash->{STATE} = "Initializing";
$hash->{CountryCode} = $a[2];
$hash->{PLZ} = $a[3];
$hash->{URL} = "http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZ" . $a[2] . $a[3];
## URL by CountryCode
$hash->{URL} = "http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=en&areaID=UWZ" . $a[2] . $a[3] if ( $hash->{CountryCode} eq "UK" );
$hash->{URL} = "http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZ" . $a[2] . $a[3] if ( $hash->{CountryCode} eq "DE" );
$hash->{fhem}{LOCAL} = 0;
$hash->{INTERVAL} = $a[4];
$hash->{VERSION} = $version;
@ -262,9 +296,10 @@ sub UWZ_GetCurrent($@) {
} else {
$out = "inactive";
}
}
}
return $out;
}
}
return $out;
}
#####################################
@ -285,8 +320,8 @@ sub UWZ_GetCurrentHail($) {
} else {
$out= "inactive";
}
}
}
}
}
return $out;
}
@ -372,19 +407,6 @@ sub UWZ_Done($) {
# delete the marker for RUNNING_PID process
delete( $hash->{helper}{RUNNING_PID} );
## alter Code sollte gelöscht werden
#
# fhem("deletereading ".$hash->{NAME}." .*");
#
# foreach my $skey (grep /^(Warn_?_|WarnCount)/ ,sort keys %{ $hash->{READINGS} }) {
# UWZ_Log $hash, 3, "Delete Reading:$skey";
# delete $hash->{READINGS}{$skey};
# }
UWZ_Log $hash, 4, "Delete old Readings";
CommandDeleteReading(undef, "$hash->{NAME} Warn_?_.*");
@ -406,8 +428,10 @@ sub UWZ_Done($) {
if (keys %values > 0) {
my $newState;
if (defined $values{WarnCount}) {
$newState = "Warnungen: " . $values{WarnCount};
# Message by CountryCode
$newState = "Warnings: " . $values{WarnCount} if ( $hash->{CountryCode} eq "UK" );
$newState = "Warnungen: " . $values{WarnCount} if ( $hash->{CountryCode} eq "DE" );
# end Message by CountryCode
} else {
$newState = "Error: Could not capture all data. Please check CountryCode and PLZ.";
}
@ -600,32 +624,55 @@ sub UWZ_Run($) {
$message .= "Warn_".$i."_Type_Str|".ucfirst($typenames{ $single_warning->{'type'} })."|";
}
## End of redundant Reading
UWZ_Log $hash, 4, "Warn_".$i."_levelName: ".$single_warning->{'payload'}{'levelName'};
$message .= "Warn_".$i."_levelName|".$single_warning->{'payload'}{'levelName'}."|";
UWZ_Log $hash, 4, "Warn_".$i."_LongText: ".$enc->decode($single_warning->{'payload'}{'translationsLongText'}{'DE'});
$message .= "Warn_".$i."_LongText|".$converter->convert($single_warning->{'payload'}{'translationsLongText'}{'DE'})."|";
# Begin Language by AttrVal
if ( AttrVal( $name, 'CountryCode', '' ) eq "UK" ) {
UWZ_Log $hash, 4, "Warn_".$i."_ShortText: ".$enc->decode($single_warning->{'payload'}{'translationsShortText'}{'DE'});
$message .= "Warn_".$i."_ShortText|".$converter->convert($single_warning->{'payload'}{'translationsShortText'}{'DE'})."|";
UWZ_Log $hash, 4, "Warn_".$i."_LongText: ".$enc->decode($single_warning->{'payload'}{'translationsLongText'}{'EN'});
$message .= "Warn_".$i."_LongText|".$converter->convert($single_warning->{'payload'}{'translationsLongText'}{'EN'})."|";
UWZ_Log $hash, 4, "Warn_".$i."_ShortText: ".$enc->decode($single_warning->{'payload'}{'translationsShortText'}{'EN'});
$message .= "Warn_".$i."_ShortText|".$converter->convert($single_warning->{'payload'}{'translationsShortText'}{'EN'})."|";
} else {
UWZ_Log $hash, 4, "Warn_".$i."_LongText: ".$enc->decode($single_warning->{'payload'}{'translationsLongText'}{'DE'});
$message .= "Warn_".$i."_LongText|".$converter->convert($single_warning->{'payload'}{'translationsLongText'}{'DE'})."|";
UWZ_Log $hash, 4, "Warn_".$i."_ShortText: ".$enc->decode($single_warning->{'payload'}{'translationsShortText'}{'DE'});
$message .= "Warn_".$i."_ShortText|".$converter->convert($single_warning->{'payload'}{'translationsShortText'}{'DE'})."|";
}
# end language by AttrVal
UWZ_Log $hash, 4, "Warn_".$i."_IconURL: http://www.unwetterzentrale.de/images/icons/".$typenames{ $single_warning->{'type'} }."-".$single_warning->{'severity'}.".gif";
$message .= "Warn_".$i."_IconURL|http://www.unwetterzentrale.de/images/icons/".$typenames{ $single_warning->{'type'} }."-".$severitycolor{ $single_warning->{'severity'} }.".gif|";
## Hagel start
my $hagelcount = my @hagelmatch = $single_warning->{'payload'}{'translationsLongText'}{'DE'} =~ /Hagel/g;
if ( $hagelcount ne 0 ) {
my $hagelcount = 0;
# Begin Language by AttrVal
if ( AttrVal( $name, 'CountryCode', '' ) eq "UK" ) {
$hagelcount = my @hagelmatch = $single_warning->{'payload'}{'translationsLongText'}{'EN'} =~ /Hail/g;
UWZ_Log $hash, 4, "Warn_".$i."_Hail: 1";
$message .= "Warn_".$i."_Hail|1|";
} else {
$hagelcount = my @hagelmatch = $single_warning->{'payload'}{'translationsLongText'}{'DE'} =~ /Hagel/g;
}
# end language by AttrVal
if ( $hagelcount ne 0 ) {
UWZ_Log $hash, 4, "Warn_".$i."_Hail: 1";
$message .= "Warn_".$i."_Hail|1|";
} else {
} else {
UWZ_Log $hash, 4, "Warn_".$i."_Hail: 0";
$message .= "Warn_".$i."_Hail|0|";
}
UWZ_Log $hash, 4, "Warn_".$i."_Hail: 0";
$message .= "Warn_".$i."_Hail|0|";
}
## Hagel end
$i++;
@ -660,7 +707,10 @@ sub UWZAsHtml($;$) {
$ret .= '<table width="100%"><tr><th></th><th></th></tr><tr><td><b>Start:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_Start", "")).'</td>';
$ret .= '<td><b>Ende:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).'</td>';
# language by AttrVal
$ret .= '<td><b>End:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).'</td>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
$ret .= '<td><b>Ende:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).'</td>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
# end language by AttrVal
$ret .= '</tr></table>';
$ret .= '</td></tr>';
}
@ -674,7 +724,10 @@ sub UWZAsHtml($;$) {
$ret .= '<table><tr><td>';
$ret .= '<table class="block wide" width="600px"><tr><th></th><th></th></tr>';
$ret .= '<tr><td class="uwzIcon" style="vertical-align:top;">';
$ret .='<b>Keine Warnungen</b>';
# language by AttrVal
$ret .='<b>No Warnings</b>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
$ret .='<b>Keine Warnungen</b>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
# end language by AttrVal
$ret .= '</td></tr>';
$ret .= '</table>';
$ret .= '</td></tr>';
@ -700,8 +753,10 @@ sub UWZAsHtmlLite($;$) {
$ret .= '<tr><td class="uwzIcon" style="vertical-align:top;"><img src="'.ReadingsVal($hash, "Warn_".$i."_IconURL", "").'"></td>';
$ret .= '<td class="uwzValue"><b>'.ReadingsVal($hash, "Warn_".$i."_ShortText", "").'</b><br><br>';
$ret .= '<table width="100%"><tr><th></th><th></th></tr><tr><td><b>Start:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_Start", "")).'</td>';
$ret .= '<td><b>Ende:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).'</td>';
# language by AttrVal
$ret .= '<td><b>End:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).'</td>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
$ret .= '<td><b>Ende:</b></td><td>'.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).'</td>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
# end language by AttrVal
$ret .= '</tr></table>';
$ret .= '</td></tr>';
@ -716,7 +771,10 @@ sub UWZAsHtmlLite($;$) {
$ret .= '<table><tr><td>';
$ret .= '<table class="block wide" width="600px"><tr><th></th><th></th></tr>';
$ret .= '<tr><td class="uwzIcon" style="vertical-align:top;">';
$ret .='<b>Keine Warnungen</b>';
# language by AttrVal
$ret .='<b>No Warnings</b>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
$ret .='<b>Keine Warnungen</b>' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
# end language by AttrVal
$ret .= '</td></tr>';
$ret .= '</table>';
$ret .= '</td></tr>';
@ -751,8 +809,6 @@ sub UWZAsHtmlFP($;$) {
sub UWZAsHtmlKarteLand($$) {
my ($hash,$land) = @_;
# my $uwz_de_url = "http://www.unwetterzentrale.de/images/map/";
# my $uwz_at_url = "http://unwetter.wetteralarm.at/images/map/";
my $url = UWZ_Map2Image($hash,$land);
my $ret = '<table><tr><td>';
@ -763,8 +819,10 @@ sub UWZAsHtmlKarteLand($$) {
$ret .= '<img src="'.$url.'">';
} else {
$ret .= 'unbekannte Landbezeichnung';
# language by AttrVal
$ret .='unknown map setting' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
$ret .= 'unbekannte Landbezeichnung' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
# end language by AttrVal
}
$ret .= '</td></tr></table></td></tr>';
@ -802,13 +860,24 @@ sub UWZAsHtmlKarteLand($$) {
<br><br><br>
Example:
<br>
<code>define Unwetterzentrale UWZ DE 86405 3600</code>
<code>
define Unwetterzentrale UWZ UK 03931 1800<br>
attr Unwetterzentrale CountryCode UK<br>
attr Unwetterzentrale PLZ 03931<br>
attr Unwetterzentrale URL http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=en&areaID=UWZUK03931<br>
attr Unwetterzentrale download 1<br>
attr Unwetterzentrale humanreadable 1<br>
attr Unwetterzentrale maps eastofengland unitedkingdom<br><br>
define UnwetterDetails weblink htmlCode {UWZAsHtml("Unwetterzentrale")}<br>
define UnwetterMapE_UK weblink htmlCode {UWZAsHtmlKarteLand("Unwetterzentrale","eastofengland")}<br>
define UnwetterLite weblink htmlCode {UWZAsHtmlLite("Unwetterzentrale")}
</code>
<br>&nbsp;
<li><code>[CountryCode]</code>
<br>
Possible values: DE, AT, CH,...<br/>
(for other countries than germany see <a href="http://forum.fhem.de/index.php/topic,33549.msg260076.html#msg260076">fhem-forum</a>)
Possible values: DE, AT, CH, UK, ...<br/>
(for other countries than germany or unitedkingdom see <a href="http://forum.fhem.de/index.php/topic,33549.msg260076.html#msg260076">fhem-forum</a>)
</li><br>
<li><code>[postalcode]</code>
<br>
@ -891,6 +960,11 @@ sub UWZAsHtmlKarteLand($$) {
<b>Attributes</b>
<ul>
<br>
<li><code>CountryCode</code>
<br>
Set country code for text messages (None|UK).
<br>
</li>
<li><code>download</code>
<br>
Download maps during update (0|1).
@ -987,7 +1061,7 @@ sub UWZAsHtmlKarteLand($$) {
<li>sachsen</li>
<li>sachsen-anhalt</li>
<li>thueringen</li>
<li>nordrhein-westfale</li>
<li>nordrhein-westfalen</li>
<li>mecklenburg-vorpommern</li>
<li>schleswig-holstein</li>
<li>hamburg</li>
@ -1145,7 +1219,7 @@ sub UWZAsHtmlKarteLand($$) {
</li>
<li><code>humanreadable</code>
<br>
Anzeige weiterer Readings Warn_?_Start_Date, Warn_?_Start_Time, Warn_?_End_Date und Warn_?_End_Time. Diese Readings enthalten aus dem Timestamp kalkulierte Datums/Zeit Angaben. (0|1)
Anzeige weiterer Readings Warn_?_Start_Date, Warn_?_Start_Time, Warn_?_End_Date und Warn_?_End_Time. Diese Readings enthalten aus dem Timestamp kalkulierte Datums/Zeit Angaben. (0|1)
<br>
</li>
@ -1223,7 +1297,7 @@ sub UWZAsHtmlKarteLand($$) {
<li>sachsen</li>
<li>sachsen-anhalt</li>
<li>thueringen</li>
<li>nordrhein-westfale</li>
<li>nordrhein-westfalen</li>
<li>mecklenburg-vorpommern</li>
<li>schleswig-holstein</li>
<li>hamburg</li>

View File

@ -2338,8 +2338,8 @@ FHEMCMD: setreading</customHTTPHeaders>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
<name>Script: amad_flowset_version = "2.2.3"</name>
<script>amad_flowset_version = "2.2.3"</script>
<name>Script: amad_flowset_version = "2.2.4"</name>
<script>amad_flowset_version = "2.2.4"</script>
</action>
<action type="script">
<useDefaultName>true</useDefaultName>
@ -2549,11 +2549,21 @@ nextalarmstate = "snooze"
<name>Script: screen_state = "off {keyguard}"</name>
<script>screen_state = "off {keyguard}"</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 {keyguard}"</name>
<script>screen_state = "on {keyguard}"</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>
@ -2830,131 +2840,11 @@ FHEMCMD: setreading</customHTTPHeaders>
</action>
<flow type="flow">
<name>Informations</name>
<group>AMAD2 Info/Control Flowset v2.2.3</group>
<group>AMAD2 Info/Control Flowset v2.2.4</group>
<enabled>true</enabled>
<executionPolicy>PARALLEL</executionPolicy>
<emergencyStopCount>900</emergencyStopCount>
<actioncontainer id="t1" x="-210.0" y="-2082.5">Script: setCommandFlow_state = "inaktiv"</actioncontainer>
<actioncontainer id="t2" x="1085.0" y="-3482.5">Script: daydream_state = "on"</actioncontainer>
<actioncontainer id="t3" x="1225.0" y="-3482.5">Script: daydream_state = "off"</actioncontainer>
<actioncontainer id="t4" x="420.0" y="-3587.5">Script: next_alarmday = "{next_alarm,dateformat,c}"</actioncontainer>
<actioncontainer id="t5" x="630.0" y="-3587.5">Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</actioncontainer>
<actioncontainer id="t6" x="525.0" y="-3307.5">Initialisiere Variable Nächster Alarm: next_alarm</actioncontainer>
<conditioncontainer id="t7" x="1925.0" y="-2082.5">Expression: getAndroidSDKVersion() &gt;= "19"</conditioncontainer>
<actioncontainer id="t8" x="2275.0" y="-2292.5">Script: runTask = "1"</actioncontainer>
<actioncontainer id="t9" x="2135.0" y="-2292.5">Script: runTask = "0"</actioncontainer>
<actioncontainer id="t10" x="1925.0" y="-2292.5">Script: runTask = "not supported android version"</actioncontainer>
<actioncontainer id="t11" x="1715.0" y="-2327.5">Script: runTask = "null"</actioncontainer>
<conditioncontainer id="t12" x="0.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"</conditioncontainer>
<conditioncontainer id="t13" x="525.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System next_alarm"</conditioncontainer>
<conditioncontainer id="t14" x="1505.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System screen_brightness"</conditioncontainer>
<actioncontainer id="t15" x="-1225.0" y="-3657.5">Script: airplanemode = "off"</actioncontainer>
<conditioncontainer id="t16" x="-1050.0" y="-3657.5">Expression: airpcount &lt; 11</conditioncontainer>
<actioncontainer id="t17" x="-1540.0" y="-3517.5">Script: keyguard = "unlocked"</actioncontainer>
<actioncontainer id="t18" x="-1540.0" y="-3832.5">Script: screen_state = "off {keyguard}"</actioncontainer>
<conditioncontainer id="t19" x="1855.0" y="-3027.5">Display Orientierung: Portrait</conditioncontainer>
<actioncontainer id="t20" x="1785.0" y="-3272.5">Script: screen_orientation = "portrait"</actioncontainer>
<actioncontainer id="t21" x="1925.0" y="-3272.5">Script: screen_orientation = "landscape"</actioncontainer>
<actioncontainer id="t22" x="2730.0" y="-3482.5">Script: dock_state = "docked"</actioncontainer>
<actioncontainer id="t23" x="2870.0" y="-3482.5">Script: dock_state = "undocked"</actioncontainer>
<actioncontainer id="t24" x="3290.0" y="-3482.5">Script: keyguardSet = "0"</actioncontainer>
<actioncontainer id="t25" x="1785.0" y="-3657.5">Script: screen_orientation_mode = "auto"</actioncontainer>
<actioncontainer id="t26" x="1925.0" y="-3657.5">Script: screen_orientation_mode = "manual"</actioncontainer>
<conditioncontainer id="t27" x="1855.0" y="-2782.5">Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus"</conditioncontainer>
<actioncontainer id="t28" x="0.0" y="-2082.5">Script: setCommandFlow_state = "aktiv"</actioncontainer>
<conditioncontainer id="t29" x="-105.0" y="-1907.5">Flow Aktiv: SetCommands</conditioncontainer>
<actioncontainer id="t30" x="-105.0" y="-2257.5">Setze Flow Status: Aktivieren SetCommands</actioncontainer>
<actioncontainer id="t31" x="-1680.0" y="-3832.5">Script: screen_state = "on {keyguard}"</actioncontainer>
<actioncontainer id="t32" x="-1610.0" y="-3097.5">Script: scrcount = 0</actioncontainer>
<actioncontainer id="t33" x="-1680.0" y="-3517.5">Script: keyguard = "locked"</actioncontainer>
<conditioncontainer id="t34" x="-1610.0" y="-3657.5">Display eingeschaltet</conditioncontainer>
<conditioncontainer id="t35" x="-1855.0" y="-3832.5">Expression: scrcount &lt; 5</conditioncontainer>
<actioncontainer id="t36" x="-1855.0" y="-3657.5">Script: scrcount = scrcount + 1</actioncontainer>
<actioncontainer id="t37" x="-1855.0" y="-3517.5">Pause: 2s (Gerät wach halten)</actioncontainer>
<conditioncontainer id="t38" x="210.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System volume_music_bt_a2dp" or trigger == "Systemeinstellung verändert: System volume_music_speaker" or trigger == "Systemeinstellung verändert: System volume_music_headphone"</conditioncontainer>
<conditioncontainer id="t39" x="-770.0" y="-3342.5">Musik Aktiv</conditioncontainer>
<actioncontainer id="t40" x="-455.0" y="-3552.5">Script: bluetooth_state = "off"</actioncontainer>
<actioncontainer id="t41" x="-455.0" y="-3342.5">Script: bluetooth_state = "on"</actioncontainer>
<actioncontainer id="t42" x="-315.0" y="-3552.5">Script: connected_devices_names = "null"; connected_devices_addresses = "null"</actioncontainer>
<conditioncontainer id="t43" x="1155.0" y="-2782.5">Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"</conditioncontainer>
<conditioncontainer id="t44" x="3535.0" y="-2782.5">Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"</conditioncontainer>
<actioncontainer id="t45" x="2170.0" y="-3482.5">Script: notification_text = "Aktiviere Automagic unter Einstellungen -&gt; Benachrichtigungen -&gt; Benachrichtigungszugriff"</actioncontainer>
<conditioncontainer id="t46" x="2310.0" y="-3482.5">Benachrichtigung in Statusbar angezeigt: Automagic</conditioncontainer>
<conditioncontainer id="t47" x="3885.0" y="-3132.5">Expression: getAndroidSDKVersion() &gt;= "19"</conditioncontainer>
<actioncontainer id="t48" x="3745.0" y="-3482.5">Script: notification_text = "Aktiviere Automagic unter Einstellungen -&gt; Benachrichtigungen -&gt; Benachrichtigungszugriff"</actioncontainer>
<conditioncontainer id="t49" x="3885.0" y="-3482.5">Benachrichtigung in Statusbar angezeigt: WhatsApp</conditioncontainer>
<conditioncontainer id="t50" x="4270.0" y="-2782.5">Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"</conditioncontainer>
<conditioncontainer id="t51" x="3885.0" y="-2782.5">Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"</conditioncontainer>
<actioncontainer id="t52" x="1995.0" y="-2537.5">Check run Task</actioncontainer>
<actioncontainer id="t53" x="-1610.0" y="-4042.5">Screen State</actioncontainer>
<actioncontainer id="t54" x="-455.0" y="-3832.5">Bluetooth Status</actioncontainer>
<actioncontainer id="t55" x="-315.0" y="-3832.5">Bluetooth Device Status</actioncontainer>
<actioncontainer id="t56" x="0.0" y="-3832.5">Notification Volume</actioncontainer>
<actioncontainer id="t57" x="210.0" y="-3832.5">Lautstärke / Volume</actioncontainer>
<actioncontainer id="t58" x="525.0" y="-3832.5">Nächster Alarm</actioncontainer>
<actioncontainer id="t59" x="1505.0" y="-3832.5">Screen Brightness</actioncontainer>
<actioncontainer id="t60" x="1855.0" y="-3832.5">Screen Orientation</actioncontainer>
<actioncontainer id="t61" x="2800.0" y="-3832.5">Dock State</actioncontainer>
<actioncontainer id="t62" x="3885.0" y="-3832.5">Incoming WhatsApp Message</actioncontainer>
<actioncontainer id="t63" x="4270.0" y="-3832.5">IntentRadio Status</actioncontainer>
<actioncontainer id="t64" x="-525.0" y="-2432.5">Flowsetversion</actioncontainer>
<actioncontainer id="t65" x="-105.0" y="-2432.5">Flow Status SetCommands</actioncontainer>
<actioncontainer id="t66" x="-1050.0" y="-3517.5">Script: airpcount = airpcount + 1</actioncontainer>
<actioncontainer id="t67" x="-1120.0" y="-3097.5">Script: airpcount = 0</actioncontainer>
<actioncontainer id="t68" x="-1050.0" y="-3342.5">Pause: 2s (Gerät wach halten)</actioncontainer>
<conditioncontainer id="t69" x="-1225.0" y="-3517.5">Expression: global_apssid != "usb-ethernet"</conditioncontainer>
<conditioncontainer id="t70" x="-1225.0" y="-3342.5">WLAN Verbunden: {global_apssid}</conditioncontainer>
<conditioncontainer id="t71" x="2800.0" y="-3132.5">Dock Status: Docked</conditioncontainer>
<conditioncontainer id="t72" x="2310.0" y="-2782.5">Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"</conditioncontainer>
<conditioncontainer id="t73" x="2800.0" y="-2782.5">Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked"</conditioncontainer>
<conditioncontainer id="t74" x="1995.0" y="-1907.5">Expression: global_activetask != null</conditioncontainer>
<conditioncontainer id="t75" x="-420.0" y="-2782.5">Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Status: Schaltet ein, Ein"</conditioncontainer>
<conditioncontainer id="t76" x="2205.0" y="-2082.5">App Task läuft: {global_activetask} (neuster)</conditioncontainer>
<actioncontainer id="t77" x="2310.0" y="-3832.5">Automagic State</actioncontainer>
<actioncontainer id="t78" x="2450.0" y="-3482.5">Script: notification_text = "not supported from your device"</actioncontainer>
<actioncontainer id="t79" x="-455.0" y="682.5">Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2</actioncontainer>
<actioncontainer id="t80" x="-245.0" y="682.5">Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2</actioncontainer>
<conditioncontainer id="t81" x="-350.0" y="892.5">Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)</conditioncontainer>
<actioncontainer id="t82" x="-420.0" y="1102.5">Script: volume = {volumeBT}</actioncontainer>
<actioncontainer id="t83" x="-280.0" y="1102.5">Script: volume = {volumeSP}</actioncontainer>
<actioncontainer id="t84" x="105.0" y="682.5">Initialisiere Variable Systemeinstellung: screenBrightness</actioncontainer>
<actioncontainer id="t85" x="315.0" y="682.5">Initialisiere Variable Systemeinstellung: volumeNotification</actioncontainer>
<actioncontainer id="t86" x="1260.0" y="1417.5">Script: androidVersion = "not supported funktion"</actioncontainer>
<actioncontainer id="t87" x="1330.0" y="1662.5">Android Version</actioncontainer>
<conditioncontainer id="t88" x="-1120.0" y="-2782.5">Expression: trigger == "Flugmodus: Aus"</conditioncontainer>
<conditioncontainer id="t89" x="2065.0" y="-1837.5">Expression: package_name == {global_activetask}</conditioncontainer>
<actioncontainer id="t90" x="1155.0" y="-3832.5">Daydream State</actioncontainer>
<actioncontainer id="t91" x="1330.0" y="1207.5">Get Android Version</actioncontainer>
<actioncontainer id="t92" x="3535.0" y="-3832.5">Incoming Call</actioncontainer>
<actioncontainer id="t93" x="3220.0" y="-3832.5">KeyGuard Set</actioncontainer>
<actioncontainer id="t94" x="4270.0" y="-892.5">Device State</actioncontainer>
<conditioncontainer id="t95" x="525.0" y="682.5">Stromversorgung: Angeschlossen</conditioncontainer>
<conditioncontainer id="t96" x="840.0" y="-2782.5">Expression: trigger == "Akku Ladestand: grösser als 0%"</conditioncontainer>
<conditioncontainer id="t97" x="-770.0" y="-2782.5">Expression: trigger == "com.android.music.playstatechanged" or trigger == "com.android.music.metachanged" or trigger == "com.amazon.mp3.metachanged"</conditioncontainer>
<actioncontainer id="t98" x="-770.0" y="-3517.5">Script: global_artist = "no player active"; global_track = "no player active"; global_album = "no player active"; global_musicapp = "no player active";</actioncontainer>
<actioncontainer id="t99" x="-770.0" y="-3832.5">Reading Music Metachanged.2</actioncontainer>
<actioncontainer id="t100" x="-770.0" y="-3097.5">Pause: 3s (Gerät wach halten)</actioncontainer>
<conditioncontainer id="t101" x="-2100.0" y="-2782.5">Expression: trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE"</conditioncontainer>
<actioncontainer id="t102" x="-2100.0" y="-3832.5">Next Alarm State</actioncontainer>
<actioncontainer id="t103" x="-2100.0" y="-3517.5">Script: if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT") { nextalarmstate = "alert" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS") { nextalarmstate = "dismiss" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE") { nextalarmstate = "done" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE") { nextalarmstate = "snooze" }</actioncontainer>
<conditioncontainer id="t104" x="-2660.0" y="-3342.5">Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen</conditioncontainer>
<conditioncontainer id="t105" x="-2520.0" y="-3342.5">Unterbrechnungen-Modus: Keine / Nicht unterbrechen</conditioncontainer>
<conditioncontainer id="t106" x="-2380.0" y="-3342.5">Unterbrechnungen-Modus: Nur Wecker (Android 6+)</conditioncontainer>
<conditioncontainer id="t107" x="-2590.0" y="-2782.5">Expression: trigger == "Unterbrechnungen-Modus: Alle / Immer unterbrechen" or trigger == "Unterbrechnungen-Modus: Keine / Nicht unterbrechen" or trigger == "Unterbrechnungen-Modus: Nur Wecker (Android 6+)" or trigger == "Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen"</conditioncontainer>
<conditioncontainer id="t108" x="-2800.0" y="-3342.5">Unterbrechnungen-Modus: Alle / Immer unterbrechen</conditioncontainer>
<actioncontainer id="t109" x="-2520.0" y="-3552.5">Script: dndValue = "never"</actioncontainer>
<actioncontainer id="t110" x="-2590.0" y="-3832.5">Do Not Disturb State</actioncontainer>
<actioncontainer id="t111" x="-2800.0" y="-3552.5">Script: dndValue = "always"</actioncontainer>
<actioncontainer id="t112" x="-2380.0" y="-3552.5">Script: dndValue = "alarmClockOnly"</actioncontainer>
<actioncontainer id="t113" x="-2660.0" y="-3552.5">Script: dndValue = "onlyImportant"</actioncontainer>
<actioncontainer id="t114" x="3885.0" y="-892.5">WLAN Reassoziieren</actioncontainer>
<conditioncontainer id="t115" x="3885.0" y="-1592.5">WLAN verfügbar: {global_apssid}</conditioncontainer>
<conditioncontainer id="t116" x="4270.0" y="-1592.5">Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</conditioncontainer>
<conditioncontainer id="t117" x="1855.0" y="-3482.5">Display automatisch drehen eingeschaltet</conditioncontainer>
<conditioncontainer id="t118" x="1155.0" y="-3132.5">Expression: trigger == "Daydream Status: Gestartet"</conditioncontainer>
<conditioncontainer id="t119" x="-315.0" y="-3097.5">Bluetooth Gerät verbunden: Beliebiges Geräte</conditioncontainer>
<conditioncontainer id="t120" x="-455.0" y="-3097.5">Bluetooth eingeschaltet</conditioncontainer>
<triggercontainer id="t121" x="1015.0" y="-927.5">
<triggercontainer id="t1" x="1015.0" y="-927.5">
<trigger>Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE</trigger>
<trigger>Stromversorgung: Angeschlossen</trigger>
<trigger>Genereller Broadcast: wenn org.smblott.intentradio.STATE</trigger>
@ -2994,241 +2884,371 @@ FHEMCMD: setreading</customHTTPHeaders>
<trigger>Systemeinstellung verändert: System volume_ring_speaker</trigger>
<trigger>Unterbrechnungen-Modus: Nur Wecker (Android 6+)</trigger>
</triggercontainer>
<actioncontainer id="t122" x="805.0" y="1417.5">Prüfe und setze globale Variablen</actioncontainer>
<conditioncontainer id="t123" x="1015.0" y="-227.5">Expression: trigger == "App Task Beendet"</conditioncontainer>
<conditioncontainer id="t124" x="1015.0" y="157.5">Expression: global_fhemip != null or header_fhemip != null</conditioncontainer>
<conditioncontainer id="t125" x="805.0" y="1207.5">Expression: global_bridgeport == null or global_bridgeport != {header_bport} or global_fhemip == null or global_fhemip != {header_fhemip} or global_fhemdevice == null or global_fhemdevice != {header_fhemdevice} or global_activetask == null or global_activetask != {header_activetask} or global_apssid == null or global_apssid != {header_apssid} or global_deviceport != null or global_deviceport!= {header_dport}</conditioncontainer>
<conditioncontainer id="t126" x="1015.0" y="-1767.5">WLAN Verbunden: {global_apssid}</conditioncontainer>
<conditioncontainer id="t127" x="-1610.0" y="-3342.5">Keyguard gesperrt</conditioncontainer>
<conditioncontainer id="t128" x="-1855.0" y="-3342.5">Expression: keyguard == "locked"</conditioncontainer>
<conditioncontainer id="t129" x="-1610.0" y="-2782.5">Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin"</conditioncontainer>
<conditioncontainer id="t130" x="2310.0" y="-3027.5">Expression: getAndroidSDKVersion() &gt;= "19"</conditioncontainer>
<conditioncontainer id="t131" x="1015.0" y="507.5">Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"</conditioncontainer>
<conditioncontainer id="t132" x="3219.9998" y="-3307.5">Keyguard mit Sicherheit</conditioncontainer>
<actioncontainer id="t133" x="4025.0" y="-3482.5">Script: notification_text = "not supported from your device"</actioncontainer>
<actioncontainer id="t134" x="3150.0" y="-3482.5">Script: keyguardSet = "1"</actioncontainer>
<conditioncontainer id="t135" x="3220.0" y="-2782.5">Expression: udef_trigger == "setLockPin"</conditioncontainer>
<conditioncontainer id="t136" x="3150.0" y="-3132.5">Expression: getAndroidSDKVersion() &gt;= "16"</conditioncontainer>
<actioncontainer id="t137" x="3290.0" y="-3132.5">Script: keyguardSet = "not supported from your device"</actioncontainer>
<actioncontainer id="t138" x="1015.0" y="-1382.5">Script: amad_flowset_version = "2.2.3"</actioncontainer>
<actioncontainer id="t139" x="-1120.0" y="-3832.5">Airplainemode</actioncontainer>
<conditioncontainer id="t140" x="1014.9999" y="-2082.5">Expression: global_apssid != "usb-ethernet"</conditioncontainer>
<actioncontainer id="t141" x="840.0" y="-3832.5">Stromversorgung und Akkustand</actioncontainer>
<connection from="t1" to="t30" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t1" to="t65" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t90" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t3" to="t90" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t58" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t5" to="t58" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t4" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t5" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t76" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t10" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t10" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t52" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t9" to="t52" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t10" to="t52" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t11" to="t52" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t12" to="t56" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t13" to="t6" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t14" to="t59" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t15" to="t139" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t66" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t17" to="t34" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t53" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<actioncontainer id="t2" x="-210.0" y="-2082.5">Script: setCommandFlow_state = "inaktiv"</actioncontainer>
<actioncontainer id="t3" x="1085.0" y="-3482.5">Script: daydream_state = "on"</actioncontainer>
<actioncontainer id="t4" x="1225.0" y="-3482.5">Script: daydream_state = "off"</actioncontainer>
<actioncontainer id="t5" x="420.0" y="-3587.5">Script: next_alarmday = "{next_alarm,dateformat,c}"</actioncontainer>
<actioncontainer id="t6" x="630.0" y="-3587.5">Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</actioncontainer>
<actioncontainer id="t7" x="525.0" y="-3307.5">Initialisiere Variable Nächster Alarm: next_alarm</actioncontainer>
<conditioncontainer id="t8" x="1925.0" y="-2082.5">Expression: getAndroidSDKVersion() &gt;= "19"</conditioncontainer>
<actioncontainer id="t9" x="2275.0" y="-2292.5">Script: runTask = "1"</actioncontainer>
<actioncontainer id="t10" x="2135.0" y="-2292.5">Script: runTask = "0"</actioncontainer>
<actioncontainer id="t11" x="1925.0" y="-2292.5">Script: runTask = "not supported android version"</actioncontainer>
<actioncontainer id="t12" x="1715.0" y="-2327.5">Script: runTask = "null"</actioncontainer>
<conditioncontainer id="t13" x="0.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"</conditioncontainer>
<conditioncontainer id="t14" x="525.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System next_alarm"</conditioncontainer>
<conditioncontainer id="t15" x="1505.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System screen_brightness"</conditioncontainer>
<actioncontainer id="t16" x="-1225.0" y="-3657.5">Script: airplanemode = "off"</actioncontainer>
<conditioncontainer id="t17" x="-1050.0" y="-3657.5">Expression: airpcount &lt; 11</conditioncontainer>
<actioncontainer id="t18" x="-1540.0" y="-3517.5">Script: keyguard = "unlocked"</actioncontainer>
<conditioncontainer id="t19" x="1855.0" y="-3027.5">Display Orientierung: Portrait</conditioncontainer>
<actioncontainer id="t20" x="1785.0" y="-3272.5">Script: screen_orientation = "portrait"</actioncontainer>
<actioncontainer id="t21" x="1925.0" y="-3272.5">Script: screen_orientation = "landscape"</actioncontainer>
<actioncontainer id="t22" x="2730.0" y="-3482.5">Script: dock_state = "docked"</actioncontainer>
<actioncontainer id="t23" x="2870.0" y="-3482.5">Script: dock_state = "undocked"</actioncontainer>
<actioncontainer id="t24" x="3290.0" y="-3482.5">Script: keyguardSet = "0"</actioncontainer>
<actioncontainer id="t25" x="1785.0" y="-3657.5">Script: screen_orientation_mode = "auto"</actioncontainer>
<actioncontainer id="t26" x="1925.0" y="-3657.5">Script: screen_orientation_mode = "manual"</actioncontainer>
<conditioncontainer id="t27" x="1855.0" y="-2782.5">Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus"</conditioncontainer>
<actioncontainer id="t28" x="0.0" y="-2082.5">Script: setCommandFlow_state = "aktiv"</actioncontainer>
<conditioncontainer id="t29" x="-105.0" y="-1907.5">Flow Aktiv: SetCommands</conditioncontainer>
<actioncontainer id="t30" x="-105.0" y="-2257.5">Setze Flow Status: Aktivieren SetCommands</actioncontainer>
<actioncontainer id="t31" x="-1610.0" y="-3097.5">Script: scrcount = 0</actioncontainer>
<actioncontainer id="t32" x="-1680.0" y="-3517.5">Script: keyguard = "locked"</actioncontainer>
<conditioncontainer id="t33" x="-1855.0" y="-3832.5">Expression: scrcount &lt; 5</conditioncontainer>
<actioncontainer id="t34" x="-1855.0" y="-3657.5">Script: scrcount = scrcount + 1</actioncontainer>
<actioncontainer id="t35" x="-1855.0" y="-3517.5">Pause: 2s (Gerät wach halten)</actioncontainer>
<conditioncontainer id="t36" x="210.0" y="-2782.5">Expression: trigger == "Systemeinstellung verändert: System volume_music_bt_a2dp" or trigger == "Systemeinstellung verändert: System volume_music_speaker" or trigger == "Systemeinstellung verändert: System volume_music_headphone"</conditioncontainer>
<conditioncontainer id="t37" x="-770.0" y="-3342.5">Musik Aktiv</conditioncontainer>
<actioncontainer id="t38" x="-455.0" y="-3552.5">Script: bluetooth_state = "off"</actioncontainer>
<actioncontainer id="t39" x="-455.0" y="-3342.5">Script: bluetooth_state = "on"</actioncontainer>
<actioncontainer id="t40" x="-315.0" y="-3552.5">Script: connected_devices_names = "null"; connected_devices_addresses = "null"</actioncontainer>
<conditioncontainer id="t41" x="1155.0" y="-2782.5">Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"</conditioncontainer>
<conditioncontainer id="t42" x="3535.0" y="-2782.5">Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"</conditioncontainer>
<actioncontainer id="t43" x="2170.0" y="-3482.5">Script: notification_text = "Aktiviere Automagic unter Einstellungen -&gt; Benachrichtigungen -&gt; Benachrichtigungszugriff"</actioncontainer>
<conditioncontainer id="t44" x="2310.0" y="-3482.5">Benachrichtigung in Statusbar angezeigt: Automagic</conditioncontainer>
<conditioncontainer id="t45" x="3885.0" y="-3132.5">Expression: getAndroidSDKVersion() &gt;= "19"</conditioncontainer>
<actioncontainer id="t46" x="3745.0" y="-3482.5">Script: notification_text = "Aktiviere Automagic unter Einstellungen -&gt; Benachrichtigungen -&gt; Benachrichtigungszugriff"</actioncontainer>
<conditioncontainer id="t47" x="3885.0" y="-3482.5">Benachrichtigung in Statusbar angezeigt: WhatsApp</conditioncontainer>
<conditioncontainer id="t48" x="4270.0" y="-2782.5">Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"</conditioncontainer>
<conditioncontainer id="t49" x="3885.0" y="-2782.5">Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"</conditioncontainer>
<actioncontainer id="t50" x="1995.0" y="-2537.5">Check run Task</actioncontainer>
<actioncontainer id="t51" x="-455.0" y="-3832.5">Bluetooth Status</actioncontainer>
<actioncontainer id="t52" x="-315.0" y="-3832.5">Bluetooth Device Status</actioncontainer>
<actioncontainer id="t53" x="0.0" y="-3832.5">Notification Volume</actioncontainer>
<actioncontainer id="t54" x="210.0" y="-3832.5">Lautstärke / Volume</actioncontainer>
<actioncontainer id="t55" x="525.0" y="-3832.5">Nächster Alarm</actioncontainer>
<actioncontainer id="t56" x="1505.0" y="-3832.5">Screen Brightness</actioncontainer>
<actioncontainer id="t57" x="1855.0" y="-3832.5">Screen Orientation</actioncontainer>
<actioncontainer id="t58" x="2800.0" y="-3832.5">Dock State</actioncontainer>
<actioncontainer id="t59" x="3885.0" y="-3832.5">Incoming WhatsApp Message</actioncontainer>
<actioncontainer id="t60" x="4270.0" y="-3832.5">IntentRadio Status</actioncontainer>
<actioncontainer id="t61" x="-525.0" y="-2432.5">Flowsetversion</actioncontainer>
<actioncontainer id="t62" x="-105.0" y="-2432.5">Flow Status SetCommands</actioncontainer>
<actioncontainer id="t63" x="-1050.0" y="-3517.5">Script: airpcount = airpcount + 1</actioncontainer>
<actioncontainer id="t64" x="-1120.0" y="-3097.5">Script: airpcount = 0</actioncontainer>
<actioncontainer id="t65" x="-1050.0" y="-3342.5">Pause: 2s (Gerät wach halten)</actioncontainer>
<conditioncontainer id="t66" x="-1225.0" y="-3517.5">Expression: global_apssid != "usb-ethernet"</conditioncontainer>
<conditioncontainer id="t67" x="-1225.0" y="-3342.5">WLAN Verbunden: {global_apssid}</conditioncontainer>
<conditioncontainer id="t68" x="2800.0" y="-3132.5">Dock Status: Docked</conditioncontainer>
<conditioncontainer id="t69" x="2310.0" y="-2782.5">Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"</conditioncontainer>
<conditioncontainer id="t70" x="2800.0" y="-2782.5">Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked"</conditioncontainer>
<conditioncontainer id="t71" x="1995.0" y="-1907.5">Expression: global_activetask != null</conditioncontainer>
<conditioncontainer id="t72" x="-420.0" y="-2782.5">Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Status: Schaltet ein, Ein"</conditioncontainer>
<conditioncontainer id="t73" x="2205.0" y="-2082.5">App Task läuft: {global_activetask} (neuster)</conditioncontainer>
<actioncontainer id="t74" x="2310.0" y="-3832.5">Automagic State</actioncontainer>
<actioncontainer id="t75" x="2450.0" y="-3482.5">Script: notification_text = "not supported from your device"</actioncontainer>
<actioncontainer id="t76" x="-455.0" y="682.5">Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2</actioncontainer>
<actioncontainer id="t77" x="-245.0" y="682.5">Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2</actioncontainer>
<conditioncontainer id="t78" x="-350.0" y="892.5">Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)</conditioncontainer>
<actioncontainer id="t79" x="-420.0" y="1102.5">Script: volume = {volumeBT}</actioncontainer>
<actioncontainer id="t80" x="-280.0" y="1102.5">Script: volume = {volumeSP}</actioncontainer>
<actioncontainer id="t81" x="105.0" y="682.5">Initialisiere Variable Systemeinstellung: screenBrightness</actioncontainer>
<actioncontainer id="t82" x="315.0" y="682.5">Initialisiere Variable Systemeinstellung: volumeNotification</actioncontainer>
<actioncontainer id="t83" x="1260.0" y="1417.5">Script: androidVersion = "not supported funktion"</actioncontainer>
<actioncontainer id="t84" x="1330.0" y="1662.5">Android Version</actioncontainer>
<conditioncontainer id="t85" x="-1120.0" y="-2782.5">Expression: trigger == "Flugmodus: Aus"</conditioncontainer>
<conditioncontainer id="t86" x="2065.0" y="-1837.5">Expression: package_name == {global_activetask}</conditioncontainer>
<actioncontainer id="t87" x="1155.0" y="-3832.5">Daydream State</actioncontainer>
<actioncontainer id="t88" x="1330.0" y="1207.5">Get Android Version</actioncontainer>
<actioncontainer id="t89" x="3535.0" y="-3832.5">Incoming Call</actioncontainer>
<actioncontainer id="t90" x="3220.0" y="-3832.5">KeyGuard Set</actioncontainer>
<actioncontainer id="t91" x="4270.0" y="-892.5">Device State</actioncontainer>
<conditioncontainer id="t92" x="525.0" y="682.5">Stromversorgung: Angeschlossen</conditioncontainer>
<conditioncontainer id="t93" x="840.0" y="-2782.5">Expression: trigger == "Akku Ladestand: grösser als 0%"</conditioncontainer>
<conditioncontainer id="t94" x="-770.0" y="-2782.5">Expression: trigger == "com.android.music.playstatechanged" or trigger == "com.android.music.metachanged" or trigger == "com.amazon.mp3.metachanged"</conditioncontainer>
<actioncontainer id="t95" x="-770.0" y="-3517.5">Script: global_artist = "no player active"; global_track = "no player active"; global_album = "no player active"; global_musicapp = "no player active";</actioncontainer>
<actioncontainer id="t96" x="-770.0" y="-3832.5">Reading Music Metachanged.2</actioncontainer>
<actioncontainer id="t97" x="-770.0" y="-3097.5">Pause: 3s (Gerät wach halten)</actioncontainer>
<actioncontainer id="t98" x="3885.0" y="-892.5">WLAN Reassoziieren</actioncontainer>
<conditioncontainer id="t99" x="3885.0" y="-1592.5">WLAN verfügbar: {global_apssid}</conditioncontainer>
<conditioncontainer id="t100" x="4270.0" y="-1592.5">Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"</conditioncontainer>
<conditioncontainer id="t101" x="1855.0" y="-3482.5">Display automatisch drehen eingeschaltet</conditioncontainer>
<conditioncontainer id="t102" x="1155.0" y="-3132.5">Expression: trigger == "Daydream Status: Gestartet"</conditioncontainer>
<conditioncontainer id="t103" x="-315.0" y="-3097.5">Bluetooth Gerät verbunden: Beliebiges Geräte</conditioncontainer>
<conditioncontainer id="t104" x="-455.0" y="-3097.5">Bluetooth eingeschaltet</conditioncontainer>
<actioncontainer id="t105" x="805.0" y="1417.5">Prüfe und setze globale Variablen</actioncontainer>
<conditioncontainer id="t106" x="1015.0" y="-227.5">Expression: trigger == "App Task Beendet"</conditioncontainer>
<conditioncontainer id="t107" x="1015.0" y="157.5">Expression: global_fhemip != null or header_fhemip != null</conditioncontainer>
<conditioncontainer id="t108" x="805.0" y="1207.5">Expression: global_bridgeport == null or global_bridgeport != {header_bport} or global_fhemip == null or global_fhemip != {header_fhemip} or global_fhemdevice == null or global_fhemdevice != {header_fhemdevice} or global_activetask == null or global_activetask != {header_activetask} or global_apssid == null or global_apssid != {header_apssid} or global_deviceport != null or global_deviceport!= {header_dport}</conditioncontainer>
<conditioncontainer id="t109" x="1015.0" y="-1767.5">WLAN Verbunden: {global_apssid}</conditioncontainer>
<conditioncontainer id="t110" x="-1610.0" y="-3342.5">Keyguard gesperrt</conditioncontainer>
<conditioncontainer id="t111" x="-1855.0" y="-3342.5">Expression: keyguard == "locked"</conditioncontainer>
<conditioncontainer id="t112" x="2310.0" y="-3027.5">Expression: getAndroidSDKVersion() &gt;= "19"</conditioncontainer>
<conditioncontainer id="t113" x="3220.0" y="-3307.5">Keyguard mit Sicherheit</conditioncontainer>
<actioncontainer id="t114" x="4025.0" y="-3482.5">Script: notification_text = "not supported from your device"</actioncontainer>
<actioncontainer id="t115" x="3150.0" y="-3482.5">Script: keyguardSet = "1"</actioncontainer>
<conditioncontainer id="t116" x="3220.0" y="-2782.5">Expression: udef_trigger == "setLockPin"</conditioncontainer>
<conditioncontainer id="t117" x="3150.0" y="-3132.5">Expression: getAndroidSDKVersion() &gt;= "16"</conditioncontainer>
<actioncontainer id="t118" x="3290.0" y="-3132.5">Script: keyguardSet = "not supported from your device"</actioncontainer>
<actioncontainer id="t119" x="-1120.0" y="-3832.5">Airplainemode</actioncontainer>
<actioncontainer id="t120" x="840.0" y="-3832.5">Stromversorgung und Akkustand</actioncontainer>
<conditioncontainer id="t121" x="1015.0" y="507.5">Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"</conditioncontainer>
<actioncontainer id="t122" x="-1680.0" y="-3832.5">Script: screen_state = "on {keyguard}"</actioncontainer>
<actioncontainer id="t123" x="-1540.0" y="-3832.5">Script: screen_state = "off {keyguard}"</actioncontainer>
<conditioncontainer id="t124" x="-1610.0" y="-3657.5">Display eingeschaltet</conditioncontainer>
<actioncontainer id="t125" x="-2170.0" y="-3832.5">Script: screen_state = "on"</actioncontainer>
<actioncontainer id="t126" x="-2029.9998" y="-3832.5">Script: screen_state = "off"</actioncontainer>
<conditioncontainer id="t127" x="-2100.0" y="-3657.5">Display eingeschaltet</conditioncontainer>
<actioncontainer id="t128" x="-1854.9998" y="-4042.5005">Screen State</actioncontainer>
<conditioncontainer id="t129" x="-2100.0" y="-3097.5">Expression: getAndroidSDKVersion() &gt;= "16"</conditioncontainer>
<conditioncontainer id="t130" x="-1855.0" y="-2782.5">Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin"</conditioncontainer>
<conditioncontainer id="t131" x="-2940.0" y="-2782.5">Expression: trigger == "Unterbrechnungen-Modus: Alle / Immer unterbrechen" or trigger == "Unterbrechnungen-Modus: Keine / Nicht unterbrechen" or trigger == "Unterbrechnungen-Modus: Nur Wecker (Android 6+)" or trigger == "Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen"</conditioncontainer>
<conditioncontainer id="t132" x="-2730.0" y="-3342.5">Unterbrechnungen-Modus: Nur Wecker (Android 6+)</conditioncontainer>
<conditioncontainer id="t133" x="-2870.0" y="-3342.5">Unterbrechnungen-Modus: Keine / Nicht unterbrechen</conditioncontainer>
<conditioncontainer id="t134" x="-3010.0" y="-3342.5">Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen</conditioncontainer>
<conditioncontainer id="t135" x="-3150.0" y="-3342.5">Unterbrechnungen-Modus: Alle / Immer unterbrechen</conditioncontainer>
<actioncontainer id="t136" x="-2730.0" y="-3552.5">Script: dndValue = "alarmClockOnly"</actioncontainer>
<actioncontainer id="t137" x="-2870.0" y="-3552.5">Script: dndValue = "never"</actioncontainer>
<actioncontainer id="t138" x="-3010.0" y="-3552.5">Script: dndValue = "onlyImportant"</actioncontainer>
<actioncontainer id="t139" x="-3150.0" y="-3552.5">Script: dndValue = "always"</actioncontainer>
<actioncontainer id="t140" x="-2450.0" y="-3832.5">Next Alarm State</actioncontainer>
<actioncontainer id="t141" x="-2940.0" y="-3832.5">Do Not Disturb State</actioncontainer>
<conditioncontainer id="t142" x="-2450.0" y="-2782.5">Expression: trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE" or trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE"</conditioncontainer>
<actioncontainer id="t143" x="-2450.0" y="-3552.5">Script: if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT") { nextalarmstate = "alert" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS") { nextalarmstate = "dismiss" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE") { nextalarmstate = "done" } if(trigger == "Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE") { nextalarmstate = "snooze" }</actioncontainer>
<actioncontainer id="t144" x="1015.0" y="-1382.5">Script: amad_flowset_version = "2.2.4"</actioncontainer>
<conditioncontainer id="t145" x="1014.9999" y="-2082.5">Expression: global_apssid != "usb-ethernet"</conditioncontainer>
<connection from="t1" to="t106" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t30" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t2" to="t62" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t3" to="t87" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t4" to="t87" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t5" to="t55" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t6" to="t55" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t5" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t7" to="t6" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t73" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t11" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t8" to="t11" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t9" to="t50" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t10" to="t50" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t11" to="t50" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t12" to="t50" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t13" to="t53" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t14" to="t7" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t15" to="t56" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t16" to="t119" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t17" to="t63" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t18" to="t124" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t19" to="t20" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t19" to="t21" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t20" to="t117" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t21" to="t117" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t22" to="t61" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t23" to="t61" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t24" to="t93" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t25" to="t60" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t26" to="t60" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t20" to="t101" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t21" to="t101" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t22" to="t58" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t23" to="t58" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t24" to="t90" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t25" to="t57" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t26" to="t57" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t27" to="t19" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t28" to="t65" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t28" to="t62" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t29" to="t28" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t29" to="t1" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t53" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t32" to="t127" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t33" to="t34" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t31" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t18" 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" />
<connection from="t36" to="t37" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t37" to="t128" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t38" to="t57" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t39" to="t98" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t39" to="t99" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t40" to="t54" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t41" to="t54" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t42" to="t55" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t43" to="t118" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t44" to="t92" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t45" to="t77" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t46" to="t45" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t46" to="t77" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t47" to="t133" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t47" to="t49" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t48" to="t62" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t49" to="t48" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t49" to="t62" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t50" to="t63" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t51" to="t47" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t66" to="t68" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t67" to="t69" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t68" to="t69" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t69" to="t70" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t69" to="t15" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t70" to="t15" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t70" to="t16" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t71" to="t22" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t71" to="t23" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t72" to="t130" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t73" to="t71" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t74" to="t11" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t74" to="t7" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t75" to="t120" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t76" to="t8" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t76" to="t9" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t78" to="t77" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t79" to="t81" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t80" to="t81" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t81" to="t82" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t81" to="t83" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t82" to="t57" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t83" to="t57" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t84" to="t59" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t85" to="t56" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t86" to="t87" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t88" to="t67" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t89" to="t74" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t91" to="t86" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t91" to="t87" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t95" to="t141" type="TRUE" sourcePosition="SOUTH" targetPosition="SOUTH" />
<connection from="t95" to="t141" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t96" to="t141" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t97" to="t100" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t98" to="t99" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t100" to="t39" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t101" to="t103" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t103" to="t102" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t104" to="t113" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t105" to="t109" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t106" to="t112" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t107" to="t108" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t107" to="t104" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t107" to="t105" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t107" to="t106" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t108" to="t111" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t110" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t111" to="t110" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t112" to="t110" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t113" to="t110" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t115" to="t114" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t116" to="t94" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t117" to="t25" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t117" to="t26" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t118" to="t2" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t118" to="t3" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t119" to="t55" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t119" to="t42" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t120" to="t41" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t120" to="t40" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t123" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t123" to="t124" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t123" to="t88" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t123" to="t89" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t124" to="t140" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t124" to="t131" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t125" to="t122" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t13" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t38" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t14" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t12" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t129" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t75" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t29" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t72" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t96" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t74" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t27" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t43" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t73" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t97" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t135" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t119" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t44" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t138" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t51" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t101" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t50" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t116" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t107" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t115" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t127" to="t17" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t127" to="t33" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t128" to="t127" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t129" to="t32" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t130" to="t46" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t130" to="t78" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t130" to="t78" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t91" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t85" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t6" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t84" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t80" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t79" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t120" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t19" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t130" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t95" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t119" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t43" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t71" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t39" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t67" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t32" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t125" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t136" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t132" to="t134" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t132" to="t24" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t133" to="t62" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t134" to="t93" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t135" to="t136" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t136" to="t132" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t136" to="t137" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t137" to="t93" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t138" to="t64" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t126" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t74" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t29" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t138" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t101" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t129" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t88" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t97" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t75" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t12" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t38" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t13" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t96" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t43" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t14" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t27" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t72" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t73" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t135" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t44" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t51" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t50" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t107" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t140" to="t116" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t29" to="t2" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t31" to="t110" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t32" to="t124" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t33" to="t34" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t34" to="t35" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t35" to="t111" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t36" to="t54" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t37" to="t95" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t37" to="t96" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t38" to="t51" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t39" to="t51" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t40" to="t52" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t41" to="t102" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t42" to="t89" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t43" to="t74" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t44" to="t43" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t44" to="t74" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t45" to="t114" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t45" to="t47" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t46" to="t59" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t47" to="t46" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t47" to="t59" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t48" to="t60" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t49" to="t45" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t63" to="t65" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t64" to="t66" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t65" to="t66" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t66" to="t67" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t66" to="t16" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t67" to="t16" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t67" to="t17" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t68" to="t22" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t68" to="t23" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t69" to="t112" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t70" to="t68" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t71" to="t12" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t71" to="t8" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t72" to="t104" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t73" to="t9" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t73" to="t10" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t75" to="t74" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t76" to="t78" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t77" to="t78" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t78" to="t79" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t78" to="t80" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t79" to="t54" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t80" to="t54" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t81" to="t56" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t82" to="t53" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t83" to="t84" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t85" to="t64" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t86" to="t71" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t88" to="t83" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t88" to="t84" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t92" to="t120" type="TRUE" sourcePosition="SOUTH" targetPosition="SOUTH" />
<connection from="t92" to="t120" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t93" to="t120" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t94" to="t97" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t95" to="t96" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t97" to="t37" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t99" to="t98" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t100" to="t91" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t101" to="t25" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t101" to="t26" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t102" to="t3" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t102" to="t4" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t103" to="t52" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t103" to="t40" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t104" to="t39" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t104" to="t38" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t106" to="t107" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t106" to="t85" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t106" to="t86" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t107" to="t145" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t107" to="t121" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t108" to="t105" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t14" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t36" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t15" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t13" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t130" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t72" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t29" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t69" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t93" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t71" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t27" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t41" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t70" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t94" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t116" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t103" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t42" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t144" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t49" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t142" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t48" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t100" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t131" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t109" to="t99" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t110" to="t18" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t110" to="t32" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t111" to="t110" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t112" to="t44" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t112" to="t75" type="EXCEPTION" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t112" to="t75" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t113" to="t115" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t113" to="t24" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t114" to="t59" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t115" to="t90" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t116" to="t117" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t117" to="t113" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t117" to="t118" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t118" to="t90" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t88" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t82" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t7" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t81" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t77" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t76" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t104" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t19" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t112" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t92" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t103" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t41" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t68" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t37" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t64" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t108" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t117" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t121" to="t129" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t122" to="t128" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t123" to="t128" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t124" to="t122" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t124" to="t123" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t124" to="t33" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t125" to="t128" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t126" to="t128" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t127" to="t125" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t127" to="t126" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t129" to="t31" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t129" to="t127" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t130" to="t129" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t135" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t134" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t133" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t131" to="t132" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t132" to="t136" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t133" to="t137" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t134" to="t138" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t135" to="t139" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t136" to="t141" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t137" to="t141" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t138" to="t141" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t139" to="t141" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t142" to="t143" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t143" to="t140" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t144" to="t61" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t109" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t71" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t29" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t144" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t142" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t130" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t85" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t94" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t72" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t13" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t36" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t14" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t93" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t41" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t15" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t27" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t69" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t70" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t116" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t42" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t49" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t48" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t131" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
<connection from="t145" to="t100" type="FALSE" sourcePosition="SOUTH" targetPosition="NORTH" />
</flow>
<flow type="flow">
<name>MultimediaControl</name>
<group>AMAD2 Info/Control Flowset v2.2.3</group>
<group>AMAD2 Info/Control Flowset v2.2.4</group>
<enabled>true</enabled>
<executionPolicy>PARALLEL</executionPolicy>
<triggercontainer id="t1" x="0.0" y="-1032.5">
@ -3309,7 +3329,7 @@ FHEMCMD: setreading</customHTTPHeaders>
</flow>
<flow type="flow">
<name>SetCommands</name>
<group>AMAD2 Info/Control Flowset v2.2.3</group>
<group>AMAD2 Info/Control Flowset v2.2.4</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<emergencyStopCount>900</emergencyStopCount>
@ -3600,7 +3620,7 @@ FHEMCMD: setreading</customHTTPHeaders>
</flow>
<flow type="flow">
<name>Update AMAD Flowset</name>
<group>AMAD2 Info/Control Flowset v2.2.3</group>
<group>AMAD2 Info/Control Flowset v2.2.4</group>
<enabled>true</enabled>
<executionPolicy>PARALLEL</executionPolicy>
<triggercontainer id="t1" x="420.0" y="-682.5">
@ -3648,7 +3668,7 @@ FHEMCMD: setreading</customHTTPHeaders>
</flow>
<flow type="flow">
<name>VoiceControl</name>
<group>AMAD2 Info/Control Flowset v2.2.3</group>
<group>AMAD2 Info/Control Flowset v2.2.4</group>
<enabled>true</enabled>
<executionPolicy>QUEUE</executionPolicy>
<emergencyStopCount>60</emergencyStopCount>