From 9e20c40b37e13dafc9d627e1e4b596f2b370e1e1 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 28 May 2021 20:56:19 +0200 Subject: [PATCH] wintermode --- FHEM/73_GardenaSmartBridge.pm | 2 +- FHEM/74_GardenaSmartDevice.pm | 36 ++++++++++++++++++++++++++++----- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index f89fd33..d4fab2b 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -1487,7 +1487,7 @@ sub DeletePassword { ], "release_status": "stable", "license": "GPL_2", - "version": "v2.4.1", + "version": "v2.4.2", "author": [ "Marko Oldenburg " ], diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index bbef632..8632cb7 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -209,6 +209,10 @@ sub Define { $hash->{helper}{STARTINGPOINTID} = ''; $hash->{helper}{schedules_paused_until_id} = ''; $hash->{helper}{eco_mode_id} = ''; + $hash->{helper}{button_config_time_id} = ''; + $hash->{helper}{winter_mode_id} = ''; + + $hash->{helper}{_id} = ''; # IrrigationControl valve control max 6 $hash->{helper}{schedules_paused_until_1_id} = ''; $hash->{helper}{schedules_paused_until_2_id} = ''; @@ -465,8 +469,16 @@ sub Set { $payload = '"name":"measure_soil_humidity"'; $abilities = 'humidity'; } - - + } + ## winter sleep + elsif ( lc $cmd eq 'winter_mode') { + $payload = '"settings":{"name":"winter_mode","value":"' + . $aArg->[0] + .'","device":"' + . $hash->{DEVICEID} + .'"}'; + $abilities = 'winter_settings'; + $service_id = $hash->{helper}->{'winter_mode_id'}; } else { @@ -492,7 +504,8 @@ sub Set { $list .= 'on:noArg off:noArg on-for-timer:slider,0,1,60' if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' ); - + # all devices has abilitie to fall a sleep + $list .= ' winter_mode:awake,hibernate'; return "Unknown argument $cmd, choose one of $list"; } @@ -686,7 +699,8 @@ sub WriteReadings { if ( exists($decode_json->{settings}[$settings]{name}) && ( $decode_json->{settings}[$settings]{name} =~ /schedules_paused_until_?\d?$/ - || $decode_json->{settings}[$settings]{name} eq 'eco_mode' ) + || $decode_json->{settings}[$settings]{name} eq 'eco_mode' + || $decode_json->{settings}[$settings]{name} eq 'winter_mode' ) ) { if ( $hash->{helper}{$decode_json->{settings}[$settings]{name}.'_id'} ne @@ -695,6 +709,12 @@ sub WriteReadings { $hash->{helper}{$decode_json->{settings}[$settings]{name}.'_id'} = $decode_json->{settings}[$settings]{id}; } + # save winter mode as reading + readingsBulkUpdateIfChanged( + $hash, + 'winter_mode', + $decode_json->{settings}[$settings]{value} + ) if ($decode_json->{settings}[$settings]{name} eq 'winter_mode'); } if ( ref( $decode_json->{settings}[$settings]{value} ) eq "ARRAY" @@ -1169,6 +1189,9 @@ sub SetPredefinedStartPoints {

set + set +