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