stateformat
This commit is contained in:
parent
7c074adbb9
commit
7113e9974e
@ -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 (
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user