diff --git a/98_TadoAPI.pm b/98_TadoAPI.pm index 5183079..6b393bb 100644 --- a/98_TadoAPI.pm +++ b/98_TadoAPI.pm @@ -1,5 +1,5 @@ #=============================================================================== -# $Id: 98_TadoAPI.pm 101 2019-12-27 15:58:26Z psycho160 $ +# $Id: 98_TadoAPI.pm 102 2019-12-27 15:58:26Z psycho160 $ # # FILE: 98_TadoAPI.pm # @@ -185,7 +185,7 @@ sub TadoAPI_Set(@) { } elsif( $cmd eq 'setZoneOverlay' ) { Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; - return "Need at least two parameters (ZoneID, Setting) - Setting: remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)" if(@a < 4); + return "Need at least two parameters [ZoneID] [Setting] (duration in sec); Setting Info: remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)" if(@a < 4); if( $a[3] eq "remove" ) { TadoAPI_SetZoneOverlayById($hash, $value, "remove"); @@ -688,14 +688,17 @@ sub TadoAPI_SetZoneOverlayById(@){ } sub TadoAPI_SetAllOverlays(@){ - my ($hash, $setting) = @_; + my ($hash, $setting, $duration) = @_; my $name = $hash->{NAME}; my $homeID = $attr{$name}{homeID}; my @zones = TadoAPI_GetTadoDevices($hash); for (my $i=0; $i < @zones; $i++) { my $zoneid = $zones[$i]->{'id'}; - TadoAPI_SetZoneOverlayById($hash, $zoneid, $setting); + if(defined($duration) && $duration > 0){ + TadoAPI_SetZoneOverlayById($hash, $zoneid, $setting, $duration); + }else + TadoAPI_SetZoneOverlayById($hash, $zoneid, $setting); } } diff --git a/README.md b/README.md index ce504fe..13a09dc 100644 --- a/README.md +++ b/README.md @@ -32,14 +32,14 @@ Standardmäßig aktualisiert das Modul alle 5 Minuten die folgenden Werte: Sämtliche externen Aufrufe sind *nonblocking* ausgeführt. ### Overlay für Zone setzen -`set setZoneOverlay ` +`set setZoneOverlay [Dauer des Overlay in Sekunden]` **INFO:** unterstützte Werte der Wunschtemperatur: `remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)` ### Overlay für alle Zonen setzen -`set setZoneOverlay ` +`set setAllOverlays [Dauer des Overlay in Sekunden]` **INFO:** unterstützte Werte der Wunschtemperatur: `remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)`