diff --git a/73_AMADCommBridge.pm b/73_AMADCommBridge.pm
index b99c0bd..7090c25 100755
--- a/73_AMADCommBridge.pm
+++ b/73_AMADCommBridge.pm
@@ -2,7 +2,7 @@
#
# Developed with Kate
#
-# (c) 2015-2017 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
+# (c) 2015-2018 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
# All rights reserved
#
# Special thanks goes to comitters:
@@ -74,8 +74,9 @@ eval "use Encode qw(encode encode_utf8);1" or $missingModul .= "Encode ";
eval "use JSON;1" or $missingModul .= "JSON ";
-my $modulversion = "4.0.8";
-my $flowsetversion = "4.0.13";
+
+my $modulversion = "4.2.0";
+my $flowsetversion = "4.2.0";
@@ -153,7 +154,7 @@ sub AMADCommBridge_Define($$) {
$hash->{VERSIONFLOWSET} = $flowsetversion;
- $attr{$name}{room} = "AMAD" if( !defined( $attr{$name}{room} ) );
+ CommandAttr(undef,"$name room AMAD") if(AttrVal($name,'room','none') eq 'none');
Log3 $name, 3, "AMADCommBridge ($name) - defined AMADCommBridge with Socketport $port";
@@ -246,24 +247,51 @@ sub AMADCommBridge_Set($@) {
sub AMADCommBridge_Write($@) {
- my ($hash,$amad_id,$uri,$header,$method) = @_;
+ my ($hash,$amad_id,$uri,$path,$header,$method) = @_;
my $name = $hash->{NAME};
+ my $dhash = $modules{AMADDevice}{defptr}{$amad_id};
+ my $param;
+ my $remoteServer = AttrVal($dhash->{NAME},'remoteServer','Automagic');
- HttpUtils_NonblockingGet(
- {
- url => "http://" . $uri,
- timeout => 15,
- hash => $hash,
- amad_id => $amad_id,
- method => $method,
- header => $header,
- doTrigger => 1,
- callback => \&AMADCommBridge_ErrorHandling,
- }
- );
+ Log3 $name, 4, "AMADCommBridge ($name) - AMADCommBridge_Write Path: $path";
- Log3 $name, 5, "AMADCommBridge ($name) - Send with URI: $uri, HEADER: $header, METHOD: $method";
+
+ if($remoteServer ne 'Automagic' and $path =~ /\?/) {
+ $path .= "&amad_id=$amad_id";
+ } elsif($remoteServer ne 'Automagic') {
+ $path .= "?amad_id=$amad_id";
+ }
+
+ return readingsSingleUpdate($dhash,'lastSetCommand',$path,1)
+ if( $remoteServer eq 'other' );
+
+ $param = { url => "http://" . $uri . $path, timeout => 15, hash => $hash, amad_id => $amad_id, method => $method, header => $header . "\r\namadid: $amad_id", doTrigger => 1, callback => \&AMADCommBridge_ErrorHandling } if($remoteServer eq 'Automagic');
+
+
+ $param = { url => "http://" . $uri . "/",
+ data => "{\"message\":\"AMAD=:=$path\", \"sender\":\"AMAD\", \"ttl\":60, \"communication_base_params\":{\"type\":\"Message\", \"fallback\":false, \"via\":\"Wifi\"},\"version\":\"1.62\"}",
+ timeout => 15, hash => $hash, amad_id => $amad_id, method => $method,
+ header => "agent: TeleHeater/2.2.3\r\nUser-Agent: TeleHeater/2.2.3\r\nAccept: application/json",
+ doTrigger => 1, callback => \&AMADCommBridge_ErrorHandling
+ } if($remoteServer eq 'Autoremote');
+
+
+ $param = { url => "http://" . $uri . "/",
+ data => "device=AMAD&cmd=".urlEncode($path),
+ timeout => 15, hash => $hash, amad_id => $amad_id, method => $method,
+ header => "agent: TeleHeater/2.2.3\r\nUser-Agent: TeleHeater/2.2.3\r\nAccept: application/json",
+ doTrigger => 1, callback => \&AMADCommBridge_ErrorHandling
+ } if($remoteServer eq 'TNES');
+
+
+
+ my $logtext = "AMADCommBridge ($name) - Send with remoteServer: $remoteServer URL: $param->{url}, HEADER: $param->{header}, METHOD: $method";
+ $logtext .= ", DATA: $param->{data}" if( $remoteServer ne 'Automagic' );
+ Log3 $name, 5, "$logtext";
+
+
+ HttpUtils_NonblockingGet($param) if( defined($param) );
}
sub AMADCommBridge_ErrorHandling($$$) {
@@ -637,9 +665,10 @@ sub AMADCommBridge_ProcessRead($$) {
my $response;
my $c;
+ my $fhempath = $attr{global}{modpath};
+
if ( $data =~ /currentFlowsetUpdate.xml/ ) {
- my $fhempath = $attr{global}{modpath};
$response = qx(cat $fhempath/FHEM/lib/74_AMADautomagicFlowset_$flowsetversion.xml);
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
@@ -649,9 +678,20 @@ sub AMADCommBridge_ProcessRead($$) {
$response;
return;
- }
+
+ } elsif( $data =~ /currentTaskersetUpdate.prj.xml/ ) {
- elsif ( $data =~ /installFlow_([^.]*.xml)/ ) {
+ $response = qx(cat $fhempath/FHEM/lib/74_AMADtaskerset_$flowsetversion.prj.xml);
+ $c = $hash->{CD};
+ print $c "HTTP/1.1 200 OK\r\n",
+ "Content-Type: text/plain\r\n",
+ "Connection: close\r\n",
+ "Content-Length: ".length($response)."\r\n\r\n",
+ $response;
+
+ return;
+
+ } elsif ( $data =~ /installFlow_([^.]*.xml)/ ) {
if( defined($1) ){
$response = qx(cat /tmp/$1);
@@ -767,11 +807,11 @@ sub AMADCommBridge_ResponseProcessing($$) {
- if( !defined($amad_id) ) {
- readingsSingleUpdate( $bhash, "transmitterERROR", $hash->{NAME}." has no device name sends", 1 ) if( AttrVal( $bname, "expertMode", 0 ) eq "1" );
- Log3 $bname, 4, "AMADCommBridge ($name) - ERROR - no device name given. please check your global variable in automagic";
+ if( !defined($amad_id) or !defined($fhemDevice) ) {
+ readingsSingleUpdate( $bhash, "transmitterERROR", $hash->{NAME}." has no correct amad_id", 1 );
+ Log3 $bname, 4, "AMADCommBridge ($name) - ERROR - no device name given. please check your global variable amad_id in automagic";
- $response = "header lines: \r\n AMADCommBridge receive no device name. please check your global variable in automagic\r\n FHEM to do nothing\r\n";
+ $response = "header lines: \r\n AMADCommBridge receive no device name. please check your global variable amad_id in automagic\r\n FHEM to do nothing\r\n";
$c = $hash->{CD};
print $c "HTTP/1.1 200 OK\r\n",
"Content-Type: text/plain\r\n",
@@ -1005,8 +1045,21 @@ sub AMADCommBridge_ParseMsg($$) {
This statement creates a new AMADCommBridge device named AMADBridge.
+ The APP Automagic or Tasker can be used on the Android device.
+
+ For Autoremote:
In the following, only the Flowset has to be installed on the Android device and the Flow 'First Run Assistant' run. (Simply press the Homebutton)
- The wizard then guides you through the setup of your AMAD device and ensures that at the end of the installation process the Android device is created as an AMAD device in FHEM.
+ The wizard then guides you through the setup of your AMAD device and ensures that at the end of the installation process the Android device is created as an AMAD device in FHEM.
+
+ For Tasker:
+ When using Tasker, the Tasker-project must be loaded onto the Android device and imported into Tasker via the import function.
+ For the initial setup on the Android device there is an Tasker input mask (Scene), in which the required parameters (device name, device IP, bridgeport etc.)
+ can be entered, these fields are filled (if possible) automatically, but can also be adjusted manually.
+ To do this, run the "AMAD" task.
+ For quick access, a Tasker shortcut can also be created on the home screen for this task.
+ Information on the individual settings can be obtained by touching the respective text field.
+ If all entries are complete, the AMAD Device can be created via the button "create Device".
+ For control commands from FHEM to Tasker, the APP "Autoremote" or "Tasker Network Event Server (TNES)" is additionally required.
@@ -1066,8 +1119,21 @@ sub AMADCommBridge_ParseMsg($$) {
Diese Anweisung erstellt ein neues AMADCommBridge Device Namens AMADBridge.
+ Es kann wahlweise die APP Automagic oder Tasker auf dem Android Gerät verwendet werden.
+
+ Für Autoremote:
Im folgenden muß lediglich das Flowset auf dem Android Gerät installiert werden und der Flow 'First Run Assistent' ausgeführt werden. (einfach den Homebutton drücken)
- Der Assistent geleitet Dich dann durch die Einrichtung Deines AMAD Gerätes und sorgt dafür das am Ende des Installationsprozess das Androidgerät als AMAD Device in FHEM angelegt wird.
+ Der Assistent geleitet Dich dann durch die Einrichtung Deines AMAD Gerätes und sorgt dafür das am Ende des Installationsprozess das Androidgerät als AMAD Device in FHEM angelegt wird.
+
+ Für Tasker:
+ Bei Verwendung von Tasker muss das Tasker-Projekt auf das Android Gerät geladen und in Tasker über die Import Funktion importiert werden.
+ Für die Ersteinrichtung auf dem Android Gerät gibt es eine Eingabemaske (Scene), in der die benötigten Parameter (Device Name, Device IP, Bridgeport usw.)
+ eingegeben werden können, diese Felder werden (soweit möglich) automatisch befüllt, können aber auch manuell angepasst werden.
+ Hierfür den Task "AMAD" ausführen.
+ Für schnellen Zugriff kann für diesen Task auch ein Tasker-Shortcut auf dem Homescreen angelegt werden.
+ Infos zu den einzelnen Einstellungen erhält man durch einen Touch auf das jeweiligen Textfeld.
+ Sind alle Eingaben vollständig, kann das AMAD Device über die Schaltfläche "create Device" erstellt werden.
+ Damit Steuerbefehle von FHEM zu Tasker funktionieren wird zusätzlich noch die APP "Autoremote" oder "Tasker Network Event Server (TNES)" benötigt.
diff --git a/74_AMADDevice.pm b/74_AMADDevice.pm
index a91f8f3..fef56e5 100755
--- a/74_AMADDevice.pm
+++ b/74_AMADDevice.pm
@@ -2,7 +2,7 @@
#
# Developed with Kate
#
-# (c) 2015-2017 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
+# (c) 2015-2018 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
# All rights reserved
#
# Special thanks goes to comitters:
@@ -58,14 +58,16 @@ eval "use Encode qw(encode encode_utf8);1" or $missingModul .= "Encode ";
eval "use JSON;1" or $missingModul .= "JSON ";
-my $modulversion = "4.0.13";
-my $flowsetversion = "4.0.13";
+
+my $modulversion = "4.2.0";
+my $flowsetversion = "4.2.0";
# Declare functions
sub AMADDevice_Attr(@);
+sub AMADDevice_Notify($$);
sub AMADDevice_checkDeviceState($);
sub AMADDevice_decrypt($);
sub AMADDevice_Define($$);
@@ -96,6 +98,7 @@ sub AMADDevice_Initialize($) {
$hash->{DefFn} = "AMADDevice_Define";
$hash->{UndefFn} = "AMADDevice_Undef";
$hash->{AttrFn} = "AMADDevice_Attr";
+ $hash->{NotifyFn} = "AMADDevice_Notify";
$hash->{ParseFn} = "AMADDevice_Parse";
$hash->{AttrList} = "setOpenApp ".
@@ -120,9 +123,10 @@ sub AMADDevice_Initialize($) {
"setAPSSID ".
"root:0,1 ".
"disable:1 ".
+ "IODev ".
"remoteServer:Automagic,Autoremote,TNES,other ".
"setTakePictureResolution:800x600,1024x768,1280x720,1600x1200,1920x1080 ".
- "IODev ".
+ "setTakePictureCamera:Back,Front ".
$readingFnAttributes;
foreach my $d(sort keys %{$modules{AMADDevice}{defptr}}) {
@@ -140,29 +144,32 @@ sub AMADDevice_Define($$) {
return "too few parameters: define AMADDevice " if( @a != 5 );
return "Cannot define a AMAD device. Perl modul $missingModul is missing." if ( $missingModul );
-
+
my $name = $a[0];
my $host = $a[2];
my $amad_id = $a[3];
my $remoteServer = $a[4];
- $hash->{DEF} = "$host $amad_id Automagic" if( $remoteServer ne 'Automagic' );
-
$hash->{HOST} = $host;
$hash->{AMAD_ID} = $amad_id;
- $hash->{PORT} = 8090;
$hash->{VERSIONMODUL} = $modulversion;
$hash->{VERSIONFLOWSET} = $flowsetversion;
+ $hash->{NOTIFYDEV} = "global,$name";
+
+ $hash->{PORT} = 8090 if($remoteServer eq 'Automagic');
+ $hash->{PORT} = 1817 if($remoteServer eq 'Autoremote');
+ $hash->{PORT} = 8765 if($remoteServer eq 'TNES');
+ $hash->{PORT} = 1111 if($remoteServer eq 'other'); # Dummy Port for other
+
$hash->{helper}{infoErrorCounter} = 0;
$hash->{helper}{setCmdErrorCounter} = 0;
$hash->{helper}{deviceStateErrorCounter} = 0;
-
CommandAttr(undef,"$name IODev $modules{AMADCommBridge}{defptr}{BRIDGE}->{NAME}") if(AttrVal($name,'IODev','none') eq 'none');
-
+
my $iodev = AttrVal($name,'IODev','none');
AssignIoPort($hash,$iodev) if( !$hash->{IODev} );
@@ -181,14 +188,18 @@ sub AMADDevice_Define($$) {
return "AMADDevice device $name on AMADCommBridge $iodev already defined."
if( defined($d) && $d->{IODev} == $hash->{IODev} && $d->{NAME} ne $name );
- Log3 $name, 3, "AMADDevice ($name) - defined with AMAD_ID: $amad_id on port $hash->{PORT}";
+
- $attr{$name}{room} = "AMAD" if( !defined( $attr{$name}{room} ) );
+ CommandAttr(undef,"$name room AMAD") if(AttrVal($name,'room','none') eq 'none');
+ CommandAttr(undef,"$name remoteServer $remoteServer") if(AttrVal($name,'remoteServer','none') eq 'none');
readingsBeginUpdate($hash);
readingsBulkUpdateIfChanged( $hash, "state", "initialized",1);
readingsBulkUpdateIfChanged( $hash, "deviceState", "unknown",1);
readingsEndUpdate($hash,1);
+
+
+ Log3 $name, 3, "AMADDevice ($name) - defined with AMAD_ID: $amad_id on port $hash->{PORT}";
if( $init_done ) {
@@ -225,7 +236,30 @@ sub AMADDevice_Attr(@) {
my $orig = $attrVal;
- if( $attrName eq "disable" ) {
+ if( $attrName eq "remoteServer" ) {
+ if( $cmd eq "set" ) {
+ if( $attrVal eq "Automagic" ) {
+ $hash->{PORT} = 8090;
+ Log3 $name, 3, "AMADDevice ($name) - set remoteServer to Automagic";
+
+ } elsif( $attrVal eq "Autoremote" ) {
+ $hash->{PORT} = 1817;
+ Log3 $name, 3, "AMADDevice ($name) - set remoteServer to Autoremote";
+
+ } elsif( $attrVal eq "TNES" ) {
+ $hash->{PORT} = 8765;
+ Log3 $name, 3, "AMADDevice ($name) - set remoteServer to TNES";
+
+ } elsif( $attrVal eq "other" ) {
+ $hash->{PORT} = 1111;
+ Log3 $name, 3, "AMADDevice ($name) - set remoteServer to other";
+ }
+
+ $hash->{DEF} = "$hash->{HOST} $hash->{AMAD_ID} $attrVal";
+ }
+ }
+
+ elsif( $attrName eq "disable" ) {
if( $cmd eq "set" ) {
if( $attrVal eq "0" ) {
@@ -271,7 +305,7 @@ sub AMADDevice_Attr(@) {
}
elsif( $attrName eq "setAPSSID" ) {
- if( $cmd eq "set" && $attrVal ) {
+ if( $cmd eq "set" and $attrVal ) {
AMADDevice_statusRequest($hash);
@@ -305,6 +339,25 @@ sub AMADDevice_Attr(@) {
return undef;
}
+sub AMADDevice_Notify($$) {
+
+ my ($hash,$dev) = @_;
+ my $name = $hash->{NAME};
+ return if (IsDisabled($name));
+
+ my $devname = $dev->{NAME};
+ my $devtype = $dev->{TYPE};
+ my $events = deviceEvents($dev,1);
+ return if (!$events);
+
+
+ AMADDevice_statusRequest($hash) if( (grep /^DELETEATTR.$name.setAPSSID$/,@{$events}
+ or grep /^ATTR.$name.setAPSSID.*/,@{$events} )
+ and $init_done and $devname eq 'global' );
+
+ return;
+}
+
sub AMADDevice_GetUpdate($) {
my ( $hash ) = @_;
@@ -334,8 +387,9 @@ sub AMADDevice_statusRequest($) {
my $host = $hash->{HOST};
my $port = $hash->{PORT};
my $amad_id = $hash->{AMAD_ID};
- my $uri;
+ my $uri = $hash->{HOST} . ":" . $hash->{PORT};
my $header = 'Connection: close';
+ my $path;
my $method;
@@ -346,13 +400,15 @@ sub AMADDevice_statusRequest($) {
my $fhemCtlMode = AttrVal($hash->{IODev}->{NAME},'fhemControlMode','none' );
my $bport = $hash->{IODev}->{PORT};
+ $header .= "\r\nfhemip: $fhemip\r\nfhemdevice: $name\r\nactivetask: $activetask\r\napssid: $apssid\r\nbport: $bport\r\nuserflowstate: $userFlowState\r\nfhemctlmode: $fhemCtlMode";
+
+ $method = "GET" if( AttrVal($name,'remoteServer','Automagic') eq 'Automagic' );
+ $method = "POST" if (AttrVal($name,'remoteServer','Automagic') ne 'Automagic' );
+
+ $path ="/fhem-amad/deviceInfo/"; # Pfad muß so im Automagic als http request Trigger drin stehen
- $uri = $host . ":" . $port . "/fhem-amad/deviceInfo/"; # Pfad muß so im Automagic als http request Trigger drin stehen
- $header .= "\r\nfhemip: $fhemip\r\nfhemdevice: $name\r\nactivetask: $activetask\r\napssid: $apssid\r\nbport: $bport\r\nuserflowstate: $userFlowState\r\namadid: $amad_id\r\nfhemctlmode: $fhemCtlMode";
- $method = "GET";
-
-
- IOWrite($hash,$amad_id,$uri,$header,$method);
+
+ IOWrite($hash,$amad_id,$uri,$path,$header,$method);
Log3 $name, 5, "AMADDevice ($name) - IOWrite: $uri $method IODevHash=$hash->{IODev}";
}
@@ -385,14 +441,20 @@ sub AMADDevice_WriteReadings($$) {
readingsBulkUpdateIfChanged($hash, $t, $v, 1) if( defined( $v ) and ($t ne 'deviceState'
or $t ne 'incomingCallerName'
or $t ne 'incomingCallerNumber'
+ or $t ne 'incomingTelegramMessage'
+ or $t ne 'incomingSmsMessage'
+ or $t ne 'incomingWhatsAppMessage'
or $t ne 'nfcLastTagID')
);
readingsBulkUpdateIfChanged( $hash, $t, ($v / AttrVal($name,'setVolFactor',1)) ) if( $t eq 'volume' and AttrVal($name,'setVolFactor',1) > 1 );
readingsBulkUpdate( $hash, '.'.$t, $v ) if( $t eq 'deviceState' );
- readingsBulkUpdate( $hash, $t, $v ) if( $t eq 'incomingCallerName'
+ readingsBulkUpdate( $hash, $t, $v ) if( defined( $v ) and ($t eq 'incomingCallerName'
or $t eq 'incomingCallerNumber'
- or $t eq 'nfcLastTagID'
+ or $t eq 'incomingTelegramMessage'
+ or $t eq 'incomingSmsMessage'
+ or $t eq 'incomingWhatsAppMessage'
+ or $t eq 'nfcLastTagID')
);
}
@@ -423,29 +485,31 @@ sub AMADDevice_Set($$@) {
my ($hash, $name, @aa) = @_;
my ($cmd, @args) = @aa;
- my $host = $hash->{HOST};
- my $port = $hash->{PORT};
my $amad_id = $hash->{AMAD_ID};
- my $uri;
my $header = 'Connection: close';
+ my $uri = $hash->{HOST} . ":" . $hash->{PORT};
+ my $path;
my $method;
+ my @playerList = ('GoogleMusic','SamsungMusic','AmazonMusic','SpotifyMusic','TuneinRadio','AldiMusic','YouTube','YouTubeKids','VlcPlayer','Audible','Deezer');
+ my @playerCmd = ('mediaPlay','mediaStop','mediaNext','mediaBack');
+
my $volMax = AttrVal($name,'setVolMax',15);
my $notifyVolMax = AttrVal($name,'setNotifyVolMax',7);
my $ringSoundVolMax = AttrVal($name,'setRingSoundVolMax',7);
-
+
if( lc $cmd eq 'screenmsg' ) {
my $msg = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/screenMsg?message=".urlEncode($msg);
+ $path = "/fhem-amad/setCommands/screenMsg?message=".urlEncode($msg);
$method = "POST";
}
elsif( lc $cmd eq 'ttsmsg' ) {
my ($msg,$speed,$lang,$ttsmsgvol) = AMADDevice_CreateTtsMsgValue($hash,@args);
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/ttsMsg?message=".urlEncode($msg)."&msgspeed=".$speed."&msglang=".$lang."&msgvol=".$ttsmsgvol;
+ $path = "/fhem-amad/setCommands/ttsMsg?message=".urlEncode($msg)."&msgspeed=".$speed."&msglang=".$lang."&msgvol=".$ttsmsgvol;
$method = "POST";
}
@@ -453,58 +517,59 @@ sub AMADDevice_Set($$@) {
my $datas = join( " ", @args );
my ($flow,$state) = split( ":", $datas);
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/flowState?flowstate=".$state."&flowname=".urlEncode($flow);
+ $path = "/fhem-amad/setCommands/flowState?flowstate=".$state."&flowname=".urlEncode($flow);
$method = "POST";
}
elsif( lc $cmd eq 'userflowrun' ) {
my $flow = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/flowRun?flowname=".urlEncode($flow);
+ $path = "/fhem-amad/setCommands/flowRun?flowname=".urlEncode($flow);
$method = "POST";
}
elsif( lc $cmd eq 'volume' or $cmd eq 'mute' or $cmd =~ 'volume[Down|Up]' ) {
my $vol = AMADDevice_CreateVolumeValue($hash,$cmd,@args);
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setVolume?volume=$vol";
+ $path = "/fhem-amad/setCommands/setVolume?volume=$vol";
$method = "POST";
}
elsif( lc $cmd eq 'volumenotification' ) {
- my $vol = join( " ", @args );
+ my $volnote = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setNotifiVolume?notifivolume=$vol";
+ $path = "/fhem-amad/setCommands/setNotifiVolume?notifivolume=$volnote";
$method = "POST";
}
elsif( lc $cmd eq 'volumeringsound' ) {
- my $vol = join( " ", @args );
+ my $volring = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setRingSoundVolume?ringsoundvolume=$vol";
+ $path = "/fhem-amad/setCommands/setRingSoundVolume?ringsoundvolume=$volring";
$method = "POST";
}
elsif( lc $cmd =~ /^media/ ) {
- my $btn = join( " ", @args );
+ my $mplayer = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/multimediaControl?mplayer=".$cmd."&button=".$btn;
+ $path = "/fhem-amad/setCommands/multimediaControl?button=".$cmd."&mplayer=".$mplayer;
$method = "POST";
}
elsif( lc $cmd eq 'screenbrightness' ) {
my $bri = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setBrightness?brightness=$bri";
+ $path = "/fhem-amad/setCommands/setBrightness?brightness=$bri";
$method = "POST";
}
elsif( lc $cmd eq 'screen' ) {
my $mod = join( " ", @args );
- $uri = AMADDevice_CreateScreenValue($hash,$mod);
+
+ $path = AMADDevice_CreateScreenValue($hash,$mod);
return "Please set \"setScreenlockPIN\" Attribut first"
- unless($uri ne 'NO PIN');
+ unless($path ne 'NO PIN');
$method = "POST";
}
@@ -512,19 +577,19 @@ sub AMADDevice_Set($$@) {
my $mod = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setScreenOrientation?orientation=$mod";
+ $path = "/fhem-amad/setCommands/setScreenOrientation?orientation=$mod";
$method = "POST";
}
elsif( lc $cmd eq 'activatevoiceinput' ) {
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setvoicecmd";
+ $path = "/fhem-amad/setCommands/setvoicecmd";
$method = "POST";
}
elsif( lc $cmd eq 'screenfullscreen' ) {
my $mod = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setScreenFullscreen?fullscreen=$mod";
+ $path = "/fhem-amad/setCommands/setScreenFullscreen?fullscreen=$mod";
$method = "POST";
readingsSingleUpdate( $hash, $cmd, $mod, 1 );
}
@@ -534,7 +599,7 @@ sub AMADDevice_Set($$@) {
my $browser = AttrVal( $name, "setOpenUrlBrowser", "com.android.chrome|com.google.android.apps.chrome.Main" );
my @browserapp = split( /\|/, $browser );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/openURL?url=".$openurl."&browserapp=".$browserapp[0]."&browserappclass=".$browserapp[1];
+ $path = "/fhem-amad/setCommands/openURL?url=".$openurl."&browserapp=".$browserapp[0]."&browserappclass=".$browserapp[1];
$method = "POST";
}
@@ -542,14 +607,14 @@ sub AMADDevice_Set($$@) {
my $value = join( " ", @args );
my @alarm = split( ":", $value );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setAlarm?hour=".$alarm[0]."&minute=".$alarm[1];
+ $path = "/fhem-amad/setCommands/setAlarm?hour=".$alarm[0]."&minute=".$alarm[1];
$method = "POST";
}
elsif (lc $cmd eq 'timer') {
my $timer = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setTimer?minute=$timer";
+ $path = "/fhem-amad/setCommands/setTimer?minute=$timer";
$method = "POST";
}
@@ -562,21 +627,21 @@ sub AMADDevice_Set($$@) {
elsif( lc $cmd eq 'openapp' ) {
my $app = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/openApp?app=".$app;
+ $path = "/fhem-amad/setCommands/openApp?app=".$app;
$method = "POST";
}
elsif( lc $cmd eq 'nfc' ) {
my $mod = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setnfc?nfc=".$mod;
+ $path = "/fhem-amad/setCommands/setnfc?nfc=".$mod;
$method = "POST";
}
elsif( lc $cmd eq 'system' ) {
my $systemcmd = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/systemcommand?syscmd=$systemcmd";
+ $path = "/fhem-amad/setCommands/systemcommand?syscmd=$systemcmd";
$method = "POST";
readingsSingleUpdate( $hash, "airplanemode", "on", 1 ) if( $systemcmd eq "airplanemodeON" );
readingsSingleUpdate( $hash, "deviceState", "offline", 1 ) if( $systemcmd eq "airplanemodeON" || $systemcmd eq "shutdown" );
@@ -585,14 +650,14 @@ sub AMADDevice_Set($$@) {
elsif( lc $cmd eq 'donotdisturb' ) {
my $disturbmod = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/donotdisturb?disturbmod=$disturbmod";
+ $path = "/fhem-amad/setCommands/donotdisturb?disturbmod=$disturbmod";
$method = "POST";
}
elsif( lc $cmd eq 'bluetooth' ) {
my $mod = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setbluetooth?bluetooth=$mod";
+ $path = "/fhem-amad/setCommands/setbluetooth?bluetooth=$mod";
$method = "POST";
}
@@ -600,7 +665,7 @@ sub AMADDevice_Set($$@) {
my $notify = join( " ", @args );
my $filepath = AttrVal( $name, "setNotifySndFilePath", "/storage/emulated/0/Notifications/" );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/playnotifysnd?notifyfile=".$notify."¬ifypath=".$filepath;
+ $path = "/fhem-amad/setCommands/playnotifysnd?notifyfile=".$notify."¬ifypath=".$filepath;
$method = "POST";
}
@@ -608,26 +673,38 @@ sub AMADDevice_Set($$@) {
my $swToBtDevice = join( " ", @args );
my ($swToBtMac,$btDeviceOne,$btDeviceTwo) = AMADDevice_CreateChangeBtDeviceValue($hash,$swToBtDevice);
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setbtdevice?swToBtDeviceMac=".$swToBtMac."&btDeviceOne=".$btDeviceOne."&btDeviceTwo=".$btDeviceTwo;
+ $path = "/fhem-amad/setCommands/setbtdevice?swToBtDeviceMac=".$swToBtMac."&btDeviceOne=".$btDeviceOne."&btDeviceTwo=".$btDeviceTwo;
$method = "POST";
}
elsif( lc $cmd eq 'clearnotificationbar' ) {
my $appname = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/clearnotificationbar?app=$appname";
+ $path = "/fhem-amad/setCommands/clearnotificationbar?app=$appname";
$method = "POST";
}
elsif( lc $cmd eq 'vibrate' ) {
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/setvibrate";
+ $path = "/fhem-amad/setCommands/setvibrate";
$method = "POST";
}
elsif( lc $cmd eq 'showhomescreen' ) {
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/showhomescreen";
+ $path = "/fhem-amad/setCommands/showhomescreen";
+ $method = "POST";
+ }
+
+ elsif( lc $cmd eq 'takepicture' ) {
+
+ return "Please set \"setTakePictureResolution\" Attribut first"
+ unless(AttrVal($name,'setTakePictureResolution','none') ne 'none');
+
+ return "Please set \"setTakePictureCamera\" Attribut first"
+ unless(AttrVal($name,'setTakePictureCamera','none') ne 'none');
+
+ $path = "/fhem-amad/setCommands/takepicture?pictureresolution=".AttrVal($name,'setTakePictureResolution','none')."&picturecamera=".AttrVal($name,'setTakePictureCamera','none');
$method = "POST";
}
@@ -647,14 +724,14 @@ sub AMADDevice_Set($$@) {
$exkey2 = "" if( !$exkey2 );
$exval2 = "" if( !$exval2 );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/sendIntent?action=".$action."&exkey1=".$exkey1."&exval1=".$exval1."&exkey2=".$exkey2."&exval2=".$exval2;
+ $path = "/fhem-amad/setCommands/sendIntent?action=".$action."&exkey1=".$exkey1."&exval1=".$exval1."&exkey2=".$exkey2."&exval2=".$exval2;
$method = "POST";
}
elsif( lc $cmd eq 'installflowsource' ) {
my $flowname = join( " ", @args );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/installFlow?flowname=$flowname";
+ $path = "/fhem-amad/setCommands/installFlow?flowname=$flowname";
$method = "POST";
}
@@ -663,25 +740,30 @@ sub AMADDevice_Set($$@) {
my ($callnumber, $time) = split( "[ \t][ \t]*", $string );
$time = "none" if( !$time );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/openCall?callnumber=".$callnumber."&hanguptime=".$time;
+ $path = "/fhem-amad/setCommands/openCall?callnumber=".$callnumber."&hanguptime=".$time;
$method = "POST";
}
elsif( lc $cmd eq 'closecall' ) {
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/closeCall";
+ $path = "/fhem-amad/setCommands/closeCall";
$method = "POST";
}
elsif( lc $cmd eq 'startdaydream' ) {
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/startDaydream";
+ $path = "/fhem-amad/setCommands/startDaydream";
$method = "POST";
}
elsif( lc $cmd eq 'currentflowsetupdate' ) {
- $uri = $host . ":" . $port . "/fhem-amad/currentFlowsetUpdate";
+ if( ReadingsVal($name,'flowsetVersionAtDevice','') lt '4.1.99.6' ) {
+ $path = "/fhem-amad/currentFlowsetUpdate";
+ } else {
+ $path = "/fhem-amad/setCommands/currentFlowsetUpdate";
+ }
+
$method = "POST";
}
@@ -689,7 +771,7 @@ sub AMADDevice_Set($$@) {
my $string = join( " ", @args );
my ($smsmessage, $smsnumber) = split( "\\|", $string );
- $uri = $host . ":" . $port . "/fhem-amad/setCommands/sendSms?smsmessage=".urlEncode($smsmessage)."&smsnumber=".$smsnumber;
+ $path = "/fhem-amad/setCommands/sendSms?smsmessage=".urlEncode($smsmessage)."&smsnumber=".$smsnumber;
$method = "POST";
} else {
@@ -697,8 +779,13 @@ sub AMADDevice_Set($$@) {
my $apps = AttrVal( $name, "setOpenApp", "none" );
my $btdev = AttrVal( $name, "setBluetoothDevice", "none" );
+
+ my $list = '';
+ foreach(@playerCmd) {
+ $list .= $_ . ':' . join(',',@playerList) . ' ';
+ }
- my $list = "screenMsg ttsMsg mediaGoogleMusic:play/pause,stop,next,back mediaSamsungMusic:play/pause,stop,next,back mediaAmazonMusic:play/pause,stop,next,back mediaSpotifyMusic:play/pause,stop,next,back mediaTuneinRadio:play/pause,stop,next,back mediaAldiMusic:play/pause,stop,next,back mediaYouTube:play/pause,stop,next,back mediaYouTubeKids:play/pause,stop,next,back mediaVlcPlayer:play/pause,stop,next,back mediaAudible:play/pause,stop,next,back screenBrightness:slider,0,1,255 screen:on,off,lock,unlock openURL nextAlarmTime:time timer:slider,1,1,60 statusRequest:noArg bluetooth:on,off notifySndFile clearNotificationBar:All,Automagic activateVoiceInput:noArg vibrate:noArg sendIntent openCall closeCall:noArg currentFlowsetUpdate:noArg installFlowSource doNotDisturb:never,always,alarmClockOnly,onlyImportant userFlowState userFlowRun sendSMS startDaydream:noArg volumeUp:noArg volumeDown:noArg mute:on,off showHomeScreen:noArg takePicture:noArg";
+ $list .= "screenMsg ttsMsg screenBrightness:slider,0,1,255 screen:on,off,lock,unlock openURL nextAlarmTime:time timer:slider,1,1,60 statusRequest:noArg bluetooth:on,off notifySndFile clearNotificationBar:All,Automagic activateVoiceInput:noArg vibrate:noArg sendIntent openCall closeCall:noArg currentFlowsetUpdate:noArg installFlowSource doNotDisturb:never,always,alarmClockOnly,onlyImportant userFlowState userFlowRun sendSMS startDaydream:noArg volumeUp:noArg volumeDown:noArg mute:on,off showHomeScreen:noArg takePicture:noArg";
$list .= " screenOrientation:auto,landscape,portrait" if( AttrVal( $name, "setScreenOrientation", "0" ) eq "1" );
$list .= " screenFullscreen:on,off" if( AttrVal( $name, "setFullscreen", "0" ) eq "1" );
@@ -714,9 +801,9 @@ sub AMADDevice_Set($$@) {
return "Unknown argument $cmd, choose one of $list";
}
-
-
- IOWrite($hash,$amad_id,$uri,$header,$method);
+
+
+ IOWrite($hash,$amad_id,$uri,$path,$header,$method);
Log3 $name, 5, "AMADDevice ($name) - IOWrite: $uri $method IODevHash=$hash->{IODev}";
return undef;
@@ -751,7 +838,7 @@ sub AMADDevice_Parse($$) {
} else {
- return "UNDEFINED $fhemDevice AMADDevice $decode_json->{firstrun}{'amaddevice_ip'} $decode_json->{amad}{'amad_id'} Automagic";
+ return "UNDEFINED $fhemDevice AMADDevice $decode_json->{firstrun}{'amaddevice_ip'} $decode_json->{amad}{'amad_id'} $decode_json->{firstrun}{remoteserver}";
}
}
@@ -864,11 +951,18 @@ sub AMADDevice_CreateTtsMsgValue($@) {
my $name = $hash->{NAME};
my $msg;
- my $speed = AttrVal( $name, "setTtsMsgSpeed", "1.0" );
+ my $speed;
+
my $lang = AttrVal( $name, "setTtsMsgLang","de" );
my $ttsmsgvol = AttrVal( $name, "setTtsMsgVol","none");
-
+ if( AttrVal($name,"remoteServer","Automagic") ne 'Automagic') {
+ $speed = AttrVal( $name, "setTtsMsgSpeed", "5" );
+ } else {
+ $speed = AttrVal( $name, "setTtsMsgSpeed", "1.0" );
+ }
+
+
$msg = join( " ", @args );
unless($args[0] ne '&en;' and $args[0] ne '&de;') {
@@ -885,13 +979,10 @@ sub AMADDevice_CreateScreenValue($$) {
my $name = $hash->{NAME};
my $scot = AttrVal( $name, "setScreenOnForTimer", undef );
- my $host = $hash->{HOST};
- my $port = $hash->{PORT};
- my $uri;
$scot = 60 if( !$scot );
if ($mod eq "on" or $mod eq "off") {
- return ($host . ":" . $port . "/fhem-amad/setCommands/setScreenOnOff?screen=".$mod."&screenontime=".$scot);
+ return ("/fhem-amad/setCommands/setScreenOnOff?screen=".$mod."&screenontime=".$scot);
}
elsif ($mod eq "lock" or $mod eq "unlock") {
@@ -900,7 +991,7 @@ sub AMADDevice_CreateScreenValue($$) {
my $PIN = AttrVal( $name, "setScreenlockPIN", undef );
$PIN = AMADDevice_decrypt($PIN);
- return ($host . ":" . $port . "/fhem-amad/setCommands/screenlock?lockmod=".$mod."&lockPIN=".$PIN);
+ return ("/fhem-amad/setCommands/screenlock?lockmod=".$mod."&lockPIN=".$PIN);
}
}
@@ -938,19 +1029,28 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
AMAD - Automagic Android Device
- This module integrates Android devices into FHEM and displays several settings using the Android app "Automagic" .
+ This module integrates Android devices into FHEM and displays several settings using the Android app "Automagic" or "Tasker" .
Automagic is comparable to the "Tasker" app for automating tasks and configuration settings. But Automagic is more user-friendly. The "Automagic Premium" app currently costs EUR 2.90.
- Any information retrievable by Automagic can be displayed in FHEM by this module. Just define your own Automagic-"flow" and send the data to the AMADCommBridge. One even can control several actions on Android devices.
+ Any information retrievable by Automagic/Tasker can be displayed in FHEM by this module. Just define your own Automagic-"flow" or Tasker-"task" and send the data to the AMADCommBridge. One even can control several actions on Android devices.
- To be able to make use of all these functions the Automagic app and additional flows need to be installed on the Android device. The flows can be retrieved from the FHEM directory, the app can be bought in Google Play Store.
+ To be able to make use of all these functions the Automagic/Tasker app and additional flows/Tasker-project need to be installed on the Android device. The flows/Tasker-project can be retrieved from the FHEM directory, the app can be bought in Google Play Store.
How to use AMADDevice?
first, make sure that the AMADCommBridge in FHEM was defined
- install the "Automagic Premium" app from the PlayStore
- install the flowset 74_AMADDeviceautomagicFlowset$VERSION.xml file from the $INSTALLFHEM/FHEM/lib/ directory on the Android device
- activate the "installation assistant" Flow in Automagic. If one now sends Automagic into the background, e.g. Homebutton, the assistant starts and creates automatically a FHEM device for the android device
+ Using Autoremote
+
+ install the "Automagic Premium" app from the PlayStore
+ install the flowset 74_AMADDeviceautomagicFlowset$VERSION.xml file from the $INSTALLFHEM/FHEM/lib/ directory on the Android device
+ activate the "installation assistant" Flow in Automagic. If one now sends Automagic into the background, e.g. Homebutton, the assistant starts and creates automatically a FHEM device for the android device
+
+ Using Tasker
+
+ install the "Tasker" app from the PlayStore
+ install the Tasker-project 74_AMADtaskerset_$VERSION.prj.xml file from the $INSTALLFHEM/FHEM/lib/ directory on the Android device
+ run the "AMAD" task in Tasker and make your initial setup, by pressing the "create Device" button it will automatically create the device in FHEM
+
Define a AMADDevice device by hand.
@@ -966,7 +1066,7 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
define WandTabletWohnzimmer AMADDevice 192.168.0.23 123456 IODev=NAME_des_AMADCommBridge_Devices
- In this case, an AMADDevice is created by hand. The AMAD_ID, here 123456, must also be entered exactly as a global variable in Automagic.
+ In this case, an AMADDevice is created by hand. The AMAD_ID, here 123456, must also be entered exactly as a global variable in Automagic/Tasker.
@@ -974,19 +1074,19 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
airplanemode - on/off, state of the aeroplane mode
androidVersion - currently installed version of Android
- automagicState - state of the Automagic App (prerequisite Android >4.3). In case you have Android >4.3 and the reading says "not supported", you need to enable Automagic inside Android / Settings / Sound & notification / Notification access
- batteryHealth - the health of the battery (1=unknown, 2=good, 3=overheat, 4=dead, 5=over voltage, 6=unspecified failure, 7=cold)
- batterytemperature - the temperature of the battery
+ automagicState - state of the Automagic or Tasker App (prerequisite Android >4.3). In case you have Android >4.3 and the reading says "not supported", you need to enable Automagic/Tasker inside Android / Settings / Sound & notification / Notification access
+ batteryHealth - the health of the battery (1=unknown, 2=good, 3=overheat, 4=dead, 5=over voltage, 6=unspecified failure, 7=cold) (Automagic only)
+ batterytemperature - the temperature of the battery (Automagic only)
bluetooth - on/off, bluetooth state
- checkActiveTask - state of an app (needs to be defined beforehand). 0=not active or not active in foreground, 1=active in foreground, see note below
- connectedBTdevices - list of all devices connected via bluetooth
- connectedBTdevicesMAC - list of MAC addresses of all devices connected via bluetooth
- currentMusicAlbum - currently playing album of mediaplayer
- currentMusicApp - currently playing player app (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music)
- currentMusicArtist - currently playing artist of mediaplayer
- currentMusicIcon - cover of currently play albumNoch nicht fertig implementiert
- currentMusicState - state of currently/last used mediaplayer
- currentMusicTrack - currently playing song title of mediaplayer
+ checkActiveTask - state of an app (needs to be defined beforehand). 0=not active or not active in foreground, 1=active in foreground, see note below (Automagic only)
+ connectedBTdevices - list of all devices connected via bluetooth (Automagic only)
+ connectedBTdevicesMAC - list of MAC addresses of all devices connected via bluetooth (Automagic only)
+ currentMusicAlbum - currently playing album of mediaplayer (Automagic only)
+ currentMusicApp - currently playing player app (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music) (Automagic only)
+ currentMusicArtist - currently playing artist of mediaplayer (Automagic only)
+ currentMusicIcon - cover of currently play album Not yet fully implemented (Automagic only)
+ currentMusicState - state of currently/last used mediaplayer (Automagic only)
+ currentMusicTrack - currently playing song title of mediaplayer (Automagic only)
daydream - on/off, daydream currently active
deviceState - state of Android devices. unknown, online, offline.
doNotDisturb - state of do not Disturb Mode
@@ -996,8 +1096,9 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
flowsetVersionAtDevice - currently installed version of the flowsets on the Android device
incomingCallerName - Callername from last Call
incomingCallerNumber - Callernumber from last Call
- incommingWhatsAppMessageFrom - last WhatsApp message
- incommingWhatsTelegramMessageFrom - last telegram message
+ incomingWhatsAppMessage - last WhatsApp message
+ incomingTelegramMessage - last telegram message
+ incomingSmsMessage - last SMS message
intentRadioName - name of the most-recent streamed intent radio
intentRadioState - state of intent radio player
keyguardSet - 0/1 keyguard set, 0=no 1=yes, does not indicate whether it is currently active
@@ -1009,16 +1110,16 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
nextAlarmState - alert/done, current state of "Clock" stock-app
nextAlarmTime - currently set time of alarm
nfc - state of nfc service on/off
- nfcLastTagID - nfc_id of last scan nfc Tag / In order for the ID to be recognized correctly, the trigger NFC TagIDs must be processed in Flow NFC Tag Support and the TagId's Commase-separated must be entered.
+ nfcLastTagID - nfc_id of last scan nfc Tag / In order for the ID to be recognized correctly, the trigger NFC TagIDs must be processed in Flow NFC Tag Support and the TagId's Commase-separated must be entered. (Automagic only)
powerLevel - state of battery in %
powerPlugged - 0=no/1,2=yes, power supply connected
screen - on locked,unlocked/off locked,unlocked, state of display
screenBrightness - 0-255, level of screen-brightness
- screenFullscreen - on/off, full screen mode
+ screenFullscreen - on/off, full screen mode (Automagic only)
screenOrientation - Landscape/Portrait, screen orientation (horizontal,vertical)
screenOrientationMode - auto/manual, mode for screen orientation
state - current state of AMAD device
- userFlowState - current state of a Flow, established under setUserFlowState Attribut
+ userFlowState - current state of a Flow, established under setUserFlowState Attribut (Automagic only)
volume - media volume setting
volumeNotification - notification volume setting
wiredHeadsetPlugged - 0/1 headset plugged out or in
@@ -1033,19 +1134,15 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
activateVoiceInput - start voice input on Android device
bluetooth - on/off, switch bluetooth on/off
- clearNotificationBar - All/Automagic, deletes all or only Automagic notifications in status bar
+ clearNotificationBar - All/Automagic, deletes all or only Automagic/Tasker notifications in status bar
closeCall - hang up a running call
- currentFlowsetUpdate - start flowset update on Android device
- installFlowSource - install a Automagic flow on device, XML file must be stored in /tmp/ with extension xml . Example: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml
+ currentFlowsetUpdate - start flowset/Tasker-project update on Android device
+ installFlowSource - install a Automagic flow on device, XML file must be stored in /tmp/ with extension xml . Example: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml (Automagic only)
doNotDisturb - sets the do not Disturb Mode, always Disturb, never Disturb, alarmClockOnly alarm Clock only, onlyImportant only important Disturbs
- mediaAmazonMusic - play/stop/next/back , controlling the amazon music media player
- mediaGoogleMusic - play/stop/next/back , controlling the google play music media player
- mediaSpotifyMusic - play/stop/next/back , controlling the spotify media player
- mediaTuneinRadio - play/stop/next/back , controlling the TuneinRadio media player
- mediaAldiMusic - play/stop/next/back , controlling the Aldi music media player
- mediaAudible - play/stop/next/back , controlling the Audible media player
- mediaYouTube - play/stop/next/back , controlling the YouTube media player
- mediaVlcPlayer - play/stop/next/back , controlling the VLC media player
+ mediaPlay - play command to media App
+ mediaStop - stop command to media App
+ mediaNext - skip Forward command to media App
+ mediaBack - skip Backward to media App
nextAlarmTime - sets the alarm time. Only valid for the next 24 hours.
notifySndFile - plays a media-file which by default needs to be stored in the folder "/storage/emulated/0/Notifications/" of the Android device. You may use the attribute setNotifySndFilePath for defining a different folder.
openCall - initial a call and hang up after optional time / set DEVICE openCall 0176354 10 call this number and hang up after 10s
@@ -1057,8 +1154,8 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
statusRequest - Get a new status report of Android device. Not all readings can be updated using a statusRequest as some readings are only updated if the value of the reading changes.
timer - set a countdown timer in the "Clock" stock app. Only minutes are allowed as parameter.
ttsMsg - send a message which will be played as voice message (to change laguage temporary set first character &en; or &de;)
- userFlowState - set Flow/s active or inactive,set Nexus7Wohnzimmer Badezimmer:inactive vorheizen or set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
- userFlowRun - executes the specified flow
+ userFlowState - set Flow/Tasker-profile active or inactive,set Nexus7Wohnzimmer Badezimmer:inactive vorheizen or set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
+ userFlowRun - executes the specified flow/task
vibrate - vibrate Android device
volume - set media volume. Works on internal speaker or, if connected, bluetooth speaker or speaker connected via stereo jack
volumeNotification - set notifications volume
@@ -1066,13 +1163,13 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
Set (depending on attribute values)
- changetoBtDevice - switch to another bluetooth device. Attribute setBluetoothDevice needs to be set. See note below!
+ changetoBtDevice - switch to another bluetooth device. Attribute setBluetoothDevice needs to be set. See note below! (Automagic only)
nfc - activate or deactivate the nfc Modul on/off. attribute root
openApp - start an app. attribute setOpenApp
openURL - opens a URLS in the standard browser as long as no other browser is set by the attribute setOpenUrlBrowser .Example: attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, first parameter: package name, second parameter: Class Name
- screen - on/off/lock/unlock, switch screen on/off or lock/unlock screen. In Automagic "Preferences" the "Device admin functions" need to be enabled, otherwise "Screen off" does not work. attribute setScreenOnForTimer changes the time the display remains switched on!
- screenFullscreen - on/off, activates/deactivates full screen mode. attribute setFullscreen
- screenLock - Locks screen with request for PIN. attribute setScreenlockPIN - enter PIN here. Only use numbers, 4-16 numbers required.
+ screen - on/off/lock/unlock, switch screen on/off or lock/unlock screen. In Automagic "Preferences" the "Device admin functions" need to be enabled, otherwise "Screen off" does not work. attribute setScreenOnForTimer changes the time the display remains switched on! (Tasker supports only "off" command)
+ screenFullscreen - on/off, activates/deactivates full screen mode. attribute setFullscreen (Automagic only)
+ screenLock - Locks screen with request for PIN. attribute setScreenlockPIN - enter PIN here. Only use numbers, 4-16 numbers required. (Automagic only)
screenOrientation - Auto,Landscape,Portait, set screen orientation (automatic, horizontal, vertical). attribute setScreenOrientation
system - issue system command (only with rooted Android devices). reboot,shutdown,airplanemodeON (can only be switched ON) attribute root , in Automagic "Preferences" "Root functions" need to be enabled.
takePicture - take a camera picture Attribut setTakePictureResolution
@@ -1081,12 +1178,13 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
Attribut
- setAPSSID - set WLAN AccesPoint SSID to prevent WLAN sleeps
+ setAPSSID - set WLAN AccesPoint SSID to prevent WLAN sleeps (Automagic only)
setNotifySndFilePath - set systempath to notifyfile (default /storage/emulated/0/Notifications/
- setTtsMsgSpeed - set speaking speed for TTS (Value between 0.5 - 4.0, 0.5 Step) default is 1.0
+ setTtsMsgSpeed - set speaking speed for TTS (For Automagic: Value between 0.5 - 4.0, 0.5 Step, default: 1.0)(For Tasker: Value between 1 - 10, 1 Step, default: 5)
setTtsMsgLang - set speaking language for TTS, de or en (default is de)
setTtsMsgVol - is set, change automatically the media audio end set it back
- set setTakePictureResolution - set the camera resolution for takePicture action
+ set setTakePictureResolution - set the camera resolution for takePicture action (800x600,1024x768,1280x720,1600x1200,1920x1080)
+ setTakePictureCamera - which camera do you use (Back,Front).
To be able to use "openApp" the corresponding attribute "setOpenApp" needs to contain the app package name.
@@ -1117,19 +1215,28 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
AMADDevice - Automagic Android Device
- Dieses Modul liefert, in Verbindung mit der Android APP Automagic , diverse Informationen von Android Geräten.
- Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
+ Dieses Modul liefert, in Verbindung mit der Android APP Automagic oder Tasker , diverse Informationen von Android Geräten.
+ Die Android APP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
- Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADDeviceCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern.
+ Mit etwas Einarbeitung können jegliche Informationen welche Automagic/Tasker bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows/Task welcher seine Daten an die AMADDeviceCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern.
- Für all diese Aktionen und Informationen wird auf dem Androidgerät "Automagic" und ein so genannter Flow benötigt. Die App ist über den Google PlayStore zu beziehen. Das benötigte Flowset bekommt man aus dem FHEM Verzeichnis.
+ Für all diese Aktionen und Informationen wird auf dem Androidgerät "Automagic/Tasker" und ein so genannter Flow/Task benötigt. Die App ist über den Google PlayStore zu beziehen. Das benötigte Flowset/Tasker-Projekt bekommt man aus dem FHEM Verzeichnis.
Wie genau verwendet man nun AMADDevice?
stelle sicher das als aller erstes die AMADCommBridge in FHEM definiert wurde
- installiere die App "Automagic Premium" aus dem PlayStore.
- installiere das Flowset 74_AMADDeviceautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät
- aktiviere den Installationsassistanten Flow in Automagic. Wenn man nun Automagic in den Hintergrund schickt, z.B. Hometaste drücken, startet der Assistant und legt automatisch ein Device für das Androidgerät an.
+ Bei verwendung von Autoremote
+
+ installiere die App "Automagic Premium" aus dem PlayStore.
+ installiere das Flowset 74_AMADDeviceautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät
+ aktiviere den Installationsassistanten Flow in Automagic. Wenn man nun Automagic in den Hintergrund schickt, z.B. Hometaste drücken, startet der Assistant und legt automatisch ein Device für das Androidgerät an.
+
+ Bei verwendung von Tasker
+
+ installiere die App "Tasker" aus dem PlayStore.
+ installiere das Tasker Projekt 74_AMADtaskerset_$VERSION.prj.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidgerät
+ Starte den Task "AMAD", es erscheint eine Eingabemaske in der alle Einstellungen vorgenommen werden können, durch einen Klick auf "create Device" wird das Gerät in FHEM erstellt.
+
Ein AMADDevice Gerät von Hand anlegen.
@@ -1145,7 +1252,7 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
define WandTabletWohnzimmer AMADDevice 192.168.0.23 123456 IODev=NAME_des_AMADCommBridge_Devices
- In diesem Fall wird ein AMADDevice von Hand angelegt. Die AMAD_ID, hier 123456, muß auch exakt so als globale Variable in Automagic eingetragen sein.
+ In diesem Fall wird ein AMADDevice von Hand angelegt. Die AMAD_ID, hier 123456, muß auch exakt so als globale Variable in Automagic/Tasker eingetragen sein.
@@ -1153,19 +1260,19 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
airplanemode - Status des Flugmodus
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
+ automagicState - Statusmeldungen von der Automagic oder Tasker App (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/Tasker gesetzt werden
+ batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=Überhitzt, 4=tot, 5=Überspannung, 6=unbekannter Fehler, 7=kalt) (nur Automagic)
+ batterytemperature - Temperatur der Batterie (nur Automagic)
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
- connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte
- currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers
- currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music)
- currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers
- currentMusicIcon - Cover vom aktuell abgespielten Album Noch nicht fertig implementiert
- currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers
- currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers
+ checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, siehe Hinweis unten (nur Automagic)
+ connectedBTdevices - eine Liste der verbundenen Gerät (nur Automagic)
+ connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte (nur Automagic)
+ currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers (nur Automagic)
+ currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music) (nur Automagic)
+ currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers (nur Automagic)
+ currentMusicIcon - Cover vom aktuell abgespielten Album Noch nicht fertig implementiert (nur Automagic)
+ currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers (nur Automagic)
+ currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers (nur Automagic)
daydream - on/off, Daydream gestartet oder nicht
deviceState - Status des Androidgerätes. unknown, online, offline.
doNotDisturb - aktueller Status des nicht stören Modus
@@ -1175,8 +1282,9 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
flowsetVersionAtDevice - aktuell installierte Flowsetversion auf dem Device
incomingCallerName - Anrufername des eingehenden Anrufes
incomingCallerNumber - Anrufernummer des eingehenden Anrufes
- incommingWhatsAppMessageFrom - letzte WhatsApp Nachricht
- incommingWhatsTelegramMessageFrom - letzte Telegram Nachricht
+ incomingWhatsAppMessage - letzte WhatsApp Nachricht
+ incomingTelegramMessage - letzte Telegram Nachricht
+ incomingSmsMessage - letzte SMS Nachricht
intentRadioName - zuletzt gesrreamter Intent Radio Name
intentRadioState - Status des IntentRadio Players
keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist
@@ -1188,16 +1296,16 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
nextAlarmState - aktueller Status des "Androidinternen" Weckers
nextAlarmTime - aktive Alarmzeit
nfc - Status des NFC on/off
- nfcLastTagID - nfc_id des zu letzt gescannten Tag's / Damit die ID korrekt erkannt wird muss im Flow NFC Tag Support der Trigger NFC TagIDs bearbeitet werden und die TagId's Kommasepariert eingetragen werden.
+ nfcLastTagID - nfc_id des zu letzt gescannten Tag's / Damit die ID korrekt erkannt wird muss im Flow NFC Tag Support der Trigger NFC TagIDs bearbeitet werden und die TagId's Kommasepariert eingetragen werden. (nur Automagic)
powerLevel - Status der Batterie in %
powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA
screen - on locked/unlocked, off locked/unlocked gibt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt
screenBrightness - Bildschirmhelligkeit von 0-255
- screenFullscreen - on/off, Vollbildmodus (An,Aus)
+ screenFullscreen - on/off, Vollbildmodus (An,Aus) (nur Automagic)
screenOrientation - Landscape,Portrait, Bildschirmausrichtung (Horizontal,Vertikal)
screenOrientationMode - auto/manual, Modus für die Ausrichtung (Automatisch, Manuell)
state - aktueller Status
- userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut
+ userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut (nur Automagic)
volume - Media Lautstärkewert
volumeNotification - Benachrichtigungs Lautstärke
wiredHeadsetPlugged - 0/1 gibt an ob ein Headset eingesteckt ist oder nicht
@@ -1212,19 +1320,15 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
activateVoiceInput - aktiviert die Spracheingabe
bluetooth - on/off, aktiviert/deaktiviert Bluetooth
- clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste
+ clearNotificationBar - All,Automagic, löscht alle Meldungen oder nur die Automagic/Tasker Meldungen in der Statusleiste
closeCall - beendet einen laufenden Anruf
- currentFlowsetUpdate - fürt ein Flowsetupdate auf dem Device durch
+ currentFlowsetUpdate - fürt ein Flowset/Tasker-Projekt update auf dem Device durch
doNotDisturb - schaltet den nicht stören Modus, always immer stören, never niemals stören, alarmClockOnly nur Wecker darf stören, onlyImportant nur wichtige Störungen
- installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben . Bsp: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml
- mediaAmazonMusic - play, stop, next, back ,steuert den Amazon Musik Mediaplayer
- mediaGoogleMusic - play, stop, next, back ,steuert den Google Play Musik Mediaplayer
- mediaSpotifyMusic - play, stop, next, back ,steuert den Spotify Mediaplayer
- mediaTuneinRadio - play, stop, next, back ,steuert den TuneIn Radio Mediaplayer
- mediaAldiMusic - play, stop, next, back ,steuert den Aldi Musik Mediaplayer
- mediaAudible - play, stop, next, back ,steuert den Audible Mediaplayer
- mediaYouTube - play, stop, next, back ,steuert den YouTube Mediaplayer
- mediaVlcPlayer - play, stop, next, back ,steuert den VLC Mediaplayer
+ installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben . Bsp: set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml (nur Automagic)
+ mediaPlay - play Befehl zur Media App
+ mediaStop - stop Befehl zur Media App
+ mediaNext - nächster Titel Befehl zur Media App
+ mediaBack - vorheriger Titel zur Media App
nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der nächsten 24Std.
openCall - ruft eine Nummer an und legt optional nach X Sekunden auf / set DEVICE openCall 01736458 10 / ruft die Nummer an und beendet den Anruf nach 10s
screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.
@@ -1235,26 +1339,26 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder.
timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Minuten angegeben werden.
ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird (um die Sprache für diese eine Durchsage zu ändern setze vor Deinem eigentlichen Text &en; oder &de;)
- userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,set Nexus7Wohnzimmer Badezimmer vorheizen:inactive oder set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
- userFlowRun - führt den angegebenen Flow aus
+ userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows/Tasker-Profile,set Nexus7Wohnzimmer Badezimmer vorheizen:inactive oder set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
+ userFlowRun - führt den angegebenen Flow/Task aus
vibrate - lässt das Androidgerät vibrieren
volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautstärke um den Wert. Der maximale Sliderwert kann über das Attribut setVolMax geregelt werden.
- volumeUp - erhöh;t die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
+ volumeUp - erhöht die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
volumeDown - reduziert die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
volumeNotification - setzt die Benachrichtigungslautstärke.
Set abhängig von gesetzten Attributen
- changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten!
+ changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten! (nur Automagic)
notifySndFile - spielt die angegebene Mediadatei auf dem Androidgerät ab. Die aufzurufende Mediadatei sollte sich im Ordner /storage/emulated/0/Notifications/ befinden. Ist dies nicht der Fall kann man über das Attribut setNotifySndFilePath einen Pfad vorgeben.
nfc - schaltet nfc an oder aus /on/offAttribut root
openApp - öffnet eine ausgewählte App. Attribut setOpenApp
openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das Attribut setOpenUrlBrowser ausgewählt wurde. Bsp: attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, das erste ist der Package Name und das zweite der Class Name
- screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht. Attribut setScreenOnForTimer ändert die Zeit wie lange das Display an bleiben soll!
+ screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht. Attribut setScreenOnForTimer ändert die Zeit wie lange das Display an bleiben soll! (Tasker unterstützt nur "screen off")
screenFullscreen - on/off, (aktiviert/deaktiviert) den Vollbildmodus. Attribut setFullscreen
screenLock - Sperrt den Bildschirm mit Pinabfrage. Attribut setScreenlockPIN - hier die Pin dafür eingeben. Erlaubt sind nur Zahlen. Es müßen mindestens 4, bis max 16 Zeichen verwendet werden.
- screenOrientation - Auto,Landscape,Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). Attribut setScreenOrientation
+ screenOrientation - Auto,Landscape,Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). Attribut setScreenOrientation (Tasker unterstützt nur Auto on/off)
system - setzt Systembefehle ab (nur bei gerootetet Geräen). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) Attribut root , in den Automagic Einstellungen muss "Root Funktion" gesetzt werden
takePicture - löst die Kamera aus für ein Foto Attribut setTakePictureResolution
@@ -1263,15 +1367,16 @@ sub AMADDevice_CreateChangeBtDeviceValue($$) {
Attribute
setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/
- setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0
+ setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Für Automagic: Werte zwischen 0.5 bis 4.0 in 0.5er Schritten, default:1.0)(Für Tasker: Werte zwischen 1 bis 10 in 1er Schritten, default:5)
setTtsMsgLang - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)
setTtsMsgVol - wenn gesetzt wird der Wert als neues Media Volume fü die Sprachansage verwendet und danach wieder der alte Wert eingestellt
setVolUpDownStep - setzt den Step für volumeUp und volumeDown
setVolMax - setzt die maximale Volume Gr&uoml;e für den Slider
setNotifyVolMax - setzt den maximalen Lautstärkewert für Benachrichtigungslautstärke für den Slider
setRingSoundVolMax - setzt den maximalen Lautstärkewert für Klingellautstärke für den Slider
- setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern
- setTakePictureResolution - welche Kameraauflösung soll verwendet werden?
+ setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern (nur Automagic)
+ setTakePictureResolution - welche Kameraauflösung soll verwendet werden? (800x600,1024x768,1280x720,1600x1200,1920x1080)
+ setTakePictureCamera - welche Kamera soll verwendet werden (Back,Front).
Um openApp verwenden zu können, muss als Attribut der Package Name der App angegeben werden.
diff --git a/74_AMADautomagicFlowset_4.2.0.xml b/74_AMADautomagicFlowset_4.2.0.xml
new file mode 100644
index 0000000..68650c4
--- /dev/null
+++ b/74_AMADautomagicFlowset_4.2.0.xml
@@ -0,0 +1,5278 @@
+
+
+
+ true
+ Akku Ladestand: grösser als 0%
+ true
+ 0
+ HIGHER_THAN
+ true
+ true
+
+
+ false
+ App Task Beendet
+ true
+ CLASSIC
+ *
+
+
+ true
+ App Task Beendet: ch.gridvision.ppam.androidautomagic
+ false
+ CLASSIC
+ ch.gridvision.ppam.androidautomagic
+
+
+ false
+ App Task Gestartet
+ true
+ CLASSIC
+ *
+
+
+ true
+ Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic
+ true
+ ch.gridvision.ppam.androidautomagic
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ false
+
+
+ true
+ Benachrichtigung in Statusbar angezeigt: com.whatsapp
+ true
+ com.whatsapp
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ true
+
+
+ true
+ Benachrichtigung in Statusbar angezeigt: org.telegram.messenger
+ true
+ org.telegram.messenger
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ true
+
+
+ true
+ Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic
+ true
+ ch.gridvision.ppam.androidautomagic
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ false
+
+
+ true
+ Bluetooth Gerät getrennt: Alle Geräte
+ true
+ true
+
+
+
+
+ true
+ Bluetooth Gerät verbunden: Alle Geräte
+ true
+ true
+
+
+
+
+ true
+ Bluetooth Status: Schaltet aus, Aus
+ true
+ false
+ false
+ true
+ true
+
+
+ true
+ Bluetooth Status: Schaltet ein, Ein
+ true
+ true
+ true
+ false
+ false
+
+
+ true
+ Daydream Status: Gestartet
+ true
+ true
+
+
+ true
+ Daydream Status: Gestoppt
+ true
+ false
+
+
+ true
+ Display Orientierung: Landscape
+ true
+ false
+
+
+ true
+ Display Orientierung: Portrait
+ true
+ true
+
+
+ true
+ Display Status: Aus
+ true
+ false
+
+
+ true
+ Display Status: Ein
+ true
+ true
+
+
+ true
+ Dock Event: Docked
+ true
+ true
+
+
+ true
+ Dock Event: Undocked
+ true
+ false
+
+
+ true
+ Eingehender Anruf. Status: Klingelt, Nummern: Alle
+ true
+ true
+
+ true
+ true
+ false
+ false
+ false
+
+
+ true
+ Flugmodus: Aus
+ true
+ false
+
+
+ true
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT
+ true
+ com.android.deskclock.ALARM_ALERT
+
+
+
+
+
+
+
+
+ false
+
+
+ true
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS
+ true
+ com.android.deskclock.ALARM_DISMISS
+
+
+
+
+
+
+
+
+ false
+
+
+ true
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE
+ true
+ com.android.deskclock.ALARM_DONE
+
+
+
+
+
+
+
+
+ false
+
+
+ true
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE
+ true
+ com.android.deskclock.ALARM_SNOOZE
+
+
+
+
+
+
+
+
+ false
+
+
+ true
+ Genereller Broadcast: wenn org.smblott.intentradio.STATE
+ true
+ org.smblott.intentradio.STATE
+
+
+
+
+
+
+
+ irstate=getString("state");
+irname=getString("name")
+ false
+
+
+ false
+ HTTP Request: /fhem-amad/deviceInfo/
+ true
+ /fhem-amad/deviceInfo/
+ 8090
+ true
+
+
+ false
+ HTTP Request: /fhem-amad/setCommands/*
+ true
+ /fhem-amad/setCommands/*
+ 8090
+ true
+
+
+ false
+ Kabelgebundenes Headset Getrennt
+ true
+ false
+
+
+ false
+ Kabelgebundenes Headset Verbunden
+ true
+ true
+
+
+ false
+ Medien Session verändert
+ true
+ com.amazon.mp3,com.audible.application,com.rhapsody.alditalk,com.sec.android.app.music,com.spotify.music,de.maxdome.app.android,com.google.android.videos,com.google.android.music,org.smblott.intentradioio,com.amazon.avod.thirdpartyclient,tunein.player,org.videolan.vlc,com.google.android.youtube,com.google.android.apps.youtube.kids,deezer.android.app
+
+
+ false
+ NFC State
+ true
+ true
+ true
+ true
+ true
+
+
+ false
+ NFC TagIDs
+ true
+ false
+ TAG_123
+
+
+
+ false
+ Periodischer Timer: alle 120s
+ true
+ 120000
+ true
+ false
+ false
+ Mon
+ Tue
+ Wed
+ Thu
+ Fri
+ Sat
+ Sun
+ 8
+ 0
+ 17
+ 0
+ true
+ false
+
+
+ false
+ SMS Empfangen: Alle
+ true
+ true
+
+
+ false
+
+
+ true
+ Sprachbefehl angefordert
+ true
+
+
+ true
+ Stromversorgung: Angeschlossen
+ true
+ true
+ true
+ true
+ true
+
+
+ true
+ Stromversorgung: Entfernt
+ true
+ false
+ true
+ true
+ true
+
+
+ false
+ Systemeinstellung verändert: System next_alarm
+ true
+ SYSTEM
+ next_alarm_formatted
+ setting
+
+
+ true
+ Systemeinstellung verändert: System screen_brightness
+ true
+ SYSTEM
+ screen_brightness
+ screenBrightness
+
+
+ true
+ Systemeinstellung verändert: System volume_music_bt_a2dp
+ true
+ SYSTEM
+ volume_music_bt_a2dp
+ volume
+
+
+ true
+ Systemeinstellung verändert: System volume_music_headphone
+ true
+ SYSTEM
+ volume_music_headphone
+ volume
+
+
+ false
+ Systemeinstellung verändert: System volume_music_headset
+ true
+ SYSTEM
+ volume_music_headset
+ volume
+
+
+ true
+ Systemeinstellung verändert: System volume_music_speaker
+ true
+ SYSTEM
+ volume_music_speaker
+ volume
+
+
+ true
+ Systemeinstellung verändert: System volume_ring
+ true
+ SYSTEM
+ volume_ring
+ volumeRingSound
+
+
+ true
+ Systemeinstellung verändert: System volume_ring_speaker
+ true
+ SYSTEM
+ volume_ring_speaker
+ volumeNotification
+
+
+ true
+ Unterbrechnungen-Modus: Alle / Immer unterbrechen
+ true
+ OFF
+
+
+ true
+ Unterbrechnungen-Modus: Keine / Nicht unterbrechen
+ true
+ NO_INTERRUPTIONS
+
+
+ true
+ Unterbrechnungen-Modus: Nur Wecker (Android 6+)
+ true
+ ALARMS_ONLY
+
+
+ true
+ Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
+ true
+ IMPORTANT_INTERRUPTIONS
+
+
+ false
+ WLAN Getrennt: toGo
+ true
+ false
+ {global_apssid}
+
+
+ false
+ WLAN Verbunden: toGo
+ true
+ false
+ {global_apssid}
+
+
+ false
+ App Task läuft: App (neuster)
+ CLASSIC
+ {param_app}
+ true
+
+
+ true
+ App Task läuft: {global_activetask} (neuster)
+ CLASSIC
+ {global_activetask}
+ true
+
+
+ false
+ Benachrichtigung in Statusbar angezeigt: Automagic
+ ch.gridvision.ppam.androidautomagic
+ true
+ 1
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ false
+
+
+ false
+ Benachrichtigung in Statusbar angezeigt: Telegram Messenger
+ org.telegram.messenger
+ true
+ 1
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ false
+
+
+ false
+ Benachrichtigung in Statusbar angezeigt: WhatsApp
+ com.whatsapp
+ true
+ 1
+ TEXT
+ CONTAINS_TEXT
+
+ false
+ false
+
+
+ true
+ Bluetooth eingeschaltet
+
+
+ true
+ Bluetooth Gerät verbunden: Beliebiges Geräte
+ true
+
+
+ ANY
+
+
+ true
+ Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)
+ true
+
+
+ A2DP
+
+
+ true
+ Display automatisch drehen eingeschaltet
+
+
+ true
+ Display eingeschaltet
+
+
+ true
+ Display Orientierung: Portrait
+ true
+
+
+ true
+ Dock Status: Docked
+ true
+ true
+ true
+ true
+ true
+ false
+
+
+ true
+ Expression: airpcount < 11
+ airpcount < 11
+
+
+ false
+ Expression: Airplanemode
+ param_syscmd == "airplanemodeON"
+
+
+ false
+ Expression: All
+ param_app == "All"
+
+
+ true
+ Expression: amadcmd == "firstrun"
+ amadcmd == "firstrun"
+
+
+ false
+ Expression: Automagic
+ param_app == "Automagic"
+
+
+ false
+ Expression: Clear Automagic Meldungen"
+ request_path == "/fhem-amad/setCommands/clearnotificationbar"
+
+
+ false
+ Expression: closeCall"
+ request_path == "/fhem-amad/setCommands/closeCall"
+
+
+ true
+ Expression: contains(value, " und ")
+ contains(value, " und ")
+
+
+ false
+ Expression: currentFlowsetUpdate"
+ request_path == "/fhem-amad/setCommands/currentFlowsetUpdate"
+
+
+ false
+ Expression: do not Disturb"
+ request_path == "/fhem-amad/setCommands/donotdisturb"
+
+
+ true
+ Expression: fhemcmd == "fhemfunc"
+ fhemcmd == "fhemfunc"
+
+
+ true
+ Expression: fhemcmd == "readingsval"
+ fhemcmd == "readingsval"
+
+
+ true
+ Expression: fhemcmd == "set"
+ fhemcmd == "set"
+
+
+ true
+ Expression: fhemcmd == "setreading"
+ fhemcmd == "setreading"
+
+
+ true
+ Expression: fhemcmd == "voiceinputvalue"
+ fhemcmd == "voiceinputvalue"
+
+
+ false
+ Expression: flowRun"
+ request_path == "/fhem-amad/setCommands/flowRun"
+
+
+ false
+ Expression: flowState"
+ request_path == "/fhem-amad/setCommands/flowState"
+
+
+ true
+ Expression: getAndroidSDKVersion() >= "16"
+ getAndroidSDKVersion() >= "16"
+
+
+ true
+ Expression: getAndroidSDKVersion() >= "19"
+ getAndroidSDKVersion() >= "19"
+
+
+ true
+ Expression: getAndroidSDKVersion() >= "21"
+ getAndroidSDKVersion() >= "21"
+
+
+ true
+ Expression: global_activetask != null
+ global_activetask != null
+
+
+ true
+ Expression: global_fhemctlmode != "thirdPartControl"
+ global_fhemctlmode != "thirdPartControl"
+
+
+ true
+ Expression: global_fhemip != null or global_bridgeport != null
+ global_fhemip != null or global_bridgeport != null
+
+
+ true
+ Expression: global_userflowstate != "none"
+ global_userflowstate != "none"
+
+
+ true
+ Expression: header_amadid == {global_amadid}
+ header_amadid == {global_amadid}
+
+
+ false
+ Expression: installFlow"
+ request_path == "/fhem-amad/setCommands/installFlow"
+
+
+ true
+ Expression: keyguard == "locked"
+ keyguard == "locked"
+
+
+ true
+ Expression: Leon == "Gaultier"
+ Leon == "Gaultier"
+
+
+ false
+ Expression: multimediaControl"
+ request_path == "/fhem-amad/setCommands/multimediaControl"
+
+
+ false
+ Expression: nfc"
+ request_path == "/fhem-amad/setCommands/setnfc"
+
+
+ false
+ Expression: notifysnd"
+ request_path == "/fhem-amad/setCommands/playnotifysnd"
+
+
+ false
+ Expression: openApp"
+ request_path == "/fhem-amad/setCommands/openApp"
+
+
+ false
+ Expression: openCall"
+ request_path == "/fhem-amad/setCommands/openCall"
+
+
+ false
+ Expression: openURL"
+ request_path == "/fhem-amad/setCommands/openURL"
+
+
+ true
+ Expression: package_name == {global_activetask}
+ package_name == {global_activetask}
+
+
+ true
+ Expression: param_bluetooth == "off"
+ param_bluetooth == "off"
+
+
+ true
+ Expression: param_bluetooth == "on"
+ param_bluetooth == "on"
+
+
+ true
+ Expression: param_button == "mediaBack"
+ param_button == "mediaBack"
+
+
+ true
+ Expression: param_button == "mediaNext"
+ param_button == "mediaNext"
+
+
+ true
+ Expression: param_button == "mediaPlay"
+ param_button == "mediaPlay"
+
+
+ true
+ Expression: param_button == "mediaStop"
+ param_button == "mediaStop"
+
+
+ true
+ Expression: param_disturbmod == "alarmClockOnly"
+ param_disturbmod == "alarmClockOnly"
+
+
+ true
+ Expression: param_disturbmod == "always"
+ param_disturbmod == "always"
+
+
+ true
+ Expression: param_disturbmod == "never"
+ param_disturbmod == "never"
+
+
+ true
+ Expression: param_disturbmod == "onlyImportant"
+ param_disturbmod == "onlyImportant"
+
+
+ true
+ Expression: param_flowstate == "active"
+ param_flowstate == "active"
+
+
+ true
+ Expression: param_flowstate == "active" or param_flowstate == "inactive"
+ param_flowstate == "active" or param_flowstate == "inactive"
+
+
+ true
+ Expression: param_fullscreen == "off"
+ param_fullscreen == "off"
+
+
+ true
+ Expression: param_fullscreen == "on"
+ param_fullscreen == "on"
+
+
+ true
+ Expression: param_lockmod == "lock"
+ param_lockmod == "lock"
+
+
+ false
+ Expression: param_msgvol == "none"
+ param_msgvol == "none"
+
+
+ true
+ Expression: param_nfc == "off"
+ param_nfc == "off"
+
+
+ true
+ Expression: param_nfc == "on"
+ param_nfc == "on"
+
+
+ true
+ Expression: param_notifyfile == "RedAlert.mp3"
+ param_notifyfile == "RedAlert.mp3"
+
+
+ false
+ Expression: param_option
+ param_hanguptime != "none"
+
+
+ true
+ Expression: param_orientation == "auto"
+ param_orientation == "auto"
+
+
+ true
+ Expression: param_orientation == "landscape"
+ param_orientation == "landscape"
+
+
+ true
+ Expression: param_orientation == "portrait"
+ param_orientation == "portrait"
+
+
+ true
+ Expression: param_picturecamera == "Back"
+ param_picturecamera == "Back"
+
+
+ true
+ Expression: param_pictureresolution == "1024x768"
+ param_pictureresolution == "1024x768"
+
+
+ true
+ Expression: param_pictureresolution == "1280x720"
+ param_pictureresolution == "1280x720"
+
+
+ true
+ Expression: param_pictureresolution == "1600x1200"
+ param_pictureresolution == "1600x1200"
+
+
+ true
+ Expression: param_pictureresolution == "1920x1080"
+ param_pictureresolution == "1920x1080"
+
+
+ true
+ Expression: param_pictureresolution == "800x600"
+ param_pictureresolution == "800x600"
+
+
+ true
+ Expression: param_screen=="off"
+ param_screen=="off"
+
+
+ true
+ Expression: param_screen=="on"
+ param_screen=="on"
+
+
+ false
+ Expression: Reboot
+ param_syscmd == "reboot"
+
+
+ true
+ Expression: respreadingsval != "kaputt" and respreadingsval != "none"
+ respreadingsval != "kaputt" and respreadingsval != "none"
+
+
+ true
+ Expression: respreadingsval == "online"
+ respreadingsval == "online"
+
+
+ true
+ Expression: scrcount < 5
+ scrcount < 5
+
+
+ false
+ Expression: screenMsg"
+ request_path == "/fhem-amad/setCommands/screenMsg"
+
+
+ false
+ Expression: sendIntent"
+ request_path == "/fhem-amad/setCommands/sendIntent"
+
+
+ false
+ Expression: sendSms"
+ request_path == "/fhem-amad/setCommands/sendSms"
+
+
+ false
+ Expression: setAlarm"
+ request_path == "/fhem-amad/setCommands/setAlarm"
+
+
+ false
+ Expression: setBluetooth"
+ request_path == "/fhem-amad/setCommands/setbluetooth"
+
+
+ false
+ Expression: setBrightness"
+ request_path == "/fhem-amad/setCommands/setBrightness"
+
+
+ false
+ Expression: setBTDevice"
+ request_path == "/fhem-amad/setCommands/setbtdevice"
+
+
+ false
+ Expression: setNotifiVolume"
+ request_path == "/fhem-amad/setCommands/setNotifiVolume"
+
+
+ false
+ Expression: setRingSoundVolume"
+ request_path == "/fhem-amad/setCommands/setRingSoundVolume"
+
+
+ false
+ Expression: setScreenFullscreen"
+ request_path == "/fhem-amad/setCommands/setScreenFullscreen"
+
+
+ false
+ Expression: setScreenlock"
+ request_path == "/fhem-amad/setCommands/screenlock"
+
+
+ false
+ Expression: setScreenOnOff"
+ request_path == "/fhem-amad/setCommands/setScreenOnOff"
+
+
+ false
+ Expression: setScreenOrientation"
+ request_path == "/fhem-amad/setCommands/setScreenOrientation"
+
+
+ false
+ Expression: setTimer"
+ request_path == "/fhem-amad/setCommands/setTimer"
+
+
+ false
+ Expression: setVibrate"
+ request_path == "/fhem-amad/setCommands/setvibrate"
+
+
+ false
+ Expression: setVoiceCommand"
+ request_path == "/fhem-amad/setCommands/setvoicecmd"
+
+
+ false
+ Expression: setVolume"
+ request_path == "/fhem-amad/setCommands/setVolume"
+
+
+ false
+ Expression: showhomescreen"
+ request_path == "/fhem-amad/setCommands/showhomescreen"
+
+
+ false
+ Expression: Shutdown
+ param_syscmd == "shutdown"
+
+
+ true
+ Expression: sprachassi == "ja"
+ sprachassi == "ja"
+
+
+ true
+ Expression: sprachassi == "nein"
+ sprachassi == "nein"
+
+
+ false
+ Expression: startDaydream"
+ request_path == "/fhem-amad/setCommands/startDaydream"
+
+
+ false
+ Expression: System Command"
+ request_path == "/fhem-amad/setCommands/systemcommand"
+
+
+ false
+ Expression: takepicture
+ request_path == "/fhem-amad/setCommands/takepicture"
+
+
+ true
+ Expression: togocount < 6
+ togocount < 6
+
+
+ true
+ Expression: trigger == "Akku Ladestand: grösser als 0%"
+ trigger == "Akku Ladestand: grösser als 0%"
+
+
+ true
+ Expression: trigger == "App Task Beendet" or trigger == "App Task Gestartet"
+ trigger == "App Task Beendet" or trigger == "App Task Gestartet"
+
+
+ true
+ Expression: trigger == "App Task Gestartet" or trigger == "Periodischer Timer: alle 120s"
+ trigger == "App Task Gestartet" or trigger == "Periodischer Timer: alle 120s"
+
+
+ true
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic"
+ or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
+ trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
+
+
+ true
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: org.telegram.messenger"
+ trigger == "Benachrichtigung in Statusbar angezeigt: org.telegram.messenger"
+
+
+ true
+ Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Gerät verbunden: Alle Geräte" or trigger == "Bluetooth Gerät getrennt: Alle Geräte" or trigger == "Bluetooth Status: Schaltet ein, Ein" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Bluetooth Status: Schaltet aus, Aus"
+ or trigger == "Bluetooth Gerät verbunden: Alle Geräte"
+ or trigger == "Bluetooth Gerät getrennt: Alle Geräte"
+ or trigger == "Bluetooth Status: Schaltet ein, Ein"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Daydream Status: Gestartet"
+ trigger == "Daydream Status: Gestartet"
+
+
+ true
+ Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"
+ trigger == "Daydream Status: Gestartet"
+ or trigger == "Daydream Status: Gestoppt"
+
+
+ true
+ Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Display Orientierung: Landscape"
+ or trigger == "Display Orientierung: Portrait"
+ or trigger == "Display Status: Ein"
+ or trigger == "Display Status: Aus"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Display Status: Aus"
+ or trigger == "Display Status: Ein"
+ or udef_trigger == "setLockPin"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Dock Event: Docked"
+ or trigger == "Dock Event: Undocked"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
+ trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
+
+
+ true
+ Expression: trigger == "Flugmodus: Aus" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Flugmodus: Aus"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ 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" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ 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"
+or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
+ trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
+
+
+ true
+ Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/" and header_amadid == {global_amadid}
+ trigger == "HTTP Request: /fhem-amad/deviceInfo/" and header_amadid == {global_amadid}
+
+
+ true
+ Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
+ trigger == "HTTP Request: /fhem-amad/setCommands/*"
+
+
+ true
+ Expression: trigger == "Kabelgebundenes Headset Verbunden" or trigger == "Kabelgebundenes Headset Getrennt"
+ trigger == "Kabelgebundenes Headset Verbunden" or trigger == "Kabelgebundenes Headset Getrennt"
+
+
+ true
+ Expression: trigger == "Medien Session verändert" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Medien Session verändert"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Periodischer Timer: alle 120s"
+ trigger == "Periodischer Timer: alle 120s"
+
+
+ true
+ Expression: trigger == "Periodischer Timer: alle 120s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Periodischer Timer: alle 120s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "SMS Empfangen: Alle"
+ trigger == "SMS Empfangen: Alle"
+
+
+ true
+ Expression: trigger == "Sprachbefehl angefordert"
+ trigger == "Sprachbefehl angefordert"
+
+
+ true
+ Expression: trigger == "Systemeinstellung verändert: System next_alarm" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ trigger == "Systemeinstellung verändert: System next_alarm"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "Systemeinstellung verändert: System screen_brightness"
+ trigger == "Systemeinstellung verändert: System screen_brightness"
+
+
+ true
+ 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" or trigger == "Systemeinstellung verändert: System volume_music_headset"
+ 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"
+ or trigger == "Systemeinstellung verändert: System volume_music_headset"
+
+
+ true
+ Expression: trigger == "Systemeinstellung verändert: System volume_ring"
+ trigger == "Systemeinstellung verändert: System volume_ring"
+
+
+ true
+ Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"
+ trigger == "Systemeinstellung verändert: System volume_ring_speaker"
+
+
+ true
+ 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" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ 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"
+or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: trigger == "WLAN Getrennt: toGo"
+ trigger == "WLAN Getrennt: toGo"
+
+
+ true
+ Expression: trigger == "WLAN Verbunden: toGo"
+ trigger == "WLAN Verbunden: toGo"
+
+
+ false
+ Expression: ttsMsg"
+ request_path == "/fhem-amad/setCommands/ttsMsg"
+
+
+ false
+ Expression: ttsMsgLang"
+ param_msglang == "en"
+
+
+ true
+ Expression: udef_trigger == "setLockPin" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ udef_trigger == "setLockPin"
+ or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+
+
+ true
+ Expression: value != ""
+ value != ""
+
+
+ true
+ Expression: value == "ja"
+ value == "ja"
+
+
+ true
+ Expression: value == "nein"
+ value == "nein"
+
+
+ true
+ Flow Aktiv: First Run Assistant
+ First Run Assistant
+
+
+ true
+ Flow Aktiv: Informations
+ Informations
+
+
+ true
+ Flow Aktiv: Send Data to AMADCommBridge
+ Send Data to AMADCommBridge
+
+
+ true
+ Flow Aktiv: SetCommands
+ SetCommands
+
+
+ true
+ Flow Aktiv: {global_userflowstate}
+ {global_userflowstate}
+
+
+ true
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
+ /sdcard
+ true
+ true
+ 1024
+
+
+ true
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
+ /storage/emulated/0
+ true
+ true
+ 1024
+
+
+ true
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
+ /storage/sdcard0
+ true
+ true
+ 1024
+
+
+ true
+ Host erreichbar: {global_fhemip}:{global_bridgeport}
+ SOCKET
+ {global_fhemip}
+ {global_bridgeport}
+
+
+ true
+ Kabelgebundenes Headset verbunden
+
+
+ true
+ Keyguard gesperrt
+
+
+ true
+ Keyguard mit Sicherheit
+
+
+ true
+ Musik Aktiv
+
+
+ true
+ Stromversorgung: Angeschlossen
+ true
+ true
+ true
+ true
+
+
+ true
+ Unterbrechnungen-Modus: Alle / Immer unterbrechen
+ OFF
+
+
+ true
+ Unterbrechnungen-Modus: Keine / Nicht unterbrechen
+ NO_INTERRUPTIONS
+
+
+ true
+ Unterbrechnungen-Modus: Nur Wecker (Android 6+)
+ ALARMS_ONLY
+
+
+ true
+ Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
+ IMPORTANT_INTERRUPTIONS
+
+
+ true
+ WLAN verfügbar: {global_apssid}
+ {global_apssid}
+
+
+ false
+ Abfrage
+ Send Data to AMADCommBridge
+
+ false
+ true
+ true
+
+
+ false
+ AMAD First Run Assistent Begrüßung
+ MUSIC
+ Hallo und herzlich willkommen beim Einrichtungs Assistenten von Fhem Amaad. Wenn Du fortfahren möchtest antworte einfach mit ja. Wenn nicht mit nein.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ false
+ AMAD Voice Control
+ true
+
+ true
+ de-DE
+ false
+
+
+ true
+ Anruf beenden
+
+
+ false
+ App Starten: App
+ {param_app}
+
+
+
+ true
+ Audio Player steuern: Medienknopf Play/Pause (/{kname})
+ true
+ TOGGLE_PAUSE
+ KEYCODE_MEDIA_PLAY_PAUSE
+ true
+ {pname}
+ {kname}
+
+
+
+ true
+ Audio Player steuern: Medienknopf Stopp ({pname}/{kname})
+ true
+ STOP
+ KEYCODE_MEDIA_STOP
+ true
+ {pname}
+ {kname}
+
+
+
+ true
+ Audio Player steuern: Medienknopf Weiter ({pname}/{kname})
+ true
+ NEXT
+ KEYCODE_MEDIA_NEXT
+ true
+ {pname}
+ {kname}
+
+
+
+ true
+ Audio Player steuern: Medienknopf Zurück ({pname}/{kname})
+ true
+ PREVIOUS
+ KEYCODE_MEDIA_PREVIOUS
+ true
+ {pname}
+ {kname}
+
+
+
+ true
+ Benachrichtigung auf Bildschirm: [AMAD2] Nicht mehr benötigte AMAD Flows wurden entfernt! (lange)
+ true
+ [AMAD2] Nicht mehr benötigte AMAD Flows wurden entfernt!
+
+ 200
+ 250
+ false
+ 1.0
+ true
+ false
+ TOP_LEFT
+ 0
+ 0
+
+
+ true
+ Benachrichtigung auf Bildschirm: {param_message} (lange)
+ true
+ {param_message}
+
+ 200
+ 250
+ false
+ 1.0
+ true
+ false
+ TOP_LEFT
+ 0
+ 0
+
+
+ true
+ Benachrichtigung auf Bildschirm: {value} (lange)
+ true
+ {value}
+
+ 200
+ 250
+ false
+ 1.0
+ true
+ false
+ TOP_LEFT
+ 0
+ 0
+
+
+ true
+ Benachrichtigung aus Statusbar entfernen: Alle
+ false
+ true
+ 1
+ true
+
+ true
+ {id}
+ TEXT
+ CONTAINS_TEXT
+
+
+
+ true
+ Benachrichtigung aus Statusbar entfernen: Alle (Automagic)
+ true
+ true
+ 1
+ false
+
+ true
+ {id}
+ TEXT
+ CONTAINS_TEXT
+
+
+
+ true
+ Bluetooth ein-/ausschalten: Aus
+ false
+
+
+ true
+ Bluetooth ein-/ausschalten: Ein
+ true
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdeviceone}
+ A2DP
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdevicetwo}
+ A2DP
+ {param_btdevicetwo}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdeviceone}
+ INPUT_DEVICE
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdevicetwo}
+ INPUT_DEVICE
+ {param_btdevicetwo}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdeviceone}
+ HEADSET
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdevicetwo}
+ HEADSET
+ {param_btdevicetwo}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdeviceone}
+ PAN
+ {param_btdeviceone}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdevicetwo}
+ PAN
+ {param_btdevicetwo}
+
+ false
+
+
+ true
+ Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
+ A2DP
+ {param_swtobtdevicemac}
+
+ true
+
+
+ true
+ Broadcast senden: {param_action}
+ {param_action}
+ false
+ android.intent.category.DEFAULT
+ false
+
+ false
+ text/plain
+ false
+
+
+ FLAG_ACTIVITY_NEW_TASK
+ putString("{param_exkey1}", "{param_exval1}");
+putString("{param_exkey2}", "{param_exval2}");
+ false
+
+
+
+ true
+ Dateien löschen: /sdcard/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ /sdcard/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ true
+
+
+ true
+ Dateien löschen: /storage/emulated/0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ /storage/emulated/0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ true
+
+
+ true
+ Dateien löschen: /storage/emulated/0/Download/installFlow_{param_flowname}
+ /storage/emulated/0/Download/installFlow_{param_flowname}
+ true
+
+
+ true
+ Dateien löschen: /storage/sdcard0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ /storage/sdcard0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ true
+
+
+ true
+ Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
+ /storage/sdcard0/Download/installFlow_{param_flowname}
+ true
+
+
+ true
+ Display automatisch drehen ein-/ausschalten: Aus
+ false
+
+
+ true
+ Display automatisch drehen ein-/ausschalten: Ein
+ true
+
+
+ true
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml nach /sdcard/AMADNG_FlowsetUpdate
+ http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml
+ /sdcard/AMADNG_FlowsetUpdate
+ true
+
+
+ true
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml nach /storage/emulated/0/AMADNG_FlowsetUpdate
+ http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml
+ /storage/emulated/0/AMADNG_FlowsetUpdate
+ true
+
+
+ true
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml nach /storage/sdcard0/AMADNG_FlowsetUpdate
+ http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml
+ /storage/sdcard0/AMADNG_FlowsetUpdate
+ true
+
+
+ true
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/emulated/0/Download
+ http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname}
+ /storage/emulated/0/Download
+ true
+
+
+ true
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
+ http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname}
+ /storage/sdcard0/Download
+ true
+
+
+ true
+ Eingabedialog: AMADCommBridge Port Einzeiliger Text Bitte gebe den Port der AMADCommBridge vom FHEM Server an.
+ AMADCommBridge Port
+ SINGLE_LINE_TEXT
+ Bitte gebe den Port der AMADCommBridge vom FHEM Server an.
+
+ 8090
+ DEFAULT
+ DEFAULT
+ DEFAULT
+ false
+ 60000
+
+ false
+ false
+ false
+ false
+
+
+ true
+ Eingabedialog: Android Device IP Adresse Einzeiliger Text Bitte gebe die IP Adresse Deines Androidgerätes an. NUR IP kein FQDN!!!
+ Android Device IP Adresse
+ SINGLE_LINE_TEXT
+ Bitte gebe die IP Adresse Deines Androidgerätes an. NUR IP kein FQDN!!!
+
+ 192.168.x.x
+ DEFAULT
+ DEFAULT
+ DEFAULT
+ false
+ 60000
+
+ false
+ false
+ false
+ false
+
+
+ true
+ Eingabedialog: FHEM Devicename Einzeiliger Text Wie soll das Device in FHEM heißen?
+ FHEM Devicename
+ SINGLE_LINE_TEXT
+ Wie soll das Device in FHEM heißen?
+
+ TabletWohnzimmer
+ DEFAULT
+ DEFAULT
+ DEFAULT
+ false
+ 60000
+
+ false
+ false
+ false
+ false
+
+
+ true
+ Eingabedialog: FHEM Server IP Einzeiliger Text Bitte gebe die IP Adresse oder den FQDN Deines FHEM Servers an.
+ FHEM Server IP
+ SINGLE_LINE_TEXT
+ Bitte gebe die IP Adresse oder den FQDN Deines FHEM Servers an.
+
+ 192.168.x.x
+ DEFAULT
+ DEFAULT
+ DEFAULT
+ false
+ 60000
+
+ false
+ false
+ false
+ false
+
+
+ true
+ Eingabedialog: Wünschst Du einen sprachgestützten oder dialoggestützten Installationsassistanten? Einfachauswahl Menü Sprache,Dialog (15s)
+ Wünschst Du einen sprachgestützten oder dialoggestützten Installationsassistanten?
+ SINGLE_CHOICE_MENU
+
+ Sprache,Dialog
+
+ DEFAULT
+ DEFAULT
+ DEFAULT
+ true
+ 15000
+ Sprache
+ false
+ false
+ false
+ false
+
+
+ true
+ Flows ausführen: Send Data to AMADCommBridge
+ Send Data to AMADCommBridge
+
+ false
+ false
+ false
+
+
+ false
+ Flows ausführen: Send Data to AMADCommBridge mit warten
+ Send Data to AMADCommBridge
+
+ false
+ true
+ false
+
+
+ false
+ Flows ausführen: udef_trigger setLockPin
+ Informations
+
+ false
+ true
+ false
+
+
+ true
+ Flows ausführen: Update AMAD Flowset
+ Update AMAD Flowset
+
+ false
+ false
+ false
+
+
+ true
+ Flows ausführen: VoiceControl
+ VoiceControl
+
+ false
+ false
+ false
+
+
+ true
+ Flows ausführen: {param_flowname}
+ {param_flowname}
+
+ false
+ false
+ false
+
+
+ true
+ Flows löschen: First Run Assistant
+ First Run Assistant
+ true
+
+
+ true
+ Flows löschen: MultimediaControl
+ MultimediaControl
+ true
+
+
+ true
+ Flows/Widgets importieren: /sdcard/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ /sdcard/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ true
+
+
+ true
+ Flows/Widgets importieren: /storage/emulated/0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ /storage/emulated/0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ true
+
+
+ true
+ Flows/Widgets importieren: /storage/emulated/0/Download/installFlow_{param_flowname}
+ /storage/emulated/0/Download/installFlow_{param_flowname}
+ true
+
+
+ true
+ Flows/Widgets importieren: /storage/sdcard0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ /storage/sdcard0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ true
+
+
+ true
+ Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
+ /storage/sdcard0/Download/installFlow_{param_flowname}
+ true
+
+
+ true
+ Flugmodus ein-/ausschalten: Ein
+ SYSTEM_SETTING
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1024x768
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 0
+ 1024*768
+ 100
+ auto
+ none
+
+ auto
+ auto
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1024x768 Front
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 1
+ 1024*768
+ 100
+ auto
+ none
+
+ auto
+ fixed
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1280x720
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 0
+ 1280*720
+ 100
+ auto
+ none
+
+ auto
+ auto
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1280x720 Front
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 1
+ 1280*720
+ 100
+ auto
+ none
+
+ auto
+ fixed
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1600x1200
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 0
+ 1600*1200
+ 100
+ auto
+ none
+
+ auto
+ auto
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1600x1200 Front
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 1
+ 176*144
+ 100
+ auto
+ none
+
+ auto
+ fixed
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1920x1080
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 0
+ 1920*1080
+ 100
+ auto
+ none
+
+ auto
+ auto
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1920x1080 Front
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 1
+ 176*144
+ 100
+ auto
+ none
+
+ auto
+ fixed
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 800x600
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 0
+ 800*600
+ 100
+ auto
+ none
+
+ auto
+ auto
+ false
+ true
+ 2000
+ true
+
+
+ false
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 800x600 Front
+ false
+ /storage/emulated/0/AMADpicture.jpg
+ 1
+ 800*600
+ 100
+ auto
+ none
+
+ auto
+ fixed
+ false
+ true
+ 2000
+ true
+
+
+ true
+ Gerät sperren
+
+
+ false
+ Get Android Version
+
+
+
+ true
+ Herunterfahren
+
+
+ false
+ HTTP Request: send FHEMFUNC data to AMADCommBridge JSON
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ false
+
+ POST
+ GENERAL_TEXT
+ application/json
+ {fhemfunc}
+ @@@@readingsNameXYZ@@readingsValueABC
+ upload_field
+
+ 15000
+ true
+ Connection: close
+ true
+ respfhemfunc
+ /storage/emulated/0/Download/file.bin
+ false
+
+
+ false
+ HTTP Request: send FIRSTRUN data to AMADCommBridge JSON
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ false
+
+ POST
+ GENERAL_TEXT
+ application/json
+ {firstrundata}
+ @@@@readingsNameXYZ@@readingsValueABC
+ upload_field
+
+ 15000
+ true
+ Connection: close
+ true
+ respfirstrun
+ /storage/emulated/0/Download/file.bin
+ false
+
+
+ false
+ HTTP Request: send READINGS data to AMADCommBridge JSON
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ false
+
+ POST
+ GENERAL_TEXT
+ application/json
+ {fhemdata}
+ @@@@readingsNameXYZ@@readingsValueABC
+ upload_field
+
+ 15000
+ true
+ Connection: close
+ true
+ respsetreading
+ /storage/emulated/0/Download/file.bin
+ false
+
+
+ false
+ HTTP Request: send READINGSVAL data to AMADCommBridge JSON
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ false
+
+ POST
+ GENERAL_TEXT
+ application/json
+ {readingsvalcmd}
+ @@@@readingsNameXYZ@@readingsValueABC
+ upload_field
+
+ 15000
+ true
+ Connection: close
+ true
+ respreadingsval
+ /storage/emulated/0/Download/file.bin
+ false
+
+
+ false
+ HTTP Request: send SET data to AMADCommBridge JSON
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ false
+
+ POST
+ GENERAL_TEXT
+ application/json
+ {setcmd}
+ @@@@readingsNameXYZ@@readingsValueABC
+ upload_field
+
+ 15000
+ true
+ Connection: close
+ true
+ respset
+ /storage/emulated/0/Download/file.bin
+ false
+
+
+ false
+ HTTP Request: send VOICEINPUTVALUE data to AMADCommBridge
+ http://{global_fhemip}:{global_bridgeport}
+ false
+ false
+
+ false
+
+ POST
+ GENERAL_TEXT
+ application/json
+ {voiceinputdata}
+ @@@@readingsNameXYZ@@readingsValueABC
+ upload_field
+
+ 15000
+ true
+ FHEMDEVICE: {global_fhemdevice}
+FHEMCMD: voiceinputvalue
+Connection: close
+ true
+ respvoiceinputvalue
+ /storage/emulated/0/Download/file.bin
+ true
+
+
+ true
+ In Datei Schreiben: Aktiviere Flows in /storage/emulated/0/file.txt (anhängen)
+ /storage/emulated/0/file.txt
+ Aktiviere Flows
+ true
+
+
+ true
+ In Datei Schreiben: Deaktiviere Flows in /storage/emulated/0/file.txt (anhängen)
+ /storage/emulated/0/file.txt
+ Deaktiviere Flows
+ true
+
+
+ false
+ Initialisiere Variable Nächster Alarm: next_alarm
+ next_alarm
+
+
+ false
+ Initialisiere Variable Systemeinstellung: screenBrightness
+ SYSTEM
+ screen_brightness
+ screenBrightness
+
+
+ false
+ Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2
+ SYSTEM
+ volume_music_bt_a2dp
+ volumeBT
+
+
+ false
+ Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2
+ SYSTEM
+ volume_music_speaker
+ volumeSP
+
+
+ false
+ Initialisiere Variable Systemeinstellung: volumeNotification
+ SYSTEM
+ volume_ring_speaker
+ volumeNotification
+
+
+ false
+ Initialisiere Variable Systemeinstellung: volumeRingSound
+ SYSTEM
+ volume_ring
+ volumeRingSound
+
+
+ true
+ Lautstärke einstellen: Medien auf Level 8
+ MUSIC
+ ADJUST_SET_ABSOLUTE
+ 8
+ false
+ false
+
+
+ true
+ Lautstärke einstellen: Medien auf Level {param_msgvol}
+ MUSIC
+ ADJUST_SET_ABSOLUTE
+ {param_msgvol}
+ false
+ false
+
+
+ false
+ Lautstärken setzen param_notifivolume
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ false
+ param_volume
+ true
+ param_notifivolume
+ false
+ global_volume_ring
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ false
+ Lautstärken setzen param_ringsoundvolume
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ false
+ param_volume
+ false
+ param_notifivolume
+ true
+ param_ringsoundvolume
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ false
+ Lautstärken setzen param_volume
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ true
+ param_volume
+ false
+ global_volume_notification
+ false
+ global_volume_ring
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ false
+ Medianlautstärken Speichern
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ true
+ global_volume_music
+ false
+ global_volume_notification
+ false
+ global_volume_ring
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ false
+ Medienlautstärke Wiederherstellen
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ true
+ global_volume_music
+ false
+ global_volume_notification
+ false
+ global_volume_ring
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ true
+ Meldungsdialog: Alle Informationen wurden nun erfasst und zur Amaad Comm Bridge gesendet. Ich werde gleich einmal prüfen ob die Einrichtung des Devices in Fhem gelungen ist. Gib mir bitte bis zu einer Minute Zeit für die Prüfung.
+
+ Alle Informationen wurden nun erfasst und zur Amaad Comm Bridge gesendet. Ich werde gleich einmal prüfen ob die Einrichtung des Devices in Fhem gelungen ist. Gib mir bitte bis zu einer Minute Zeit für die Prüfung.
+ Weiter
+ false
+ 60000
+
+
+ true
+ Meldungsdialog: Die Einrichtung ist nun abgeschlossen und das Amaad Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen Fhem und Deinem Amaad Device zu bestehen. Mache am besten einmal ein Status Request in Fhem für das Amaad Device. Ist der Status in Fhem weiterhin offline schaue bitte ob alle Am
+
+ Die Einrichtung ist nun abgeschlossen und das Amaad Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen Fhem und Deinem Amaad Device zu bestehen. Mache am besten einmal ein Status Request in Fhem für das Amaad Device. Ist der Status in Fhem weiterhin offline schaue bitte ob alle Amaad, Flows aktiv sind.
+ Weiter
+ false
+ 60000
+
+
+ true
+ Meldungsdialog: Die Einrichtung ist nun abgeschlossen und das AMAD Device online.
+
+ Die Einrichtung ist nun abgeschlossen und das AMAD Device online.
+ Weiter
+ false
+ 60000
+
+
+ true
+ Meldungsdialog: Leider scheint es ein Problem beim Einrichten des FHEM Devices gegeben zu haben. Hast Du die AMADCommBridge definiert, und ist sie auch aktiv? Sollte es weiterhin Probleme geben, wende Dich bitte an CoolTux alias Leon, im FHEM Forum.
+
+ Leider scheint es ein Problem beim Einrichten des FHEM Devices gegeben zu haben. Hast Du die AMADCommBridge definiert, und ist sie auch aktiv? Sollte es weiterhin Probleme geben, wende Dich bitte an CoolTux alias Leon, im FHEM Forum.
+ Weiter
+ false
+ 60000
+
+
+ true
+ Meldungsdialog: Wunderbar. Bitte nimm Dir Zeit und lese Dir die Hilfe Dialoge genau durch. Wenn Du Dir unsicher bist, kannst Du die Standardeinstellung, sofern vorhanden, belassen. Lass uns nun mit der Einrichtung beginnen.
+
+ Wunderbar. Bitte nimm Dir Zeit und lese Dir die Hilfe Dialoge genau durch. Wenn Du Dir unsicher bist, kannst Du die Standardeinstellung, sofern vorhanden, belassen. Lass uns nun mit der Einrichtung beginnen.
+ Weiter
+ false
+ 60000
+
+
+ true
+ Neustart
+
+
+
+ true
+ NFC ein-/ausschalten: Aus
+ false
+
+
+ true
+ NFC ein-/ausschalten: Ein
+ true
+
+
+ false
+ Notification Lautstärke Speichern
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ false
+ global_volume_music
+ true
+ global_volume_notification
+ false
+ global_volume_ring
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ false
+ Notification Lautstärke Wiederherstellen
+ false
+ global_volume_alarm
+ false
+ global_volume_dtmf
+ false
+ param_volume
+ true
+ global_volume_notification
+ false
+ global_volume_ring
+ false
+ global_volume_system
+ false
+ global_volume_voice_call
+ false
+ global_ringer_mode
+ false
+ global_interruptions_mode
+
+
+ false
+ NotificationLautstärke auf Level 7
+ NOTIFICATION
+ ADJUST_SET_ABSOLUTE
+ 7
+ false
+ false
+
+
+ true
+ Nummer anrufen: {param_callnumber}
+
+ {param_callnumber}
+ true
+
+
+ true
+ Pause: 1s (Gerät wach halten)
+ 1s
+ true
+ false
+
+
+ true
+ Pause: 2s (Gerät wach halten)
+ 2s
+ true
+ false
+
+
+ true
+ Pause: 3s (Gerät wach halten)
+ 3s
+ true
+ false
+
+
+ true
+ Pause: {param_hanguptime}s (Gerät wach halten)
+ {param_hanguptime}s
+ true
+ false
+
+
+ false
+ Prüfe und setze Bridgeport Variable
+
+
+
+ false
+ Prüfe und setze globale Variable
+
+
+
+ false
+ Schalte Display ein
+ false
+ 5s
+ true
+
+
+ true
+ Schalte Display ein: Hell für {param_screenontime}s
+ true
+ {param_screenontime}s
+ true
+
+
+ true
+ Script: airpcount = 0
+
+
+
+ true
+ Script: airpcount = airpcount + 1
+
+
+
+ true
+ Script: airplanemode = "\"airplanemode\":" + " \"" + {airplanemode} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: airplanemode = "airplanemode@@on"; fhemcmd = "setreading";
+
+
+
+ true
+ Script: airplanemode = "off"
+
+
+
+ true
+ Script: amadcmd = "firstrun"
+
+
+
+ true
+ Script: amaddevice_ip = {value}
+
+
+
+ true
+ Script: androidVersion = "\"androidVersion\":" + " \"" + {androidVersion} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: androidVersion = "not supported funktion"
+
+
+
+ true
+ Script: automagicState = "\"automagicState\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: bluetooth = "\"bluetooth\":" + " \"" + {bluetooth_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: bluetooth_state = "off"
+
+
+
+ true
+ Script: bluetooth_state = "on"
+
+
+
+ true
+ Script: btdeviceinfo = "\"connectedBTdevices\":" + " \"" + {connected_devices_names} + "\"" + "," + "\"connectedBTdevicesMAC\":" + " \"" + {connected_devices_addresses} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: checkActiveTask = "\"checkActiveTask\":" + " \"" + {runTask} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: connected_devices_names = "none"; connected_devices_addresses = "none"
+
+
+
+ true
+ Script: currentMusic = "\"currentMusicTrack\":" + " \"" + {title} + "\"" + "," + "\"currentMusicAlbum\":" + " \"" + {description} + "\"" + "," + "\"currentMusicArtist\":" + " \"" + {subtitle} + "\"" + "," + "\"currentMusicApp\":" + " \"" + {musicapp} + "\"" + "," + "\"currentMusicIcon\":" + " \"" + {icon} + "\"" + "," + "\"currentMusicState\":" + " \"" + {playback_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: daydream = "\"daydream\":" + " \"" + {daydream_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: daydream_state = "off"
+
+
+
+ true
+ Script: daydream_state = "on"
+
+
+
+ true
+ Script: deviceState = "\"deviceState\": \"online\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: dndValue = "alarmClockOnly"
+
+
+
+ true
+ Script: dndValue = "always"
+
+
+
+ true
+ Script: dndValue = "never"
+
+
+
+ true
+ Script: dndValue = "onlyImportant"
+
+
+
+ true
+ Script: dock_state = "docked"
+
+
+
+ true
+ Script: dock_state = "undocked"
+
+
+
+ true
+ Script: dockingState = "\"dockingState\":" + " \"" + {dock_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: doNotDisturb = "\"doNotDisturb\":" + " \"" + {dndValue} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: flow_informations = "\"flow_informations\":" + " \"" + {informationFlow_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: flow_informations = "\"userFlowState\":" + " \"" + {flowState} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: flow_SetCommands = "\"flow_SetCommands\":" + " \"" + {setCommandFlow_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: flowState = "active"
+
+
+
+ true
+ Script: flowState = "inactive"
+
+
+
+ true
+ Script: global_activetask = "none"; global_apssid = "none"; global_userflowstate = "none";
+
+
+
+ true
+ Script: global_amadid = getDate();
+
+
+
+ true
+ Script: global_bridgeport = {value}
+
+
+
+ true
+ Script: global_fhemdevice = {value}
+
+
+
+ true
+ Script: global_fhemip = {value}
+
+
+
+ true
+ Script: headsetValue = 0
+
+
+
+ true
+ Script: headsetValue = 1
+
+
+
+ true
+ Script: if (trigger == "NFC TagIDs" ) { nfcLastTagID = "\"nfcLastTagID\":" + " \"" + {nfc_tag_ids} + "\""} if (trigger == "NFC State" ) { nfc = "\"nfc\":" + " \"" + {nfc_state} + "\""} fhemcmd = "setreading";
+
+
+
+ true
+ Script: if(index == 0) { sprachassi = "ja"; } else if(index == 1) { sprachassi = "nein"; }
+
+
+
+ true
+ Script: if(package_name == "com.google.android.music") { musicapp = "Google Musik" } else if(package_name == "com.amazon.mp3") { musicapp = "Amazon Musik" } else if(package_name == "com.google.android.videos") { musicapp = "Google Video" } else if(package_name == "com.spotify.music") { musicapp = "Spotify Musik" } else if(package_name == "com.google.android.youtube") { musicapp = "YouTube" } else if(package_name == "com.google.android.apps.youtube.kids") { musicapp = "YouTube Kids" } else if(package_name == "tunein.player") { musicapp = "TuneIn Player" } else if(package_name == "com.rhapsody.alditalk") { musicapp = "Aldi Life Musik" } else if(package_name == "org.videolan.vlc") { musicapp = "VLC Player" } else if(package_name == "com.sec.android.app.music") { musicapp = "Samsung Music Player" } else if(package_name == "deezer.android.app") { musicapp = "Deezer" }
+
+
+
+ true
+ Script: if(playback_state == 0) { playback_state = "none" } else if(playback_state == 1) { playback_state = "stopped" } else if(playback_state == 2) { playback_state = "pause" } else if(playback_state == 3) { playback_state = "play" } else if(playback_state == 4) { playback_state = "fast forward" } else if(playback_state == 5) { playback_state = "fast backward" } else if(playback_state == 6) { playback_state = "buffert" } else if(playback_state == 7) { playback_state = "error" } else if(playback_state == 8) { playback_state = "connect" } else if(playback_state == 9) { playback_state = "skip forward" } else if(playback_state == 10) { playback_state = "skip backward" } else if(playback_state == 11) { playback_state = "jump to position in playlist" }
+
+
+
+ true
+ Script: if(togocount > 0) { togocount = togocount + 1; } else { togocount = 0; togocount = togocount + 1; }
+
+
+
+ true
+ 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" }
+
+
+
+ true
+ Script: incomingCaller = "\"incomingCallerName\":" + " \"" + {contact_name} + "\"" + "," + "\"incomingCallerNumber\":" + " \"" + {incoming_number} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: incomingSmsMessage = "\"incomingSmsMessage\":" + " \"" + {sms_sender} + " - " + replaceAll({sms_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: incomingTelegramMessage = "\"incomingTelegramMessage\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: incomingWhatsAppMessage = "\"incomingWhatsAppMessage\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: informationFlow_state = "aktiv"
+
+
+
+ true
+ Script: informationFlow_state = "inaktiv"
+
+
+
+ true
+ Script: intentRadioState = "\"intentRadioState\":" + " \"" + {irstate} + "\"" + "," + "\"intentRadioName\":" + " \"" + {irname} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: keyguard = "locked"
+
+
+
+ true
+ Script: keyguard = "unlocked"
+
+
+
+ true
+ Script: keyguardset = "0"
+
+
+
+ true
+ Script: keyguardset = "1"
+
+
+
+ true
+ Script: keyguardSet = "\"keyguardSet\":" + " \"" + {keyguardset} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: keyguardset = "not supported from your device"
+
+
+
+ true
+ Script: next_alarmday = "{next_alarm,dateformat,c}"
+
+
+
+ true
+ Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"
+
+
+
+ true
+ Script: nextAlarm = "\"nextAlarmTime\":" + " \"" + {next_alarmtime} + "\"" + "," + "\"nextAlarmDay\":" + " \"" + {next_alarmday} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: nextAlarmState = "\"nextAlarmState\":" + " \"" + {nextalarmstate} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+
+
+
+ true
+ Script: notification_text = "Flow '{param_flowname}' has been set {param_flowstate}"
+
+
+
+ true
+ Script: notification_text = "Flow install: path for download not exist"
+
+
+
+ true
+ Script: notification_text = "Flowset Update: path for download not exist"
+
+
+
+ true
+ Script: notification_text = "not supported from your device"
+
+
+
+ true
+ Script: notification_text = "Take Picture: can not save camerapicture, path does not exist"
+
+
+
+ true
+ Script: powerinfo = "\"powerLevel\":" + " \"" + "{battery_percentage,numberformat,0}" + "\"" + "," + "\"powerPlugged\":" + " \"" + {battery_plugged} + "\"" + "," + "\"batteryTemperature\":" + " \"" + "{battery_temperature/10.0,numberformat.0.0}" + "\"" + "," + "\"batteryHealth\":" + " \"" + {battery_health} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: readingsvalcmd = "{global_fhemdevice} deviceState kaputt"; fhemcmd = "readingsval"; respfirstrun = "none";
+
+
+
+ true
+ Script: runTask = "0"
+
+
+
+ true
+ Script: runTask = "1"
+
+
+
+ true
+ Script: runTask = "not supported android version"
+
+
+
+ true
+ Script: runTask = "null"
+
+
+
+ true
+ Script: scrcount = 0
+
+
+
+ true
+ Script: scrcount = scrcount + 1
+
+
+
+ true
+ Script: screen = "\"screen\":" + " \"" + {screen_state} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: screen_orientation = "landscape"
+
+
+
+ true
+ Script: screen_orientation = "portrait"
+
+
+
+ true
+ Script: screen_orientation_mode = "auto"
+
+
+
+ true
+ Script: screen_orientation_mode = "manual"
+
+
+
+ true
+ Script: screen_state = "off {keyguard}"
+
+
+
+ true
+ Script: screen_state = "off"
+
+
+
+ true
+ Script: screen_state = "on {keyguard}"
+
+
+
+ true
+ Script: screen_state = "on"
+
+
+
+ true
+ Script: screenBrightness = "\"screenBrightness\":" + " \"" + {screenBrightness} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: screenOrientation = "\"screenOrientation\":" + " \"" + {screen_orientation} + "\"" + "," + "\"screenOrientationMode\":" + " \"" + {screen_orientation_mode} + "\""; fhemcmd = "setreading";
+
+
+
+ false
+ Script: Set FHEMCALLSUB JSON
+
+
+
+ false
+ Script: Set FHEMDATA JSON
+
+
+
+ false
+ Script: Set FHEMDATA JSON First Run Assistant
+
+
+
+ false
+ Script: Set FHEMREADINGSVALCMD JSON
+
+
+
+ false
+ Script: Set FHEMSETCMD JSON
+
+
+
+ false
+ Script: Set FHEMVOICEINPUTDATA JSON
+
+
+
+ true
+ Script: setCommandFlow_state = "aktiv"
+
+
+
+ true
+ Script: setCommandFlow_state = "inaktiv"
+
+
+
+ true
+ Script: subtitle = "no player active"; title = "no player active"; description = "no player active"; musicapp = "no player active"; icon = "no player active"
+
+
+
+ true
+ Script: udef_trigger = "setLockPin"
+
+
+
+ true
+ Script: voiceinputdata = value; fhemcmd = "voiceinputvalue";
+
+
+
+ true
+ Script: voiceinputdata = {left(value, (indexOf(value, " und ")))}; fhemcmd = "voiceinputvalue";
+
+
+
+ true
+ Script: volume = {volumeBT}
+
+
+
+ true
+ Script: volume = {volumeSP}
+
+
+
+ true
+ Script: volumeNotification = "\"volumeNotification\":" + " \"" + {volumeNotification} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: volumeRingSound = "\"volumeRingSound\":" + " \"" + {volumeRingSound} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: volumevalue = "\"volume\":" + " \"" + {volume} + "\""; fhemcmd = "setreading";
+
+
+
+ true
+ Script: wiredHeadsetPlugged = "\"wiredHeadsetPlugged\":" + " \"" + {headsetValue} + "\""; fhemcmd = "setreading";
+
+
+
+ false
+ Script: Zuordnung Mediaplayer
+
+
+
+ true
+ Setze Alarm: um {param_hour}:{param_minute}
+
+ {param_hour}
+ {param_minute}
+
+
+ false
+ true
+
+
+ true
+ Setze Display Helligkeit: {param_brightness}
+ false
+ {param_brightness}
+ false
+ 50
+ true
+
+
+ true
+ Setze Display Orientierung: Auf Default zurücksetzen
+ UNSPECIFIED
+ false
+
+
+ true
+ Setze Display Orientierung: Landscape
+ LANDSCAPE
+ false
+
+
+ true
+ Setze Display Orientierung: Portrait
+ PORTRAIT
+ false
+
+
+ true
+ Setze Flow Status: Aktivieren Informations
+ true
+ Informations
+
+
+
+ true
+ Setze Flow Status: Aktivieren Informations,SetCommands
+ true
+ Informations,SetCommands
+
+
+
+ true
+ Setze Flow Status: Aktivieren Send Data to AMADCommBridge
+ true
+ Send Data to AMADCommBridge
+
+
+
+ true
+ Setze Flow Status: Aktivieren SetCommands
+ true
+ SetCommands
+
+
+
+ true
+ Setze Flow Status: Aktivieren SetCommands,Update AMAD Flowset,VoiceControl
+ true
+ SetCommands,Update AMAD Flowset,VoiceControl
+
+
+
+ true
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ true
+ {imported_flow_names,listformat,comma}
+
+
+
+ true
+ Setze Flow Status: Aktivieren {param_flowname}
+ true
+ {param_flowname}
+
+
+
+ true
+ Setze Flow Status: Deaktivieren First Run Assistant
+ false
+ First Run Assistant
+
+
+
+ true
+ Setze Flow Status: Deaktivieren Informations,SetCommands
+ false
+ Informations,SetCommands
+
+
+
+ true
+ Setze Flow Status: Deaktivieren {param_flowname}
+ false
+ {param_flowname}
+
+
+
+ true
+ Setze Lock PIN/Passwort: PIN/Passwort zurücksetzen
+ true
+ PIN
+ false
+ param_lockPIN
+
+
+ true
+ Setze Lock PIN/Passwort: Setze PIN von Variable param_lockpin
+ false
+ PIN
+ false
+ param_lockpin
+
+
+ false
+ Setze Timer
+
+ {param_minute}m
+ true
+
+
+ true
+ Setze Unterbrechnungen-Modus: Alle / Immer unterbrechen
+ NOTIFICATION_LISTENER
+ OFF
+
+
+ true
+ Setze Unterbrechnungen-Modus: Keine / Nicht unterbrechen
+ NOTIFICATION_LISTENER
+ NO_INTERRUPTIONS
+
+
+ true
+ Setze Unterbrechnungen-Modus: Nur Wecker (Android 6+)
+ NOTIFICATION_LISTENER
+ ALARMS_ONLY
+
+
+ true
+ Setze Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
+ NOTIFICATION_LISTENER
+ IMPORTANT_INTERRUPTIONS
+
+
+ false
+ Setze voice Variablen
+
+
+
+ true
+ Setze Vollbild Modus: Auf Default zurücksetzen
+ UNSPECIFIED
+ false
+
+
+ true
+ Setze Vollbild Modus: Navigation nicht anzeigen
+ HIDE_NAVIGATION
+ false
+
+
+ true
+ SMS senden an: an {param_smsnumber} '{param_smsmessage}' (10 in 12h)
+
+ {param_smsnumber}
+ {param_smsmessage}
+ true
+ true
+ 10
+ 43200000
+ false
+ false
+ true
+ 600000
+
+
+ true
+ Sound: {param_notifypath}{param_notifyfile} als Benachrichtigung
+ FILE
+ Lautlos
+ {param_notifypath}{param_notifyfile}
+ NOTIFICATION
+
+ false
+ true
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Alle Informationen wurden nun erfasst und zur Amaad Comm Bridge gesendet. Ich werde gleich einmal prüfen ob die Einrichtung des Devices in Fhem gelungen ist. Gib mir bitte bis zu einer Minute Zeit für die Prüfung.
+ MUSIC
+ Alle Informationen wurden nun erfasst und zur Amaad Comm Bridge gesendet. Ich werde gleich einmal prüfen ob die Einrichtung des Devices in Fhem gelungen ist. Gib mir bitte bis zu einer Minute Zeit für die Prüfung.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ false
+ Sprachausgabe: Deutsch
+ MUSIC
+ {param_message}
+ de_DE
+ true
+ 1.0
+ true
+ {param_msgspeed}
+ true
+ false
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Die Einrichtung ist nun abgeschlossen und das Amaad Device online.
+Soll der Assistent gelöscht werden?
+ MUSIC
+ Die Einrichtung ist nun abgeschlossen und das Amaad Device online.
+Soll der Assistent gelöscht werden?
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Die Einrichtung ist nun abgeschlossen und das Amaad Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen Fhem und Deinem Amaad Device zu bestehen. Mache am besten einmal ein Status Request in Fhem für das Amaad Device. Ist der Status in Fhem weiterhin offline schaue bitte ob alle Amaad, Flows aktiv sind.
+Soll der Assistent gelöscht werden?
+ MUSIC
+ Die Einrichtung ist nun abgeschlossen und das Amaad Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen Fhem und Deinem Amaad Device zu bestehen. Mache am besten einmal ein Status Request in Fhem für das Amaad Device. Ist der Status in Fhem weiterhin offline schaue bitte ob alle Amaad, Flows aktiv sind.
+Soll der Assistent gelöscht werden?
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Du möchtest also nicht fortfahren. Das ist schade. Bitte bedenke das dieses Android Gerät somit nicht als Amaad Device in Fhem angelegt ist. Du kannst jeder Zeit den Assistenten Flow neu aktivieren und von vorn beginnen.
+Auf Wiedersehen.
+ MUSIC
+ Du möchtest also nicht fortfahren. Das ist schade. Bitte bedenke das dieses Android Gerät somit nicht als Amaad Device in Fhem angelegt ist. Du kannst jeder Zeit den Assistenten Flow neu aktivieren und von vorn beginnen.
+Auf Wiedersehen.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ false
+ Sprachausgabe: Englisch
+ MUSIC
+ {param_message}
+ en_US
+ true
+ 1.0
+ true
+ {param_msgspeed}
+ true
+ false
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent bleibt erhalten. Auf Wiedersehen.
+ MUSIC
+ In Ordnung. Der Einrichtungs Assistent bleibt erhalten. Auf Wiedersehen.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent wird gelöscht. Auf Wiedersehen.
+ MUSIC
+ In Ordnung. Der Einrichtungs Assistent wird gelöscht. Auf Wiedersehen.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Leider scheint es ein Problem beim einrichten des Fhem Devices gegeben zu haben. Hast Du die Amaad Comm Bridge definiert? Und ist sie auch aktiv? Sollte es weiterhin Probleme geben, wende Dich bitte an Cooltux alias Leon, im Fhem Forum.
+Soll der Assistent gelöscht werden?
+ MUSIC
+ Leider scheint es ein Problem beim einrichten des Fhem Devices gegeben zu haben. Hast Du die Amaad Comm Bridge definiert? Und ist sie auch aktiv? Sollte es weiterhin Probleme geben, wende Dich bitte an Cooltux alias Leon, im Fhem Forum.
+Soll der Assistent gelöscht werden?
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Oh das tut mir leid, da scheine ich Dich nicht verstanden zu haben. Bitte versuche es mit etwas Ruhe im Hintergrund noch einmal.
+ MUSIC
+ Oh das tut mir leid, da scheine ich Dich nicht verstanden zu haben. Bitte versuche es mit etwas Ruhe im Hintergrund noch einmal.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Sprachausgabe: Wunderbar. Bitte nimm Dir Zeit und lese Dir die Hilfe Dialoge genau durch. Wenn Du Dir unsicher bist, kannst Du die Standardeinstellung, sofern vorhanden, belassen. Lass uns nun mit der Einrichtung beginnen.
+ MUSIC
+ Wunderbar. Bitte nimm Dir Zeit und lese Dir die Hilfe Dialoge genau durch. Wenn Du Dir unsicher bist, kannst Du die Standardeinstellung, sofern vorhanden, belassen. Lass uns nun mit der Einrichtung beginnen.
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ false
+ true
+ false
+ true
+ TRANSIENT
+
+
+ false
+ Spracheingabe wurde nicht erkannt
+ NOTIFICATION
+ Ihre Eingabe wurde nicht verstanden
+ de_DE
+ true
+ 1.0
+ true
+ 1.0
+ true
+ false
+ false
+ true
+ TRANSIENT
+
+
+ true
+ Starte Daydream
+
+
+ true
+ URL in Browser öffnen: {param_url} (mit {param_browserapp}/{param_browserappclass})
+ {param_url}
+ true
+ {param_browserapp}
+ {param_browserappclass}
+
+
+
+ true
+ Verzeichnisse erstellen: /sdcard/AMADNG_FlowsetUpdate
+ /sdcard/AMADNG_FlowsetUpdate
+
+
+ true
+ Verzeichnisse erstellen: /storage/emulated/0/AMADNG_FlowsetUpdate
+ /storage/emulated/0/AMADNG_FlowsetUpdate
+
+
+ true
+ Verzeichnisse erstellen: /storage/sdcard0/AMADNG_FlowsetUpdate
+ /storage/sdcard0/AMADNG_FlowsetUpdate
+
+
+ true
+ Vibrieren: Pattern 2 (-- --)
+ false
+ vibrate_pattern_2
+ 0,500
+
+
+ true
+ WLAN Reassoziieren
+
+
+ true
+ Zeige Home Screen
+ false
+ 1
+
+
+ First Run Assistant
+ AMADNG Info/Control Flowset v4.2.0
+ false
+ PARALLEL
+
+ App Task Beendet: ch.gridvision.ppam.androidautomagic
+
+ AMAD Voice Control
+ AMAD Voice Control
+ AMAD Voice Control
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent bleibt erhalten. Auf Wiedersehen.
+ Abfrage
+ Script: amadcmd = "firstrun"
+ Script: amaddevice_ip = {value}
+ Eingabedialog: Android Device IP Adresse Einzeiliger Text Bitte gebe die IP Adresse Deines Androidgerätes an. NUR IP kein FQDN!!!
+ Script: global_fhemip = {value}
+ Eingabedialog: FHEM Server IP Einzeiliger Text Bitte gebe die IP Adresse oder den FQDN Deines FHEM Servers an.
+ Script: global_fhemdevice = {value}
+ Eingabedialog: FHEM Devicename Einzeiliger Text Wie soll das Device in FHEM heißen?
+ Script: global_bridgeport = {value}
+ Eingabedialog: AMADCommBridge Port Einzeiliger Text Bitte gebe den Port der AMADCommBridge vom FHEM Server an.
+ Sprachausgabe: Du möchtest also nicht fortfahren. Das ist schade. Bitte bedenke das dieses Android Gerät somit nicht als Amaad Device in Fhem angelegt ist. Du kannst jeder Zeit den Assistenten Flow neu aktivieren und von vorn beginnen.
+Auf Wiedersehen.
+ AMAD Voice Control
+ Lautstärke einstellen: Medien auf Level 8
+ Medianlautstärken Speichern
+ Setze Flow Status: Aktivieren Informations
+ Setze Flow Status: Aktivieren SetCommands,Update AMAD Flowset,VoiceControl
+ Pause: 2s (Gerät wach halten)
+ Script: readingsvalcmd = "{global_fhemdevice} deviceState kaputt"; fhemcmd = "readingsval"; respfirstrun = "none";
+ Expression: value != ""
+ Sprachausgabe: Oh das tut mir leid, da scheine ich Dich nicht verstanden zu haben. Bitte versuche es mit etwas Ruhe im Hintergrund noch einmal.
+ Expression: value == "nein"
+ Expression: value == "ja"
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent wird gelöscht. Auf Wiedersehen.
+ Sprachausgabe: Oh das tut mir leid, da scheine ich Dich nicht verstanden zu haben. Bitte versuche es mit etwas Ruhe im Hintergrund noch einmal.
+ Expression: value != ""
+ Expression: value == "nein"
+ Expression: value != ""
+ Sprachausgabe: Oh das tut mir leid, da scheine ich Dich nicht verstanden zu haben. Bitte versuche es mit etwas Ruhe im Hintergrund noch einmal.
+ Expression: value == "nein"
+ Expression: value == "ja"
+ Flows löschen: First Run Assistant
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent wird gelöscht. Auf Wiedersehen.
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent bleibt erhalten. Auf Wiedersehen.
+ Expression: value != ""
+ Sprachausgabe: Oh das tut mir leid, da scheine ich Dich nicht verstanden zu haben. Bitte versuche es mit etwas Ruhe im Hintergrund noch einmal.
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent wird gelöscht. Auf Wiedersehen.
+ Sprachausgabe: In Ordnung. Der Einrichtungs Assistent bleibt erhalten. Auf Wiedersehen.
+ Expression: value == "ja"
+ Expression: value == "nein"
+ Sprachausgabe: Wunderbar. Bitte nimm Dir Zeit und lese Dir die Hilfe Dialoge genau durch. Wenn Du Dir unsicher bist, kannst Du die Standardeinstellung, sofern vorhanden, belassen. Lass uns nun mit der Einrichtung beginnen.
+ Flows ausführen: Send Data to AMADCommBridge
+ Sprachausgabe: Alle Informationen wurden nun erfasst und zur Amaad Comm Bridge gesendet. Ich werde gleich einmal prüfen ob die Einrichtung des Devices in Fhem gelungen ist. Gib mir bitte bis zu einer Minute Zeit für die Prüfung.
+ Expression: sprachassi == "ja"
+ Meldungsdialog: Alle Informationen wurden nun erfasst und zur Amaad Comm Bridge gesendet. Ich werde gleich einmal prüfen ob die Einrichtung des Devices in Fhem gelungen ist. Gib mir bitte bis zu einer Minute Zeit für die Prüfung.
+ Expression: respreadingsval != "kaputt" and respreadingsval != "none"
+ Expression: sprachassi == "ja"
+ Sprachausgabe: Leider scheint es ein Problem beim einrichten des Fhem Devices gegeben zu haben. Hast Du die Amaad Comm Bridge definiert? Und ist sie auch aktiv? Sollte es weiterhin Probleme geben, wende Dich bitte an Cooltux alias Leon, im Fhem Forum.
+Soll der Assistent gelöscht werden?
+ Meldungsdialog: Leider scheint es ein Problem beim Einrichten des FHEM Devices gegeben zu haben. Hast Du die AMADCommBridge definiert, und ist sie auch aktiv? Sollte es weiterhin Probleme geben, wende Dich bitte an CoolTux alias Leon, im FHEM Forum.
+ Expression: sprachassi == "ja"
+ Sprachausgabe: Die Einrichtung ist nun abgeschlossen und das Amaad Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen Fhem und Deinem Amaad Device zu bestehen. Mache am besten einmal ein Status Request in Fhem für das Amaad Device. Ist der Status in Fhem weiterhin offline schaue bitte ob alle Amaad, Flows aktiv sind.
+Soll der Assistent gelöscht werden?
+ Meldungsdialog: Die Einrichtung ist nun abgeschlossen und das Amaad Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen Fhem und Deinem Amaad Device zu bestehen. Mache am besten einmal ein Status Request in Fhem für das Amaad Device. Ist der Status in Fhem weiterhin offline schaue bitte ob alle Am
+ Expression: respreadingsval == "online"
+ Expression: sprachassi == "ja"
+ Sprachausgabe: Die Einrichtung ist nun abgeschlossen und das Amaad Device online.
+Soll der Assistent gelöscht werden?
+ AMAD First Run Assistent Begrüßung
+ Expression: value == "ja"
+ Eingabedialog: Wünschst Du einen sprachgestützten oder dialoggestützten Installationsassistanten? Einfachauswahl Menü Sprache,Dialog (15s)
+ Expression: sprachassi == "ja"
+ Expression: sprachassi == "nein"
+ Script: if(index == 0) { sprachassi = "ja"; } else if(index == 1) { sprachassi = "nein"; }
+ Script: global_activetask = "none"; global_apssid = "none"; global_userflowstate = "none";
+ Script: global_amadid = getDate();
+ Setze Flow Status: Aktivieren Send Data to AMADCommBridge
+ Setze Flow Status: Deaktivieren First Run Assistant
+ Meldungsdialog: Wunderbar. Bitte nimm Dir Zeit und lese Dir die Hilfe Dialoge genau durch. Wenn Du Dir unsicher bist, kannst Du die Standardeinstellung, sofern vorhanden, belassen. Lass uns nun mit der Einrichtung beginnen.
+ Flows löschen: First Run Assistant
+ Flows löschen: First Run Assistant
+ Meldungsdialog: Die Einrichtung ist nun abgeschlossen und das AMAD Device online.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Informations
+ AMADNG Info/Control Flowset v4.2.0
+ true
+ QUEUE
+ 900
+ Script: daydream_state = "on"
+ Script: daydream_state = "off"
+ Display Orientierung: Portrait
+ Script: screen_orientation = "portrait"
+ Script: screen_orientation = "landscape"
+ Script: dock_state = "docked"
+ Script: dock_state = "undocked"
+ Script: screen_orientation_mode = "manual"
+ Expression: scrcount < 5
+ Script: scrcount = scrcount + 1
+ Pause: 2s (Gerät wach halten)
+ Dock Status: Docked
+ Display automatisch drehen eingeschaltet
+ Expression: trigger == "Daydream Status: Gestartet"
+ Bluetooth eingeschaltet
+ Keyguard gesperrt
+ Expression: keyguard == "locked"
+ Expression: getAndroidSDKVersion() >= "16"
+ Display eingeschaltet
+ Display eingeschaltet
+ Expression: getAndroidSDKVersion() >= "16"
+ 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 = "always"
+ Script: dndValue = "onlyImportant"
+ Script: dndValue = "never"
+ Script: dndValue = "alarmClockOnly"
+ Script: screen_state = "off"
+ Script: screen_state = "on {keyguard}"
+ Script: screen_state = "off {keyguard}"
+ Script: airplanemode = "off"
+ Script: bluetooth_state = "on"
+ Script: androidVersion = "not supported funktion"
+ App Task läuft: {global_activetask} (neuster)
+ Script: runTask = "1"
+ Script: runTask = "0"
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: runTask = "not supported android version"
+ Script: runTask = "null"
+ Expression: global_activetask != null
+ Expression: trigger == "Display Status: Aus" or trigger == "Display Status: Ein" or udef_trigger == "setLockPin" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: trigger == "Daydream Status: Gestartet" or trigger == "Daydream Status: Gestoppt"
+ Expression: trigger == "Display Orientierung: Landscape" or trigger == "Display Orientierung: Portrait" or trigger == "Display Status: Ein" or trigger == "Display Status: Aus" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: trigger == "Akku Ladestand: grösser als 0%"
+ Stromversorgung: Angeschlossen
+ Script: screen_orientation_mode = "auto"
+ Script: bluetooth_state = "off"
+ Keyguard mit Sicherheit
+ Expression: trigger == "Eingehender Anruf. Status: Klingelt, Nummern: Alle"
+ Expression: trigger == "Flugmodus: Aus" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: trigger == "Systemeinstellung verändert: System screen_brightness"
+ Bluetooth Gerät verbunden: Beliebiges Geräte (Advanced Audio Distribution)
+ Script: volume = {volumeBT}
+ Pause: 2s (Gerät wach halten)
+ Musik Aktiv
+ Benachrichtigung auf Bildschirm: [AMAD2] Nicht mehr benötigte AMAD Flows wurden entfernt! (lange)
+ 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" or trigger == "Systemeinstellung verändert: System volume_music_headset"
+ Initialisiere Variable Systemeinstellung: volumeMusikBluetooth.2
+ Script: volume = {volumeSP}
+ Initialisiere Variable Systemeinstellung: volumeMusikSpeaker.2
+ 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" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: getAndroidSDKVersion() >= "21"
+ Script: airpcount = 0
+ Host erreichbar: {global_fhemip}:{global_bridgeport}
+ WLAN Reassoziieren
+ Expression: global_fhemip != null or global_bridgeport != null
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Script: notification_text = "not supported from your device"
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: com.whatsapp"
+ Initialisiere Variable Systemeinstellung: screenBrightness
+ Initialisiere Variable Systemeinstellung: volumeNotification
+ Expression: trigger == "Medien Session verändert" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ WLAN verfügbar: {global_apssid}
+ Script: intentRadioState = "\"intentRadioState\":" + " \"" + {irstate} + "\"" + "," + "\"intentRadioName\":" + " \"" + {irname} + "\""; fhemcmd = "setreading";
+ Script: dockingState = "\"dockingState\":" + " \"" + {dock_state} + "\""; fhemcmd = "setreading";
+ Script: screenOrientation = "\"screenOrientation\":" + " \"" + {screen_orientation} + "\"" + "," + "\"screenOrientationMode\":" + " \"" + {screen_orientation_mode} + "\""; fhemcmd = "setreading";
+ Script: screenBrightness = "\"screenBrightness\":" + " \"" + {screenBrightness} + "\""; fhemcmd = "setreading";
+ Script: volumeNotification = "\"volumeNotification\":" + " \"" + {volumeNotification} + "\""; fhemcmd = "setreading";
+ Script: airplanemode = "\"airplanemode\":" + " \"" + {airplanemode} + "\""; fhemcmd = "setreading";
+ Script: checkActiveTask = "\"checkActiveTask\":" + " \"" + {runTask} + "\""; fhemcmd = "setreading";
+ Expression: Leon == "Gaultier"
+ Flows löschen: MultimediaControl
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic" or trigger == "Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: getAndroidSDKVersion() >= "19"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Benachrichtigung in Statusbar angezeigt: Automagic
+ Script: deviceState = "\"deviceState\": \"online\""; fhemcmd = "setreading";
+ Expression: trigger == "Dock Event: Docked" or trigger == "Dock Event: Undocked" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Flows ausführen: Send Data to AMADCommBridge
+ Script: bluetooth = "\"bluetooth\":" + " \"" + {bluetooth_state} + "\""; fhemcmd = "setreading";
+ Script: connected_devices_names = "none"; connected_devices_addresses = "none"
+ Script: btdeviceinfo = "\"connectedBTdevices\":" + " \"" + {connected_devices_names} + "\"" + "," + "\"connectedBTdevicesMAC\":" + " \"" + {connected_devices_addresses} + "\""; fhemcmd = "setreading";
+ Bluetooth Gerät verbunden: Beliebiges Geräte
+ Expression: trigger == "Bluetooth Status: Schaltet aus, Aus" or trigger == "Bluetooth Gerät verbunden: Alle Geräte" or trigger == "Bluetooth Gerät getrennt: Alle Geräte" or trigger == "Bluetooth Status: Schaltet ein, Ein" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Script: flow_SetCommands = "\"flow_SetCommands\":" + " \"" + {setCommandFlow_state} + "\""; fhemcmd = "setreading";
+ Setze Flow Status: Aktivieren SetCommands
+ Script: setCommandFlow_state = "aktiv"
+ Script: setCommandFlow_state = "inaktiv"
+ Flow Aktiv: SetCommands
+ Expression: trigger == "Periodischer Timer: alle 120s"
+ Expression: global_userflowstate != "none"
+ Flow Aktiv: {global_userflowstate}
+ Script: flowState = "inactive"
+ Script: flowState = "active"
+ Script: flow_informations = "\"userFlowState\":" + " \"" + {flowState} + "\""; fhemcmd = "setreading";
+ Expression: trigger == "Periodischer Timer: alle 120s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Flow Aktiv: Send Data to AMADCommBridge
+ Setze Flow Status: Aktivieren Send Data to AMADCommBridge
+ Expression: trigger == "Periodischer Timer: alle 120s"
+ Script: automagicState = "\"automagicState\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Pause: 2s (Gerät wach halten)
+ Script: airpcount = airpcount + 1
+ Expression: airpcount < 11
+ Script: notification_text = "not supported from your device"
+ Script: currentMusic = "\"currentMusicTrack\":" + " \"" + {title} + "\"" + "," + "\"currentMusicAlbum\":" + " \"" + {description} + "\"" + "," + "\"currentMusicArtist\":" + " \"" + {subtitle} + "\"" + "," + "\"currentMusicApp\":" + " \"" + {musicapp} + "\"" + "," + "\"currentMusicIcon\":" + " \"" + {icon} + "\"" + "," + "\"currentMusicState\":" + " \"" + {playback_state} + "\""; fhemcmd = "setreading";
+ Script: volumevalue = "\"volume\":" + " \"" + {volume} + "\""; fhemcmd = "setreading";
+ Script: nextAlarm = "\"nextAlarmTime\":" + " \"" + {next_alarmtime} + "\"" + "," + "\"nextAlarmDay\":" + " \"" + {next_alarmday} + "\""; fhemcmd = "setreading";
+ Expression: trigger == "Systemeinstellung verändert: System volume_ring_speaker"
+ Expression: package_name == {global_activetask}
+ Expression: trigger == "Periodischer Timer: alle 120s" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Expression: trigger == "App Task Beendet" or trigger == "App Task Gestartet"
+ Expression: trigger == "App Task Gestartet" or trigger == "Periodischer Timer: alle 120s"
+ 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" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ 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" }
+ Expression: trigger == "Systemeinstellung verändert: System next_alarm" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Initialisiere Variable Nächster Alarm: next_alarm
+ Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"
+ Script: next_alarmday = "{next_alarm,dateformat,c}"
+ Script: volumeRingSound = "\"volumeRingSound\":" + " \"" + {volumeRingSound} + "\""; fhemcmd = "setreading";
+ Script: wiredHeadsetPlugged = "\"wiredHeadsetPlugged\":" + " \"" + {headsetValue} + "\""; fhemcmd = "setreading";
+ Expression: trigger == "Kabelgebundenes Headset Verbunden" or trigger == "Kabelgebundenes Headset Getrennt"
+ Expression: trigger == "Systemeinstellung verändert: System volume_ring"
+ Expression: trigger == "Genereller Broadcast: wenn org.smblott.intentradio.STATE"
+ Kabelgebundenes Headset verbunden
+ Script: headsetValue = 1
+ Script: headsetValue = 0
+ Initialisiere Variable Systemeinstellung: volumeRingSound
+ Script: subtitle = "no player active"; title = "no player active"; description = "no player active"; musicapp = "no player active"; icon = "no player active"
+ Script: notification_text = "Aktiviere Automagic unter Einstellungen -> Benachrichtigungen -> Benachrichtigungszugriff"
+ Benachrichtigung in Statusbar angezeigt: Telegram Messenger
+ Script: notification_text = "not supported from your device"
+ Expression: getAndroidSDKVersion() >= "19"
+ Expression: trigger == "Benachrichtigung in Statusbar angezeigt: org.telegram.messenger"
+ Host erreichbar: {global_fhemip}:{global_bridgeport}
+ Expression: trigger == "SMS Empfangen: Alle"
+ Script: nextAlarmState = "\"nextAlarmState\":" + " \"" + {nextalarmstate} + "\""; fhemcmd = "setreading";
+ Script: doNotDisturb = "\"doNotDisturb\":" + " \"" + {dndValue} + "\""; fhemcmd = "setreading";
+ Script: screen_state = "on"
+ Script: keyguard = "locked"
+ Script: keyguard = "unlocked"
+ Script: scrcount = 0
+ Script: screen = "\"screen\":" + " \"" + {screen_state} + "\""; fhemcmd = "setreading";
+ Script: keyguardset = "1"
+ Script: keyguardset = "0"
+ Expression: udef_trigger == "setLockPin" or trigger == "HTTP Request: /fhem-amad/deviceInfo/"
+ Script: keyguardset = "not supported from your device"
+ Script: keyguardSet = "\"keyguardSet\":" + " \"" + {keyguardset} + "\""; fhemcmd = "setreading";
+ Script: androidVersion = "\"androidVersion\":" + " \"" + {androidVersion} + "\""; fhemcmd = "setreading";
+ Get Android Version
+ Script: powerinfo = "\"powerLevel\":" + " \"" + "{battery_percentage,numberformat,0}" + "\"" + "," + "\"powerPlugged\":" + " \"" + {battery_plugged} + "\"" + "," + "\"batteryTemperature\":" + " \"" + "{battery_temperature/10.0,numberformat.0.0}" + "\"" + "," + "\"batteryHealth\":" + " \"" + {battery_health} + "\""; fhemcmd = "setreading";
+ Script: daydream = "\"daydream\":" + " \"" + {daydream_state} + "\""; fhemcmd = "setreading";
+ Prüfe und setze globale Variable
+ Expression: trigger == "HTTP Request: /fhem-amad/deviceInfo/" and header_amadid == {global_amadid}
+ Script: if(playback_state == 0) { playback_state = "none" } else if(playback_state == 1) { playback_state = "stopped" } else if(playback_state == 2) { playback_state = "pause" } else if(playback_state == 3) { playback_state = "play" } else if(playback_state == 4) { playback_state = "fast forward" } else if(playback_state == 5) { playback_state = "fast backward" } else if(playback_state == 6) { playback_state = "buffert" } else if(playback_state == 7) { playback_state = "error" } else if(playback_state == 8) { playback_state = "connect" } else if(playback_state == 9) { playback_state = "skip forward" } else if(playback_state == 10) { playback_state = "skip backward" } else if(playback_state == 11) { playback_state = "jump to position in playlist" }
+ Script: if(package_name == "com.google.android.music") { musicapp = "Google Musik" } else if(package_name == "com.amazon.mp3") { musicapp = "Amazon Musik" } else if(package_name == "com.google.android.videos") { musicapp = "Google Video" } else if(package_name == "com.spotify.music") { musicapp = "Spotify Musik" } else if(package_name == "com.google.android.youtube") { musicapp = "YouTube" } else if(package_name == "com.google.android.apps.youtube.kids") { musicapp = "YouTube Kids" } else if(package_name == "tunein.player") { musicapp = "TuneIn Player" } else if(package_name == "com.rhapsody.alditalk") { musicapp = "Aldi Life Musik" } else if(package_name == "org.videolan.vlc") { musicapp = "VLC Player" } else if(package_name == "com.sec.android.app.music") { musicapp = "Samsung Music Player" } else if(package_name == "deezer.android.app") { musicapp = "Deezer" }
+ Benachrichtigung in Statusbar angezeigt: WhatsApp
+ Script: incomingCaller = "\"incomingCallerName\":" + " \"" + {contact_name} + "\"" + "," + "\"incomingCallerNumber\":" + " \"" + {incoming_number} + "\""; fhemcmd = "setreading";
+ Script: incomingTelegramMessage = "\"incomingTelegramMessage\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Script: incomingWhatsAppMessage = "\"incomingWhatsAppMessage\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Script: incomingSmsMessage = "\"incomingSmsMessage\":" + " \"" + {sms_sender} + " - " + replaceAll({sms_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_DONE
+ Kabelgebundenes Headset Verbunden
+ Genereller Broadcast: wenn org.smblott.intentradio.STATE
+ Systemeinstellung verändert: System volume_music_headphone
+ Kabelgebundenes Headset Getrennt
+ Systemeinstellung verändert: System volume_music_headset
+ Stromversorgung: Angeschlossen
+ Bluetooth Status: Schaltet ein, Ein
+ Display Status: Aus
+ Display Orientierung: Portrait
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_SNOOZE
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_DISMISS
+ Bluetooth Status: Schaltet aus, Aus
+ Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
+ Benachrichtigung in Statusbar angezeigt: com.whatsapp
+ Daydream Status: Gestoppt
+ Benachrichtigung in Statusbar angezeigt: ch.gridvision.ppam.androidautomagic
+ Eingehender Anruf. Status: Klingelt, Nummern: Alle
+ Display Status: Ein
+ Systemeinstellung verändert: System volume_music_speaker
+ Systemeinstellung verändert: System screen_brightness
+ Daydream Status: Gestartet
+ Bluetooth Gerät verbunden: Alle Geräte
+ Bluetooth Gerät getrennt: Alle Geräte
+ Periodischer Timer: alle 120s
+ Dock Event: Docked
+ Systemeinstellung verändert: System volume_music_bt_a2dp
+ Akku Ladestand: grösser als 0%
+ App Task Beendet
+ Unterbrechnungen-Modus: Alle / Immer unterbrechen
+ HTTP Request: /fhem-amad/deviceInfo/
+ Genereller Broadcast: wenn com.android.deskclock.ALARM_ALERT
+ Benachrichtigung in Statusbar angezeigt: org.telegram.messenger
+ Stromversorgung: Entfernt
+ Systemeinstellung verändert: System next_alarm
+ Benachrichtigung in Statusbar entfernt: ch.gridvision.ppam.androidautomagic
+ App Task Gestartet
+ Unterbrechnungen-Modus: Keine / Nicht unterbrechen
+ Dock Event: Undocked
+ Display Orientierung: Landscape
+ Unterbrechnungen-Modus: Nur Wecker (Android 6+)
+ Systemeinstellung verändert: System volume_ring
+ Flugmodus: Aus
+ Systemeinstellung verändert: System volume_ring_speaker
+ SMS Empfangen: Alle
+ Medien Session verändert
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NFC Tag Support
+ AMADNG Info/Control Flowset v4.2.0
+ true
+ PARALLEL
+
+ NFC State
+ NFC TagIDs
+
+ Flows ausführen: Send Data to AMADCommBridge
+ Script: if (trigger == "NFC TagIDs" ) { nfcLastTagID = "\"nfcLastTagID\":" + " \"" + {nfc_tag_ids} + "\""} if (trigger == "NFC State" ) { nfc = "\"nfc\":" + " \"" + {nfc_state} + "\""} fhemcmd = "setreading";
+
+
+
+
+ Send Data to AMADCommBridge
+ AMADNG Info/Control Flowset v4.2.0
+ true
+ PARALLEL
+ 900
+
+ WLAN Getrennt: toGo
+ WLAN Verbunden: toGo
+
+ Expression: fhemcmd == "set"
+ Expression: fhemcmd == "voiceinputvalue"
+ Script: Set FHEMVOICEINPUTDATA JSON
+ In Datei Schreiben: Deaktiviere Flows in /storage/emulated/0/file.txt (anhängen)
+ Setze Flow Status: Deaktivieren Informations,SetCommands
+ Flow Aktiv: Informations
+ Flow Aktiv: SetCommands
+ Expression: trigger == "WLAN Getrennt: toGo"
+ Expression: togocount < 6
+ Pause: 1s (Gerät wach halten)
+ Setze Flow Status: Aktivieren Informations,SetCommands
+ Flow Aktiv: Informations
+ Flow Aktiv: SetCommands
+ Expression: trigger == "WLAN Verbunden: toGo"
+ In Datei Schreiben: Aktiviere Flows in /storage/emulated/0/file.txt (anhängen)
+ Script: if(togocount > 0) { togocount = togocount + 1; } else { togocount = 0; togocount = togocount + 1; }
+ Expression: amadcmd == "firstrun"
+ Expression: fhemcmd == "readingsval"
+ Script: Set FHEMREADINGSVALCMD JSON
+ Host erreichbar: {global_fhemip}:{global_bridgeport}
+ Expression: fhemcmd == "fhemfunc"
+ Script: Set FHEMCALLSUB JSON
+ HTTP Request: send FHEMFUNC data to AMADCommBridge JSON
+ HTTP Request: send FIRSTRUN data to AMADCommBridge JSON
+ HTTP Request: send READINGS data to AMADCommBridge JSON
+ HTTP Request: send SET data to AMADCommBridge JSON
+ HTTP Request: send READINGSVAL data to AMADCommBridge JSON
+ HTTP Request: send VOICEINPUTVALUE data to AMADCommBridge
+ Expression: fhemcmd == "setreading"
+ Script: Set FHEMDATA JSON First Run Assistant
+ Script: Set FHEMSETCMD JSON
+ Script: Set FHEMDATA JSON
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SetCommands
+ AMADNG Info/Control Flowset v4.2.0
+ true
+ QUEUE
+ 900
+ Expression: setBrightness"
+ Expression: setScreenFullscreen"
+ Expression: param_orientation == "auto"
+ Setze Display Orientierung: Portrait
+ Setze Display Orientierung: Landscape
+ Expression: param_orientation == "landscape"
+ Setze Vollbild Modus: Navigation nicht anzeigen
+ Setze Vollbild Modus: Auf Default zurücksetzen
+ Setze Display Orientierung: Auf Default zurücksetzen
+ Display automatisch drehen ein-/ausschalten: Aus
+ Display automatisch drehen ein-/ausschalten: Ein
+ Expression: setScreenOrientation"
+ Expression: param_fullscreen == "off"
+ Expression: param_bluetooth == "off"
+ Expression: param_bluetooth == "on"
+ Bluetooth ein-/ausschalten: Ein
+ Bluetooth eingeschaltet
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Advanced Audio Distribution {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Eingabegerät {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdeviceone}
+ Bluetooth Gerät verbinden/trennen: Trennen Headset {param_btdevicetwo}
+ Bluetooth Gerät verbinden/trennen: Trennen Personal Area Network {param_btdevicetwo}
+ Pause: 3s (Gerät wach halten)
+ Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution {param_swtobtdevicemac}
+ Pause: 2s (Gerät wach halten)
+ Expression: setBTDevice"
+ Bluetooth ein-/ausschalten: Aus
+ Expression: param_orientation == "portrait"
+ Expression: setVoiceCommand"
+ Setze Display Helligkeit: {param_brightness}
+ Expression: setScreenlock"
+ Expression: sendIntent"
+ Setze Lock PIN/Passwort: Setze PIN von Variable param_lockpin
+ Expression: setAlarm"
+ Expression: screenMsg"
+ Benachrichtigung auf Bildschirm: {param_message} (lange)
+ Script: udef_trigger = "setLockPin"
+ Display eingeschaltet
+ Gerät sperren
+ Schalte Display ein
+ Gerät sperren
+ Expression: setTimer"
+ Expression: param_option
+ Pause: {param_hanguptime}s (Gerät wach halten)
+ Anruf beenden
+ Broadcast senden: {param_action}
+ URL in Browser öffnen: {param_url} (mit {param_browserapp}/{param_browserappclass})
+ Setze Unterbrechnungen-Modus: Alle / Immer unterbrechen
+ Setze Unterbrechnungen-Modus: Wichtig / Nur wichtige Unterbrechnungen zulassen
+ Setze Unterbrechnungen-Modus: Keine / Nicht unterbrechen
+ Setze Unterbrechnungen-Modus: Nur Wecker (Android 6+)
+ Expression: openURL"
+ Expression: param_fullscreen == "on"
+ Expression: do not Disturb"
+ Expression: param_disturbmod == "always"
+ Expression: param_disturbmod == "onlyImportant"
+ Expression: param_disturbmod == "never"
+ Expression: param_disturbmod == "alarmClockOnly"
+ Expression: setBluetooth"
+ Expression: param_screen=="on"
+ Expression: setScreenOnOff"
+ Gerät sperren
+ Expression: param_screen=="off"
+ Expression: openApp"
+ App Task läuft: App (neuster)
+ Expression: setVolume"
+ App Starten: App
+ Dateien löschen: /storage/emulated/0/Download/installFlow_{param_flowname}
+ Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Dateien löschen: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Script: notification_text = "Flow install: path for download not exist"
+ Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/sdcard0/Download
+ Flows/Widgets importieren: /storage/emulated/0/Download/installFlow_{param_flowname}
+ Flows/Widgets importieren: /storage/sdcard0/Download/installFlow_{param_flowname}
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
+ Expression: installFlow"
+ Neustart
+ Expression: Reboot
+ Expression: System Command"
+ Expression: Shutdown
+ Script: airplanemode = "airplanemode@@on"; fhemcmd = "setreading";
+ Flows ausführen: Send Data to AMADCommBridge mit warten
+ Flugmodus ein-/ausschalten: Ein
+ Herunterfahren
+ Notification Lautstärke Wiederherstellen
+ Expression: param_notifyfile == "RedAlert.mp3"
+ Benachrichtigung aus Statusbar entfernen: Alle
+ Benachrichtigung aus Statusbar entfernen: Alle (Automagic)
+ Expression: Automagic
+ Expression: All
+ Expression: notifysnd"
+ NotificationLautstärke auf Level 7
+ Notification Lautstärke Speichern
+ Expression: param_notifyfile == "RedAlert.mp3"
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Expression: Clear Automagic Meldungen"
+ Expression: setVibrate"
+ Audio Player steuern: Medienknopf Zurück ({pname}/{kname})
+ Schalte Display ein: Hell für {param_screenontime}s
+ Setze Alarm: um {param_hour}:{param_minute}
+ Audio Player steuern: Medienknopf Weiter ({pname}/{kname})
+ Expression: openCall"
+ Nummer anrufen: {param_callnumber}
+ Expression: param_flowstate == "active" or param_flowstate == "inactive"
+ Expression: param_flowstate == "active"
+ Setze Flow Status: Deaktivieren {param_flowname}
+ Script: notification_text = "Flow '{param_flowname}' has been set {param_flowstate}"
+ Expression: multimediaControl"
+ Starte Daydream
+ Expression: startDaydream"
+ Lautstärken setzen param_volume
+ Expression: setNotifiVolume"
+ Lautstärken setzen param_notifivolume
+ Audio Player steuern: Medienknopf Play/Pause (/{kname})
+ Sound: {param_notifypath}{param_notifyfile} als Benachrichtigung
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
+ Download URL: http://{global_fhemip}:{global_bridgeport}/installFlow_{param_flowname} to /storage/emulated/0/Download
+ Script: flow_informations = "\"flow_informations\":" + " \"" + {informationFlow_state} + "\""; fhemcmd = "setreading";
+ Script: automagicState = "\"automagicState\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Flows ausführen: udef_trigger setLockPin
+ Flow Aktiv: Informations
+ Script: informationFlow_state = "aktiv"
+ Script: informationFlow_state = "inaktiv"
+ Setze Flow Status: Aktivieren Informations
+ Flow Aktiv: Send Data to AMADCommBridge
+ Setze Flow Status: Aktivieren Send Data to AMADCommBridge
+ SMS senden an: an {param_smsnumber} '{param_smsmessage}' (10 in 12h)
+ Expression: param_lockmod == "lock"
+ Expression: Airplanemode
+ Expression: param_nfc == "on"
+ Expression: param_nfc == "off"
+ NFC ein-/ausschalten: Aus
+ Expression: sendSms"
+ Expression: closeCall"
+ Expression: nfc"
+ NFC ein-/ausschalten: Ein
+ Expression: setRingSoundVolume"
+ Lautstärken setzen param_ringsoundvolume
+ Setze Timer
+ Expression: ttsMsg"
+ Expression: ttsMsgLang"
+ Medianlautstärken Speichern
+ Lautstärke einstellen: Medien auf Level {param_msgvol}
+ Expression: param_msgvol == "none"
+ Sprachausgabe: Englisch
+ Sprachausgabe: Deutsch
+ Expression: param_msgvol == "none"
+ Medienlautstärke Wiederherstellen
+ Expression: flowState"
+ Setze Flow Status: Aktivieren {param_flowname}
+ Flows ausführen: VoiceControl
+ Setze Lock PIN/Passwort: PIN/Passwort zurücksetzen
+ Expression: showhomescreen"
+ Zeige Home Screen
+ Vibrieren: Pattern 2 (-- --)
+ Flows ausführen: Send Data to AMADCommBridge
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 800x600
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1024x768
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1280x720
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1600x1200
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1920x1080
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1920x1080 Front
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1600x1200 Front
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1024x768 Front
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 800x600 Front
+ Foto aufnehmen: /storage/emulated/0/AMADpicture.jpg (ohne Benutzeroberfläche) 1280x720 Front
+ Expression: param_pictureresolution == "800x600"
+ Expression: param_pictureresolution == "1024x768"
+ Expression: param_pictureresolution == "1280x720"
+ Expression: param_pictureresolution == "1600x1200"
+ Expression: param_pictureresolution == "1920x1080"
+ Expression: param_picturecamera == "Back"
+ Expression: param_picturecamera == "Back"
+ Expression: param_picturecamera == "Back"
+ Expression: param_picturecamera == "Back"
+ Expression: param_picturecamera == "Back"
+ Script: automagicState = "\"automagicState\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Expression: takepicture
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
+ Script: automagicState = "\"automagicState\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Script: notification_text = "Take Picture: can not save camerapicture, path does not exist"
+ Expression: flowRun"
+ Flows ausführen: {param_flowname}
+ Flows ausführen: Update AMAD Flowset
+ Expression: trigger == "HTTP Request: /fhem-amad/setCommands/*"
+ Expression: currentFlowsetUpdate"
+ Audio Player steuern: Medienknopf Stopp ({pname}/{kname})
+ Expression: param_button == "mediaStop"
+ Expression: param_button == "mediaPlay"
+ Expression: param_button == "mediaNext"
+ Expression: param_button == "mediaBack"
+ Script: Zuordnung Mediaplayer
+ Expression: trigger == "Sprachbefehl angefordert"
+ Expression: global_fhemip != null or global_bridgeport != null
+
+ HTTP Request: /fhem-amad/deviceInfo/
+ Sprachbefehl angefordert
+ HTTP Request: /fhem-amad/setCommands/*
+ Periodischer Timer: alle 120s
+
+ Host erreichbar: {global_fhemip}:{global_bridgeport}
+ Expression: header_amadid == {global_amadid}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Update AMAD Flowset
+ AMADNG Info/Control Flowset v4.2.0
+ true
+ QUEUE
+
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Flows ausführen: Send Data to AMADCommBridge
+ Flow Aktiv: First Run Assistant
+ Setze Flow Status: Deaktivieren First Run Assistant
+ Prüfe und setze Bridgeport Variable
+ Verzeichnisse erstellen: /storage/sdcard0/AMADNG_FlowsetUpdate
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/sdcard0)
+ Verzeichnisse erstellen: /sdcard/AMADNG_FlowsetUpdate
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/sdcard)
+ Verzeichnisse erstellen: /storage/emulated/0/AMADNG_FlowsetUpdate
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml nach /storage/emulated/0/AMADNG_FlowsetUpdate
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml nach /storage/sdcard0/AMADNG_FlowsetUpdate
+ Download URL: http://{global_fhemip}:{global_bridgeport}/currentFlowsetUpdate.xml nach /sdcard/AMADNG_FlowsetUpdate
+ Flows/Widgets importieren: /storage/emulated/0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ Flows/Widgets importieren: /storage/sdcard0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ Flows/Widgets importieren: /sdcard/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Setze Flow Status: Aktivieren {imported_flow_names,listformat,comma}
+ Dateien löschen: /storage/emulated/0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ Dateien löschen: /sdcard/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ Dateien löschen: /storage/sdcard0/AMADNG_FlowsetUpdate/currentFlowsetUpdate.xml
+ Expression: header_amadid == {global_amadid}
+ Gerätespeicherplatz: Freier Speicherplatz > 1kb (/storage/emulated/0)
+ Script: automagicState = "\"automagicState\":" + " \"" + replaceAll({notification_text}, "\\n", " ") + "\""; fhemcmd = "setreading";
+ Script: notification_text = "Flowset Update: path for download not exist"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VoiceControl
+ AMADNG Info/Control Flowset v4.2.0
+ true
+ QUEUE
+
+ AMAD Voice Control
+ Expression: value != ""
+ Expression: contains(value, " und ")
+ Script: voiceinputdata = {left(value, (indexOf(value, " und ")))}; fhemcmd = "voiceinputvalue";
+ Flows ausführen: Send Data to AMADCommBridge
+ Setze voice Variablen
+ Spracheingabe wurde nicht erkannt
+ Script: voiceinputdata = value; fhemcmd = "voiceinputvalue";
+ Flows ausführen: Send Data to AMADCommBridge
+ Benachrichtigung auf Bildschirm: {value} (lange)
+ Expression: global_fhemctlmode != "thirdPartControl"
+ Script: voiceinputdata = value; fhemcmd = "voiceinputvalue";
+ Flows ausführen: Send Data to AMADCommBridge
+ Benachrichtigung auf Bildschirm: {value} (lange)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/74_AMADtaskerset_4.2.0.prj.xml b/74_AMADtaskerset_4.2.0.prj.xml
new file mode 100644
index 0000000..45b31ae
--- /dev/null
+++ b/74_AMADtaskerset_4.2.0.prj.xml
@@ -0,0 +1,11136 @@
+
+ 1080.0,1776.0
+
+ 1516830496835
+ true
+ 1517341634125
+ 1005
+ 1004
+ AutoRemote AMAD
+
+ 1015828216
+ 0
+
+
+ AMAD=:=
+ java.lang.String
+ <null>
+ java.lang.String
+ AMAD=:=
+ java.lang.String
+ false
+ java.lang.Boolean
+ false
+ java.lang.Boolean
+ false
+ java.lang.Boolean
+ <null>
+ java.lang.String
+ true
+ java.lang.Boolean
+ <StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%err
+Error Code
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%errmsg
+Error Message
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%armessage
+The whole received AutoRemote message.
+The whole received AutoRemote message.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%arpar()
+Single words to the left of =:=
+Single words to the left of =:=</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%arcomm
+Whole of the text to the right of =:=
+Whole of the text to the right of =:=</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5>%artime
+Current Time
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6>%arfiles()
+Files
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES7>%arsenderbtmac
+Sender Bluetooth Mac Address
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES7><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES8>%arsenderid
+Sender Id
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES8><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES9>%arsenderlocalip
+Sender Local IP
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES9><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES10>%arsendername
+Sender Name
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES10><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES11>%arsenderpublicip
+Sender Public IP
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES11><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES12>%arsendertype
+Sender Type
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES12><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES13>%arvia
+Way the message was sent (BT, Wifi, GCM)
+</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES13></StringArray>
+ [Ljava.lang.String;
+ messagevar tempvar commparamsvar message target plugininstanceid plugintypeid
+ java.lang.String
+ true
+ java.lang.Boolean
+ af7bff02-f94c-479d-b5a4-1aad4787b934
+ java.lang.String
+ com.joaomgcd.autoremote.IntentRemoteEvent
+ java.lang.String
+ <null>
+ java.lang.String
+
+
+ com.joaomgcd.autoremote
+ com.joaomgcd.autoremote.activity.ActivityConfigConditionTaskerEvent
+
+
+ 165
+
+
+ %AMAD_receive
+ 2
+ on
+
+
+
+
+
+ 1516830496835
+ true
+ 1512646890239
+ 1006
+ 984
+ 973
+ AMAD_airplanemode
+
+ 100
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496836
+ true
+ 1516907246352
+ 1007
+ 991
+ toGoAMAD
+
+ 160
+ true
+ %AMAD_apssid
+
+
+
+
+
+ 165
+
+
+ %AMAD_toGo
+ 2
+ on
+
+
+
+
+
+ 1516830496836
+ true
+ 1512646887184
+ 1008
+ 968
+ 974
+ AMAD_nfc
+
+ 195
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496837
+ true
+ 1513116249338
+ 1010
+ 992
+ AMAD_screen_off
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+ 210
+
+
+
+ 1516830496847
+ true
+ 1512646889105
+ 1011
+ 942
+ 927
+ AMAD_wiredHeadsetPlugged
+
+ 30
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496847
+ true
+ 1516488793383
+ 1012
+ 952
+ AMAD_IntentRadio
+
+ 599
+ org.smblott.intentradio.STATE
+
+
+
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496848
+ true
+ 1513424870080
+ 1013
+ 983
+ 932
+ AMAD_bluetooth
+
+ 2
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496848
+ true
+ 1516474460529
+ 1014
+ 964
+ AMAD_SMS
+
+ 7
+ 0
+
+
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496849
+ true
+ 1513424843423
+ 1015
+ 947
+ AMAD_alarm_start
+
+ 305
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496849
+ true
+ 1512646885163
+ 1016
+ 988
+ 926
+ AMAD_dockingState
+
+ 80
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496849
+ true
+ 1513424830740
+ 1017
+ 963
+ AMAD_alarm_done
+
+ 306
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496850
+ true
+ 1516907074420
+ 1019
+ 1004
+ TNES AMAD
+
+ 818578785
+ 0
+
+
+ 22
+ java.lang.Integer
+ <StringArrayList sr=""><_arrlst_com.taskerplugin.httpevent.extra.STRINGS_FILTERS0>device==AMAD</_arrlst_com.taskerplugin.httpevent.extra.STRINGS_FILTERS0><_arrlst_com.taskerplugin.httpevent.extra.STRINGS_FILTERS1>cmd</_arrlst_com.taskerplugin.httpevent.extra.STRINGS_FILTERS1></StringArrayList>
+ java.util.ArrayList
+ 192.168.5.81
+ java.lang.String
+ 8765
+ java.lang.String
+
+ java.lang.String
+
+ java.lang.String
+
+ java.lang.String
+ AMAD
+ java.lang.String
+ true
+ java.lang.Boolean
+
+
+ bidoismorgan.httpevent
+ taskerplugin.httpevent.ui.EditActivity
+
+
+ 165
+
+
+ %AMAD_receive
+ 2
+ on
+
+
+
+
+
+ 1516830496858
+ true
+ 1513147652107
+ 1020
+ 1000
+ AMAD_screen_unlocked
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+ 1000
+
+
+
+ 1516830496872
+ true
+ 1512664308181
+ 1021
+ 934
+ 997
+ AMAD_daydream
+
+ 175
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496883
+ true
+ 1512664382473
+ 1022
+ 916
+ 931
+ AMAD_screenOrientation
+
+ 122
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496883
+ true
+ 1513424824152
+ 1023
+ 925
+ AMAD_alarm
+
+ com.android.deskclock.DeskClock
+ 2
+ Uhr
+ true
+ com.android.deskclock
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496890
+ true
+ 1512646889713
+ 1024
+ 972
+ AMAD_InformationFlow
+
+ -1
+ -1
+ 2
+ 2
+ -1
+ -1
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496891
+ true
+ 1516907192240
+ 1025
+ 1001
+ toGoAMAD
+
+ 160
+ %AMAD_apssid
+
+
+
+
+
+ 165
+
+
+ %AMAD_toGo
+ 2
+ on
+
+
+
+
+
+ 1516830496892
+ true
+ 1513424802623
+ 1026
+ 1003
+ AMAD_screen_on
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+ 208
+
+
+
+ 1516830496892
+ true
+ 1512646676509
+ 1028
+ 989
+ 945
+ AMAD_powerPlugged
+
+ 10
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1516830496893
+ true
+ 1516467998157
+ 1029
+ 993
+ Pushover AMAD
+
+ 109437509
+ 0
+
+
+ Title=~"AMAD"
+ java.lang.String
+ true
+ java.lang.Boolean
+
+ java.lang.String
+
+ java.lang.String
+ net.superblock.pushover.tasker.OK
+ java.lang.String
+
+ java.lang.String
+ false
+ java.lang.Boolean
+ AMAD
+ java.lang.String
+
+ java.lang.String
+
+ java.lang.String
+
+
+ net.superblock.pushover
+ net.superblock.pushover.tasker.PushoverTaskerPluginActivity
+
+
+ 165
+
+
+ %AMAD_receive
+ 2
+ on
+
+
+
+
+
+ 1517260526109
+ true
+ 1517330678766
+ 1030
+ 1031
+ AMAD_Messenger
+
+ 461
+
+ com.whatsapp.Main,
+org.telegram.ui.LaunchActivity
+ com.whatsapp,
+org.telegram.messenger
+ WhatsApp,
+Telegram
+
+
+
+
+
+
+
+
+
+
+ 165
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+
+ 1502789371413
+ AMAD
+ 1020,1023,1016,1024,1013,1026,1017,1019,1014,1030,1010,1011,1007,1006,1028,1008,1012,1015,1005,1025,1022,1021,1029
+ AMAD_settings,AMAD_Dialog_Message
+ 959,969,940,948,1003,989,999,956,922,996,923,1004,961,980,935,924,962,927,967,974,938,920,957,975,952,947,943,982,954,953,988,960,944,987,937,992,976,939,966,995,1000,914,1035,932,998,985,955,934,970,916,918,950,936,977,990,986,994,984,968,942,945,951,1031,979,972,973,978,946,925,926,1001,949,981,963,991,997,941,965,1002,993,931,958,983,964
+
+ android.hardware.camera:y
+ android.hardware.bluetooth:y
+ android.hardware.camera.flash:y
+ android.hardware.camera.front:y
+ android.hardware.wifi:y
+ 963
+ net.superblock.pushover
+ com.joaomgcd.autoremote
+ bidoismorgan.httpevent
+ com.schlimbo.amad
+ 1.0
+ 8
+
+
+ /storage/emulated/0/Tasker/.icn/Eigene Icons/TaskerFHEM_icon.png
+
+
+
+ 1502817008040
+ 1513454407485
+ 437
+ 437
+ AMAD_Dialog_Message
+ 945
+ 945
+
+ 4
+ 0,0,944,437,0,0,944,437
+ Rectangle_Hintergrund
+
+ #77333333
+
+
+ #FFFFFFFF
+
+
+
+
+ 4
+ 8,0,928,340,8,0,928,340
+ Text_Title
+ %message
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 920
+ 4
+ 639,340,306,95,639,340,306,95
+ Text_Weiter
+ Weiter
+
+
+ #FF03A9F4
+
+
+
+
+
+
+ 950
+
+
+ #FF424242
+
+ Input Dialog
+
+
+
+
+ true
+
+
+
+
+ 1512032010150
+ 1515014317697
+ 720
+ 1280
+ AMAD_settings
+ 1280
+ 720
+
+ 951
+ 4
+ 0,561,159,75,651,272,133,73
+ Text_fhemctlmode
+ Control
+Mode:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 923
+ 4
+ 0,464,159,75,651,173,133,73
+ Text_AMADport
+ AMAD
+Bridge Port:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 4
+ 938
+ 168,367,397,75,796,75,343,73
+ 953
+ TextEdit_FHEMip
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 4
+ 936
+ 168,464,397,75,796,173,343,73
+ 955
+ TextEdit_AMADport
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 4
+ 946
+ 168,271,397,75,143,272,343,73
+ 937
+ TextEdit_AMAD_ID
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 924
+ 168,1030,397,75,796,518,343,73
+ 941
+ TextEdit_SSID
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 4
+ 168,561,397,75,796,272,345,74
+ Spinner_fhemctlmode
+
+
+
+
+ 1512142679276
+ 1512142679276
+ 74
+ 75
+ spinner
+ 345
+ 397
+
+ 1
+ 232,0,159,73,195,0,150,74
+ Icon
+
+ hd_aaa_ext_tiles_small
+
+
+
+
+ 1
+ 11,0,101,73,15,0,95,74
+ Index
+ 1.
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 5
+ 0,0,397,75,0,0,345,74
+ Label
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+
+ #FF858585
+
+ spinner
+
+
+
+
+
+
+
+
+ trigger
+
+
+ setControl
+
+
+ thirdPartyControl
+ true
+
+
+
+ 985
+ 4
+ 578,76,134,75,503,75,121,73
+ Text_getDeviceName
+ auto
+set
+
+
+ #FF03A9F4
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 969
+ 4
+ 578,271,134,75,503,272,121,73
+ Text_getID
+ Generate
+new ID
+
+
+ #FF03A9F4
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 975
+ 4
+ 578,174,134,75,503,173,121,73
+ Text_getIP
+ get
+Device IP
+
+
+ #FF03A9F4
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 987
+ 578,1030,134,75,1153,518,121,73
+ Text_getSSID
+ get
+SSID
+
+
+ #FF03A9F4
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 957
+ 4
+ 578,464,134,75,1153,173,121,73
+ Text_setPort
+ default
+8090
+
+
+ #FF03A9F4
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 954
+ 0,1030,159,75,651,518,133,73
+ Text_SSID
+ WLAN
+SSID:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 994
+ 4
+ 0,1175,182,102,0,643,374,75
+ Text_close
+ CLOSE
+
+
+ #FF03A9F4
+
+
+
+
+
+
+ 977
+ 4
+ 283,1175,199,102,452,643,369,75
+ Text_autocreate
+ create Device
+
+
+ #FF03A9F4
+
+
+
+
+
+
+ 939
+ 4
+ 544,1175,174,102,947,643,330,75
+ Text_save
+ SAVE
+
+
+ #FF03A9F4
+
+
+
+
+
+
+ 986
+ 4
+ 591,884,118,74,503,518,118,73
+ Switch_information
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+
+
+
+ #FF000000
+
+
+
+
+
+ 949
+ 4
+ 0,884,567,74,0,518,478,73
+ Text_information
+ information Profiles
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 940
+ 4
+ 0,957,567,74,651,444,478,73
+ Text_toGo
+ toGo Funktion
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 970
+ 4
+ 591,957,118,74,1153,444,118,73
+ Switch_toGo
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+
+
+
+ #FF000000
+
+
+
+
+
+ 995
+ 4
+ 0,737,567,74,0,370,478,73
+ Text_StatusRequest
+ StatusRequest
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 978
+ 4
+ 578,737,134,75,503,370,123,73
+ Text_sendStatusRequest
+ send
+
+
+ #FF03A9F4
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 943
+ 4
+ 0,1124,707,53,0,593,1269,49
+ 990
+ Text_lastCommand
+ %AMAD_lastSetCommand
+
+
+ #FF858585
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+
+
+
+ #FF000000
+
+
+
+
+
+ 959
+ 4
+ 0,174,159,75,0,173,133,73
+ Text_DeviceIP
+ Device
+IP:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 4
+ 682,16,19,19,1243,16,19,19
+ Oval_online
+
+ #FF424242
+
+
+ #FFFFFFFF
+
+
+ 966
+ 4
+ 499,6,179,58,1070,0,173,50
+ Text_deviceState
+ deviceState
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 981
+ 4
+ 0,809,567,74,1,444,478,73
+ Text_setCommands
+ setCommand Profiles
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 4
+ 591,809,118,74,503,444,118,73
+ Switch_setCommands
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+
+
+
+ #FF000000
+
+
+
+
+
+ 961
+ 4
+ 0,659,159,75,651,370,133,73
+ Text_remoteServer
+ remote
+Server:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 4
+ 168,659,397,75,796,370,345,74
+ Spinner_remoteServer
+
+
+
+
+ 1512142679276
+ 1512142679276
+ 74
+ 75
+ spinner
+ 345
+ 397
+
+ 1
+ 232,0,159,73,195,0,150,74
+ Icon
+
+ hd_aaa_ext_tiles_small
+
+
+
+
+ 1
+ 11,0,101,73,15,0,95,74
+ Index
+ 1.
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 5
+ 0,0,397,75,0,0,345,74
+ Label
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+
+ #FF858585
+
+ spinner
+
+
+
+
+
+
+
+
+ TNES
+
+
+ Autoremote
+
+
+ other
+ true
+
+
+
+ 998
+ 4
+ 0,271,159,75,0,272,133,73
+ Text_AMAD_ID
+ AMAD
+ID:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 962
+ 4
+ 0,76,159,75,0,75,133,73
+ Text_DeviceName
+ Device
+Name:
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 4
+ 168,0,349,74,478,0,369,74
+ Text_Title
+ AMAD for Tasker
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+ 4
+ 976
+ 168,76,397,75,143,75,343,73
+ 982
+ TextEdit_DeviceName
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 4
+ 980
+ 168,174,397,75,143,173,343,73
+ 956
+ TextEdit_DeviceIP
+
+
+
+ #FF000000
+
+
+
+
+
+ 4
+ -1,-1,-1,-1,-1,-1,-1,-1
+
+
+ #FF858585
+
+
+ #FFFFFFFF
+
+
+
+
+
+ 979
+ 4
+ 0,367,159,75,651,75,133,73
+ Text_FHEMip
+ AMAD
+Bridge IP:
+
+
+ #FFFFFFFF
+
+
+
+
+
+
+
+
+ #FF424242
+
+ AMAD Settings
+
+
+
+
+
+
+ 1503612579492
+ 1513147652107
+ 1000
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "screen": "on unlocked"
+
+
+
+
+
+ 1503691080060
+ 1516907192240
+ 1001
+ 100
+
+ 547
+ Enable set Profile
+ %AMAD_receive
+ on
+
+
+
+
+
+ 547
+ Enable send Profiles
+ %AMAD_send
+ on
+
+
+
+
+
+ 37
+
+
+ %AMAD_remoteServer
+ 2
+ Autoremote
+
+
+
+
+ 785392305
+ false
+
+
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ /storage/emulated/0/Tasker/.icn/Eigene Icons/TaskerFHEM_icon.png
+ java.lang.String
+ <null>
+ java.lang.String
+ AMAD Autoremote Server
+ java.lang.String
+ true
+ java.lang.Boolean
+ false
+ java.lang.Boolean
+
+Starting Wifi Service
+Persistent Notification: true
+Notification Title: AMAD Autoremote Server
+ java.lang.String
+ true
+ java.lang.Boolean
+ <StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%err
+Error Code
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%errmsg
+Error Message
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1></StringArray>
+ [Ljava.lang.String;
+ FieldsToGet NotificationTitle NotificationText NotificationIcon LedColor LedOn LedOff plugininstanceid plugintypeid
+ java.lang.String
+ true
+ java.lang.Boolean
+ 2136a7e4-dee6-446f-8c72-dc98e51af9d0
+ java.lang.String
+ com.joaomgcd.autoremote.IntentWifiService
+ java.lang.String
+
+
+ com.joaomgcd.autoremote
+ com.joaomgcd.autoremote.activity.ActivityConfigWifiService
+
+
+
+ 38
+
+
+
+ 1503089941004
+ 1512022429362
+ 1002
+ AMAD_Beispiel_Set
+ 100
+
+ 547
+ %setcmd
+ HUEWohnzimmer1 toggle
+
+
+
+
+
+ 547
+ %fhemcmd
+ set
+
+
+
+
+
+ 130
+ Abfrage
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ %fhemcmd
+ %setcmd
+ %respset
+
+
+
+ 548
+ %respset
+
+
+
+
+ 1503612579492
+ 1513147602338
+ 1003
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "screen": "on locked"
+
+
+
+
+
+ 1503693866986
+ 1516474467797
+ 1004
+ AMAD_SetCommands
+ 100
+ 2
+
+ 547
+ %receive
+ %par1
+
+
+
+
+
+ 547
+ %receive
+ %arcomm
+
+
+
+
+
+ %caller1
+ 2
+ profile=enter:AutoRemote AMAD
+
+
+
+
+ 547
+ %command
+ %receive41
+
+
+
+
+
+ 548
+ no root
+ AMAD: "set clearNotificationBar all" benötigt Root rechte
+
+
+ And
+
+ %tpe_app
+ 2
+ All
+
+
+ %ROOT
+ 2
+ no
+
+
+
+
+ 130
+ no root
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set clearNotificationBar all: only works on rooted Devices"
+
+
+
+ And
+
+ %tpe_app
+ 2
+ All
+
+
+ %ROOT
+ 2
+ no
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setvibrate
+
+
+
+
+ 62
+ 0,500,500,500
+
+
+ 43
+
+
+ %command
+ 2
+ showhomescreen
+
+
+
+
+ 25
+
+
+
+ 43
+
+
+ %command
+ 2
+ sendIntent
+
+
+
+
+ 877
+ %tpe_action
+
+
+
+ %tpe_exkey1: %tpe_exval1
+ %tpe_exkey2: %tpe_exval2
+
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ currentFlowsetUpdate
+
+
+
+
+ 130
+ currentFlowsetUpdate
+ AMAD_UpdateFlowset
+
+ %priority+1
+
+
+
+
+
+
+
+ 37
+ Parameter extrahieren
+
+
+ %receive4(#)
+ 7
+ 1
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ installFlow
+
+
+
+
+ 548
+ AMAD: "Flow install: not supported by Tasker"
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "Flow install: not supported by Tasker"
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ openCall
+
+
+
+
+ 90
+ %tpe_callnumber
+
+
+
+ 30
+
+
+ %tpe_hanguptime
+
+
+
+
+
+
+ %tpe_hanguptime
+ 7
+ 1
+
+
+
+
+ 733
+
+
+ %tpe_hanguptime
+ 7
+ 1
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ closeCall
+
+
+
+
+ 733
+
+
+ 43
+
+
+ %command
+ 2
+ startDaydream
+
+
+
+
+ 547
+ %valueall
+ %receive42
+
+
+
+
+
+ 20
+
+ com.android.systemui.Somnambulator
+ com.android.systemui
+ Bildschirmschoner
+
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ sendSms
+
+
+
+
+ 41
+ %tpe_smsnumber
+ %tpe_smsmessage
+
+
+
+ 43
+
+
+ %command
+ 2
+ screenlock
+
+
+
+
+ 548
+ Baustelle
+ AMAD: "set screen lock|unlock" wird noch nicht unterstützt
+
+
+
+ %tpe_lockmod
+ 4
+ lock|unlock
+
+
+
+
+ 130
+ Baustelle
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set screen lock|unlock: not supported by Tasker"
+
+
+
+
+ %tpe_lockmod
+ 4
+ lock|unlock
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setScreenOnOff
+
+
+
+
+ 548
+ Baustelle
+ AMAD: "set screen on" wird noch nicht unterstützt
+
+
+
+ %tpe_screen
+ 2
+ on
+
+
+
+
+ 130
+ Baustelle
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set screen on: not supported by Tasker"
+
+
+
+
+ %tpe_screen
+ 2
+ on
+
+
+
+
+ 16
+
+
+ %tpe_screen
+ 2
+ off
+
+
+
+
+ 590
+ %valueall
+ &
+
+
+
+ 43
+ takepicture
+
+
+ %command
+ 2
+ takepicture
+
+
+
+
+ 101
+ false
+
+ AMADpicture
+
+
+
+ %tpe_pictureresolution
+
+
+
+
+
+
+ %tpe_picturecamera
+ 3
+ Back
+
+
+
+
+ 101
+ false
+
+ AMADpicture
+
+
+
+ %tpe_pictureresolution
+
+
+
+
+
+
+ %tpe_picturecamera
+ 2
+ Back
+
+
+
+
+ 38
+
+
+ 38
+
+
+ 43
+ wrong ID
+
+
+ 548
+ AMAD: Befehl mit falscher AMAD_ID empfangen
+
+
+
+ 38
+
+
+ 39
+ %cmdpair
+ %valueall()
+
+
+ 590
+ %cmdpair
+ =
+
+
+
+ 547
+ %name
+ %cmdpair1
+
+
+
+
+
+ 590
+ %cmdpair
+ %name=
+
+
+
+ 596
+ %name
+
+
+
+
+ 547
+ %name
+ tpe_%name
+
+
+
+
+
+ 547
+ %receive
+ %tpe_cmd
+
+
+
+
+
+ %caller1
+ 2
+ profile=enter:TNES AMAD
+
+
+
+
+ 596
+ %cmdpair2
+
+
+
+
+ %cmdpair2
+ 3
+ \%cmdpair2
+
+
+
+
+ 547
+ %%name
+ %cmdpair2
+
+
+
+
+
+ %cmdpair2
+ 3
+ \%cmdpair2
+
+
+
+
+ 40
+
+
+ 38
+
+
+ 37
+ check ID
+
+
+ %tpe_amad_id
+ 2
+ %AMAD_amadid
+
+
+
+
+ 130
+ statusRequest
+ AMAD_informations
+
+ %priority+1
+
+
+
+
+
+
+
+ %type
+ 2
+ deviceInfo
+
+
+
+
+ 37
+
+
+ %type
+ 2
+ setCommands
+
+
+
+
+ 37
+
+
+ %command
+ 2
+ screenMsg
+
+
+
+
+ 548
+ %tpe_message
+
+
+
+ %tpe_message
+ 3
+ \%tpe_message
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ ttsMsg
+
+
+
+
+ 547
+ %AMAD_lastSetCommand
+ %receive
+
+
+
+
+
+ 547
+ %tpe_msglang
+ deu-deu
+
+
+
+
+
+ %tpe_msglang
+ 4
+ en
+
+
+
+
+ 547
+ %tpe_msglang
+ eng-usa
+
+
+
+
+
+ %tpe_msglang
+ 2
+ en
+
+
+
+
+ 547
+ %volume
+ %VOLM
+
+
+
+
+
+ 307
+
+ %tpe_msgvol
+
+
+
+
+
+ %tpe_msgvol
+ 7
+ 1
+
+
+
+
+ 559
+ %tpe_message
+ com.google.android.tts:%tpe_msglang
+
+
+
+ %tpe_msgspeed
+
+
+
+
+
+
+ %tpe_message
+ 5
+ \%tpe_message
+
+
+
+
+ 307
+
+ %volume
+
+
+
+
+
+ %tpe_msgvol
+ 7
+ 1
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ flowState
+
+
+
+
+ 159
+ %tpe_flowname
+
+
+
+ %tpe_flowstate
+ 2
+ active
+
+
+
+
+ 159
+ %tpe_flowname
+
+
+
+ %tpe_flowstate
+ 2
+ inactive
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "Flow %tpe_flowname has been set %tpe_flowstate"
+
+
+
+
+ 547
+ debug
+ false
+ %receive
+ %AMAD_lastSetCommand
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ flowRun
+
+
+
+
+ 130
+ %tpe_flowname
+
+ %priority
+
+
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setVolume
+
+
+
+
+ 307
+
+ %tpe_volume
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setNotifiVolume
+
+
+
+
+ 305
+
+ %tpe_notifivolume
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setRingSoundVolume
+
+
+
+
+ 304
+
+ %tpe_ringsoundvolume
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setBrightness
+
+
+
+
+ 810
+
+ %tpe_brightness
+
+
+
+
+
+
+ 590
+ %receive
+ /
+
+
+
+ 43
+
+
+ %command
+ 2
+ multimediaControl
+
+
+
+
+ 130
+ multimediaControl
+ AMAD_multimediaControl
+
+ %priority
+
+ %tpe_mplayer
+ %tpe_button
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setvoicecmd
+
+
+
+
+ 130
+ AMAD_VoiceControl
+
+ %priority+1
+
+
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setScreenOrientation
+
+
+
+
+ 822
+
+
+
+ %tpe_orientation
+ 2
+ auto
+
+
+
+
+ 822
+ Baustelle
+
+
+
+ %tpe_orientation
+ 3
+ auto
+
+
+
+
+ 548
+ Baustelle
+ AMAD: "set screenOrientation landscape|portrait" wird noch nicht unterstützt
+
+
+
+ %tpe_orientation
+ 4
+ landscape|portrait
+
+
+
+
+ 130
+ Baustelle
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set screenOrientation landscape|portrait: not supported by Tasker"
+
+
+
+
+ %tpe_orientation
+ 4
+ landscape|portrait
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setScreenFullscreen
+
+
+
+
+ 547
+ %type
+ %receive3
+
+
+
+
+
+ 548
+ Baustelle
+ AMAD: "set screenFullscreen on|off" wird noch nicht unterstützt
+
+
+
+ 130
+ Baustelle
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set screenFullscreen on|off: not supported by Tasker"
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ openURL
+
+
+
+
+ 547
+ %tpe_url
+ http://%tpe_url
+
+
+
+
+
+ %tpe_url
+ 5
+ ^http*
+
+
+
+
+ 877
+ android.intent.action.VIEW
+
+
+ %tpe_url
+
+
+
+ %tpe_browserapp
+ %tpe_browserappclass
+
+
+
+ 43
+
+
+ %command
+ 2
+ setAlarm
+
+
+
+
+ 566
+
+ %tpe_hour
+
+
+ %tpe_minute
+
+ AMAD Wecker
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setTimer
+
+
+
+
+ 547
+ %tpe_seconds
+ %tpe_minute*60
+
+
+
+
+
+ 543
+
+ %tpe_seconds
+
+ AMAD Timer
+
+
+
+ 547
+ %receive4
+ %receive
+
+
+
+
+
+ %receive(#)
+ 7
+ 4
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ openApp
+
+
+
+
+ 664
+ pacman
+ CONTEXT
+ getPackageManager {PackageManager} ()
+
+
+
+
+
+
+
+
+
+ 664
+ intent
+ pacman
+ getLaunchIntentForPackage {Intent} (String)
+ %tpe_app
+
+
+
+
+
+
+
+
+ 664
+
+ CONTEXT
+ startActivity
+{} (Intent)
+ intent
+
+
+
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setnfc
+
+
+
+
+ 123
+ svc nfc enable
+
+
+
+
+
+
+ And
+
+ %tpe_nfc
+ 2
+ on
+
+
+ %ROOT
+ 2
+ yes
+
+
+
+
+ 123
+ svc nfc disable
+
+
+
+
+
+
+ And
+
+ %tpe_nfc
+ 2
+ off
+
+
+ %ROOT
+ 2
+ yes
+
+
+
+
+ 548
+ no root
+ AMAD: "set nfc on|off" benötigt Root rechte
+
+
+
+ %ROOT
+ 2
+ no
+
+
+
+
+ 130
+ no root
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set nfc on|off: only works on rooted Devices"
+
+
+
+
+ %ROOT
+ 2
+ no
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ systemcommand
+
+
+
+
+ 598
+ %receive4
+ /%receive2/%receive3/
+
+
+
+
+
+
+
+
+ %receive(#)
+ 7
+ 4
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ airplanemode@@on
+
+
+
+
+ %tpe_syscmd
+ 2
+ airplanemodeON
+
+
+
+
+ 333
+
+
+
+ %tpe_syscmd
+ 2
+ airplanemodeON
+
+
+
+
+ 59
+
+
+
+ %tpe_syscmd
+ 2
+ shutdown
+
+
+
+
+ 59
+
+
+
+ %tpe_syscmd
+ 2
+ reboot
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ donotdisturb
+
+
+
+
+ 312
+
+
+
+ %tpe_disturbmod
+ 2
+ always
+
+
+
+
+ 312
+
+
+
+ %tpe_disturbmod
+ 2
+ onlyImportant
+
+
+
+
+ 312
+
+
+
+ %tpe_disturbmod
+ 2
+ never
+
+
+
+
+ 312
+
+
+
+ %tpe_disturbmod
+ 2
+ alarmClockOnly
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setbluetooth
+
+
+
+
+ 590
+ %receive4
+ ?
+
+
+
+ 294
+
+
+
+ %tpe_bluetooth
+ 2
+ on
+
+
+
+
+ 294
+
+
+
+ %tpe_bluetooth
+ 2
+ off
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ playnotifysnd
+
+
+
+
+ 445
+ %tpe_notifypath%tpe_notifyfile
+
+
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ setbtdevice
+
+
+
+
+ 548
+ Baustelle
+ AMAD: "set changetoBtDevice" wird noch nicht unterstützt
+
+
+
+ 130
+ Baustelle
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set changetoBtDevice: not supported by Tasker"
+
+
+
+
+ 43
+
+
+ %command
+ 2
+ clearnotificationbar
+
+
+
+
+ 779
+
+
+
+
+ %tpe_app
+ 2
+ Automagic
+
+
+
+
+ 123
+ false
+ service call notification 1
+
+
+
+
+
+
+ And
+
+ %tpe_app
+ 2
+ All
+
+
+ %ROOT
+ 2
+ yes
+
+
+
+
+
+ 1517260534313
+ 1517330678766
+ 1031
+ 100
+
+ 37
+
+
+ %evtprm3
+ 3
+ \%evtprm3
+
+
+
+
+ 547
+ %enter
+
+
+
+
+
+
+
+ 547
+ Text
+ %text
+ %evtprm3
+
+
+
+
+
+ 598
+ %text
+ %enter
+
+
+
+
+
+
+
+
+ 547
+ incommingWhatsAppMessageFrom
+ %setreading
+ "incommingWhatsAppMessageFrom": "%evtprm2: %text"
+
+
+
+
+
+ %evtprm1
+ 2
+ WhatsApp
+
+
+
+
+ 547
+ incommingTelegramMessageFrom
+ %setreading
+ "incommingTelegramMessageFrom": "%evtprm2: %text"
+
+
+
+
+
+ %evtprm1
+ 2
+ Telegram
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ %setreading
+
+
+
+
+ 38
+
+
+
+ 1512327302282
+ 1517344482249
+ 1035
+ AMAD_multimediaControl
+ 100
+
+ 547
+ %tpe_mplayer
+ %par1
+
+
+
+
+
+ 547
+ %tpe_button
+ %par2
+
+
+
+
+
+ 443
+
+
+
+ org.videolan.vlc.RemoteControlClientReceiver
+ org.videolan.vlc
+ VLC Player
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ org.videolan.vlc.RemoteControlClientReceiver
+ org.videolan.vlc
+ VLC Player
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ AmazonMusic
+
+
+ %tpe_mplayer
+ 2
+ AmazonMusic
+
+
+
+
+ 443
+
+
+
+ com.amazon.mp3.playback.service.HeadsetControlsReceiver
+ com.amazon.mp3
+ Amazon Music
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.amazon.mp3.playback.service.HeadsetControlsReceiver
+ com.amazon.mp3
+ Amazon Music
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.amazon.mp3.playback.service.HeadsetControlsReceiver
+ com.amazon.mp3
+ Amazon Music
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.amazon.mp3.playback.service.HeadsetControlsReceiver
+ com.amazon.mp3
+ Amazon Music
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ SpotifyMusic
+
+
+ %tpe_mplayer
+ 2
+ SpotifyMusic
+
+
+
+
+ 443
+
+
+
+ com.spotify.music.internal.receiver.MediaButtonReceiver
+ com.spotify.music
+ Spotify Musik
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.spotify.music.internal.receiver.MediaButtonReceiver
+ com.spotify.music
+ Spotify Musik
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 37
+ GoogleMusic
+
+
+ %tpe_mplayer
+ 2
+ GoogleMusic
+
+
+
+
+ 443
+
+
+
+ com.spotify.music.internal.receiver.MediaButtonReceiver
+ com.spotify.music
+ Spotify Musik
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.spotify.music.internal.receiver.MediaButtonReceiver
+ com.spotify.music
+ Spotify Musik
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ TuneinRadio
+
+
+ %tpe_mplayer
+ 2
+ TuneinRadio
+
+
+
+
+ 443
+
+
+
+ tunein.ui.helpers.MediaButtonIntentReceiver
+ tunein.player
+ TuneIn Player
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ tunein.ui.helpers.MediaButtonIntentReceiver
+ tunein.player
+ TuneIn Player
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ tunein.ui.helpers.MediaButtonIntentReceiver
+ tunein.player
+ TuneIn Player
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ tunein.ui.helpers.MediaButtonIntentReceiver
+ tunein.player
+ TuneIn Player
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ AldiMusic
+
+
+ %tpe_mplayer
+ 2
+ AldiMusic
+
+
+
+
+ 443
+
+
+
+ com.napster.player.MediaButtonReceiver
+ com.rhapsody.alditalk
+ Aldi Life Musik
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.napster.player.MediaButtonReceiver
+ com.rhapsody.alditalk
+ Aldi Life Musik
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.google.android.music.playback.MediaButtonIntentReceiver
+ com.google.android.music
+ Google Musik
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.napster.player.MediaButtonReceiver
+ com.rhapsody.alditalk
+ Aldi Life Musik
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.napster.player.MediaButtonReceiver
+ com.rhapsody.alditalk
+ Aldi Life Musik
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ YouTube
+
+
+ %tpe_mplayer
+ 2
+ YouTube
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.youtube
+ YouTube
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.youtube
+ YouTube
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.youtube
+ YouTube
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.youtube
+ YouTube
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ YouTubeKids
+
+
+ %tpe_mplayer
+ 2
+ YouTubeKids
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.apps.youtube.kids
+ YouTube Kids
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.apps.youtube.kids
+ YouTube Kids
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.google.android.music.playback.MediaButtonIntentReceiver
+ com.google.android.music
+ Google Musik
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.apps.youtube.kids
+ YouTube Kids
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
+ com.google.android.apps.youtube.kids
+ YouTube Kids
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ Audible
+
+
+ %tpe_mplayer
+ 2
+ Audible
+
+
+
+
+ 443
+
+
+
+ com.audible.application.AudibleMediaButtonProcessingReceiver
+ com.audible.application
+ Audible
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.audible.application.AudibleMediaButtonProcessingReceiver
+ com.audible.application
+ Audible
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.audible.application.AudibleMediaButtonProcessingReceiver
+ com.audible.application
+ Audible
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.audible.application.AudibleMediaButtonProcessingReceiver
+ com.audible.application
+ Audible
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ SamsungMusic
+
+
+ %tpe_mplayer
+ 2
+ SamsungMusic
+
+
+
+
+ 443
+
+
+
+ com.samsung.android.app.music.service.receiver.MediaButtonReceiver
+ com.sec.android.app.music
+ Samsung Music Player
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.samsung.android.app.music.service.receiver.MediaButtonReceiver
+ com.sec.android.app.music
+ Samsung Music Player
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.google.android.music.playback.MediaButtonIntentReceiver
+ com.google.android.music
+ Google Musik
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.samsung.android.app.music.service.receiver.MediaButtonReceiver
+ com.sec.android.app.music
+ Samsung Music Player
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.samsung.android.app.music.service.receiver.MediaButtonReceiver
+ com.sec.android.app.music
+ Samsung Music Player
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ Deezer
+
+
+ %tpe_mplayer
+ 2
+ Deezer
+
+
+
+
+ 443
+
+
+
+ com.deezer.core.jukebox.receivers.JukeboxMediaButtonReceiver
+ deezer.android.com
+ Deezer
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ com.deezer.core.jukebox.receivers.JukeboxMediaButtonReceiver
+ deezer.android.com
+ Deezer
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+ 443
+
+
+
+ com.deezer.core.jukebox.receivers.JukeboxMediaButtonReceiver
+ deezer.android.com
+ Deezer
+
+
+
+ %tpe_button
+ 2
+ mediaBack
+
+
+
+
+ 443
+
+
+
+ com.deezer.core.jukebox.receivers.JukeboxMediaButtonReceiver
+ deezer.android.com
+ Deezer
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 38
+
+
+ 443
+
+
+
+ com.google.android.music.playback.MediaButtonIntentReceiver
+ com.google.android.music
+ Google Musik
+
+
+
+ %tpe_button
+ 2
+ mediaStop
+
+
+
+
+ 43
+ VlcPlayer
+
+
+ %tpe_mplayer
+ 2
+ VlcPlayer
+
+
+
+
+ 443
+
+
+
+ org.videolan.vlc.RemoteControlClientReceiver
+ org.videolan.vlc
+ VLC Player
+
+
+
+ %tpe_button
+ 2
+ mediaNext
+
+
+
+
+ 443
+
+
+
+ org.videolan.vlc.RemoteControlClientReceiver
+ org.videolan.vlc
+ VLC Player
+
+
+
+ %tpe_button
+ 4
+ mediaPlay
+
+
+
+
+
+ 1511727021932
+ 1512550454190
+ 914
+ AMAD_getDeviceIP
+ 100
+
+ 123
+ false
+ ifconfig wlan0
+
+
+ %output
+
+
+
+
+ 547
+ %ifconfig
+ %output
+
+
+
+
+
+ %output
+ 4
+ inet addr:
+
+
+
+
+ 123
+ false
+ ifconfig eth0
+
+
+ %output
+
+
+
+
+ 547
+ %ifconfig
+ %output
+
+
+
+
+
+ %output
+ 4
+ inet addr:
+
+
+
+
+ 123
+ false
+ ifconfig tun0
+
+
+ %output
+
+
+
+
+ 547
+ %ifconfig
+ %output
+
+
+
+
+
+ %output
+ 4
+ inet addr:
+
+
+
+
+ 590
+ %ifconfig
+ inet addr:
+
+
+
+ 590
+ %ifconfig2
+
+
+
+
+ %ifconfig2
+ 3
+ \%ifconfig2
+
+
+
+
+ 547
+ %ipaddr
+ %ifconfig21
+
+
+
+
+
+ %ifconfig21
+ 3
+ \%ifconfig21
+
+
+
+
+ 126
+ %ipaddr
+
+
+
+
+ 1503612289745
+ 1503612849987
+ 916
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "screenOrientation": "portrait"
+
+
+
+
+
+ 1512113548622
+ 1512113663305
+ 918
+ AMAD_getDeviceName
+
+ 547
+ %fhemdevice
+ %DEVMAN_%DEVMOD
+
+
+
+
+
+ 596
+ %fhemdevice
+
+
+
+
+ 598
+ %fhemdevice
+ [^a-zA-Z_0-9\.]
+
+
+
+
+
+ _
+
+
+ 126
+ %fhemdevice
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 920
+
+ 49
+ %scene_name
+
+
+
+ 1512982481361
+ 1513445177271
+ 922
+ AMAD_generate_Icon
+ 100
+
+ 547
+ %taskerpath
+ /storage/emulated/0/Tasker
+
+
+
+
+
+ 342
+
+ %taskerpath
+ %exists
+
+
+
+ 342
+
+ %iconpath/TaskerFHEM_icon.png
+ %exists
+
+
+
+ 548
+ AMAD: Icon erfolgreich erstellt.
+
+
+
+ %exists
+ 2
+ true
+
+
+
+
+ 548
+ AMAD: Icon konnte nicht erstellt werden.
+
+
+
+ %exists
+ 3
+ true
+
+
+
+
+ 43
+
+
+ 548
+ AMAD: Icon ist bereits vorhanden
+
+
+
+ 38
+
+
+ 43
+
+
+ 548
+ AMAD: Erstellen des Icon nicht möglich - Tasker Pfad nicht gefunden.
+
+
+
+ 38
+
+
+ 37
+
+
+ %exists
+ 2
+ true
+
+
+
+
+ 547
+ %iconpath
+ %taskerpath/.icn/Eigene Icons
+
+
+
+
+
+ 342
+
+ %iconpath
+ %exists
+
+
+
+ 409
+ %iconpath
+
+
+
+
+ %exists
+ 2
+ false
+
+
+
+
+ 342
+
+ %iconpath/TaskerFHEM_icon.png
+ %exists
+
+
+
+ 37
+
+
+ %exists
+ 2
+ false
+
+
+
+
+ 547
+ Icon in Binär Format
+ %icon
+ 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
+
+
+
+
+
+
+ 775
+ %icon
+ %iconpath/TaskerFHEM_icon.png
+
+
+
+ 1512172222460
+ 1512172222460
+ 923
+
+ 548
+ Bitte gebe den Port der AMADCommBridge vom FHEM Server an. (Default: 8090)
+
+
+
+
+ 1512509936846
+ 1512509936846
+ 924
+
+ 55
+ %scene_name
+ %element_name
+ #FFD9D9D9
+ #FFD9D9D9
+
+
+ %focused
+ 2
+ true
+
+
+
+
+ 55
+ %scene_name
+ %element_name
+ #FF858585
+ #FF858585
+
+
+ %focused
+ 2
+ false
+
+
+
+
+
+ 1513276797078
+ 1513424688732
+ 925
+
+ 547
+ nextAlarmState
+ %setreading
+ "nextAlarmState": "done"
+
+
+
+
+
+ 664
+ Query Alarm
+ false
+ contres
+ CONTEXT
+ getContentResolver
+{ContentResolver} ()
+
+
+
+
+
+
+
+
+
+ 38
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ %setreading
+
+
+
+
+ 664
+ Query Alarm
+ false
+ %alarm
+ android.provider.Settings$System
+ getString
+{String} (ContentResolver, String)
+ contres
+ next_alarm_formatted
+
+
+
+
+
+
+
+ 37
+
+
+ %alarm
+ 3
+ \%alarm
+
+
+
+
+ 547
+ %blank
+
+
+
+
+
+
+ 590
+ %alarm
+ .,%blank
+
+
+
+ 547
+ nextAlarmDay
+ %setreading
+ %setreading,"nextAlarmDay": "%alarm1"
+
+
+
+
+
+ %alarm1
+ 3
+ \%alarm1
+
+
+
+
+ 547
+ nextAlarmTime
+ %setreading
+ %setreading,"nextAlarmTime": "%alarm2"
+
+
+
+
+
+ %alarm2
+ 3
+ \%alarm2
+
+
+
+
+ 43
+
+
+ 547
+ nextAlarmDay|Time
+ %setreading
+ %setreading,"nextAlarmDay": "off","nextAlarmTime": "off"
+
+
+
+
+
+
+ 1503690358282
+ 1503690362326
+ 926
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "dockingState": "undocked"
+
+
+
+
+
+ 1511655849449
+ 1511655867388
+ 927
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "wiredHeadsetPlugged": "0"
+
+
+
+
+
+ 1503612864622
+ 1512664382473
+ 931
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "screenOrientation": "landscape"
+
+
+
+
+
+ 1503689826684
+ 1503689839417
+ 932
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "bluetooth": "off"
+
+
+
+
+
+ 1503612697002
+ 1512664308181
+ 934
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "daydream": "on"
+
+
+
+
+
+ 1503829156475
+ 1516226450970
+ 935
+ AMAD_UpdateFlowset
+ 100
+
+ 548
+ Baustelle
+ AMAD: "set currentflowsetupdate'" wird noch nicht unterstützt
+
+
+
+ 130
+ Baustelle
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ setreading
+ "automagicState": "set currentflowsetupdate: not supported by Tasker"
+
+
+
+
+ 548
+ AMAD: Download der Tasker Projekt Datei nicht möglich - Tasker Pfad nicht gefunden.
+
+
+
+ 38
+
+
+ 137
+ Baustelle
+
+
+
+
+ 547
+ %path
+ /storage/emulated/0/Tasker/projects
+
+
+
+
+
+ 342
+
+ %path
+ %exists
+
+
+
+ 37
+
+
+ %exists
+ 2
+ true
+
+
+
+
+ 118
+ false
+ %AMAD_fhemip:%AMAD_bridgeport
+ AMAD.prj.xml
+
+
+
+
+ text/xml
+ %path/AMAD.prj.xml
+
+
+
+ 548
+ AMAD: Beim Download der Tasker Projekt Datei ist ein Fehler augetreten.
+Code: %HTTPR
+
+
+
+ %HTTPR
+ 3
+ 200
+
+
+
+
+ 548
+ AMAD: Die aktuelle Tasker Projekt Datei wurde heruntergrladen und kann importiert werden.
+
+
+
+ %HTTPR
+ 2
+ 200
+
+
+
+
+ 43
+
+
+
+ 1512506016964
+ 1512506016964
+ 936
+
+ 55
+ %scene_name
+ %element_name
+ #FFD9D9D9
+ #FFD9D9D9
+
+
+ %focused
+ 2
+ true
+
+
+
+
+ 55
+ %scene_name
+ %element_name
+ #FF858585
+ #FF858585
+
+
+ %focused
+ 2
+ false
+
+
+
+
+
+ 1512064023268
+ 1512064023268
+ 937
+ 102
+
+ 598
+ check input
+ %new_val
+ [^0-9]
+
+
+
+
+
+
+
+
+ 51
+ %scene_name
+ TextEdit_AMAD_ID
+
+ %new_val
+
+
+ And
+
+ %new_val
+ 3
+ \%new_val
+
+
+ %initial
+ 2
+ false
+
+
+
+
+
+ 1512506010779
+ 1512506010779
+ 938
+
+ 55
+ %scene_name
+ %element_name
+ #FFD9D9D9
+ #FFD9D9D9
+
+
+ %focused
+ 2
+ true
+
+
+
+
+ 55
+ %scene_name
+ %element_name
+ #FF858585
+ #FF858585
+
+
+ %focused
+ 2
+ false
+
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 939
+ 102
+
+ 130
+ Einstellungen speichern
+ AMAD_save
+
+ %priority+1
+
+ %scene_name
+
+
+
+
+
+
+ 1512758684068
+ 1512758684068
+ 940
+
+ 548
+ Wenn aktiviert werde Statusänderungen nur gesenden, wenn mit angegebener SSID verbunden.
+
+
+
+
+ 1512509955759
+ 1512509955759
+ 941
+
+ 547
+ %enter
+
+
+
+
+
+
+
+ 37
+
+ And
+
+ %new_val
+ 4
+ %enter
+
+
+ %initial
+ 2
+ false
+
+
+
+
+ 598
+ %new_val
+ %enter
+
+
+
+
+
+
+
+
+ 51
+ %scene_name
+ %element_name
+
+ %new_val
+
+
+
+ %new_val
+ 3
+ \%new_val
+
+
+
+
+ 68
+ %scene_name
+ TextEdit_DeviceName
+
+
+
+ 38
+
+
+
+ 1511655705149
+ 1511655888647
+ 942
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "wiredHeadsetPlugged": "1"
+
+
+
+
+
+ 1512424887005
+ 1512424887005
+ 943
+
+ 548
+ letzter empfangener set-Befehl
+
+
+
+
+ 1503089941004
+ 1512022786086
+ 944
+ AMAD_Beispiel_readingsval
+ 100
+
+ 547
+ %readingsvalcmd
+ %AMAD_fhemdevice deviceState kaputt
+
+
+
+
+
+ 547
+ %fhemcmd
+ readingsval
+
+
+
+
+
+ 130
+ Abfrage
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ %fhemcmd
+ %readingsvalcmd
+ %respreadingsval
+
+
+
+ 548
+ %respreadingsval
+
+
+
+
+ 1503690545406
+ 1503690559299
+ 945
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "powerPlugged": "0"
+
+
+
+
+
+ 1512506004674
+ 1512506004674
+ 946
+
+ 55
+ %scene_name
+ %element_name
+ #FFD9D9D9
+ #FFD9D9D9
+
+
+ %focused
+ 2
+ true
+
+
+
+
+ 55
+ %scene_name
+ %element_name
+ #FF858585
+ #FF858585
+
+
+ %focused
+ 2
+ false
+
+
+
+
+
+ 1513147701841
+ 1513277267125
+ 947
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "nextAlarmState": "alert","nextAlarmDay": "off","nextAlarmTime": "off"
+
+
+
+
+
+ 1502789757098
+ 1516489272812
+ 948
+ AMAD_SendData2CommBridge
+ 100
+ 2
+
+ 137
+ beim deaktivieren von AMAD_send, exit Tasks nicht senden
+
+
+
+ And
+
+ %caller()
+ 4
+ profile=exit:AMAD_
+
+
+ %AMAD_send
+ 3
+ on
+
+
+
+
+ 37
+
+ Or
+ Or
+
+ %AMAD_fhemip
+ 2
+ \%AMAD_fhemip
+
+
+ %AMAD_bridgeport
+ 2
+ \%AMAD_bridgeport
+
+
+ %AMAD_fhemdevice
+ 2
+ \%AMAD_fhemdevice
+
+
+
+
+ 43
+ Expression: fhemcmd == "set"
+
+
+ %fhemcmd
+ 2
+ set
+
+
+
+
+ 547
+ %setcmd
+ %par2
+
+
+
+
+
+ 547
+ Script: Set FHEMSETCMD JSON
+ %setcmd
+ {"amad": {"amad_id": "%AMAD_amadid","fhemcmd": "set"},"payload": {"setcmd": "%setcmd"}}
+
+
+
+
+
+ 116
+ HTTP Request: send SET data to AMADCommBridge JSON
+ false
+ http://%AMAD_fhemip:%AMAD_bridgeport
+
+ %setcmd
+
+
+
+ text/*
+
+
+
+
+ 43
+ Expression: fhemcmd == "readingsval"
+
+
+ %fhemcmd
+ 2
+ readingsval
+
+
+
+
+ 547
+ %readingsvalcmd
+ %par2
+
+
+
+
+
+ 547
+ Script: Set FHEMREADINGSVALCMD JSON
+ %readingsvalcmd
+ {"amad": {"amad_id": "%AMAD_amadid","fhemcmd": "readingsval"},"payload": {"readingsvalcmd": "%readingsvalcmd"}}
+
+
+
+
+
+ 116
+ HTTP Request: send READINGSVAL data to AMADCommBridge JSON
+ false
+ http://%AMAD_fhemip:%AMAD_bridgeport
+
+ %readingsvalcmd
+
+
+
+ text/*
+
+
+
+
+ 43
+ Expression: fhemcmd == "voiceinputvalue"
+
+
+ %fhemcmd
+ 2
+ voiceinputvalue
+
+
+
+
+ 547
+ %voiceinputdata
+ %par2
+
+
+
+
+
+ 548
+ AMAD: Fehler beim Senden
+Variablen nicht gesetzt
+
+
+
+ 547
+ Script: Set FHEMVOICEINPUTDATA JSON
+ %voiceinputdata
+ {"amad": {"amad_id": "%AMAD_amadid","fhemcmd": "voiceinputvalue"},"payload": {"voiceinputdata": "%voiceinputdata"}}
+
+
+
+
+
+ 116
+ HTTP Request: send VOICEINPUTVALUE data to AMADCommBridge
+ false
+ http://%AMAD_fhemip:%AMAD_bridgeport
+
+ %voiceinputdata
+
+
+
+ text/*
+
+
+
+
+ 43
+ Expression: fhemcmd == "fhemfunc"
+
+
+ %fhemcmd
+ 2
+ fhemfunc
+
+
+
+
+ 547
+ %fhemsub
+ %par2
+
+
+
+
+
+ 547
+ Script: Set FHEMCALLSUB JSON
+ %fhemfunc
+ {"amad": {"amad_id": "%AMAD_amadid","fhemcmd": "fhemfunc"},"payload": {"fhemsub": "%fhemsub"}}
+
+
+
+
+
+ 116
+ HTTP Request: send FHEMFUNC data to AMADCommBridge JSON
+ false
+ http://%AMAD_fhemip:%AMAD_bridgeport
+
+ %fhemfunc
+
+
+
+ text/*
+
+
+
+
+ 43
+ Expression: fhemcmd == "firstrun"
+
+
+ %fhemcmd
+ 2
+ firstrun
+
+
+
+
+ 547
+ %amaddevice_ip
+ %par2
+
+
+
+
+
+ 547
+ Script: Set FHEMDATA JSON First Run Assistant
+ %firstrundata
+ {"amad": {"amad_id": "%AMAD_amadid","fhemcmd": "setreading"},"firstrun": {"fhemdevice": "%AMAD_fhemdevice","fhemserverip": "%AMAD_fhemip","amaddevice_ip": "%amaddevice_ip","remoteserver":"%AMAD_remoteServer"}}
+
+
+
+
+
+ 116
+ HTTP Request: send FIRSTRUN data to AMADCommBridge JSON
+ false
+ http://%AMAD_fhemip:%AMAD_bridgeport
+
+ %firstrundata
+
+
+
+ text/*
+
+
+
+
+ 126
+ Variable not set
+
+
+
+ 38
+
+
+ 547
+ %return
+ %HTTPD
+
+
+
+
+
+ 547
+ %return
+ no connection
+
+
+
+
+
+ %HTTPR
+ 2
+ -1
+
+
+
+
+ 126
+ %return
+
+
+
+ 38
+
+
+ 547
+ %fhemcmd
+ %par1
+
+
+
+
+
+ 37
+ Expression: fhemcmd == "setreading"
+
+
+ %fhemcmd
+ 2
+ setreading
+
+
+
+
+ 547
+ %fhemdata
+ %par2
+
+
+
+
+
+ 547
+ Script: Set FHEMDATA JSON
+ %fhemdata
+ {"amad": {"amad_id": "%AMAD_amadid","fhemcmd": "setreading"},"payload": {%fhemdata}}
+
+
+
+
+
+ 116
+ HTTP Request: send READINGS data to AMADCommBridge JSON
+ false
+ http://%AMAD_fhemip:%AMAD_bridgeport
+
+ %fhemdata
+
+
+
+ text/*
+
+
+
+
+
+ 1512758764278
+ 1512758764278
+ 949
+
+ 548
+ Wenn deaktiviert werden keine Statusänderungen an die CommBridge gesendet.
+
+
+
+
+ 1512765957106
+ 1512765957106
+ 950
+
+ 49
+ %scene_name
+
+
+
+ 1512172077193
+ 1512172077193
+ 951
+
+ 548
+ Attribut: fhemControlMode
+Art der Steuerung von FHEM set Befehlen, welche über die Bridge als Steuerbefehl reinkommen.
+(Für Sprachsteuerung relevant)
+
+
+
+
+ 1516488111428
+ 1516488697663
+ 952
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "intentRadioName": "%name","intentRadioState": "%state"
+
+
+
+
+
+ 1512506655696
+ 1512506655696
+ 953
+ 102
+
+ 547
+ %enter
+
+
+
+
+
+
+
+ 37
+
+ And
+
+ %new_val
+ 4
+ %enter
+
+
+ %initial
+ 2
+ false
+
+
+
+
+ 598
+ %new_val
+ %enter
+
+
+
+
+
+
+
+
+ 51
+ %scene_name
+ %element_name
+
+ %new_val
+
+
+
+ %new_val
+ 3
+ \%new_val
+
+
+
+
+ 68
+ %scene_name
+ TextEdit_AMADport
+
+
+
+ 38
+
+
+
+ 1512171985482
+ 1512171985482
+ 954
+
+ 548
+ toGo Funktion: hiermit wird die Sendefunktion deaktiviert, sobald der/die APSSID/'s getrennt wurden.
+Es können mehrere SSIDs durch slash "/" getrennt angegeben werden.
+
+
+
+
+ 1512032849766
+ 1512032849766
+ 955
+ 102
+
+ 598
+ check input
+ %new_val
+ [^0-9]
+
+
+
+
+
+
+
+
+ 51
+ %scene_name
+ TextEdit_AMADport
+
+ %new_val
+
+
+ And
+
+ %new_val
+ 3
+ \%new_val
+
+
+ %initial
+ 2
+ false
+
+
+
+
+
+ 1512032849766
+ 1512032849766
+ 956
+ 102
+
+ 598
+ check input
+ %new_val
+ [^0-9\.]
+
+
+
+
+
+
+
+
+ 51
+ %scene_name
+ TextEdit_DeviceIP
+
+ %new_val
+
+
+ And
+
+ %new_val
+ 3
+ \%new_val
+
+
+ %initial
+ 2
+ false
+
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 957
+ 102
+
+ 51
+ %scene_name
+ TextEdit_AMADport
+
+ 8090
+
+
+
+ 548
+ AMAD Bridge Port wurde auf 8090 gesetzt
+
+
+
+
+ 1503089941004
+ 1512684267061
+ 958
+ AMAD_Beispiel_function
+ 100
+
+ 547
+ %fhemsub
+ TimestampToText('2017-05-12 23:32:19')
+
+
+
+
+
+ 547
+ %fhemcmd
+ fhemfunc
+
+
+
+
+
+ 130
+ Abfrage
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ %fhemcmd
+ %fhemsub
+ %respfhemfunc
+
+
+
+ 548
+ %respfhemfunc
+
+
+
+
+ 1512172416613
+ 1512172416613
+ 959
+
+ 548
+ Bitte gebe die IP Adresse Deines Androidgerätes an. NUR IP kein FQDN!!!
+
+
+
+
+ 1502789397309
+ 1517252219734
+ 960
+ AMAD_informations
+ 100
+
+ 547
+ %enter
+
+
+
+
+
+
+
+ 547
+ flowsetVersionAtDevice
+ %setreading
+ "flowsetVersionAtDevice": "Tasker v0.23"
+
+
+
+
+
+ 547
+ %interrupt
+ onlyImportant
+
+
+
+
+
+ %INTERRUPT
+ 2
+ priority
+
+
+
+
+ 547
+ %interrupt
+ never
+
+
+
+
+
+ %INTERRUPT
+ 2
+ none
+
+
+
+
+ 547
+ %interrupt
+ alarmClockOnly
+
+
+
+
+
+ %INTERRUPT
+ 2
+ alarms
+
+
+
+
+ 547
+ doNotDisturb
+ %setreading
+ %setreading,"doNotDisturb": "%interrupt"
+
+
+
+
+
+ %interrupt
+ 3
+ \%interrupt
+
+
+
+
+ 547
+ keyguardSet: 1
+ %setreading
+ %setreading,"keyguardSet": "1"
+
+
+
+
+
+ %KEYG
+ 2
+ on
+
+
+
+
+ 547
+ keyguardSet: 0
+ %setreading
+ %setreading,"keyguardSet": "0"
+
+
+
+
+
+ %KEYG
+ 2
+ off
+
+
+
+
+ 547
+ incomingCallerName
+ %setreading
+ %setreading,"incomingCallerName": "%CNAME"
+
+
+
+
+ And
+
+ %CNAME
+ 3
+ ?
+
+
+ %CNAME
+ 3
+ \%CNAME
+
+
+
+
+ 547
+ incomingCallerName: unknown
+ %setreading
+ %setreading,"incomingCallerName": "unknown"
+
+
+
+
+
+ %CNAME
+ 2
+ ?
+
+
+
+
+ 547
+ incomingCallerNumber
+ %setreading
+ %setreading,"incomingCallerNumber": "%CNUM"
+
+
+
+
+ And
+
+ %CNUM
+ 3
+ 0
+
+
+ %CNUM
+ 3
+ \%CNUM
+
+
+
+
+ 547
+ incomingCallerNumber: unknown
+ %setreading
+ %setreading,"incomingCallerNumber": "unknown"
+
+
+
+
+
+ %CNUM
+ 2
+ 0
+
+
+
+
+ 547
+ deviceState
+ %setreading
+ %setreading,"deviceState": "online"
+
+
+
+
+
+ 547
+ SMS Text
+ %text
+ %SMSRB
+
+
+
+
+
+ %SMSRB
+ 12
+
+
+
+
+
+ 598
+ %text
+ %enter
+
+
+
+
+
+
+
+
+ %text
+ 3
+ \%text
+
+
+
+
+ 547
+ incommingSmsText
+ false
+ %setreading
+ %setreading,"incommingSmsText": "%text"
+
+
+
+
+
+ %text
+ 3
+ \%text
+
+
+
+
+ 547
+ powerLevel
+ %setreading
+ %setreading,"powerLevel": "%BATT"
+
+
+
+
+
+ %BATT
+ 12
+
+
+
+
+
+ 664
+ Query locked
+ kgm
+ CONTEXT
+ getSystemService
+{KeyguardManager} (String)
+ keyguard
+
+
+
+
+
+
+
+
+ 664
+ Query locked
+ %locked
+ kgm
+ inKeyguardRestrictedInputMode
+{boolean} ()
+
+
+
+
+
+
+
+
+
+ 547
+ screen
+ %setreading
+ %setreading,"screen": "%SCREEN locked"
+
+
+
+
+ And
+
+ %SCREEN
+ 12
+
+
+
+ %locked
+ 2
+ true
+
+
+
+
+ 547
+ screen
+ %setreading
+ %setreading,"screen": "%SCREEN unlocked"
+
+
+
+
+ And
+
+ %SCREEN
+ 12
+
+
+
+ %locked
+ 2
+ false
+
+
+
+
+ 547
+ screenBrightness
+ %setreading
+ %setreading,"screenBrightness": "%BRIGHT"
+
+
+
+
+
+ %BRIGHT
+ 12
+
+
+
+
+
+ 348
+
+
+ %orientation
+
+
+ 547
+ airplanemode
+ %setreading
+ %setreading,"airplanemode": "%AIR"
+
+
+
+
+
+ %AIR
+ 12
+ \%AIR
+
+
+
+
+ 547
+ screenOrientation
+ %setreading
+ %setreading,"screenOrientation": "%orientation"
+
+
+
+
+
+ %orientation
+ 3
+ \%orientation
+
+
+
+
+ 348
+
+
+ %autorotate
+
+
+ 547
+ screenOrientationMode
+ %setreading
+ %setreading,"screenOrientationMode": "auto"
+
+
+
+
+
+ %autorotate
+ 2
+ on
+
+
+
+
+ 547
+ screenOrientationMode
+ %setreading
+ %setreading,"screenOrientationMode": "manual"
+
+
+
+
+
+ %autorotate
+ 2
+ off
+
+
+
+
+ 547
+ %setstate
+ inaktiv
+
+
+
+
+
+ 547
+ %infostate
+ inaktiv
+
+
+
+
+
+ 547
+ %setstate
+ aktiv
+
+
+
+
+ Or
+ Or
+
+ %PENABLED
+ 4
+ AutoRemote AMAD
+
+
+ %PENABLED
+ 4
+ TNES AMAD
+
+
+ %PENABLED
+ 2
+ Pushover AMAD
+
+
+
+
+ 547
+ %infostate
+ aktiv
+
+
+
+
+ And
+
+ %PENABLED
+ 4
+ AMAD_InformationFlow
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+ 547
+ flow_SetCommands
+ %setreading
+ %setreading,"flow_SetCommands": "%setstate"
+
+
+
+
+
+ 547
+ flow_informations
+ %setreading
+ %setreading,"flow_informations": "%infostate"
+
+
+
+
+
+ 130
+ AMAD_SDK2Name
+
+ %priority
+
+
+
+ %androidversion
+
+
+
+ 547
+ volume
+ %setreading
+ %setreading,"volume": "%VOLM"
+
+
+
+
+
+ %VOLM
+ 12
+
+
+
+
+
+ 547
+ volumeNotification
+ %setreading
+ %setreading,"volumeNotification": "%VOLN"
+
+
+
+
+
+ %VOLN
+ 12
+
+
+
+
+
+ 664
+ Query Alarm
+ false
+ contres
+ CONTEXT
+ getContentResolver
+{ContentResolver} ()
+
+
+
+
+
+
+
+
+
+ 664
+ Query Alarm
+ false
+ %alarm
+ android.provider.Settings$System
+ getString
+{String} (ContentResolver, String)
+ contres
+ next_alarm_formatted
+
+
+
+
+
+
+
+ 37
+
+
+ %alarm
+ 3
+ \%alarm
+
+
+
+
+ 547
+ %blank
+
+
+
+
+
+
+ 590
+ %alarm
+ .,%blank
+
+
+
+ 547
+ nextAlarmDay
+ %setreading
+ %setreading,"nextAlarmDay": "%alarm1"
+
+
+
+
+
+ %alarm1
+ 3
+ \%alarm1
+
+
+
+
+ 547
+ nextAlarmTime
+ %setreading
+ %setreading,"nextAlarmTime": "%alarm2"
+
+
+
+
+
+ %alarm2
+ 3
+ \%alarm2
+
+
+
+
+ 43
+
+
+ 547
+ androidVersion
+ %setreading
+ %setreading,"androidVersion": "%androidversion"
+
+
+
+
+
+ %androidversion
+ 3
+ \%androidversion
+
+
+
+
+ 547
+ nextAlarmDay|Time
+ %setreading
+ %setreading,"nextAlarmDay": "off","nextAlarmTime": "off"
+
+
+
+
+
+ 38
+
+
+ 547
+ %fhemcmd
+ setreading
+
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ %fhemcmd
+ %setreading
+
+
+
+
+ 547
+ bluetooth
+ %setreading
+ %setreading,"bluetooth": "%BLUE"
+
+
+
+
+
+ %BLUE
+ 12
+ \%BLUE
+
+
+
+
+ 547
+ currentMusicTrack
+ %setreading
+ %setreading,"currentMusicTrack": "%MTRACK"
+
+
+
+
+
+ %MTRACK
+ 12
+
+
+
+
+
+ 547
+ currentMusicTrack: no player active
+ %setreading
+ %setreading,"currentMusicTrack": "no player active"
+
+
+
+
+
+ %MTRACK
+ 13
+
+
+
+
+
+ 547
+ %interrupt
+ always
+
+
+
+
+
+ %INTERRUPT
+ 2
+ all
+
+
+
+
+
+ 1512172077193
+ 1512172077193
+ 961
+
+ 548
+ Attribut: remoteServer
+Hierüber wird festgelegt, über welchen Dienst die setCommands empfangen werden.
+
+
+
+
+ 1512170785531
+ 1512170785531
+ 962
+
+ 548
+ Wie soll das Device in FHEM heißen?
+(Zulässige Zeichen: "a".."z", "A".."Z", "0".."9", "_", ".")
+
+
+
+
+ 1513147872631
+ 1513276907496
+ 963
+
+ 547
+ nextAlarmState
+ %setreading
+ "nextAlarmState": "done"
+
+
+
+
+
+ 664
+ Query Alarm
+ false
+ contres
+ CONTEXT
+ getContentResolver
+{ContentResolver} ()
+
+
+
+
+
+
+
+
+
+ 38
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ %setreading
+
+
+
+
+ 664
+ Query Alarm
+ false
+ %alarm
+ android.provider.Settings$System
+ getString
+{String} (ContentResolver, String)
+ contres
+ next_alarm_formatted
+
+
+
+
+
+
+
+ 37
+
+
+ %alarm
+ 3
+ \%alarm
+
+
+
+
+ 547
+ %blank
+
+
+
+
+
+
+ 590
+ %alarm
+ .,%blank
+
+
+
+ 547
+ nextAlarmDay
+ %setreading
+ %setreading,"nextAlarmDay": "%alarm1"
+
+
+
+
+
+ %alarm1
+ 3
+ \%alarm1
+
+
+
+
+ 547
+ nextAlarmTime
+ %setreading
+ %setreading,"nextAlarmTime": "%alarm2"
+
+
+
+
+
+ %alarm2
+ 3
+ \%alarm2
+
+
+
+
+ 43
+
+
+ 547
+ nextAlarmDay|Time
+ %setreading
+ %setreading,"nextAlarmDay": "off","nextAlarmTime": "off"
+
+
+
+
+
+
+ 1515785545040
+ 1515785680561
+ 964
+
+ 547
+ %enter
+
+
+
+
+
+
+
+ 547
+ SMS Text
+ %text
+ %SMSRB
+
+
+
+
+
+ %SMSRB
+ 12
+
+
+
+
+
+ 598
+ %text
+ %enter
+
+
+
+
+
+
+
+
+ %text
+ 3
+ \%text
+
+
+
+
+ 547
+ incommingSmsText
+ %setreading
+ "incommingSmsText": "%text"
+
+
+
+
+
+ %text
+ 3
+ \%text
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ %setreading
+
+
+
+
+
+ 1512032686923
+ 1513014890967
+ 965
+ AMAD
+ 7
+
+ 547
+ %initial
+ true
+
+
+
+
+
+ 194
+ AMAD_settings
+
+ %scene
+
+
+ 38
+
+
+ 37
+ Device IP noch nicht gesetzt
+
+
+ %AMAD_DeviceIP
+ 2
+ \%AMAD_DeviceIP
+
+
+
+
+ 130
+ getDeviceIP
+ AMAD_getDeviceIP
+
+ %priority
+
+
+
+ %deviceip
+
+
+
+ 51
+ AMAD_DeviceIP
+ AMAD_settings
+ TextEdit_DeviceIP
+
+ %deviceip
+
+
+
+ %deviceip
+ 3
+ \%deviceip
+
+
+
+
+ 43
+
+
+ 51
+ AMAD_DeviceIP
+ AMAD_settings
+ TextEdit_DeviceIP
+
+ %AMAD_DeviceIP
+
+
+
+ 38
+
+
+ 51
+ AMAD_fhemip
+ AMAD_settings
+ TextEdit_FHEMip
+
+ %AMAD_fhemip
+
+
+
+ %AMAD_fhemip
+ 3
+ \%AMAD_fhemip
+
+
+
+
+ 51
+ AMAD_bridgeport
+ AMAD_settings
+ TextEdit_AMADport
+
+ %AMAD_bridgeport
+
+
+
+ %AMAD_bridgeport
+ 3
+ \%AMAD_bridgeport
+
+
+
+
+ 51
+ AMAD_bridgeport
+ AMAD_settings
+ TextEdit_AMADport
+
+ 8090
+
+
+
+ %AMAD_bridgeport
+ 2
+ \%AMAD_bridgeport
+
+
+
+
+ 46
+ AMAD_settings
+
+
+ %scene
+ 2
+ uncreated
+
+
+
+
+ 51
+ AMAD_amadid
+ AMAD_settings
+ TextEdit_AMAD_ID
+
+ %AMAD_amadid
+
+
+
+ %AMAD_amadid
+ 3
+ \%AMAD_amadid
+
+
+
+
+ 51
+ AMAD_amadid
+ AMAD_settings
+ TextEdit_AMAD_ID
+
+ %TIMES
+
+
+
+ %AMAD_amadid
+ 2
+ \%AMAD_amadid
+
+
+
+
+ 37
+ SSID noch nicht gesetzt
+
+
+ %AMAD_apssid
+ 2
+ \%AMAD_apssid
+
+
+
+
+ 341
+ false
+
+
+ %ssid
+
+
+ 51
+ AMAD_apssid
+ AMAD_settings
+ TextEdit_SSID
+
+ %ssid
+
+
+ And
+
+ %ssid
+ 3
+ <unknown ssid>
+
+
+ %ssid
+ 3
+ \%ssid
+
+
+
+
+ 43
+
+
+ 51
+ AMAD_apssid
+ AMAD_settings
+ TextEdit_SSID
+
+ %AMAD_apssid
+
+
+
+ 38
+
+
+ 50
+ setCommand Tasks: on
+ AMAD_settings
+ Switch_setCommands
+
+
+
+ %AMAD_receive
+ 2
+ on
+
+
+
+
+ 50
+ setCommand Tasks: off
+ AMAD_settings
+ Switch_setCommands
+
+
+
+ %AMAD_receive
+ 2
+ off
+
+
+
+
+ 47
+ AMAD_settings
+
+
+
+
+
+
+
+
+
+ 50
+ information Tasks: on
+ AMAD_settings
+ Switch_information
+
+
+
+ %AMAD_send
+ 2
+ on
+
+
+
+
+ 50
+ Information Tasks: off
+ AMAD_settings
+ Switch_information
+
+
+
+ %AMAD_send
+ 2
+ off
+
+
+
+
+ 37
+ InformationFlow Profile enabled
+
+ And
+
+ %AMAD_send
+ 2
+ on
+
+
+ %WIFI
+ 2
+ on
+
+
+
+
+ 65
+ Text_toGo
+ AMAD_settings
+ Text_toGo
+
+
+
+
+
+ 65
+ Switch_toGo
+ AMAD_settings
+ Switch_toGo
+
+
+
+
+
+ 50
+ Switch_toGo: on
+ AMAD_settings
+ Switch_toGo
+
+
+
+ %AMAD_toGo
+ 2
+ on
+
+
+
+
+ 50
+ Switch_toGo: off
+ AMAD_settings
+ Switch_toGo
+
+
+
+ %AMAD_toGo
+ 3
+ on
+
+
+
+
+ 43
+
+
+ 65
+ Text_toGo
+ AMAD_settings
+ Text_toGo
+
+
+
+
+
+ 65
+ Switch_toGo
+ AMAD_settings
+ Switch_toGo
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+ 38
+
+
+ 37
+ toGo Profile enabled
+
+ And
+ And
+
+ %AMAD_send
+ 2
+ on
+
+
+ %AMAD_toGo
+ 2
+ on
+
+
+ %WIFI
+ 2
+ on
+
+
+
+
+ 65
+ Text_SSID
+ AMAD_settings
+ Text_SSID
+
+
+
+
+
+ 65
+ TextEdit_SSID
+ AMAD_settings
+ TextEdit_SSID
+
+
+
+
+
+ 65
+ Text_getSSID
+ AMAD_settings
+ Text_getSSID
+
+
+
+
+
+ 43
+
+
+ 65
+ Text_SSID
+ AMAD_settings
+ Text_SSID
+
+
+
+
+
+ 65
+ TextEdit_SSID
+ AMAD_settings
+ TextEdit_SSID
+
+
+
+
+
+ 65
+ Text_getSSID
+ AMAD_settings
+ Text_getSSID
+
+
+
+
+
+ 38
+
+
+ 37
+ Name noch nicht gesetzt
+
+
+ %AMAD_fhemdevice
+ 2
+ \%AMAD_fhemdevice
+
+
+
+
+ 30
+
+
+
+
+
+
+
+ 50
+ fhemctlmode
+ AMAD_settings
+ Spinner_fhemctlmode
+
+
+
+ %AMAD_fhemctlmode
+ 2
+ trigger
+
+
+
+
+ 50
+ fhemctlmode
+ AMAD_settings
+ Spinner_fhemctlmode
+
+
+
+ %AMAD_fhemctlmode
+ 2
+ setControl
+
+
+
+
+ 50
+ fhemctlmode
+ AMAD_settings
+ Spinner_fhemctlmode
+
+
+
+ %AMAD_fhemctlmode
+ 2
+ thirdPartyControl
+
+
+
+
+ 50
+ remoteServer
+ AMAD_settings
+ Spinner_remoteServer
+
+
+
+ %AMAD_remoteServer
+ 2
+ TNES
+
+
+
+
+ 50
+ remoteServer
+ AMAD_settings
+ Spinner_remoteServer
+
+
+
+ %AMAD_remoteServer
+ 2
+ Autoremote
+
+
+
+
+ 50
+ remoteServer
+ AMAD_settings
+ Spinner_remoteServer
+
+
+
+ %AMAD_remoteServer
+ 2
+ other
+
+
+
+
+ 30
+
+
+
+
+
+
+
+ 547
+ %initial
+ false
+
+
+
+
+
+ 130
+ getDeviceName
+ AMAD_getDeviceName
+
+ %priority+1
+
+
+
+ %fhemdevice
+
+
+
+ 51
+ AMAD_fhemdevice
+ AMAD_settings
+ TextEdit_DeviceName
+
+ %fhemdevice
+
+
+
+ %fhemdevice
+ 3
+ \%fhemdevice
+
+
+
+
+ 43
+
+
+ 51
+ AMAD_fhemdevice
+ AMAD_settings
+ TextEdit_DeviceName
+
+ %AMAD_fhemdevice
+
+
+
+ /storage/emulated/0/Tasker/.icn/Eigene Icons/TaskerFHEM_icon.png
+
+
+
+ 1512253437179
+ 1512253437179
+ 966
+
+ 547
+ %readingsvalcmd
+ %AMAD_fhemdevice deviceState kaputt
+
+
+
+
+
+ 130
+ Abfrage
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ readingsval
+ %readingsvalcmd
+ %respreadingsval
+
+
+
+ 548
+ status: %respreadingsval
+
+
+
+ %respreadingsval
+ 3
+ \%respreadingsval
+
+
+
+
+ 37
+
+
+ %respreadingsval
+ 2
+ online
+
+
+
+
+ 55
+ status: grün
+ %scene_name
+ Oval_online
+ #FF00FF00
+ #FF00FF00
+
+
+ 43
+
+ And
+ And
+
+ %respreadingsval
+ 3
+ kaputt
+
+
+ %respreadingsval
+ 3
+ no connection
+
+
+ %respreadingsval
+ 3
+ /%respreadingsval
+
+
+
+
+ 55
+ status: gelb
+ %scene_name
+ Oval_online
+ #FFFFFF00
+ #FFFFFF00
+
+
+ 43
+
+
+ 55
+ status: rot
+ %scene_name
+ Oval_online
+ #FFFF0000
+ #FFFF0000
+
+
+ 38
+
+
+
+ 1503260793343
+ 1515484018445
+ 967
+ AMAD_VoiceControl
+ 7
+
+ 903
+ AMAD Voice Control
+
+
+ de-DE
+
+
+
+
+ 547
+ %value
+ %VOICE
+
+
+
+
+
+ 547
+ %voiceinputdata
+ %value
+
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ voiceinputvalue
+ %voiceinputdata
+
+
+
+
+ 38
+
+
+ 43
+
+
+ 559
+ Spracheingabe wurde nicht erkannt
+ Ihre Eingabe wurde nicht verstanden
+ default:default
+
+
+
+
+
+
+
+
+ 38
+
+
+ 548
+ false
+ Antwort: "%value"
+
+
+
+ 37
+
+
+ %VOICE
+ 12
+ ja
+
+
+
+
+ 37
+
+ And
+
+ %value
+ 4
+ und
+
+
+ %AMAD_fhemctlmode
+ 3
+ thirdPartControl
+
+
+
+
+ 590
+ %value
+ und
+
+
+
+ 39
+ %voiceinputdata
+ %value()
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ voiceinputvalue
+ %voiceinputdata
+
+
+
+
+ 40
+
+
+ 43
+
+
+ mw_action_settings_voice
+
+
+
+ 1511708774249
+ 1511708860118
+ 968
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "nfc": "on"
+
+
+
+
+
+ 1512054845923
+ 1512054845923
+ 969
+
+ 51
+ %scene_name
+ TextEdit_AMAD_ID
+
+ %TIMES
+
+
+
+ 548
+ Eine neue AMAD ID wurde generiert.
+
+
+
+
+ 1512173777582
+ 1512173777582
+ 970
+
+ 37
+
+
+ %new_val
+ 2
+ on
+
+
+
+
+ 65
+ Text_SSID
+ %scene_name
+ Text_SSID
+
+
+
+
+
+ 65
+ TextEdit_SSID
+ %scene_name
+ TextEdit_SSID
+
+
+
+
+
+ 65
+ Text_getSSID
+ %scene_name
+ Text_getSSID
+
+
+
+
+
+ 43
+
+
+ %new_val
+ 2
+ off
+
+
+
+
+ 65
+ Text_SSID
+ %scene_name
+ Text_SSID
+
+
+
+
+
+ 65
+ TextEdit_SSID
+ %scene_name
+ TextEdit_SSID
+
+
+
+
+
+ 65
+ Text_getSSID
+ %scene_name
+ Text_getSSID
+
+
+
+
+
+ 38
+
+
+
+ 1502904145564
+ 1503611980132
+ 972
+ 100
+
+ 130
+ AMAD_informations
+
+ %priority
+
+
+
+
+
+
+
+
+ 1503689740378
+ 1503689753554
+ 973
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "airplanemode": "off"
+
+
+
+
+
+ 1511708875113
+ 1511708893034
+ 974
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "nfc": "off"
+
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 975
+ 102
+
+ 130
+ AMAD_getDeviceIP
+
+ %priority
+
+
+
+ %deviceip
+
+
+
+ 37
+
+
+ %deviceip
+ 3
+ \%deviceip
+
+
+
+
+ 51
+ %scene_name
+ TextEdit_DeviceIP
+
+ %deviceip
+
+
+
+ 548
+ Geräte Adresse "%deviceip" wurde erkannt.
+
+
+
+ 43
+
+
+ 548
+ Die eigene IP konnte nicht ermittelt werden.
+
+
+
+ 38
+
+
+
+ 1512505794248
+ 1512505794248
+ 976
+
+ 55
+ %scene_name
+ %element_name
+ #FFD9D9D9
+ #FFD9D9D9
+
+
+ %focused
+ 2
+ true
+
+
+
+
+ 55
+ %scene_name
+ %element_name
+ #FF858585
+ #FF858585
+
+
+ %focused
+ 2
+ false
+
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 977
+ 102
+
+ 130
+ Einstellungen speichern
+ AMAD_save
+
+ %priority+1
+
+ %scene_name
+
+
+
+
+
+ 548
+ Send Data to AMADCommBridge: firstrun
+
+
+
+ 37
+ Verbindung fehlgeschlagenen
+
+
+ %response
+ 2
+ no connection
+
+
+
+
+ 547
+ %message
+ Es konnte keine Verbindung zur AMAD CommBridge hergestellt werden.
+Hast Du die AMADCommBridge definiert, und ist sie auch aktiv?
+Bitten prüfe die Eingetragene FHEM Adresse "%AMAD_fhemip:%AMAD_bridgeport".
+
+
+
+
+
+ 194
+ AMAD_Dialog_Message
+
+ %scene
+
+
+ 46
+ AMAD_Dialog_Message
+
+
+ %scene
+ 2
+ uncreated
+
+
+
+
+ 47
+ AMAD_Dialog_Message
+
+
+
+
+
+
+
+
+
+ 137
+
+
+
+
+ 38
+
+
+ 30
+
+
+
+
+
+
+
+ 130
+ Perform "information" Task
+ AMAD_informations
+
+ %priority+1
+
+
+
+ %response
+
+
+
+ 30
+
+
+
+
+
+
+
+ 130
+ Send Data to AMADCommBridge: firstrun
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ firstrun
+ %AMAD_DeviceIP
+ %response
+
+
+
+ 130
+ Abfrage
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ readingsval
+ %AMAD_fhemdevice deviceState kaputt
+ %respreadingsval
+
+
+
+ 37
+
+
+ %respreadingsval
+ 2
+ online
+
+
+
+
+ 55
+ status: grün
+ %scene_name
+ Oval_online
+ #FF00FF00
+ #FF00FF00
+
+
+ 547
+ %message
+ Die Einrichtung ist nun abgeschlossen und das AMAD Device online.
+
+
+
+
+
+ 194
+ AMAD_Dialog_Message
+
+ %scene
+
+
+ 46
+ AMAD_Dialog_Message
+
+
+ %scene
+ 2
+ uncreated
+
+
+
+
+ 47
+ AMAD_Dialog_Message
+
+
+
+
+
+
+
+
+
+ 547
+ Tasker send Profile aktivieren
+ %AMAD_send
+ on
+
+
+
+
+
+ 547
+ Tasker receive Profile aktivieren
+ %AMAD_receive
+ on
+
+
+
+
+
+ 50
+ Switch_information: on
+ AMAD_settings
+ Switch_information
+
+
+
+ 37
+ Variable nicht gesetzt
+
+
+ %response
+ 2
+ Variable not set
+
+
+
+
+ 50
+ Switch_setCommands: on
+ AMAD_settings
+ Switch_setCommands
+
+
+
+ 65
+ Text_toGo
+ AMAD_settings
+ Text_toGo
+
+
+
+
+
+ 65
+ Switch_toGo
+ AMAD_settings
+ Switch_toGo
+
+
+
+
+
+ 43
+
+ And
+ And
+
+ %respreadingsval
+ 3
+ kaputt
+
+
+ %respreadingsval
+ 3
+ no connection
+
+
+ %respreadingsval
+ 3
+ /%respreadingsval
+
+
+
+
+ 55
+ status: gelb
+ %scene_name
+ Oval_online
+ #FFFFFF00
+ #FFFFFF00
+
+
+ 547
+ %message
+ Die Einrichtung ist nun abgeschlossen und das AMAD Device wurde angelegt. Es scheint aber noch keine Verbindung zwischen FHEM und Deinem AMAD Device zu bestehen. Mache am besten einmal ein Status Request in FHEM für das AMAD Device. Ist der Status in FHEM weiterhin offline schaue bitte ob alle AMAD Tasker Profiele aktiv sind.
+
+
+
+
+
+ 194
+ AMAD_Dialog_Message
+
+ %scene
+
+
+ 46
+ AMAD_Dialog_Message
+
+
+ %scene
+ 2
+ uncreated
+
+
+
+
+ 47
+ AMAD_Dialog_Message
+
+
+
+
+
+
+
+
+
+ 43
+
+
+ 547
+ %message
+ Die Eingaben sind unvollständig.
+Bitten prüfe die eingetragene Daten.
+
+
+
+
+
+ 55
+ status: rot
+ %scene_name
+ Oval_online
+ #FFFF0000
+ #FFFF0000
+
+
+ 547
+ %message
+ Leider scheint es ein Problem beim Einrichten des FHEM Devices gegeben zu haben.
+-Stelle sicher, dass in FHEM noch kein Device mit dem Namen "%AMAD_fhemdevice" existiert.
+-Stelle sicher, dass autocreate aktiviert ist.
+
+
+
+
+
+ 194
+ AMAD_Dialog_Message
+
+ %scene
+
+
+ 46
+ AMAD_Dialog_Message
+
+
+ %scene
+ 2
+ uncreated
+
+
+
+
+ 47
+ AMAD_Dialog_Message
+
+
+
+
+
+
+
+
+
+ 38
+
+
+ 194
+ AMAD_Dialog_Message
+
+ %scene
+
+
+ 46
+ AMAD_Dialog_Message
+
+
+ %scene
+ 2
+ uncreated
+
+
+
+
+ 47
+ AMAD_Dialog_Message
+
+
+
+
+
+
+
+
+
+ 137
+
+
+
+
+ 38
+
+
+
+ 1503937837718
+ 1503937837718
+ 978
+ 102
+
+ 548
+ Status Request wird an AMAD CommBridge gesendet...
+
+
+
+ 130
+ Status Request ausführen
+ AMAD_informations
+
+ %priority
+
+
+
+
+
+
+
+ 55
+ status: rot
+ %scene_name
+ Oval_online
+ #FFFF0000
+ #FFFF0000
+
+
+ 38
+
+
+ 547
+ %readingsvalcmd
+ %AMAD_fhemdevice deviceState kaputt
+
+
+
+
+
+ 130
+ Abfrage
+ AMAD_SendData2CommBridge
+
+ %priority+1
+
+ readingsval
+ %readingsvalcmd
+ %respreadingsval
+
+
+
+ 548
+ status: %respreadingsval
+
+
+
+ %respreadingsval
+ 3
+ \%respreadingsval
+
+
+
+
+ 37
+
+
+ %respreadingsval
+ 2
+ online
+
+
+
+
+ 55
+ status: grün
+ %scene_name
+ Oval_online
+ #FF00FF00
+ #FF00FF00
+
+
+ 43
+
+ And
+ And
+
+ %respreadingsval
+ 3
+ kaputt
+
+
+ %respreadingsval
+ 3
+ no connection
+
+
+ %respreadingsval
+ 3
+ /%respreadingsval
+
+
+
+
+ 55
+ status: gelb
+ %scene_name
+ Oval_online
+ #FFFFFF00
+ #FFFFFF00
+
+
+ 43
+
+
+
+ 1512172357867
+ 1512172357867
+ 979
+
+ 548
+ Bitte gebe die IP Adresse oder den FQDN Deines FHEM Servers an.
+
+
+
+
+ 1512505998767
+ 1512505998767
+ 980
+
+ 55
+ %scene_name
+ %element_name
+ #FFD9D9D9
+ #FFD9D9D9
+
+
+ %focused
+ 2
+ true
+
+
+
+
+ 55
+ %scene_name
+ %element_name
+ #FF858585
+ #FF858585
+
+
+ %focused
+ 2
+ false
+
+
+
+
+
+ 1512758867606
+ 1512758867606
+ 981
+
+ 548
+ Wenn deaktiviert werden keine set-Befehle auf dem Gerät ausgeführt.
+
+
+
+
+ 1512032849766
+ 1512032849766
+ 982
+ 102
+
+ 547
+ %enter
+
+
+
+
+
+
+
+ 37
+
+
+ %new_val
+ 4
+ %enter
+
+
+
+
+ 598
+ %new_val
+ %enter
+
+
+
+
+
+
+
+
+ 51
+ %scene_name
+ %element_name
+
+ %new_val
+
+
+
+ %new_val
+ 3
+ \%new_val
+
+
+
+
+ 68
+ %scene_name
+ TextEdit_DeviceIP
+
+
+
+ 43
+
+
+ 598
+ check input
+ %new_val
+ [^a-zA-Z_0-9\.]
+
+
+
+ %fail
+
+
+
+
+ 51
+ %scene_name
+ TextEdit_DeviceName
+
+ %new_val
+
+
+ And
+
+ %new_val
+ 3
+ \%new_val
+
+
+ %initial
+ 2
+ false
+
+
+
+
+ 548
+ Es werden nur folgende Zeichen unterstüzt: a-z A-Z 0-9 _ .
+
+
+
+ %fail(#)
+ 7
+ 0
+
+
+
+
+ 38
+
+
+
+ 1503689793813
+ 1513275921434
+ 983
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "bluetooth": "on"
+
+
+
+
+
+ 1503689660711
+ 1511637650420
+ 984
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "airplanemode": "on"
+
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 985
+ 102
+
+ 130
+ AMAD_getDeviceName
+
+ %priority+1
+
+
+
+ %fhemdevice
+
+
+
+ 37
+
+
+ %fhemdevice
+ 3
+ \%fhemdevice
+
+
+
+
+ 51
+ %scene_name
+ TextEdit_DeviceName
+
+ %fhemdevice
+
+
+
+ 548
+ Gerätename "%fhemdevice" wurde gesetzt.
+
+
+
+ 43
+
+
+ 548
+ Der Gerätename konnte nicht ermittelt werden.
+
+
+
+ 38
+
+
+
+ 1512173777582
+ 1512173777582
+ 986
+
+ 37
+
+ And
+
+ %new_val
+ 2
+ on
+
+
+ %WIFI
+ 2
+ on
+
+
+
+
+ 65
+ Text_toGo
+ %scene_name
+ Text_toGo
+
+
+
+
+
+ 38
+
+
+ 43
+
+
+ %new_val
+ 2
+ off
+
+
+
+
+ 65
+ Text_toGo
+ %scene_name
+ Text_toGo
+
+
+
+
+
+ 65
+ Switch_toGo
+ %scene_name
+ Switch_toGo
+
+
+
+
+
+ 65
+ Text_SSID
+ %scene_name
+ Text_SSID
+
+
+
+
+
+ 65
+ TextEdit_SSID
+ %scene_name
+ TextEdit_SSID
+
+
+
+
+
+ 65
+ Text_getSSID
+ %scene_name
+ Text_getSSID
+
+
+
+
+
+ 38
+
+
+ 65
+ Switch_toGo
+ %scene_name
+ Switch_toGo
+
+
+
+
+
+ 37
+ toGo Profile enabled
+
+
+ %AMAD_toGo
+ 2
+ on
+
+
+
+
+ 50
+ Switch_toGo: on
+ %scene_name
+ Switch_toGo
+
+
+
+ 65
+ Text_SSID
+ %scene_name
+ Text_SSID
+
+
+
+
+
+ 65
+ TextEdit_SSID
+ %scene_name
+ TextEdit_SSID
+
+
+
+
+
+ 65
+ Text_getSSID
+ %scene_name
+ Text_getSSID
+
+
+
+
+
+ 43
+
+
+ 50
+ Switch_toGo: off
+ %scene_name
+ Switch_toGo
+
+
+
+
+ 1512054845923
+ 1512054845923
+ 987
+
+ 341
+ false
+
+
+ %ssid
+
+
+ 37
+
+ Or
+
+ %ssid
+ 2
+ \%ssid
+
+
+ %ssid
+ 2
+ <unknown ssid>
+
+
+
+
+ 548
+ Die aktuelle SSID konnte nicht ermittelt werden.
+
+
+
+ 43
+
+
+ 51
+ AMAD_apssid
+ AMAD_settings
+ TextEdit_SSID
+
+ %ssid
+
+
+
+ 548
+ Die aktuelle SSID: "%ssid" wurde übernommen.
+
+
+
+ 38
+
+
+
+ 1503690306712
+ 1503690348078
+ 988
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "dockingState": "docked"
+
+
+
+
+
+ 1503690514289
+ 1503690532524
+ 989
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "powerPlugged": "1"
+
+
+
+
+
+ 1515014192359
+ 1515014192359
+ 990
+
+ 105
+ %AMAD_lastSetCommand
+
+
+
+ 548
+ letzter empfangener set-Befehl in Zwischenablage kopiert
+
+
+
+
+ 1503692408945
+ 1516907246352
+ 991
+ 100
+
+ 547
+ disable send Profiles
+ %AMAD_send
+ off
+
+
+
+
+
+ 547
+ disable set Profile
+ %AMAD_receive
+ off
+
+
+
+
+
+ 137
+
+ AMAD_SendData2CommBridge
+
+
+ 37
+
+
+ %AMAD_remoteServer
+ 2
+ Autoremote
+
+
+
+
+ 785392305
+ Stop Autoremote Wifi Server
+ false
+
+
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ false
+ java.lang.Boolean
+ false
+ java.lang.Boolean
+
+Stopping Wifi Service
+ java.lang.String
+ false
+ java.lang.Boolean
+ <StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%err
+Error Code
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%errmsg
+Error Message
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1></StringArray>
+ [Ljava.lang.String;
+ FieldsToGet NotificationTitle NotificationText NotificationIcon LedColor LedOn LedOff plugininstanceid plugintypeid
+ java.lang.String
+ true
+ java.lang.Boolean
+ 2136a7e4-dee6-446f-8c72-dc98e51af9d0
+ java.lang.String
+ com.joaomgcd.autoremote.IntentWifiService
+ java.lang.String
+
+
+ com.joaomgcd.autoremote
+ com.joaomgcd.autoremote.activity.ActivityConfigWifiService
+
+
+
+ 38
+
+
+
+ 1503612978140
+ 1513116249338
+ 992
+
+ 30
+
+
+
+
+
+
+
+ 664
+ Query locked
+ kgm
+ CONTEXT
+ getSystemService
+{KeyguardManager} (String)
+ keyguard
+
+
+
+
+
+
+
+
+ 664
+ Query locked
+ %locked
+ kgm
+ inKeyguardRestrictedInputMode
+{boolean} ()
+
+
+
+
+
+
+
+
+
+ 547
+ screen
+ %setreading
+ "screen": "%SCREEN locked"
+
+
+
+
+ And
+
+ %SCREEN
+ 12
+
+
+
+ %locked
+ 2
+ true
+
+
+
+
+ 547
+ screen
+ %setreading
+ "screen": "%SCREEN unlocked"
+
+
+
+
+ And
+
+ %SCREEN
+ 12
+
+
+
+ %locked
+ 2
+ false
+
+
+
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ %setreading
+
+
+
+
+
+ 1511815475378
+ 1511815562350
+ 993
+
+ 596
+ %pushovermessage
+
+
+
+
+ 130
+ AMAD_SetCommands
+
+ %priority
+
+ %pushovermessage
+
+
+
+
+
+
+ 1503937837718
+ 1503937837718
+ 994
+ 102
+
+ 49
+ %scene_name
+
+
+
+ 1512715391071
+ 1512715391071
+ 995
+
+ 548
+ Manuelles auslösen einen status Requests
+
+
+
+
+ 1512752289034
+ 1516907362346
+ 996
+ AMAD_save
+ 100
+
+ 547
+ %scene_name
+ %par1
+
+
+
+
+
+ 195
+ save AMAD_fhemdevice
+ %scene_name
+ TextEdit_DeviceName
+
+ %AMAD_fhemdevice
+
+
+ 195
+ information Tasks
+ %scene_name
+ Switch_information
+
+ %state
+
+
+ 547
+ enable/disable send Profiles
+ %AMAD_send
+ %state
+
+
+
+
+
+ 195
+ toGo state
+ %scene_name
+ Switch_toGo
+
+ %state
+
+
+ %state
+ 2
+ on
+
+
+
+
+ 547
+ save AMAD_toGo
+ %AMAD_toGo
+ %state
+
+
+
+
+
+ 195
+ save AMAD_apssid
+ %scene_name
+ TextEdit_SSID
+
+ %AMAD_apssid
+
+
+ %state
+ 2
+ on
+
+
+
+
+ 548
+ AMAD Einstellungen wurden gespeichert.
+
+
+
+ 785392305
+ Start Autoremote Wifi Server
+ false
+
+
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ /storage/emulated/0/Tasker/.icn/Eigene Icons/TaskerFHEM_icon.png
+ java.lang.String
+ <null>
+ java.lang.String
+ AMAD Autoremote Server
+ java.lang.String
+ true
+ java.lang.Boolean
+ false
+ java.lang.Boolean
+
+Starting Wifi Service
+Persistent Notification: true
+Notification Title: AMAD Autoremote Server
+ java.lang.String
+ true
+ java.lang.Boolean
+ <StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%err
+Error Code
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%errmsg
+Error Message
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1></StringArray>
+ [Ljava.lang.String;
+ FieldsToGet NotificationTitle NotificationText NotificationIcon LedColor LedOn LedOff plugininstanceid plugintypeid
+ java.lang.String
+ true
+ java.lang.Boolean
+ 2136a7e4-dee6-446f-8c72-dc98e51af9d0
+ java.lang.String
+ com.joaomgcd.autoremote.IntentWifiService
+ java.lang.String
+
+
+ com.joaomgcd.autoremote
+ com.joaomgcd.autoremote.activity.ActivityConfigWifiService
+
+
+
+ %AMAD_remoteServer
+ 2
+ Autoremote
+
+
+
+
+ 785392305
+ Stop Autoremote Wifi Server
+ false
+
+
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ <null>
+ java.lang.String
+ false
+ java.lang.Boolean
+ false
+ java.lang.Boolean
+
+Stopping Wifi Service
+ java.lang.String
+ false
+ java.lang.Boolean
+ <StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%err
+Error Code
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%errmsg
+Error Message
+Only available if you select <b>Continue Task After Error</b> and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1></StringArray>
+ [Ljava.lang.String;
+ FieldsToGet NotificationTitle NotificationText NotificationIcon LedColor LedOn LedOff plugininstanceid plugintypeid
+ java.lang.String
+ true
+ java.lang.Boolean
+ 2136a7e4-dee6-446f-8c72-dc98e51af9d0
+ java.lang.String
+ com.joaomgcd.autoremote.IntentWifiService
+ java.lang.String
+
+
+ com.joaomgcd.autoremote
+ com.joaomgcd.autoremote.activity.ActivityConfigWifiService
+
+
+
+ %AMAD_remoteServer
+ 3
+ Autoremote
+
+
+
+
+ 195
+ save AMAD_DeviceIP
+ %scene_name
+ TextEdit_DeviceIP
+
+ %AMAD_DeviceIP
+
+
+ 195
+ save AMAD_fhemip
+ %scene_name
+ TextEdit_FHEMip
+
+ %AMAD_fhemip
+
+
+ 195
+ save AMAD_bridgeport
+ %scene_name
+ TextEdit_AMADport
+
+ %AMAD_bridgeport
+
+
+ 195
+ save AMAD_amadid
+ %scene_name
+ TextEdit_AMAD_ID
+
+ %AMAD_amadid
+
+
+ 195
+ save AMAD_fhemctlmode
+ %scene_name
+ Spinner_fhemctlmode
+
+ %AMAD_fhemctlmode
+
+
+ 195
+ save AMAD_remoteServer
+ %scene_name
+ Spinner_remoteServer
+
+ %AMAD_remoteServer
+
+
+ 195
+ setCommands Tasks
+ %scene_name
+ Switch_setCommands
+
+ %state
+
+
+ 547
+ enable/disable receive Profiles
+ %AMAD_receive
+ %state
+
+
+
+
+
+
+ 1503612743210
+ 1512664299869
+ 997
+
+ 130
+ AMAD_SendData2CommBridge
+
+ %priority
+
+ setreading
+ "daydream": "off"
+
+
+
+
+
+ 1512172711494
+ 1512172711494
+ 998
+
+ 548
+ Falls das AMAD Device in FHEM von Hand angelegt wurde, muss hier die "AMAD_ID" auf den gleichen Wert wie in FHEM gesetzt werden.
+
+
+
+
+ 1503611036750
+ 1513445150127
+ 999
+ AMAD_SDK2Name
+
+ 547
+ %androidversion
+ 8.0 Oreo
+
+
+
+
+
+ %SDK
+ 8
+ 26
+
+
+
+
+ 547
+ %androidversion
+ 7.1 Nougat
+
+
+
+
+
+ %SDK
+ 8
+ 25
+
+
+
+
+ 547
+ %androidversion
+ 4.0.3 - 4.0.4 Ice Cream Sandwich MR1
+
+
+
+
+
+ %SDK
+ 8
+ 15
+
+
+
+
+ 547
+ %androidversion
+ 4.0 - 4.0.2 Ice Cream Sandwich
+
+
+
+
+
+ %SDK
+ 8
+ 14
+
+
+
+
+ 126
+ %androidversion
+
+
+
+ 547
+ %androidversion
+ 7.0 Nougat
+
+
+
+
+
+ %SDK
+ 8
+ 24
+
+
+
+
+ 547
+ %androidversion
+ 6.0 Marshmallow
+
+
+
+
+
+ %SDK
+ 8
+ 23
+
+
+
+
+ 547
+ %androidversion
+ 5.1 Lollipop MR1
+
+
+
+
+
+ %SDK
+ 8
+ 22
+
+
+
+
+ 547
+ %androidversion
+ 5.0 Lollipop
+
+
+
+
+
+ %SDK
+ 8
+ 21
+
+
+
+
+ 547
+ %androidversion
+ 4.4 KitKat
+
+
+
+
+
+ %SDK
+ 8
+ 19
+
+
+
+
+ 547
+ %androidversion
+ 4.3 Jelly Bean MR2
+
+
+
+
+
+ %SDK
+ 8
+ 18
+
+
+
+
+ 547
+ %androidversion
+ 4.2 - 4.2.2 Jelly Bean MR1
+
+
+
+
+
+ %SDK
+ 8
+ 17
+
+
+
+
+ 547
+ %androidversion
+ 4.1 - 4.1.1 Jelly Bean
+
+
+
+
+
+ %SDK
+ 8
+ 16
+
+
+
+
+