From 9e20c40b37e13dafc9d627e1e4b596f2b370e1e1 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 28 May 2021 20:56:19 +0200 Subject: [PATCH 1/7] 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 +

irrigation control

  • resumeScheduleValve - start schedule irrigation on valve n
  • -
  • stopScheduleValve - stop schedule irrigation on valve n (Default: 2040-12-31T22:00:00.000Z) | optional params hours (now + hours)
  • +
  • stopScheduleValve - stop schedule irrigation on valve n (Default: 2038-01-18T00:00:00.000Z) | optional params hours (now + hours)
  • closeAllValves - close all valves
  • water control

  • manualButtonTime - set manual time for button press (in minutes) 0 disable button
  • -
  • stopSchedule - stop schedule for now + n hours (Default: 2040-12-31T22:00:00.000Z)
  • +
  • stopSchedule - stop schedule for now + n hours (Default: 2038-01-18T00:00:00.000Z)
  • resumeSchedule - resume schedule
  • @@ -1361,11 +1361,11 @@ sub SetPredefinedStartPoints {

    irrigation control

  • resumeScheduleValve - Startet Bew&aauml;sserung am Ventil n nach Zeitplan
  • -
  • stopScheduleValve - Setzt Bew&aauml;sserung am Ventil n aus (Default: 2040-12-31T22:00:00.000Z) | Optionaler Parameter Stunden (Jetzt + Stunden)
  • +
  • stopScheduleValve - Setzt Bew&aauml;sserung am Ventil n aus (Default: 2038-01-18T00:00:00.000Z) | Optionaler Parameter Stunden (Jetzt + Stunden)
  • closeAllValves - Stopt Bew&aauml;sserung an allen Ventilen
  • water control

  • manualButtonTime - setzt die Dauer für den manuellen Knopf (in Minuten) 0 Schaltet den Knopf aus
  • -
  • stopSchedule - Halte Zeitplan an für x Stunden - (Default: 2040-12-31T22:00:00.000Z)
  • +
  • stopSchedule - Halte Zeitplan an für x Stunden - (Default: 2038-01-18T00:00:00.000Z)
  • resumeSchedule - Weiterführung des Zeitplans
  • diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 37d0c2a..4afaf7e 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2021-06-04_15:29:42 46884 FHEM/73_GardenaSmartBridge.pm -UPD 2021-05-28_20:56:13 55505 FHEM/74_GardenaSmartDevice.pm +UPD 2021-06-05_09:23:57 55505 FHEM/74_GardenaSmartDevice.pm From 065eebb8589beade45c17f32572099f9678c7bb3 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 5 Jun 2021 09:30:31 +0200 Subject: [PATCH 5/7] comment dumper --- FHEM/73_GardenaSmartBridge.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index 78b93c1..f256e21 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -63,7 +63,7 @@ use warnings; use POSIX; use FHEM::Meta; -use Data::Dumper; +#use Data::Dumper; use HttpUtils; diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 4afaf7e..9a9835f 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2021-06-04_15:29:42 46884 FHEM/73_GardenaSmartBridge.pm +UPD 2021-06-05_09:30:20 46885 FHEM/73_GardenaSmartBridge.pm UPD 2021-06-05_09:23:57 55505 FHEM/74_GardenaSmartDevice.pm From fe23d695e4c07f00fa30eb561bc0efa5c614d721 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 5 Jun 2021 18:42:27 +0200 Subject: [PATCH 6/7] undo notify regexp --- FHEM/73_GardenaSmartBridge.pm | 12 ++++++------ controls_GardenaSmartDevice.txt | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index f256e21..69d4544 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -351,10 +351,10 @@ sub Notify { && ( grep /^INITIALIZED$/, @{$events} or grep /^REREADCFG$/, - @{$events} or grep /^DEFINED.$name.*$/, - @{$events} or grep /^MODIFIED.$name.*$/, - @{$events} or grep /^ATTR.$name.*gardenaAccountEmail.+/, - @{$events} or grep /^DELETEATTR.$name.*disable$/, + @{$events} or grep /^DEFINED.$name.$/, + @{$events} or grep /^MODIFIED.$name.$/, + @{$events} or grep /^ATTR.$name.gardenaAccountEmail.+/, + @{$events} or grep /^DELETEATTR.$name.disable$/, @{$events} ) ) @@ -372,8 +372,8 @@ sub Notify { if ( $devtype eq 'Global' && ( - grep /^ATTR.$name.*disable.0$/, - @{$events} or grep /^DELETEATTR.$name.*interval$/, + grep /^ATTR.$name.disable.0$/, + @{$events} or grep /^DELETEATTR.$name.interval$/, @{$events} or grep /^ATTR.$name.$name.interval.[0-9]+/, @{$events} ) diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 9a9835f..b9067e8 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2021-06-05_09:30:20 46885 FHEM/73_GardenaSmartBridge.pm -UPD 2021-06-05_09:23:57 55505 FHEM/74_GardenaSmartDevice.pm +UPD 2021-06-05_18:42:19 46879 FHEM/73_GardenaSmartBridge.pm +UPD 2021-06-05_09:32:03 55505 FHEM/74_GardenaSmartDevice.pm From cf0772f6ae48f6a954f17a2f2dd92768e86e4878 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 5 Jun 2021 18:47:43 +0200 Subject: [PATCH 7/7] missed 2 of them( notify ) --- FHEM/73_GardenaSmartBridge.pm | 6 +++--- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index 69d4544..6cda51d 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -351,8 +351,8 @@ sub Notify { && ( grep /^INITIALIZED$/, @{$events} or grep /^REREADCFG$/, - @{$events} or grep /^DEFINED.$name.$/, - @{$events} or grep /^MODIFIED.$name.$/, + @{$events} or grep /^DEFINED.$name$/, + @{$events} or grep /^MODIFIED.$name$/, @{$events} or grep /^ATTR.$name.gardenaAccountEmail.+/, @{$events} or grep /^DELETEATTR.$name.disable$/, @{$events} @@ -374,7 +374,7 @@ sub Notify { && ( grep /^ATTR.$name.disable.0$/, @{$events} or grep /^DELETEATTR.$name.interval$/, - @{$events} or grep /^ATTR.$name.$name.interval.[0-9]+/, + @{$events} or grep /^ATTR.$name.interval.[0-9]+/, @{$events} ) && $init_done diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index b9067e8..2894bc2 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2021-06-05_18:42:19 46879 FHEM/73_GardenaSmartBridge.pm +UPD 2021-06-05_18:47:30 46871 FHEM/73_GardenaSmartBridge.pm UPD 2021-06-05_09:32:03 55505 FHEM/74_GardenaSmartDevice.pm