From cb84b064b2496a08e799cd9fa9b22ca918cbd7df Mon Sep 17 00:00:00 2001
From: markooldenburg <>
Date: Mon, 20 Jun 2016 09:13:11 +0000
Subject: [PATCH] 74_AMAD: Conditionssupport for Steinzeittablets, 77_UWZ
Support for United Kingdom
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@11698 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
CHANGED | 3 +
FHEM/74_AMAD.pm | 8 +-
FHEM/77_UWZ.pm | 174 +++--
....xml => 74_AMADautomagicFlowset_2.2.4.xml} | 730 +++++++++---------
4 files changed, 507 insertions(+), 408 deletions(-)
rename FHEM/lib/{74_AMADautomagicFlowset_2.2.3.xml => 74_AMADautomagicFlowset_2.2.4.xml} (87%)
diff --git a/CHANGED b/CHANGED
index c230b4fd0..d1b028d15 100644
--- a/CHANGED
+++ b/CHANGED
@@ -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
diff --git a/FHEM/74_AMAD.pm b/FHEM/74_AMAD.pm
index 3509e44a2..aa8f22fb5 100644
--- a/FHEM/74_AMAD.pm
+++ b/FHEM/74_AMAD.pm
@@ -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($) {
androidVersion - aktuell installierte Androidversion
automagicState - Statusmeldungen von der AutomagicApp (Voraussetzung Android >4.3). Ist Android größer 4.3 vorhanden und im Reading steht "wird nicht unterstützt", muß in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken für Automagic gesetzt werden
batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=Überhitzt, 4=tot, 5=Überspannung, 6=unbekannter Fehler, 7=kalt)
- batterytemperature - Temperatur der Batterie in Grad Fahrenheit
+ batterytemperature - Temperatur der Batterie
bluetooth - on/off, Bluetooth Status an oder aus
checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, siehe Hinweis unten
connectedBTdevices - eine Liste der verbundenen Gerät
diff --git a/FHEM/77_UWZ.pm b/FHEM/77_UWZ.pm
index e164b3f9e..d0a52d1e9 100644
--- a/FHEM/77_UWZ.pm
+++ b/FHEM/77_UWZ.pm
@@ -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 .= ' | |
---|
Start: | '.localtime(ReadingsVal($hash, "Warn_".$i."_Start", "")).' | ';
- $ret .= 'Ende: | '.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).' | ';
+ # language by AttrVal
+ $ret .= 'End: | '.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).' | ' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
+ $ret .= 'Ende: | '.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).' | ' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
+ # end language by AttrVal
$ret .= '
';
$ret .= '';
}
@@ -674,7 +724,10 @@ sub UWZAsHtml($;$) {
$ret .= '';
$ret .= ' | | ';
$ret .= '';
- $ret .='Keine Warnungen';
+ # language by AttrVal
+ $ret .='No Warnings' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
+ $ret .='Keine Warnungen' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
+ # end language by AttrVal
$ret .= ' | ';
$ret .= ' ';
$ret .= ' |
';
@@ -700,8 +753,10 @@ sub UWZAsHtmlLite($;$) {
$ret .= ' | ';
$ret .= ''.ReadingsVal($hash, "Warn_".$i."_ShortText", "").'
';
$ret .= ' | |
---|
Start: | '.localtime(ReadingsVal($hash, "Warn_".$i."_Start", "")).' | ';
-
- $ret .= 'Ende: | '.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).' | ';
+ # language by AttrVal
+ $ret .= 'End: | '.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).' | ' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
+ $ret .= 'Ende: | '.localtime(ReadingsVal($hash, "Warn_".$i."_End", "")).' | ' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
+ # end language by AttrVal
$ret .= ' ';
$ret .= ' |
';
@@ -716,7 +771,10 @@ sub UWZAsHtmlLite($;$) {
$ret .= '';
$ret .= ' | | ';
$ret .= '';
- $ret .='Keine Warnungen';
+ # language by AttrVal
+ $ret .='No Warnings' if ( AttrVal( $hash, 'CountryCode', '' ) eq "UK" );
+ $ret .='Keine Warnungen' if ( AttrVal( $hash, 'CountryCode', '' ) eq "DE" );
+ # end language by AttrVal
$ret .= ' | ';
$ret .= ' ';
$ret .= ' |
';
@@ -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 = '';
@@ -763,8 +819,10 @@ sub UWZAsHtmlKarteLand($$) {
$ret .= ' ';
} 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 .= ' |
';
@@ -802,13 +860,24 @@ sub UWZAsHtmlKarteLand($$) {
Example:
- define Unwetterzentrale UWZ DE 86405 3600
+
+ define Unwetterzentrale UWZ UK 03931 1800
+ attr Unwetterzentrale CountryCode UK
+ attr Unwetterzentrale PLZ 03931
+ attr Unwetterzentrale URL http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=en&areaID=UWZUK03931
+ attr Unwetterzentrale download 1
+ attr Unwetterzentrale humanreadable 1
+ attr Unwetterzentrale maps eastofengland unitedkingdom
+ define UnwetterDetails weblink htmlCode {UWZAsHtml("Unwetterzentrale")}
+ define UnwetterMapE_UK weblink htmlCode {UWZAsHtmlKarteLand("Unwetterzentrale","eastofengland")}
+ define UnwetterLite weblink htmlCode {UWZAsHtmlLite("Unwetterzentrale")}
+
[CountryCode]
- Possible values: DE, AT, CH,...
- (for other countries than germany see fhem-forum)
+ Possible values: DE, AT, CH, UK, ...
+ (for other countries than germany or unitedkingdom see fhem-forum)
[postalcode]
@@ -891,6 +960,11 @@ sub UWZAsHtmlKarteLand($$) {
Attributes
+ CountryCode
+
+ Set country code for text messages (None|UK).
+
+
download
Download maps during update (0|1).
@@ -987,7 +1061,7 @@ sub UWZAsHtmlKarteLand($$) {
- sachsen
- sachsen-anhalt
- thueringen
- - nordrhein-westfale
+ - nordrhein-westfalen
- mecklenburg-vorpommern
- schleswig-holstein
- hamburg
@@ -1145,7 +1219,7 @@ sub UWZAsHtmlKarteLand($$) {
humanreadable
- 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)
@@ -1223,7 +1297,7 @@ sub UWZAsHtmlKarteLand($$) {
sachsen
sachsen-anhalt
thueringen
- nordrhein-westfale
+ nordrhein-westfalen
mecklenburg-vorpommern
schleswig-holstein
hamburg
diff --git a/FHEM/lib/74_AMADautomagicFlowset_2.2.3.xml b/FHEM/lib/74_AMADautomagicFlowset_2.2.4.xml
similarity index 87%
rename from FHEM/lib/74_AMADautomagicFlowset_2.2.3.xml
rename to FHEM/lib/74_AMADautomagicFlowset_2.2.4.xml
index 0da0a149c..b8bb2e782 100644
--- a/FHEM/lib/74_AMADautomagicFlowset_2.2.3.xml
+++ b/FHEM/lib/74_AMADautomagicFlowset_2.2.4.xml
@@ -2338,8 +2338,8 @@ FHEMCMD: setreading
true
- Script: amad_flowset_version = "2.2.3"
-
+ Script: amad_flowset_version = "2.2.4"
+
true
@@ -2549,11 +2549,21 @@ nextalarmstate = "snooze"
Script: screen_state = "off {keyguard}"
+
+ true
+ Script: screen_state = "off"
+
+
true
Script: screen_state = "on {keyguard}"
+
+ true
+ Script: screen_state = "on"
+
+
true
Script: setCommandFlow_state = "aktiv"
@@ -2830,131 +2840,11 @@ FHEMCMD: setreading
Informations
- AMAD2 Info/Control Flowset v2.2.3
+ AMAD2 Info/Control Flowset v2.2.4
true
PARALLEL
900
- Script: setCommandFlow_state = "inaktiv"
- Script: daydream_state = "on"
- Script: daydream_state = "off"
- Script: next_alarmday = "{next_alarm,dateformat,c}"
- Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"
- Initialisiere Variable Nächster Alarm: next_alarm
- Expression: getAndroidSDKVersion() >= "19"
- Script: runTask = "1"
- Script: runTask = "0"
- Script: runTask = "not supported android version"
- Script: runTask = "null"
- Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"
- Expression: trigger == "Systemeinstellung verändert: System next_alarm"
- Expression: trigger == "Systemeinstellung verändert: System screen_brightness"
- Script: airplanemode = "off"
- Expression: airpcount < 11
- Script: keyguard = "unlocked"
- Script: screen_state = "off {keyguard}"
- Display Orientierung: Portrait
- Script: screen_orientation = "portrait"
- Script: screen_orientation = "landscape"
- Script: dock_state = "docked"
- Script: dock_state = "undocked"
- Script: keyguardSet = "0"
- Script: screen_orientation_mode = "auto"
- Script: screen_orientation_mode = "manual"
- Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus"
- Script: setCommandFlow_state = "aktiv"
- Flow Aktiv: SetCommands
- Setze Flow Status: Aktivieren SetCommands
- Script: screen_state = "on {keyguard}"
- Script: scrcount = 0
- Script: keyguard = "locked"
- Display eingeschaltet
- Expression: scrcount < 5
- Script: scrcount = scrcount + 1
- Pause: 2s (Gerät wach halten)
- 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"
- Musik Aktiv
- Script: bluetooth_state = "off"
- Script: bluetooth_state = "on"
- Script: connected_devices_names = "null"; connected_devices_addresses = "null"
- Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"
- Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
- Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
- Benachrichtigung in Statusbar angezeigt: Automagic
- Expression: getAndroidSDKVersion() >= "19"
- Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
- Benachrichtigung in Statusbar angezeigt: WhatsApp
- Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
- Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
- Check run Task
- Screen State
- Bluetooth Status
- Bluetooth Device Status
- Notification Volume
- Lautstärke / Volume
- Nächster Alarm
- Screen Brightness
- Screen Orientation
- Dock State
- Incoming WhatsApp Message
- IntentRadio Status
- Flowsetversion
- Flow Status SetCommands
- Script: airpcount = airpcount + 1
- Script: airpcount = 0
- Pause: 2s (Gerät wach halten)
- Expression: global_apssid != "usb-ethernet"
- WLAN Verbunden: {global_apssid}
- Dock Status: Docked
- Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"
- Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked"
- Expression: global_activetask != null
- Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Status: Schaltet ein, Ein"
- App Task läuft: {global_activetask} (neuster)
- Automagic State
- Script: notification_text = "not supported from your device"
- Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2
- Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2
- Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)
- Script: volume = {volumeBT}
- Script: volume = {volumeSP}
- Initialisiere Variable Systemeinstellung: screenBrightness
- Initialisiere Variable Systemeinstellung: volumeNotification
- Script: androidVersion = "not supported funktion"
- Android Version
- Expression: trigger == "Flugmodus: Aus"
- Expression: package_name == {global_activetask}
- Daydream State
- Get Android Version
- Incoming Call
- KeyGuard Set
- Device State
- Stromversorgung: Angeschlossen
- Expression: trigger == "Akku Ladestand: grösser als 0%"
- Expression: trigger == "com.android.music.playstatechanged" or trigger == "com.android.music.metachanged" or trigger == "com.amazon.mp3.metachanged"
- Script: global_artist = "no player active"; global_track = "no player active"; global_album = "no player active"; global_musicapp = "no player active";
- Reading Music Metachanged.2
- Pause: 3s (Gerät wach halten)
- 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"
- Next Alarm State
- 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" }
- Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
- Unterbrechnungen-Modus: Keine / Nicht unterbrechen
- Unterbrechnungen-Modus: Nur Wecker (Android 6+)
- 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"
- Unterbrechnungen-Modus: Alle / Immer unterbrechen
- Script: dndValue = "never"
- Do Not Disturb State
- Script: dndValue = "always"
- Script: dndValue = "alarmClockOnly"
- Script: dndValue = "onlyImportant"
- WLAN Reassoziieren
- WLAN verfügbar: {global_apssid}
- Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
- Display automatisch drehen eingeschaltet
- Expression: trigger == "Daydream Status: Gestartet"
- Bluetooth Gerät verbunden: Beliebiges Geräte
- Bluetooth eingeschaltet
-
+
Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE
Stromversorgung: Angeschlossen
Genereller Broadcast: wenn org.smblott.intentradio.STATE
@@ -2994,241 +2884,371 @@ FHEMCMD: setreading
Systemeinstellung verändert: System volume_ring_speaker
Unterbrechnungen-Modus: Nur Wecker (Android 6+)
- Prüfe und setze globale Variablen
- Expression: trigger == "App Task Beendet"
- Expression: global_fhemip != null or header_fhemip != null
- 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}
- WLAN Verbunden: {global_apssid}
- Keyguard gesperrt
- Expression: keyguard == "locked"
- Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin"
- Expression: getAndroidSDKVersion() >= "19"
- Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"
- Keyguard mit Sicherheit
- Script: notification_text = "not supported from your device"
- Script: keyguardSet = "1"
- Expression: udef_trigger == "setLockPin"
- Expression: getAndroidSDKVersion() >= "16"
- Script: keyguardSet = "not supported from your device"
- Script: amad_flowset_version = "2.2.3"
- Airplainemode
- Expression: global_apssid != "usb-ethernet"
- Stromversorgung und Akkustand
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Script: setCommandFlow_state = "inaktiv"
+ Script: daydream_state = "on"
+ Script: daydream_state = "off"
+ Script: next_alarmday = "{next_alarm,dateformat,c}"
+ Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"
+ Initialisiere Variable Nächster Alarm: next_alarm
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: runTask = "1"
+ Script: runTask = "0"
+ Script: runTask = "not supported android version"
+ Script: runTask = "null"
+ Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"
+ Expression: trigger == "Systemeinstellung verändert: System next_alarm"
+ Expression: trigger == "Systemeinstellung verändert: System screen_brightness"
+ Script: airplanemode = "off"
+ Expression: airpcount < 11
+ Script: keyguard = "unlocked"
+ Display Orientierung: Portrait
+ Script: screen_orientation = "portrait"
+ Script: screen_orientation = "landscape"
+ Script: dock_state = "docked"
+ Script: dock_state = "undocked"
+ Script: keyguardSet = "0"
+ Script: screen_orientation_mode = "auto"
+ Script: screen_orientation_mode = "manual"
+ Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus"
+ Script: setCommandFlow_state = "aktiv"
+ Flow Aktiv: SetCommands
+ Setze Flow Status: Aktivieren SetCommands
+ Script: scrcount = 0
+ Script: keyguard = "locked"
+ Expression: scrcount < 5
+ Script: scrcount = scrcount + 1
+ Pause: 2s (Gerät wach halten)
+ 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"
+ Musik Aktiv
+ Script: bluetooth_state = "off"
+ Script: bluetooth_state = "on"
+ Script: connected_devices_names = "null"; connected_devices_addresses = "null"
+ Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"
+ Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Benachrichtigung in Statusbar angezeigt: Automagic
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Benachrichtigung in Statusbar angezeigt: WhatsApp
+ Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
+ Check run Task
+ Bluetooth Status
+ Bluetooth Device Status
+ Notification Volume
+ Lautstärke / Volume
+ Nächster Alarm
+ Screen Brightness
+ Screen Orientation
+ Dock State
+ Incoming WhatsApp Message
+ IntentRadio Status
+ Flowsetversion
+ Flow Status SetCommands
+ Script: airpcount = airpcount + 1
+ Script: airpcount = 0
+ Pause: 2s (Gerät wach halten)
+ Expression: global_apssid != "usb-ethernet"
+ WLAN Verbunden: {global_apssid}
+ Dock Status: Docked
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"
+ Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked"
+ Expression: global_activetask != null
+ Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Status: Schaltet ein, Ein"
+ App Task läuft: {global_activetask} (neuster)
+ Automagic State
+ Script: notification_text = "not supported from your device"
+ Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2
+ Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2
+ Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)
+ Script: volume = {volumeBT}
+ Script: volume = {volumeSP}
+ Initialisiere Variable Systemeinstellung: screenBrightness
+ Initialisiere Variable Systemeinstellung: volumeNotification
+ Script: androidVersion = "not supported funktion"
+ Android Version
+ Expression: trigger == "Flugmodus: Aus"
+ Expression: package_name == {global_activetask}
+ Daydream State
+ Get Android Version
+ Incoming Call
+ KeyGuard Set
+ Device State
+ Stromversorgung: Angeschlossen
+ Expression: trigger == "Akku Ladestand: grösser als 0%"
+ Expression: trigger == "com.android.music.playstatechanged" or trigger == "com.android.music.metachanged" or trigger == "com.amazon.mp3.metachanged"
+ Script: global_artist = "no player active"; global_track = "no player active"; global_album = "no player active"; global_musicapp = "no player active";
+ Reading Music Metachanged.2
+ Pause: 3s (Gerät wach halten)
+ WLAN Reassoziieren
+ WLAN verfügbar: {global_apssid}
+ Expression: trigger == "Periodischer Timer: alle 30s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Display automatisch drehen eingeschaltet
+ Expression: trigger == "Daydream Status: Gestartet"
+ Bluetooth Gerät verbunden: Beliebiges Geräte
+ Bluetooth eingeschaltet
+ Prüfe und setze globale Variablen
+ Expression: trigger == "App Task Beendet"
+ Expression: global_fhemip != null or header_fhemip != null
+ 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}
+ WLAN Verbunden: {global_apssid}
+ Keyguard gesperrt
+ Expression: keyguard == "locked"
+ Expression: getAndroidSDKVersion() >= "19"
+ Keyguard mit Sicherheit
+ Script: notification_text = "not supported from your device"
+ Script: keyguardSet = "1"
+ Expression: udef_trigger == "setLockPin"
+ Expression: getAndroidSDKVersion() >= "16"
+ Script: keyguardSet = "not supported from your device"
+ Airplainemode
+ Stromversorgung und Akkustand
+ Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Script: screen_state = "on {keyguard}"
+ Script: screen_state = "off {keyguard}"
+ Display eingeschaltet
+ Script: screen_state = "on"
+ Script: screen_state = "off"
+ Display eingeschaltet
+ Screen State
+ Expression: getAndroidSDKVersion() >= "16"
+ Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin"
+ 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"
+ Unterbrechnungen-Modus: Nur Wecker (Android 6+)
+ Unterbrechnungen-Modus: Keine / Nicht unterbrechen
+ Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
+ Unterbrechnungen-Modus: Alle / Immer unterbrechen
+ Script: dndValue = "alarmClockOnly"
+ Script: dndValue = "never"
+ Script: dndValue = "onlyImportant"
+ Script: dndValue = "always"
+ Next Alarm State
+ Do Not Disturb State
+ 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"
+ 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" }
+ Script: amad_flowset_version = "2.2.4"
+ Expression: global_apssid != "usb-ethernet"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MultimediaControl
- AMAD2 Info/Control Flowset v2.2.3
+ AMAD2 Info/Control Flowset v2.2.4
true
PARALLEL
@@ -3309,7 +3329,7 @@ FHEMCMD: setreading
SetCommands
- AMAD2 Info/Control Flowset v2.2.3
+ AMAD2 Info/Control Flowset v2.2.4
true
QUEUE
900
@@ -3600,7 +3620,7 @@ FHEMCMD: setreading
Update AMAD Flowset
- AMAD2 Info/Control Flowset v2.2.3
+ AMAD2 Info/Control Flowset v2.2.4
true
PARALLEL
@@ -3648,7 +3668,7 @@ FHEMCMD: setreading
VoiceControl
- AMAD2 Info/Control Flowset v2.2.3
+ AMAD2 Info/Control Flowset v2.2.4
true
QUEUE
60