From bf6734f44bc86d19ebeb7f883561d9ab7907dd14 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 1 May 2022 20:54:44 +0200 Subject: [PATCH 01/26] initial --- CHANGED | 1 + FHEM/73_GardenaSmartBridge.pm | 2 +- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 CHANGED diff --git a/CHANGED b/CHANGED new file mode 100644 index 0000000..647155e --- /dev/null +++ b/CHANGED @@ -0,0 +1 @@ + Reviewed-on: https://git.cooltux.net/FHEM/mod-GardenaSmart/pulls/53 diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index 19297c3..4317729 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -1577,7 +1577,7 @@ sub DeletePassword { ], "release_status": "stable", "license": "GPL_2", - "version": "v2.4.7", + "version": "v2.5.1", "author": [ "Marko Oldenburg " ], diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index fac69b5..a0b9b6d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -360,7 +360,7 @@ sub Set { '"name":"pump_manual_watering_timer","parameters":{"duration":' . $aArg->[0] . '}'; } - ### watering_computer + ### watering_computer & electronic pump elsif ( lc $cmd eq 'manualoverride' ) { $payload = '"properties":{"name":"watering_timer_1' @@ -1535,7 +1535,7 @@ sub SetPredefinedStartPoints { ], "release_status": "stable", "license": "GPL_2", - "version": "v2.4.3", + "version": "v2.5.1", "author": [ "Marko Oldenburg " ], diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 3810d2c..49359e4 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-03-29_13:42:09 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-04-12_08:40:29 61278 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-01_09:58:36 49520 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-01_09:58:54 61296 FHEM/74_GardenaSmartDevice.pm From 0beab4ec1d5a4a98feac366fa5f34e1cfb7f24f3 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 3 May 2022 22:18:54 +0200 Subject: [PATCH 02/26] erste teste --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 43 +++++++++++++++++++++++++++------ controls_GardenaSmartDevice.txt | 4 +-- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/CHANGED b/CHANGED index 647155e..03d37c8 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - Reviewed-on: https://git.cooltux.net/FHEM/mod-GardenaSmart/pulls/53 + initial diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index a0b9b6d..66d988d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -165,7 +165,7 @@ sub Initialize { $hash->{AttrFn} = \&Attr; $hash->{AttrList} = "readingValueLanguage:de,en " - . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump " + . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump" . "IODev " . $readingFnAttributes; $hash->{parseParams} = 1; @@ -294,7 +294,7 @@ sub Set { || AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ); $abilities = 'power' if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' ); - $abilities = 'manual_watering' + $abilities = 'watering' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); ### mower @@ -355,11 +355,11 @@ sub Set { #$abilities['service_id'] = $hash->{helper}{SCHEDULESID} if ( $mainboard_version > 10.30 ); } ### electronic_pressure_pump - elsif ( lc $cmd eq 'pumptimer' ) { - $payload = - '"name":"pump_manual_watering_timer","parameters":{"duration":' - . $aArg->[0] . '}'; - } + # elsif ( lc $cmd eq 'pumptimer' ) { + # $payload = + # '"name":"pump_manual_watering_timer","parameters":{"duration":' + # . $aArg->[0] . '}'; + # } ### watering_computer & electronic pump elsif ( lc $cmd eq 'manualoverride' ) { $payload = @@ -477,7 +477,32 @@ sub Set { . '","device":"' . $hash->{DEVICEID} . '"}'; } - ### Sensors + ### Watering_pressure_pump + elsif ( lc $cmd eq 'operatingmode') { + my $op_mode = $aArg->[0]; + $payload = '"name":"operating_mode"' + .'"value":"'.$op_mode.'"' + .'"device":"' + . $hash->{DEVICEID}; + $abilities = 'watering_pressure_pump_settings'; + } + elsif ( lc $cmd eq 'leakagedetection') { + my $leakdetection_mode = $aArg->[0]; + $payload = '"name":"leakage_detection"' + .'"value":"'.$leakdetection_mode.'"' + .'"device":"' + . $hash->{DEVICEID}; + $abilities = 'watering_pressure_pump_settings'; + } + elsif ( lc $cmd eq 'turnonpressure') { + my $turnonpressure = $aArg->[0]; + $payload = '"name":"turn_on_pressure"' + .'"value":"'.$turnonpressure.'"' + .'"device":"' + . $hash->{DEVICEID}; + $abilities = 'watering_pressure_pump_settings'; + } + ### Sensors elsif ( lc $cmd eq 'refresh' ) { my $sensname = $aArg->[0]; @@ -529,6 +554,8 @@ sub Set { 'closeAllValves:noArg stopScheduleValve:selectnumbers,1,1,6,0,lin resumeScheduleValve:selectnumbers,1,1,6,0,lin manualDurationValve1:slider,1,1,90 manualDurationValve2:slider,1,1,90 manualDurationValve3:slider,1,1,90 manualDurationValve4:slider,1,1,90 manualDurationValve5:slider,1,1,90 manualDurationValve6:slider,1,1,90 cancelOverrideValve1:noArg cancelOverrideValve2:noArg cancelOverrideValve3:noArg cancelOverrideValve4:noArg cancelOverrideValve5:noArg cancelOverrideValve6:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); + $list .= 'manualOverride:slider,1,1,59 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,2.8,1' + $list .= 'refresh:temperature,humidity' if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor.?/ ); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 49359e4..3fabbdb 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-01_09:58:36 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-01_09:58:54 61296 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-03_21:47:05 49520 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-03_22:18:24 62448 FHEM/74_GardenaSmartDevice.pm From 58333bef349d3a4b614e7acb749e9446d2005c93 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 3 May 2022 22:23:00 +0200 Subject: [PATCH 03/26] add setter --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 1 + controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGED b/CHANGED index 03d37c8..13242fd 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - initial + erste teste diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 66d988d..03fde72 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -555,6 +555,7 @@ sub Set { if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); $list .= 'manualOverride:slider,1,1,59 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,2.8,1' + if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); $list .= 'refresh:temperature,humidity' if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor.?/ ); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 3fabbdb..eefc78f 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-03_21:47:05 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-03_22:18:24 62448 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-03_22:22:51 62533 FHEM/74_GardenaSmartDevice.pm From 43bf81053b996c93702f784c6462e52f6d878088 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 5 May 2022 12:27:21 +0200 Subject: [PATCH 04/26] operatingmode, leakagedetection and turnonpressure fix - ins blaue gerate --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 15 +++++++++++++-- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGED b/CHANGED index 13242fd..ec44af4 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - erste teste + add setter diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 03fde72..ec7941d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -195,6 +195,11 @@ sub Define { $hash->{helper}{eco_mode_id} = ''; $hash->{helper}{button_config_time_id} = ''; $hash->{helper}{winter_mode_id} = ''; + # Electroni Pressure Pump + $hash->{helper}{operating_mode_id} = ''; + $hash->{helper}{leakage_detection_id} = ''; + $hash->{helper}{turn_on_pressure_id} = ''; + $hash->{helper}{_id} = ''; @@ -485,6 +490,7 @@ sub Set { .'"device":"' . $hash->{DEVICEID}; $abilities = 'watering_pressure_pump_settings'; + $service_id = $hash->{helper}->{ 'operating_mode_id' }; } elsif ( lc $cmd eq 'leakagedetection') { my $leakdetection_mode = $aArg->[0]; @@ -493,6 +499,7 @@ sub Set { .'"device":"' . $hash->{DEVICEID}; $abilities = 'watering_pressure_pump_settings'; + $service_id = $hash->{helper}->{ 'leakage_detection_id' }; } elsif ( lc $cmd eq 'turnonpressure') { my $turnonpressure = $aArg->[0]; @@ -501,6 +508,7 @@ sub Set { .'"device":"' . $hash->{DEVICEID}; $abilities = 'watering_pressure_pump_settings'; + $service_id = $hash->{helper}->{ 'turn_on_pressure_id' }; } ### Sensors elsif ( lc $cmd eq 'refresh' ) { @@ -554,7 +562,7 @@ sub Set { 'closeAllValves:noArg stopScheduleValve:selectnumbers,1,1,6,0,lin resumeScheduleValve:selectnumbers,1,1,6,0,lin manualDurationValve1:slider,1,1,90 manualDurationValve2:slider,1,1,90 manualDurationValve3:slider,1,1,90 manualDurationValve4:slider,1,1,90 manualDurationValve5:slider,1,1,90 manualDurationValve6:slider,1,1,90 cancelOverrideValve1:noArg cancelOverrideValve2:noArg cancelOverrideValve3:noArg cancelOverrideValve4:noArg cancelOverrideValve5:noArg cancelOverrideValve6:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); - $list .= 'manualOverride:slider,1,1,59 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,2.8,1' + $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,2.8,1' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); $list .= 'refresh:temperature,humidity' @@ -789,7 +797,10 @@ sub WriteReadings { && ( $decode_json->{settings}[$settings]{name} =~ /schedules_paused_until_?\d?$/ || $decode_json->{settings}[$settings]{name} eq 'eco_mode' - || $decode_json->{settings}[$settings]{name} eq 'winter_mode' ) + || $decode_json->{settings}[$settings]{name} eq 'winter_mode' + || $decode_json->{settings}[$settings]{name} eq 'operating_mode' + || $decode_json->{settings}[$settings]{name} eq 'leakage_detection' + || $decode_json->{settings}[$settings]{name} eq 'turn_on_pressure' ) ) { if ( $hash->{helper} diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index eefc78f..5b1302b 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-03_21:47:05 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-03_22:22:51 62533 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-05_11:51:08 49520 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-05_12:26:56 63165 FHEM/74_GardenaSmartDevice.pm From a8646efe0d9d1495485654d2d03906d8d4aa618e Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 6 May 2022 18:58:45 +0200 Subject: [PATCH 05/26] more debug --- CHANGED | 2 +- FHEM/73_GardenaSmartBridge.pm | 4 ++-- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGED b/CHANGED index ec44af4..b400eb8 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - add setter + operatingmode, leakagedetection and turnonpressure fix - ins blaue gerate diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index 4317729..2d7826e 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -482,8 +482,8 @@ sub Write { "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: secret!, DATA: secret!, METHOD: $method" ); -# Log3($name, 3, -# "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: $header, DATA: $payload, METHOD: $method"); + Log3($name, 3, + "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: $header, DATA: $payload, METHOD: $method"); return; } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 5b1302b..70b68f1 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-05_11:51:08 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-05_12:26:56 63165 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-06_18:56:40 49518 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-06_18:53:25 63165 FHEM/74_GardenaSmartDevice.pm From b7adf6af6d9952bace55faf56d8452bb6503e47b Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 7 May 2022 12:58:03 +0200 Subject: [PATCH 06/26] add readingss and fix payload --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 16 ++++++++++++---- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGED b/CHANGED index b400eb8..242c969 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - operatingmode, leakagedetection and turnonpressure fix - ins blaue gerate + more debug diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index ec7941d..02add3e 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -488,7 +488,7 @@ sub Set { $payload = '"name":"operating_mode"' .'"value":"'.$op_mode.'"' .'"device":"' - . $hash->{DEVICEID}; + . $hash->{DEVICEID}.'"'; $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'operating_mode_id' }; } @@ -497,7 +497,7 @@ sub Set { $payload = '"name":"leakage_detection"' .'"value":"'.$leakdetection_mode.'"' .'"device":"' - . $hash->{DEVICEID}; + . $hash->{DEVICEID}.'"'; $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'leakage_detection_id' }; } @@ -506,7 +506,7 @@ sub Set { $payload = '"name":"turn_on_pressure"' .'"value":"'.$turnonpressure.'"' .'"device":"' - . $hash->{DEVICEID}; + . $hash->{DEVICEID}.'"'; $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'turn_on_pressure_id' }; } @@ -562,7 +562,7 @@ sub Set { 'closeAllValves:noArg stopScheduleValve:selectnumbers,1,1,6,0,lin resumeScheduleValve:selectnumbers,1,1,6,0,lin manualDurationValve1:slider,1,1,90 manualDurationValve2:slider,1,1,90 manualDurationValve3:slider,1,1,90 manualDurationValve4:slider,1,1,90 manualDurationValve5:slider,1,1,90 manualDurationValve6:slider,1,1,90 cancelOverrideValve1:noArg cancelOverrideValve2:noArg cancelOverrideValve3:noArg cancelOverrideValve4:noArg cancelOverrideValve5:noArg cancelOverrideValve6:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); - $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,2.8,1' + $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,3.0,1' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); $list .= 'refresh:temperature,humidity' @@ -817,6 +817,14 @@ sub WriteReadings { $decode_json->{settings}[$settings]{value} ); } + # save electroni presse pump settings as readings + if ( $decode_json->{settings}[$settings]{name} eq 'operating_mode' + || $decode_json->{settings}[$settings]{name} eq 'leakage_detection' + || $decode_json->{settings}[$settings]{name} eq 'turn_on_pressure' ) { + readingsBulkUpdateIfChanged( $hash, $decode_json->{settings}[$settings]{name}, + $decode_json->{settings}[$settings]{value} ); + + } # save winter mode as reading if ( $decode_json->{settings}[$settings]{name} eq 'winter_mode' ) { diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 70b68f1..dedce96 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-06_18:56:40 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-06_18:53:25 63165 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-07_12:43:24 49518 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-07_12:57:29 63667 FHEM/74_GardenaSmartDevice.pm From 528e8d5a083ded12dd67bd11a28c1d63d596070e Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 7 May 2022 13:08:26 +0200 Subject: [PATCH 07/26] vers push --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index 242c969..4f367f8 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - more debug + add readingss and fix payload diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 02add3e..b728ec8 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -1582,7 +1582,7 @@ sub SetPredefinedStartPoints { ], "release_status": "stable", "license": "GPL_2", - "version": "v2.5.1", + "version": "v2.5.2", "author": [ "Marko Oldenburg " ], diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index dedce96..5ebb218 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-07_12:43:24 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-07_12:57:29 63667 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-07_13:08:20 63667 FHEM/74_GardenaSmartDevice.pm From 122983580f32b795136aa676cc556040b819e03f Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 7 May 2022 18:08:47 +0200 Subject: [PATCH 08/26] fix payload --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 12 ++++++------ controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGED b/CHANGED index 4f367f8..44c64ff 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - add readingss and fix payload + vers push diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index b728ec8..39f9e2b 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -485,8 +485,8 @@ sub Set { ### Watering_pressure_pump elsif ( lc $cmd eq 'operatingmode') { my $op_mode = $aArg->[0]; - $payload = '"name":"operating_mode"' - .'"value":"'.$op_mode.'"' + $payload = '"name":"operating_mode",' + .'"value":"'.$op_mode.'",' .'"device":"' . $hash->{DEVICEID}.'"'; $abilities = 'watering_pressure_pump_settings'; @@ -494,8 +494,8 @@ sub Set { } elsif ( lc $cmd eq 'leakagedetection') { my $leakdetection_mode = $aArg->[0]; - $payload = '"name":"leakage_detection"' - .'"value":"'.$leakdetection_mode.'"' + $payload = '"name":"leakage_detection",' + .'"value":"'.$leakdetection_mode.'",' .'"device":"' . $hash->{DEVICEID}.'"'; $abilities = 'watering_pressure_pump_settings'; @@ -503,8 +503,8 @@ sub Set { } elsif ( lc $cmd eq 'turnonpressure') { my $turnonpressure = $aArg->[0]; - $payload = '"name":"turn_on_pressure"' - .'"value":"'.$turnonpressure.'"' + $payload = '"name":"turn_on_pressure",' + .'"value":"'.$turnonpressure.'",' .'"device":"' . $hash->{DEVICEID}.'"'; $abilities = 'watering_pressure_pump_settings'; diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 5ebb218..fe90129 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-07_12:43:24 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-07_13:08:20 63667 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-07_17:58:56 49518 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-07_18:08:23 63673 FHEM/74_GardenaSmartDevice.pm From 0e876c319c4036633ef974f2d3d075b9b700c078 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 7 May 2022 19:04:29 +0200 Subject: [PATCH 09/26] fux payload --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 12 ++++++------ controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGED b/CHANGED index 44c64ff..5996617 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - vers push + fix payload diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 39f9e2b..dc6c021 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -485,28 +485,28 @@ sub Set { ### Watering_pressure_pump elsif ( lc $cmd eq 'operatingmode') { my $op_mode = $aArg->[0]; - $payload = '"name":"operating_mode",' + $payload = '"settings":{"name":"operating_mode",' .'"value":"'.$op_mode.'",' .'"device":"' - . $hash->{DEVICEID}.'"'; + . $hash->{DEVICEID}.'"}'; $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'operating_mode_id' }; } elsif ( lc $cmd eq 'leakagedetection') { my $leakdetection_mode = $aArg->[0]; - $payload = '"name":"leakage_detection",' + $payload = '"settings":{"name":"leakage_detection",' .'"value":"'.$leakdetection_mode.'",' .'"device":"' - . $hash->{DEVICEID}.'"'; + . $hash->{DEVICEID}.'"}'; $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'leakage_detection_id' }; } elsif ( lc $cmd eq 'turnonpressure') { my $turnonpressure = $aArg->[0]; - $payload = '"name":"turn_on_pressure",' + $payload = '"settings":{"name":"turn_on_pressure",' .'"value":"'.$turnonpressure.'",' .'"device":"' - . $hash->{DEVICEID}.'"'; + . $hash->{DEVICEID}.'"}'; $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'turn_on_pressure_id' }; } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index fe90129..d378cbf 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-07_17:58:56 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-07_18:08:23 63673 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-07_19:04:24 63712 FHEM/74_GardenaSmartDevice.pm From af2f803be57b6fd337a595152953bdbf3262af19 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 8 May 2022 12:39:10 +0200 Subject: [PATCH 10/26] add resetcall + state --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 43 +++++++++++++++++++++++++++++++-- controls_GardenaSmartDevice.txt | 4 +-- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/CHANGED b/CHANGED index 5996617..60f8ff1 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - fix payload + fux payload diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index dc6c021..efdeab0 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -510,6 +510,12 @@ sub Set { $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'turn_on_pressure_id' }; } + elsif ( lc $cmd eq 'resetvalveerrors') { + $payload = '"name":"reset_valve_errors",' + .' "parameters": {}'; + $abilities = 'error'; + } + ### Sensors elsif ( lc $cmd eq 'refresh' ) { @@ -562,7 +568,7 @@ sub Set { 'closeAllValves:noArg stopScheduleValve:selectnumbers,1,1,6,0,lin resumeScheduleValve:selectnumbers,1,1,6,0,lin manualDurationValve1:slider,1,1,90 manualDurationValve2:slider,1,1,90 manualDurationValve3:slider,1,1,90 manualDurationValve4:slider,1,1,90 manualDurationValve5:slider,1,1,90 manualDurationValve6:slider,1,1,90 cancelOverrideValve1:noArg cancelOverrideValve2:noArg cancelOverrideValve3:noArg cancelOverrideValve4:noArg cancelOverrideValve5:noArg cancelOverrideValve6:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); - $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,3.0,1' + $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,3.0,1 resetValveErrors:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); $list .= 'refresh:temperature,humidity' @@ -914,7 +920,6 @@ sub setState { # 4. Ventil manuell geoeffnet, Zeitpläne deaktiviert. # App zeigt: "Wird bewässert xx Minuten verbleibend" if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ - my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms # offen @@ -988,6 +993,39 @@ sub setState { ReadingsVal( $name, 'power-power_timer', 'no info from power-timer' ) ) if ( AttrVal( $name, 'model', 'unknown' ) eq 'power' ); + #electronic water pump + if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ) { # | ok | pump_not_filled (Pumpe nicht gefüllt) + my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ + m{\A[1-9]([0-9]+)?\z}xms + # offen + ? + ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) + # leer ( zeitplan aktiv ... ) + ? sprintf( (RigReadingsValue($hash, 'will be irrigated %.f minutes remaining.').' '.RigReadingsValue($hash, 'next watering: %s')), (ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )/60), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) + # zeitplan pausiert + : + ( ReadingsVal($name, 'scheduling-schedules_paused_until', '') eq '2038-01-18T00:00:00.000Z') + # pause bis dauerhaft + ? sprintf( (RigReadingsValue($hash, 'will be irrigated %.f minutes remaining.').' '.RigReadingsValue($hash , 'schedule permanently paused')), (ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )/60) ) + # naechter termin + : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until', '')) ) + # zu + : + ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) + # zeitplan aktiv + ? sprintf( (RigReadingsValue($hash, 'closed') .'. '.RigReadingsValue($hash, 'next watering: %s')), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) + # zeitplan pausiert + : RigReadingsValue($hash, 'closed') + ; + # state offline | override + $state_string = 'offline' if ($online_state eq 'offline'); + # check valv error, override state + my $error_type = ReadingsVal( $name, 'error-valve_error_1_type', 'ok' ); + $state_string = ( $error_type neq 'ok' ) ? $error_type : $state_string; + + readingsBulkUpdate( + $hash, 'state', RigReadingsValue( $hash, $state_string ) ); + } return; } @@ -1101,6 +1139,7 @@ sub ReadingLangGerman { 'paused until %s' => 'pausiert bis %s', 'will be irrigated %.f minutes remaining.'=> 'Wird bewässert. %.f Minuten verbleibend.', 'next watering: %s' => 'Nächste Bewässerung: %s', + 'pump_not_filled' => 'Pumpe nicht gefüllt', ); if ( diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index d378cbf..0f0b21f 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-07_17:58:56 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-07_19:04:24 63712 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-08_12:08:54 49518 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-08_12:38:52 66211 FHEM/74_GardenaSmartDevice.pm From 15c791e1bfdab74db149f0b9af5ec4f5a5ee3dd7 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 8 May 2022 12:41:04 +0200 Subject: [PATCH 11/26] fix state --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index 60f8ff1..b140ca7 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - fux payload + add resetcall + state diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index efdeab0..dd3a1ac 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -1021,7 +1021,7 @@ sub setState { $state_string = 'offline' if ($online_state eq 'offline'); # check valv error, override state my $error_type = ReadingsVal( $name, 'error-valve_error_1_type', 'ok' ); - $state_string = ( $error_type neq 'ok' ) ? $error_type : $state_string; + $state_string = ( $error_type ne 'ok' ) ? $error_type : $state_string; readingsBulkUpdate( $hash, 'state', RigReadingsValue( $hash, $state_string ) ); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 0f0b21f..c9b00af 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-08_12:08:54 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-08_12:38:52 66211 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-08_12:40:56 66210 FHEM/74_GardenaSmartDevice.pm From 4e6ca5f8edffbdd45b46e2d9b6c75cee3fb13b06 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 07:57:58 +0200 Subject: [PATCH 12/26] test --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 5 ++++- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGED b/CHANGED index b140ca7..b51f193 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - add resetcall + state + fix state diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index dd3a1ac..525ea07 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -65,6 +65,7 @@ use FHEM::Meta; use Time::Local; use Time::Piece; use Time::Seconds; +use SetExtensions; # try to use JSON::MaybeXS wrapper # for chance of better performance + open code @@ -141,7 +142,9 @@ BEGIN { modules IOWrite defs - makeDeviceName) + makeDeviceName + setList + useSetExtensions) ); } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index c9b00af..710780d 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-08_12:08:54 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-08_12:40:56 66210 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-17_07:57:51 66274 FHEM/74_GardenaSmartDevice.pm From b230baa77623acaecefce58d5d32014fc5513a8d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 08:23:47 +0200 Subject: [PATCH 13/26] fixing --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index b51f193..e2a082d 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - fix state + test diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 525ea07..19821fb 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -168,7 +168,7 @@ sub Initialize { $hash->{AttrFn} = \&Attr; $hash->{AttrList} = "readingValueLanguage:de,en " - . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump" + . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump " . "IODev " . $readingFnAttributes; $hash->{parseParams} = 1; diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 710780d..2190841 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_07:57:51 66274 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_08:23:38 66275 FHEM/74_GardenaSmartDevice.pm From bd3d354786433e1b352604202d3e2b544d8d5925 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 08:25:44 +0200 Subject: [PATCH 14/26] test --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 6 ++---- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CHANGED b/CHANGED index e2a082d..ac06948 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - test + fixing diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 19821fb..7aedc72 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -142,9 +142,7 @@ BEGIN { modules IOWrite defs - makeDeviceName - setList - useSetExtensions) + makeDeviceName) ); } @@ -169,7 +167,7 @@ sub Initialize { $hash->{AttrList} = "readingValueLanguage:de,en " . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump " - . "IODev " + . "IODev setList useSetExtensions " . $readingFnAttributes; $hash->{parseParams} = 1; diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 2190841..63d955a 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_08:23:38 66275 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_08:25:40 66255 FHEM/74_GardenaSmartDevice.pm From 97b41470725c49c142c7298f97322ed615d89c71 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 10:04:33 +0200 Subject: [PATCH 15/26] test --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 15 ++++++++++++++- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index ac06948..e2a082d 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - fixing + test diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 7aedc72..1567745 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -303,9 +303,22 @@ sub Set { $abilities = 'watering' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); + + my $setList = AttrVal($name, "setList", " "); + $setList =~ s/\n/ /g; + + if(AttrVal($name,"useSetExtensions",undef)) { + my $a0 = $a[0]; $a0 =~ s/([.?*])/\\$1/g; + if($setList !~ m/\b$a0\b/) { + unshift @a, $name; + return SetExtensions($hash, $setList, @a) + } + SetExtensionsCancel($hash); + } ### mower # service_id (eco, parkuntilfurhternotice, startpoints) - if ( lc $cmd eq 'parkuntilfurthernotice' ) { + + elsif ( lc $cmd eq 'parkuntilfurthernotice' ) { $payload = '"name":"park_until_further_notice"'; if ( $mainboard_version > 10.30 ) { $payload = diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 63d955a..6a3611c 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_08:25:40 66255 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_10:04:27 66580 FHEM/74_GardenaSmartDevice.pm From b620f87eb146c8758b0e74c09db5a03870c671bc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 10:19:15 +0200 Subject: [PATCH 16/26] try 2 --- FHEM/74_GardenaSmartDevice.pm | 6 +++--- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 1567745..4cf846f 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -308,10 +308,10 @@ sub Set { $setList =~ s/\n/ /g; if(AttrVal($name,"useSetExtensions",undef)) { - my $a0 = $a[0]; $a0 =~ s/([.?*])/\\$1/g; + my $a0 = $aArg[0]; $a0 =~ s/([.?*])/\\$1/g; if($setList !~ m/\b$a0\b/) { - unshift @a, $name; - return SetExtensions($hash, $setList, @a) + unshift @aArg, $name; + return SetExtensions($hash, $setList, @aArga) } SetExtensionsCancel($hash); } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 6a3611c..86b9342 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_10:04:27 66580 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_10:19:09 66590 FHEM/74_GardenaSmartDevice.pm From 33fddad02325e35e3132b6ecc17cb861ea8e12e9 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 10:24:47 +0200 Subject: [PATCH 17/26] try 3 --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 3 +-- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGED b/CHANGED index e2a082d..979ea1a 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - test + try 2 diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 4cf846f..b9b75ae 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -308,9 +308,8 @@ sub Set { $setList =~ s/\n/ /g; if(AttrVal($name,"useSetExtensions",undef)) { - my $a0 = $aArg[0]; $a0 =~ s/([.?*])/\\$1/g; + my $a0 = $name; $a0 =~ s/([.?*])/\\$1/g; if($setList !~ m/\b$a0\b/) { - unshift @aArg, $name; return SetExtensions($hash, $setList, @aArga) } SetExtensionsCancel($hash); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 86b9342..9ef5a87 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_10:19:09 66590 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_10:24:40 66559 FHEM/74_GardenaSmartDevice.pm From d04ea31ef0589b1fee23ba2dfb5e4062aa976513 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 10:36:02 +0200 Subject: [PATCH 18/26] revert back --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 19 +++---------------- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/CHANGED b/CHANGED index 979ea1a..5ec36c5 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - try 2 + try 3 diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index b9b75ae..dd3a1ac 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -65,7 +65,6 @@ use FHEM::Meta; use Time::Local; use Time::Piece; use Time::Seconds; -use SetExtensions; # try to use JSON::MaybeXS wrapper # for chance of better performance + open code @@ -166,8 +165,8 @@ sub Initialize { $hash->{AttrFn} = \&Attr; $hash->{AttrList} = "readingValueLanguage:de,en " - . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump " - . "IODev setList useSetExtensions " + . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump" + . "IODev " . $readingFnAttributes; $hash->{parseParams} = 1; @@ -303,21 +302,9 @@ sub Set { $abilities = 'watering' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); - - my $setList = AttrVal($name, "setList", " "); - $setList =~ s/\n/ /g; - - if(AttrVal($name,"useSetExtensions",undef)) { - my $a0 = $name; $a0 =~ s/([.?*])/\\$1/g; - if($setList !~ m/\b$a0\b/) { - return SetExtensions($hash, $setList, @aArga) - } - SetExtensionsCancel($hash); - } ### mower # service_id (eco, parkuntilfurhternotice, startpoints) - - elsif ( lc $cmd eq 'parkuntilfurthernotice' ) { + if ( lc $cmd eq 'parkuntilfurthernotice' ) { $payload = '"name":"park_until_further_notice"'; if ( $mainboard_version > 10.30 ) { $payload = diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 9ef5a87..466e0b1 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_10:24:40 66559 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_10:35:47 66210 FHEM/74_GardenaSmartDevice.pm From d863cbeff02099d631205b1f0db95e64a99e3685 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 11:05:59 +0200 Subject: [PATCH 19/26] fix IODEV --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index 5ec36c5..2772b08 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - try 3 + revert back diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index dd3a1ac..2ffdf20 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -165,7 +165,7 @@ sub Initialize { $hash->{AttrFn} = \&Attr; $hash->{AttrList} = "readingValueLanguage:de,en " - . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump" + . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump " . "IODev " . $readingFnAttributes; $hash->{parseParams} = 1; diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 466e0b1..95eaeea 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_10:35:47 66210 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_11:04:54 66211 FHEM/74_GardenaSmartDevice.pm From 6490c2f1beb9a68769555e33a8404d6e2a48c486 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 20:13:45 +0200 Subject: [PATCH 20/26] debug stuff --- CHANGED | 2 +- FHEM/73_GardenaSmartBridge.pm | 12 +++++++++--- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGED b/CHANGED index 2772b08..f361a3a 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - revert back + fix IODEV diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index 2d7826e..fcc174b 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -414,7 +414,6 @@ sub Set { if ( lc $cmd eq 'getdevicesstate' ) { getDevices($hash); - } elsif ( lc $cmd eq 'gettoken' ) { return "please set Attribut gardenaAccountEmail first" @@ -438,6 +437,13 @@ sub Set { DeletePassword($hash); } + elsif ( lc $cmd eq 'debughelper') { + return "usage: $cmd" if ( scalar( @{$aArg} ) != 2 ); + my $new_helper = $aArg->[0]; + my $new_helper_value = $aArg->[1]; + Log3( $name, 5, "GardenaSmartBridge ($name) - override helper $new_helper with $new_helper_value"); + $hash->{helper}{$new_helper} = $new_helper_value; + } else { my $list = "getDevicesState:noArg getToken:noArg" @@ -482,8 +488,8 @@ sub Write { "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: secret!, DATA: secret!, METHOD: $method" ); - Log3($name, 3, - "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: $header, DATA: $payload, METHOD: $method"); + # Log3($name, 3, + # "GardenaSmartBridge ($name) - Send with URL: $hash->{URL}$uri, HEADER: $header, DATA: $payload, METHOD: $method"); return; } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 95eaeea..80e00e3 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-15_17:15:26 49518 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_11:04:54 66211 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-17_20:13:35 49864 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-17_11:06:17 66211 FHEM/74_GardenaSmartDevice.pm From 0849705c62986a6e11b0922ea51ed278ca68ceed Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 20:52:52 +0200 Subject: [PATCH 21/26] fix lona --- CHANGED | 2 +- FHEM/73_GardenaSmartBridge.pm | 4 ++-- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGED b/CHANGED index f361a3a..1c79d32 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - fix IODEV + debug stuff diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index fcc174b..cda3fb6 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -441,7 +441,7 @@ sub Set { return "usage: $cmd" if ( scalar( @{$aArg} ) != 2 ); my $new_helper = $aArg->[0]; my $new_helper_value = $aArg->[1]; - Log3( $name, 5, "GardenaSmartBridge ($name) - override helper $new_helper with $new_helper_value"); + Log3( $name, 5, "[DEBUG] - GardenaSmartBridge ($name) - override helper $new_helper with $new_helper_value"); $hash->{helper}{$new_helper} = $new_helper_value; } else { @@ -526,7 +526,6 @@ sub ErrorHandling { 1 ); if ( $err =~ /timed out/ ) { - Log3 $dname, 5, "GardenaSmartBridge ($dname) - RequestERROR: connect to gardena cloud is timed out. check network"; } @@ -613,6 +612,7 @@ sub ErrorHandling { if ( $data =~ /Error/ + && $data !~ /lastLonaErrorCode/ || ( defined($decode_json) && ref($decode_json) eq 'HASH' && defined( $decode_json->{errors} ) ) diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 80e00e3..58a413d 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-17_20:13:35 49864 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-17_20:52:43 49913 FHEM/73_GardenaSmartBridge.pm UPD 2022-05-17_11:06:17 66211 FHEM/74_GardenaSmartDevice.pm From 9ad11bff63718627f8c4d814d0d15d27809dc3d1 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 17 May 2022 20:53:37 +0200 Subject: [PATCH 22/26] lona --- CHANGED | 2 +- FHEM/73_GardenaSmartBridge.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index 1c79d32..ebe0585 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - debug stuff + fix lona diff --git a/FHEM/73_GardenaSmartBridge.pm b/FHEM/73_GardenaSmartBridge.pm index cda3fb6..d3bec09 100644 --- a/FHEM/73_GardenaSmartBridge.pm +++ b/FHEM/73_GardenaSmartBridge.pm @@ -1583,7 +1583,7 @@ sub DeletePassword { ], "release_status": "stable", "license": "GPL_2", - "version": "v2.5.1", + "version": "v2.5.2", "author": [ "Marko Oldenburg " ], diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 58a413d..aa00f56 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-17_20:52:43 49913 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-17_20:53:29 49913 FHEM/73_GardenaSmartBridge.pm UPD 2022-05-17_11:06:17 66211 FHEM/74_GardenaSmartDevice.pm From 40074a3db67e3c400d6588ae6a3d31199a505334 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 27 May 2022 11:44:59 +0200 Subject: [PATCH 23/26] add lona readings --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 24 ++++++++++++++++++------ controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGED b/CHANGED index ebe0585..e3be7a0 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - fix lona + Reviewed-on: https://git.cooltux.net/FHEM/mod-GardenaSmart/pulls/58 diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 2ffdf20..b4ca0a3 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -776,13 +776,25 @@ sub WriteReadings { if ( ref( $propertie->{value} ) eq "HASH" ) { while ( my ( $r, $v ) = each %{ $propertie->{value} } ) { - readingsBulkUpdate( - $hash, - $decode_json->{abilities}[$abilities]{name} . '-' +^ if ( ref( $v ) ne "HASH" ) { + readingsBulkUpdate( + $hash, + $decode_json->{abilities}[$abilities]{name} . '-' + . $propertie->{name} . '_' + . $r, + RigReadingsValue( $hash, $v ) + ); + } else { + while ( my ( $i_r, $i_v ) = each %{ $v } ) { + readingsBulkUpdate( + $hash, + $decode_json->{abilities}[$abilities]{name} . '-' . $propertie->{name} . '_' - . $r, - RigReadingsValue( $hash, $v ) - ); + . $r . '_' . $i_r, + RigReadingsValue( $hash, $i_v ) + ); + } + } } } } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index aa00f56..61935f2 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-17_20:53:29 49913 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-17_11:06:17 66211 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-27_11:41:32 49913 FHEM/73_GardenaSmartBridge.pm +UPD 2022-05-27_11:44:30 66807 FHEM/74_GardenaSmartDevice.pm From 6b475415cc286b927a5d4cd30da74927f88604bf Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 27 May 2022 20:04:39 +0200 Subject: [PATCH 24/26] copy & past error --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGED b/CHANGED index e3be7a0..acd78d7 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - Reviewed-on: https://git.cooltux.net/FHEM/mod-GardenaSmart/pulls/58 + add lona readings diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index b4ca0a3..c0f5a6c 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -776,7 +776,7 @@ sub WriteReadings { if ( ref( $propertie->{value} ) eq "HASH" ) { while ( my ( $r, $v ) = each %{ $propertie->{value} } ) { -^ if ( ref( $v ) ne "HASH" ) { + if ( ref( $v ) ne "HASH" ) { readingsBulkUpdate( $hash, $decode_json->{abilities}[$abilities]{name} . '-' diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 61935f2..ca1f813 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ UPD 2022-05-27_11:41:32 49913 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-27_11:44:30 66807 FHEM/74_GardenaSmartDevice.pm +UPD 2022-05-27_20:04:31 66804 FHEM/74_GardenaSmartDevice.pm From a4a75ab0162050530ab90f676151eb10eca1d245 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 25 Jun 2022 12:58:59 +0200 Subject: [PATCH 25/26] patch lono. eventuell recrusive readings einbauen. waterpump rechtschreibfehler mit fixed --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGED b/CHANGED index acd78d7..50436d5 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - add lona readings + copy & past error diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index c0f5a6c..13d7e9d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -568,7 +568,7 @@ sub Set { 'closeAllValves:noArg stopScheduleValve:selectnumbers,1,1,6,0,lin resumeScheduleValve:selectnumbers,1,1,6,0,lin manualDurationValve1:slider,1,1,90 manualDurationValve2:slider,1,1,90 manualDurationValve3:slider,1,1,90 manualDurationValve4:slider,1,1,90 manualDurationValve5:slider,1,1,90 manualDurationValve6:slider,1,1,90 cancelOverrideValve1:noArg cancelOverrideValve2:noArg cancelOverrideValve3:noArg cancelOverrideValve4:noArg cancelOverrideValve5:noArg cancelOverrideValve6:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); - $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operatingMode:automatic,scheduled leakageDetection:watering,washing_machine,domestic_water_supply,off turnOnpressure:slider,2,0.2,3.0,1 resetValveErrors:noArg' + $list .= 'manualOverride:slider,1,1,90 cancelOverride:noArg operating_mode:automatic,scheduled leakage_detection:watering,washing_machine,domestic_water_supply,off turn_on_pressure:slider,2,0.2,3.0,1 resetValveErrors:noArg' if ( AttrVal( $name, 'model', 'unknown' ) eq 'electronic_pressure_pump' ); $list .= 'refresh:temperature,humidity' @@ -835,7 +835,7 @@ sub WriteReadings { $decode_json->{settings}[$settings]{value} ); } - # save electroni presse pump settings as readings + # save electronid pressure pump settings as readings if ( $decode_json->{settings}[$settings]{name} eq 'operating_mode' || $decode_json->{settings}[$settings]{name} eq 'leakage_detection' || $decode_json->{settings}[$settings]{name} eq 'turn_on_pressure' ) { diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index ca1f813..8496d16 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-05-27_11:41:32 49913 FHEM/73_GardenaSmartBridge.pm -UPD 2022-05-27_20:04:31 66804 FHEM/74_GardenaSmartDevice.pm +UPD 2022-06-25_12:19:02 49913 FHEM/73_GardenaSmartBridge.pm +UPD 2022-06-25_12:51:45 66811 FHEM/74_GardenaSmartDevice.pm From e8c2bd51835ce08e7d70a59b58f05377aa6613ce Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 29 Jun 2022 20:32:00 +0200 Subject: [PATCH 26/26] [fix] - setter procedure --- CHANGED | 2 +- FHEM/74_GardenaSmartDevice.pm | 6 +++--- controls_GardenaSmartDevice.txt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGED b/CHANGED index 50436d5..37eb437 100644 --- a/CHANGED +++ b/CHANGED @@ -1 +1 @@ - copy & past error + Reviewed-by: Marko Oldenburg diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 13d7e9d..ad92993 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -483,7 +483,7 @@ sub Set { . $hash->{DEVICEID} . '"}'; } ### Watering_pressure_pump - elsif ( lc $cmd eq 'operatingmode') { + elsif ( lc $cmd eq 'operating_mode') { my $op_mode = $aArg->[0]; $payload = '"settings":{"name":"operating_mode",' .'"value":"'.$op_mode.'",' @@ -492,7 +492,7 @@ sub Set { $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'operating_mode_id' }; } - elsif ( lc $cmd eq 'leakagedetection') { + elsif ( lc $cmd eq 'leakage_detection') { my $leakdetection_mode = $aArg->[0]; $payload = '"settings":{"name":"leakage_detection",' .'"value":"'.$leakdetection_mode.'",' @@ -501,7 +501,7 @@ sub Set { $abilities = 'watering_pressure_pump_settings'; $service_id = $hash->{helper}->{ 'leakage_detection_id' }; } - elsif ( lc $cmd eq 'turnonpressure') { + elsif ( lc $cmd eq 'turn_on_pressure') { my $turnonpressure = $aArg->[0]; $payload = '"settings":{"name":"turn_on_pressure",' .'"value":"'.$turnonpressure.'",' diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 8496d16..ff4f11a 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-06-25_12:19:02 49913 FHEM/73_GardenaSmartBridge.pm -UPD 2022-06-25_12:51:45 66811 FHEM/74_GardenaSmartDevice.pm +UPD 2022-06-29_20:30:48 49913 FHEM/73_GardenaSmartBridge.pm +UPD 2022-06-29_20:31:47 66815 FHEM/74_GardenaSmartDevice.pm