From 65cbeba9753285e8e251dd8985760d5346079ecc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 29 Mar 2022 16:35:58 +0200 Subject: [PATCH 01/18] fix ic24 --- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 9fe5332..d9d9d1a 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -390,7 +390,7 @@ sub Set { . ',"valve_id":' . $valve_id . '}}'; } - elsif ( $cmd =~ /.*Schedule/ ) { + elsif ( $cmd =~ /.*Schedule$/ ) { my $duration = ( ( defined( $aArg->[0] ) @@ -444,7 +444,7 @@ sub Set { elsif ( $cmd eq 'closeAllValves' ) { $payload = '"name":"close_all_valves","parameters":{}'; } - elsif ( $cmd =~ /.*ScheduleValve/ ) { + elsif ( $cmd =~ /.*ScheduleValve$/ ) { my $valve_id = $aArg->[0]; my $duration = ( ( diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 0dd4e74..57ef570 100644 --- a/controls_GardenaSmartDevice.txt +++ b/controls_GardenaSmartDevice.txt @@ -1,2 +1,2 @@ -UPD 2022-02-01_18:41:32 49520 FHEM/73_GardenaSmartBridge.pm -UPD 2022-02-09_13:50:50 57267 FHEM/74_GardenaSmartDevice.pm +UPD 2022-03-29_13:42:09 49520 FHEM/73_GardenaSmartBridge.pm +UPD 2022-03-29_16:34:02 57269 FHEM/74_GardenaSmartDevice.pm From b6c5f42acc766f39cc4c442af7f879f4982bf078 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 5 Apr 2022 08:18:06 +0200 Subject: [PATCH 02/18] add sensor2 --- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index d9d9d1a..51f86f4 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,mower,ic24,power,electronic_pressure_pump " + . "model:watering_computer,sensor,sensor2,mower,ic24,power,electronic_pressure_pump " . "IODev " . $readingFnAttributes; $hash->{parseParams} = 1; @@ -525,7 +525,7 @@ sub Set { if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); $list .= 'refresh:temperature,humidity' - if ( AttrVal( $name, 'model', 'unknown' ) eq 'sensor' ); + if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor./ ); # add light for old sensors $list .= ',light' diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 57ef570..df0268a 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-03-29_16:34:02 57269 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-05_08:16:55 57278 FHEM/74_GardenaSmartDevice.pm From f2c840bedc4e4e07b372630e8f637a56f1bcabe8 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 5 Apr 2022 09:17:27 +0200 Subject: [PATCH 03/18] fix regex --- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 51f86f4..402dc1a 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -525,7 +525,7 @@ sub Set { if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' ); $list .= 'refresh:temperature,humidity' - if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor./ ); + if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor.?/ ); # add light for old sensors $list .= ',light' diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index df0268a..960b924 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-05_08:16:55 57278 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-05_09:17:18 57279 FHEM/74_GardenaSmartDevice.pm From 1d75b5cc7740546ef400030bfbd14dfbefb68e3a Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 5 Apr 2022 09:23:34 +0200 Subject: [PATCH 04/18] fix state --- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 402dc1a..5d49db7 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -846,7 +846,7 @@ sub setState { ) ) if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ); - if ( AttrVal( $name, 'model', 'unknown' ) eq 'sensor' ) { + if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor.?/ ) { my $state_string = ( ReadingsVal( $name, 'device_info-category', 'unknown' ) eq 'sensor' ) diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 960b924..c7eca79 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-05_09:17:18 57279 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-05_09:22:09 57281 FHEM/74_GardenaSmartDevice.pm From c553b8ef8f6354994d990538f5080d419f9844d5 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 5 Apr 2022 11:36:29 +0200 Subject: [PATCH 05/18] wc state --- FHEM/74_GardenaSmartDevice.pm | 41 ++++++++++++++++++++++++++------- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 5d49db7..0b4f0c8 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -767,6 +767,11 @@ sub WriteReadings { { $decode_json->{settings}[$settings]{name} . '_id' } = $decode_json->{settings}[$settings]{id}; } + # check watering controler single schedules pause until + if ( $decode_json->{settings}[$settings]{name} eq 'schedules_paused_until' ) { + readingsBulkUpdateIfChanged( $hash, 'scheduling-schedules_paused_until', + $decode_json->{settings}[$settings]{value} ); + } # save winter mode as reading @@ -831,20 +836,39 @@ sub setState { my $online_state = ReadingsVal( $name, 'device_info-connection_status', 'unknown' ); + #online state mower readingsBulkUpdate( $hash, 'state', $online_state eq 'online' ? ReadingsVal( $name, 'mower-status', 'readingsValError' ) : 'offline' ) if ( AttrVal( $name, 'model', 'unknown' ) eq 'mower' ); - readingsBulkUpdate( - $hash, 'state', - ( - ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ + + #online state water control + # zeit bewaesseung + # online | offline + # open | closed + # zeitplan -> dauert pausiert wenn 2038-01-18 + if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ + #should: open | online | no timer + #open/closed? + my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms - ? RigReadingsValue( $hash, 'open' ) - : RigReadingsValue( $hash, 'closed' ) - ) - ) if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ); + ? RigReadingsValue( $hash, 'open' ); + : ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') ne '' ? + 'scheduled watering next start: ' + . ( + ReadingsVal( + $name, 'scheduling-schedules_paused_until', + 'no timer' + ) + ) : 'closed' ); + + # state offline | override + $state_string = 'offline' if ($online_state eq 'offline'); + + readingsBulkUpdate( + $hash, 'state', $state_string ); + } if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor.?/ ) { my $state_string = @@ -870,6 +894,7 @@ sub setState { # readingsBulkUpdate( $hash, 'ambient_temperature-temperature', '-1' ) if (ReadingsVal($name, 'device_info-category', 'unknown') eq 'sensor'); # readingsBulkUpdate( $hash, 'light-light', '-1' ) if (ReadingsVal($name, 'device_info-category', 'unknown') eq 'sensor'); # } + #online state sensor I II readingsBulkUpdate( $hash, 'state', $online_state eq 'online' ? $state_string : 'offline' ); } diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index c7eca79..283bcd6 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-05_09:22:09 57281 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-05_11:36:13 58328 FHEM/74_GardenaSmartDevice.pm From 462311836f4ce63225f22a670fd6b2f542bbe7b7 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 5 Apr 2022 11:40:24 +0200 Subject: [PATCH 06/18] fix state_string variable --- FHEM/74_GardenaSmartDevice.pm | 3 ++- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 0b4f0c8..3b6f543 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -851,7 +851,8 @@ sub setState { if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ #should: open | online | no timer #open/closed? - my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ + my $state_string = ''; + $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms ? RigReadingsValue( $hash, 'open' ); : ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') ne '' ? diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 283bcd6..d54874a 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-05_11:36:13 58328 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-05_11:40:15 58354 FHEM/74_GardenaSmartDevice.pm From 7c074adbb952117bc96757d3902dac0f04cebc03 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 5 Apr 2022 11:42:07 +0200 Subject: [PATCH 07/18] fix --- FHEM/74_GardenaSmartDevice.pm | 5 ++--- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 3b6f543..3874955 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -851,10 +851,9 @@ sub setState { if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ #should: open | online | no timer #open/closed? - my $state_string = ''; - $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ + my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms - ? RigReadingsValue( $hash, 'open' ); + ? RigReadingsValue( $hash, 'open' ) : ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') ne '' ? 'scheduled watering next start: ' . ( diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index d54874a..8a82e54 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-05_11:40:15 58354 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-05_11:42:03 58327 FHEM/74_GardenaSmartDevice.pm From 7113e9974e13ddd89b315ce4382ee81a58f810a5 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 11:10:02 +0200 Subject: [PATCH 08/18] stateformat --- FHEM/74_GardenaSmartDevice.pm | 214 +++++++++++++++++++++----------- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 140 insertions(+), 76 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 3874955..3ebf1b3 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -847,24 +847,83 @@ sub setState { # zeit bewaesseung # online | offline # open | closed - # zeitplan -> dauert pausiert wenn 2038-01-18 + # zeitplan -> dauert pausiert wenn 2038-01-18T00:00:00.000Z + + # watering-watering_timer_1_state idle | scheduled | manual + # watering-watering_timer_1_duration 0 in sec + # scheduling-scheduled_watering_next_start XXX + # scheduling-scheduled_watering_end | end < NOW && duration = 0 => abbruch manuell + # scheduling-schedules_paused_until + + + # 1. Ventil geschlossen, Zeitplan pausiert. + # App zeigt: nichts (wenn vorher ein Zeitplan abgebrochen wurde, steht da "Unterbrochen xx:yy - zz:aa") + # - STATE=closed & watering-watering_timer_1_state=idle && scheduling-schedules_paused_unti != '' && watering-watering_timer_1_duration = 0 + + # 2. Ventil geschlossen, Zeitplan aktiv. + # App zeigt: "Nächste Bewässerung heute um xx:yy Uhr" (wenn vorher ein Zeitplan abgebrochen wurde, steht da vorher auch "Unterbrochen xx:yy - zz:aa") + # - STATE=closed & watering-watering_timer_1_duration = 0 && watering-watering_timer_1_state=scheduled (?) & scheduling-schedules_paused_until = '' + + # 3. Ventil manuell geöffnet, späterer Zeitplan aktiv. + # Wird bewässert xx Minuten verbleibend" und "Nächste Bewässerung heute um xx:yy Uhr" + # - STATE= watering-watering_timer_1_duration != 0 && scheduling-schedules_paused_until = '' && watering-watering_timer_1_state=manual + + # 4. Ventil manuell geöffnet, Zeitpläne deaktiviert. + # App zeigt: "Wird bewässert xx Minuten verbleibend" + # - STATE=open & watering-watering_timer_1_duration != 0 && watering-watering_timer_1_state=idle (?) & scheduling-schedules_paused_unti != '' +#RigReadingsValue if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ - #should: open | online | no timer - #open/closed? - my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ + # Ventil Offen + if ( ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms ) { + + } else { + # Ventil zu + + } + + + + + + my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms - ? RigReadingsValue( $hash, 'open' ) - : ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') ne '' ? - 'scheduled watering next start: ' - . ( - ReadingsVal( - $name, 'scheduling-schedules_paused_until', - 'no timer' - ) - ) : 'closed' ); + # offen + ? + ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) + # leer ( zeitplan aktiv ... ) + ? sprintf( (RigReadingsValue($hash, 'watering. %s minutes remaining').' '.RigReadingsValue($hash, 'next timer %s')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ), 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 + ? RigReadingsValue($hash , 'permanently paused') + # naechter termin + : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until', '')) ) + + #RigReadingsValue( $hash, 'open' ) + # zu + : + ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) + # zeitplan aktiv + ? sprintf( RigReadingsValue($hash, 'next timer %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) + + # zeitplan pausiert + : RigReadingsValue($hash, 'closed') + + + ; + + # ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') eq '' ? # leer wenn zeitplan aktiv + # 'scheduled watering next start: ' + # . ( + # ReadingsVal( + # $name, 'scheduling-schedules_paused_until', + # 'no timer' + # ) + # ) : 'closed' ); # state offline | override - $state_string = 'offline' if ($online_state eq 'offline'); + $state_string = 'offline' if ($online_state eq 'offline'); readingsBulkUpdate( $hash, 'state', $state_string ); @@ -927,22 +986,21 @@ sub ReadingLangGerman { my $name = $hash->{NAME}; my %langGermanMapp = ( - 'ok_cutting' => 'mähen', - 'paused' => 'pausiert', - 'ok_searching' => 'suche Ladestation', - 'ok_charging' => 'lädt', - 'ok_leaving' => 'unterwegs zum Startpunkt', - 'wait_updating' => 'wird aktualisiert ...', - 'wait_power_up' => 'wird eingeschaltet ...', - 'parked_timer' => 'geparkt nach Zeitplan', - 'parked_park_selected' => 'geparkt', - 'off_disabled' => 'der Mäher ist ausgeschaltet', - 'off_hatch_open' => - 'deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich', - 'unknown' => 'unbekannter Status', - 'error' => 'Fehler', - 'error_at_power_up' => 'Neustart ...', - 'off_hatch_closed' => 'Deaktiviert. Manueller Start erforderlich', + 'ok_cutting' => 'mähen', + 'paused' => 'pausiert', + 'ok_searching' => 'suche Ladestation', + 'ok_charging' => 'lädt', + 'ok_leaving' => 'unterwegs zum Startpunkt', + 'wait_updating' => 'wird aktualisiert ...', + 'wait_power_up' => 'wird eingeschaltet ...', + 'parked_timer' => 'geparkt nach Zeitplan', + 'parked_park_selected' => 'geparkt', + 'off_disabled' => 'der Mäher ist ausgeschaltet', + 'off_hatch_open' => 'deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich', + 'unknown' => 'unbekannter Status', + 'error' => 'Fehler', + 'error_at_power_up' => 'Neustart ...', + 'off_hatch_closed' => 'Deaktiviert. Manueller Start erforderlich', 'ok_cutting_timer_overridden' => 'manuelles mähen', 'parked_autotimer' => 'geparkt durch SensorControl', 'parked_daily_limit_reached' => 'abgeschlossen', @@ -980,51 +1038,57 @@ sub ReadingLangGerman { 'guide_2_not_found' => 'SK 2 nicht gefunden', 'guide_3_not_found' => 'SK 3 nicht gefunden', 'difficult_finding_home' => 'Problem die Ladestation zu finden', - 'guide_calibration_accomplished' => - 'Kalibrierung des Suchkabels beendet', - 'guide_calibration_failed' => - 'Kalibrierung des Suchkabels fehlgeschlagen', - 'temporary_battery_problem' => 'kurzzeitiges Batterieproblem', - 'battery_problem' => 'Batterieproblem', - 'alarm_mower_switched_off' => 'Alarm! Mäher ausgeschalten', - 'alarm_mower_stopped' => 'Alarm! Mäher gestoppt', - 'alarm_mower_lifted' => 'Alarm! Mäher angehoben', - 'alarm_mower_tilted' => 'Alarm! Mäher gekippt', - 'connection_changed' => 'Verbindung geändert', - 'connection_not_changed' => 'Verbindung nicht geändert', - 'com_board_not_available' => 'COM Board nicht verfügbar', - 'slipped' => 'rutscht', - 'out_of_operation' => 'ausser Betrieb', - 'replace_now' => 'kritischer Batteriestand, wechseln Sie jetzt', - 'low' => 'niedrig', - 'ok' => 'ok', - 'no_source' => 'ok', - 'mower_charging' => 'Mäher wurde geladen', - 'completed_cutting_autotimer' => 'Sensor Control erreicht', - 'week_timer' => 'Wochentimer erreicht', - 'countdown_timer' => 'Stoppuhr Timer', - 'undefined' => 'unklar', - 'unknown' => 'unklar', - 'status_device_unreachable' => 'Gerät ist nicht in Reichweite', - 'status_device_alive' => 'Gerät ist in Reichweite', - 'bad' => 'schlecht', - 'poor' => 'schwach', - 'good' => 'gut', - 'undefined' => 'unklar', - 'idle' => 'nichts zu tun', - 'firmware_cancel' => 'Firmwareupload unterbrochen', - 'firmware_upload' => 'Firmwareupload', - 'unsupported' => 'nicht unterstützt', - 'up_to_date' => 'auf dem neusten Stand', - 'mower' => 'Mäher', - 'watering_computer' => 'Bewässerungscomputer', - 'no_frost' => 'kein Frost', - 'open' => 'offen', - 'closed' => 'geschlossen', - 'included' => 'inbegriffen', - 'active' => 'aktiv', - 'inactive' => 'nicht aktiv', - 'hibernate' => 'Winterschlaf', + 'guide_calibration_accomplished' => 'Kalibrierung des Suchkabels beendet', + 'guide_calibration_failed' => 'Kalibrierung des Suchkabels fehlgeschlagen', + 'temporary_battery_problem' => 'kurzzeitiges Batterieproblem', + 'battery_problem' => 'Batterieproblem', + 'alarm_mower_switched_off' => 'Alarm! Mäher ausgeschalten', + 'alarm_mower_stopped' => 'Alarm! Mäher gestoppt', + 'alarm_mower_lifted' => 'Alarm! Mäher angehoben', + 'alarm_mower_tilted' => 'Alarm! Mäher gekippt', + 'connection_changed' => 'Verbindung geändert', + 'connection_not_changed' => 'Verbindung nicht geändert', + 'com_board_not_available' => 'COM Board nicht verfügbar', + 'slipped' => 'rutscht', + 'out_of_operation' => 'ausser Betrieb', + 'replace_now' => 'kritischer Batteriestand, wechseln Sie jetzt', + 'low' => 'niedrig', + 'ok' => 'ok', + 'no_source' => 'ok', + 'mower_charging' => 'Mäher wurde geladen', + 'completed_cutting_autotimer' => 'Sensor Control erreicht', + 'week_timer' => 'Wochentimer erreicht', + 'countdown_timer' => 'Stoppuhr Timer', + 'undefined' => 'unklar', + 'unknown' => 'unklar', + 'status_device_unreachable' => 'Gerät ist nicht in Reichweite', + 'status_device_alive' => 'Gerät ist in Reichweite', + 'bad' => 'schlecht', + 'poor' => 'schwach', + 'good' => 'gut', + 'undefined' => 'unklar', + 'idle' => 'nichts zu tun', + 'firmware_cancel' => 'Firmwareupload unterbrochen', + 'firmware_upload' => 'Firmwareupload', + 'unsupported' => 'nicht unterstützt', + 'up_to_date' => 'auf dem neusten Stand', + 'mower' => 'Mäher', + 'watering_computer' => 'Bewässerungscomputer', + 'no_frost' => 'kein Frost', + 'open' => 'offen', + 'closed' => 'geschlossen', + 'included' => 'inbegriffen', + 'active' => 'aktiv', + 'inactive' => 'nicht aktiv', + 'hibernate' => 'Winterschlaf', + + 'permanently paused' => 'Dauerhaft pausiert', + 'paused until %s' => 'pausiert bis %s', + + 'watering. %s minutes remaining' => 'Wird bewässert. %d Minuten verbleibend', + 'next timer %s' => 'Nächste Bewässerung: %s', + + ); if ( diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 8a82e54..339457b 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-05_11:42:03 58327 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_11:09:47 62041 FHEM/74_GardenaSmartDevice.pm From d1b04b6a74f398bd43d03619fa6de42239beb882 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 11:30:51 +0200 Subject: [PATCH 09/18] cleanup --- FHEM/74_GardenaSmartDevice.pm | 13 +------------ controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 3ebf1b3..d37cdca 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -873,17 +873,6 @@ sub setState { # - STATE=open & watering-watering_timer_1_duration != 0 && watering-watering_timer_1_state=idle (?) & scheduling-schedules_paused_unti != '' #RigReadingsValue if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ - # Ventil Offen - if ( ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms ) { - - } else { - # Ventil zu - - } - - - - my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ m{\A[1-9]([0-9]+)?\z}xms @@ -1086,7 +1075,7 @@ sub ReadingLangGerman { 'paused until %s' => 'pausiert bis %s', 'watering. %s minutes remaining' => 'Wird bewässert. %d Minuten verbleibend', - 'next timer %s' => 'Nächste Bewässerung: %s', + 'next timer: %s' => 'Nächste Bewässerung: %s', ); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 339457b..6d9189b 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-07_11:09:47 62041 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_11:30:43 61858 FHEM/74_GardenaSmartDevice.pm From a193c6f814e09e395cc8466ee6a8e53b88ba5ecd Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 11:44:19 +0200 Subject: [PATCH 10/18] tz offset in state --- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index d37cdca..a06dde3 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -894,7 +894,7 @@ sub setState { : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # zeitplan aktiv - ? sprintf( RigReadingsValue($hash, 'next timer %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) + ? sprintf( RigReadingsValue($hash, 'next timer %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') )-(Time::Piece->new )->tzoffset ) # zeitplan pausiert : RigReadingsValue($hash, 'closed') @@ -1074,7 +1074,7 @@ sub ReadingLangGerman { 'permanently paused' => 'Dauerhaft pausiert', 'paused until %s' => 'pausiert bis %s', - 'watering. %s minutes remaining' => 'Wird bewässert. %d Minuten verbleibend', + 'watering. %s minutes remaining.' => 'Wird bewässert. %d Minuten verbleibend.', 'next timer: %s' => 'Nächste Bewässerung: %s', diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 6d9189b..9bdc67b 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-07_11:30:43 61858 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_11:44:07 61890 FHEM/74_GardenaSmartDevice.pm From e64f8fd0a47c3640eae323a650f5106f94ee2e7c Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 12:10:15 +0200 Subject: [PATCH 11/18] fix --- FHEM/74_GardenaSmartDevice.pm | 7 ++++--- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index a06dde3..6a8fa3b 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -280,6 +280,7 @@ sub Set { my $service_id; my $mainboard_version = ReadingsVal( $name, 'mower_type-mainboard_version', 0.0 ); + my $timezone_offset = ( Time::Piece->new )->tzoffset; #set default abilitie ... overwrite in cmd to change $abilities = 'mower' @@ -398,7 +399,7 @@ sub Set { ( ( Time::Piece->new ) + ( ONE_HOUR * $aArg->[0] ) - - ( Time::Piece->new )->tzoffset + $timezone_offset )->datetime ) . '.000Z' @@ -453,7 +454,7 @@ sub Set { ( ( Time::Piece->new ) + ( ONE_HOUR * $aArg->[1] ) - - ( Time::Piece->new )->tzoffset + $timezone_offset )->datetime ) . '.000Z' @@ -894,7 +895,7 @@ sub setState { : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # zeitplan aktiv - ? sprintf( RigReadingsValue($hash, 'next timer %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') )-(Time::Piece->new )->tzoffset ) + ? sprintf( RigReadingsValue($hash, 'next timer %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) # zeitplan pausiert : RigReadingsValue($hash, 'closed') diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 9bdc67b..9c159d3 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-07_11:44:07 61890 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_12:03:11 61890 FHEM/74_GardenaSmartDevice.pm From 9bdeb2ac19559cfefb602b974653211197a329b4 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 12:23:53 +0200 Subject: [PATCH 12/18] add awake translation --- FHEM/74_GardenaSmartDevice.pm | 10 +++++----- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 6a8fa3b..18b827a 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -1071,12 +1071,12 @@ sub ReadingLangGerman { 'active' => 'aktiv', 'inactive' => 'nicht aktiv', 'hibernate' => 'Winterschlaf', + 'awake' => 'Aufgewacht', - 'permanently paused' => 'Dauerhaft pausiert', - 'paused until %s' => 'pausiert bis %s', - - 'watering. %s minutes remaining.' => 'Wird bewässert. %d Minuten verbleibend.', - 'next timer: %s' => 'Nächste Bewässerung: %s', + 'permanently paused' => 'Dauerhaft pausiert', + 'paused until %s' => 'pausiert bis %s', + 'watering. %s minutes remaining.'=> 'Wird bewässert. %d Minuten verbleibend.', + 'next timer: %s' => 'Nächste Bewässerung: %s', ); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 9c159d3..f52496e 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-07_12:03:11 61890 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_12:19:21 61989 FHEM/74_GardenaSmartDevice.pm From 40c7318992c213667d7180f0412c7e9a8ea4483d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 12:38:11 +0200 Subject: [PATCH 13/18] some locales --- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 18b827a..4830f50 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -916,7 +916,7 @@ sub setState { $state_string = 'offline' if ($online_state eq 'offline'); readingsBulkUpdate( - $hash, 'state', $state_string ); + $hash, 'state', RigReadingsValue( $hash, $state_string ) ); } if ( AttrVal( $name, 'model', 'unknown' ) =~ /sensor.?/ ) { @@ -945,7 +945,7 @@ sub setState { # } #online state sensor I II readingsBulkUpdate( $hash, 'state', - $online_state eq 'online' ? $state_string : 'offline' ); + $online_state eq 'online' ? RigReadingsValue( $hash, $state_string) : RigReadingsValue( $hash, 'offline') ); } readingsBulkUpdate( diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index f52496e..0174a25 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-07_12:19:21 61989 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_12:37:44 62069 FHEM/74_GardenaSmartDevice.pm From 5661ef3e5985d86fdd74b4af51b0060969905553 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 14:31:00 +0200 Subject: [PATCH 14/18] fix locales --- FHEM/74_GardenaSmartDevice.pm | 4 ++-- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 4830f50..86416d4 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -881,7 +881,7 @@ sub setState { ? ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # leer ( zeitplan aktiv ... ) - ? sprintf( (RigReadingsValue($hash, 'watering. %s minutes remaining').' '.RigReadingsValue($hash, 'next timer %s')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) + ? sprintf( (RigReadingsValue($hash, 'watering. %s minutes remaining.').' '.RigReadingsValue($hash, 'next timer: %s')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) # zeitplan pausiert : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '') eq '2038-01-18T00:00:00.000Z') @@ -895,7 +895,7 @@ sub setState { : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # zeitplan aktiv - ? sprintf( RigReadingsValue($hash, 'next timer %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) + ? sprintf( RigReadingsValue($hash, 'next timer: %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) # zeitplan pausiert : RigReadingsValue($hash, 'closed') diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 0174a25..fe06270 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-07_12:37:44 62069 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_14:30:52 62072 FHEM/74_GardenaSmartDevice.pm From cea5741fb841b26738fa29c6427d3d6533d47c6f Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 14:49:23 +0200 Subject: [PATCH 15/18] fix open + paused --- FHEM/74_GardenaSmartDevice.pm | 2 +- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 86416d4..f29119d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -886,7 +886,7 @@ sub setState { : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '') eq '2038-01-18T00:00:00.000Z') # pause bis dauerhaft - ? RigReadingsValue($hash , 'permanently paused') + ? sprintf( (RigReadingsValue($hash, 'watering. %s minutes remaining.').' '.RigReadingsValue($hash , 'permanently paused')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )) # naechter termin : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until', '')) ) diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index fe06270..6d0a5e7 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-07_14:30:52 62072 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_14:49:06 62210 FHEM/74_GardenaSmartDevice.pm From 9f19ed88178e2afae775c658c2d50b52870ccbd5 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 7 Apr 2022 19:49:40 +0200 Subject: [PATCH 16/18] fix locales, todo change view of remaining time --- FHEM/74_GardenaSmartDevice.pm | 21 +++++++++++---------- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index f29119d..708ec83 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -280,7 +280,11 @@ sub Set { my $service_id; my $mainboard_version = ReadingsVal( $name, 'mower_type-mainboard_version', 0.0 ); - my $timezone_offset = ( Time::Piece->new )->tzoffset; + + my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, + $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time); + + my $timezone_offset = $Sommerzeit ? 0 : ( Time::Piece->new )->tzoffset; #set default abilitie ... overwrite in cmd to change $abilities = 'mower' @@ -881,12 +885,12 @@ sub setState { ? ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # leer ( zeitplan aktiv ... ) - ? sprintf( (RigReadingsValue($hash, 'watering. %s minutes remaining.').' '.RigReadingsValue($hash, 'next timer: %s')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) + ? sprintf( (RigReadingsValue($hash, 'will be irrigated %s minutes remaining.').' '.RigReadingsValue($hash, 'next watering: %s')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ), 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, 'watering. %s minutes remaining.').' '.RigReadingsValue($hash , 'permanently paused')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )) + ? sprintf( (RigReadingsValue($hash, 'will be irrigated %s minutes remaining.').' '.RigReadingsValue($hash , 'schedule permanently paused')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )) # naechter termin : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until', '')) ) @@ -895,7 +899,7 @@ sub setState { : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # zeitplan aktiv - ? sprintf( RigReadingsValue($hash, 'next timer: %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) + ? sprintf( RigReadingsValue($hash, 'next watering: %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) # zeitplan pausiert : RigReadingsValue($hash, 'closed') @@ -1072,13 +1076,10 @@ sub ReadingLangGerman { 'inactive' => 'nicht aktiv', 'hibernate' => 'Winterschlaf', 'awake' => 'Aufgewacht', - - 'permanently paused' => 'Dauerhaft pausiert', + 'schedule permanently paused' => 'Zeitplan dauerhaft pausiert', 'paused until %s' => 'pausiert bis %s', - 'watering. %s minutes remaining.'=> 'Wird bewässert. %d Minuten verbleibend.', - 'next timer: %s' => 'Nächste Bewässerung: %s', - - + 'will be irrigated %s minutes remaining.'=> 'Wird bewässert. %d Minuten verbleibend.', + 'next watering: %s' => 'Nächste Bewässerung: %s', ); if ( diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 6d0a5e7..bf86ace 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-07_14:49:06 62210 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-07_19:49:15 62409 FHEM/74_GardenaSmartDevice.pm From 17b4182abe8340c231ed39acda1e35ba1139fd83 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 10 Apr 2022 13:07:59 +0200 Subject: [PATCH 17/18] cleanup code --- FHEM/74_GardenaSmartDevice.pm | 32 +++----------------------------- controls_GardenaSmartDevice.txt | 2 +- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/FHEM/74_GardenaSmartDevice.pm b/FHEM/74_GardenaSmartDevice.pm index 708ec83..9a01d0d 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -849,9 +849,6 @@ sub setState { if ( AttrVal( $name, 'model', 'unknown' ) eq 'mower' ); #online state water control - # zeit bewaesseung - # online | offline - # open | closed # zeitplan -> dauert pausiert wenn 2038-01-18T00:00:00.000Z # watering-watering_timer_1_state idle | scheduled | manual @@ -863,20 +860,12 @@ sub setState { # 1. Ventil geschlossen, Zeitplan pausiert. # App zeigt: nichts (wenn vorher ein Zeitplan abgebrochen wurde, steht da "Unterbrochen xx:yy - zz:aa") - # - STATE=closed & watering-watering_timer_1_state=idle && scheduling-schedules_paused_unti != '' && watering-watering_timer_1_duration = 0 - # 2. Ventil geschlossen, Zeitplan aktiv. # App zeigt: "Nächste Bewässerung heute um xx:yy Uhr" (wenn vorher ein Zeitplan abgebrochen wurde, steht da vorher auch "Unterbrochen xx:yy - zz:aa") - # - STATE=closed & watering-watering_timer_1_duration = 0 && watering-watering_timer_1_state=scheduled (?) & scheduling-schedules_paused_until = '' - - # 3. Ventil manuell geöffnet, späterer Zeitplan aktiv. + # 3. Ventil manuell geoeffnet, späterer Zeitplan aktiv. # Wird bewässert xx Minuten verbleibend" und "Nächste Bewässerung heute um xx:yy Uhr" - # - STATE= watering-watering_timer_1_duration != 0 && scheduling-schedules_paused_until = '' && watering-watering_timer_1_state=manual - - # 4. Ventil manuell geöffnet, Zeitpläne deaktiviert. + # 4. Ventil manuell geoeffnet, Zeitpläne deaktiviert. # App zeigt: "Wird bewässert xx Minuten verbleibend" - # - STATE=open & watering-watering_timer_1_duration != 0 && watering-watering_timer_1_state=idle (?) & scheduling-schedules_paused_unti != '' -#RigReadingsValue if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){ my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~ @@ -893,29 +882,14 @@ sub setState { ? sprintf( (RigReadingsValue($hash, 'will be irrigated %s minutes remaining.').' '.RigReadingsValue($hash , 'schedule permanently paused')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )) # naechter termin : sprintf( RigReadingsValue($hash , 'paused until %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-schedules_paused_until', '')) ) - - #RigReadingsValue( $hash, 'open' ) # zu : ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # zeitplan aktiv - ? sprintf( RigReadingsValue($hash, 'next watering: %s'), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) - + ? sprintf( (RigReadingsValue($hash, 'closed') .'. '.RigReadingsValue($hash, 'next watering: %s')), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '') ) ) # zeitplan pausiert : RigReadingsValue($hash, 'closed') - - ; - - # ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') eq '' ? # leer wenn zeitplan aktiv - # 'scheduled watering next start: ' - # . ( - # ReadingsVal( - # $name, 'scheduling-schedules_paused_until', - # 'no timer' - # ) - # ) : 'closed' ); - # state offline | override $state_string = 'offline' if ($online_state eq 'offline'); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index bf86ace..216e56a 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-07_19:49:15 62409 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-09_12:33:25 61263 FHEM/74_GardenaSmartDevice.pm From a56dfe6a2d132001d6884900511713fa633efef1 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 12 Apr 2022 08:40:40 +0200 Subject: [PATCH 18/18] round minutes in irregation --- 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 9a01d0d..fac69b5 100644 --- a/FHEM/74_GardenaSmartDevice.pm +++ b/FHEM/74_GardenaSmartDevice.pm @@ -874,12 +874,12 @@ sub setState { ? ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' ) # leer ( zeitplan aktiv ... ) - ? sprintf( (RigReadingsValue($hash, 'will be irrigated %s minutes remaining.').' '.RigReadingsValue($hash, 'next watering: %s')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ), RigReadingsValue($hash, ReadingsVal($name, 'scheduling-scheduled_watering_next_start', '')) ) + ? 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 %s minutes remaining.').' '.RigReadingsValue($hash , 'schedule permanently paused')), ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 )) + ? 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 @@ -1052,7 +1052,7 @@ sub ReadingLangGerman { 'awake' => 'Aufgewacht', 'schedule permanently paused' => 'Zeitplan dauerhaft pausiert', 'paused until %s' => 'pausiert bis %s', - 'will be irrigated %s minutes remaining.'=> 'Wird bewässert. %d Minuten verbleibend.', + 'will be irrigated %.f minutes remaining.'=> 'Wird bewässert. %.f Minuten verbleibend.', 'next watering: %s' => 'Nächste Bewässerung: %s', ); diff --git a/controls_GardenaSmartDevice.txt b/controls_GardenaSmartDevice.txt index 216e56a..3810d2c 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-09_12:33:25 61263 FHEM/74_GardenaSmartDevice.pm +UPD 2022-04-12_08:40:29 61278 FHEM/74_GardenaSmartDevice.pm