dev #54

Merged
marko merged 19 commits from dev into main 2022-04-12 11:37:37 +00:00
2 changed files with 140 additions and 76 deletions
Showing only changes of commit 7113e9974e - Show all commits

View File

@ -847,21 +847,80 @@ sub setState {
# zeit bewaesseung # zeit bewaesseung
# online | offline # online | offline
# open | closed # 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' ){ if ( AttrVal( $name, 'model', 'unknown' ) eq 'watering_computer' ){
#should: open | online | no timer # Ventil Offen
#open/closed? 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 ) =~ my $state_string = ReadingsVal( $name, 'watering-watering_timer_1_duration', 0 ) =~
m{\A[1-9]([0-9]+)?\z}xms m{\A[1-9]([0-9]+)?\z}xms
? RigReadingsValue( $hash, 'open' ) # offen
: ( ReadingsVal( $name, 'scheduling-schedules_paused_until', '') ne '' ? ?
'scheduled watering next start: ' ( ReadingsVal($name, 'scheduling-schedules_paused_until', '' ) eq '' )
. ( # leer ( zeitplan aktiv ... )
ReadingsVal( ? 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', '')) )
$name, 'scheduling-schedules_paused_until', # zeitplan pausiert
'no timer' :
) ( ReadingsVal($name, 'scheduling-schedules_paused_until', '') eq '2038-01-18T00:00:00.000Z')
) : 'closed' ); # 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 offline | override
$state_string = 'offline' if ($online_state eq 'offline'); $state_string = 'offline' if ($online_state eq 'offline');
@ -937,8 +996,7 @@ sub ReadingLangGerman {
'parked_timer' => 'geparkt nach Zeitplan', 'parked_timer' => 'geparkt nach Zeitplan',
'parked_park_selected' => 'geparkt', 'parked_park_selected' => 'geparkt',
'off_disabled' => 'der Mäher ist ausgeschaltet', 'off_disabled' => 'der Mäher ist ausgeschaltet',
'off_hatch_open' => 'off_hatch_open' => 'deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich',
'deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich',
'unknown' => 'unbekannter Status', 'unknown' => 'unbekannter Status',
'error' => 'Fehler', 'error' => 'Fehler',
'error_at_power_up' => 'Neustart ...', 'error_at_power_up' => 'Neustart ...',
@ -980,10 +1038,8 @@ sub ReadingLangGerman {
'guide_2_not_found' => 'SK 2 nicht gefunden', 'guide_2_not_found' => 'SK 2 nicht gefunden',
'guide_3_not_found' => 'SK 3 nicht gefunden', 'guide_3_not_found' => 'SK 3 nicht gefunden',
'difficult_finding_home' => 'Problem die Ladestation zu finden', 'difficult_finding_home' => 'Problem die Ladestation zu finden',
'guide_calibration_accomplished' => 'guide_calibration_accomplished' => 'Kalibrierung des Suchkabels beendet',
'Kalibrierung des Suchkabels beendet', 'guide_calibration_failed' => 'Kalibrierung des Suchkabels fehlgeschlagen',
'guide_calibration_failed' =>
'Kalibrierung des Suchkabels fehlgeschlagen',
'temporary_battery_problem' => 'kurzzeitiges Batterieproblem', 'temporary_battery_problem' => 'kurzzeitiges Batterieproblem',
'battery_problem' => 'Batterieproblem', 'battery_problem' => 'Batterieproblem',
'alarm_mower_switched_off' => 'Alarm! Mäher ausgeschalten', 'alarm_mower_switched_off' => 'Alarm! Mäher ausgeschalten',
@ -1025,6 +1081,14 @@ sub ReadingLangGerman {
'active' => 'aktiv', 'active' => 'aktiv',
'inactive' => 'nicht aktiv', 'inactive' => 'nicht aktiv',
'hibernate' => 'Winterschlaf', '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 ( if (

View File

@ -1,2 +1,2 @@
UPD 2022-03-29_13:42:09 49520 FHEM/73_GardenaSmartBridge.pm 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