readingsProxy SetList "lastCmd" anstatt "state" anzeigen

Begonnen von Thomas41587, 17 September 2019, 08:42:28

Vorheriges Thema - Nächstes Thema

Thomas41587

Hallo zusammen,

ich habe über folgenden define einen Analogeingang meiner S7 Steuerung angebunden:
defmod S7_AWrite_bad_ausschaltzeit_licht_abend S7_AWrite db 132 16 u32
attr S7_AWrite_bad_ausschaltzeit_licht_abend IODev ET200


Um die Zeit jetzt benutzerfreundlich eingeben zu können habe ich ein readingsProxy definiert, der mir aus der ausgewählten Uhrzeit den integer für die S7 berechnet und jetzt:
defmod readingsProxy_bad_ausschaltzeit_licht_abend_bedien readingsProxy S7_AWrite_bad_ausschaltzeit_licht_abend
attr readingsProxy_bad_ausschaltzeit_licht_abend_bedien setFn {\
  my ($h,$m,$s) = split(':' , $CMD);;;;\
  my $wert = (int($h)*60*60+int($m)*60+int($s))*1000;;;;\
  fhem("set S7_AWrite_bad_ausschaltzeit_licht_abend $wert");;;;\
}
attr readingsProxy_bad_ausschaltzeit_licht_abend_bedien setList state:22:00,22:30,22:45,22:50,22:55,23:00,23:05,23:10,23:15
attr readingsProxy_bad_ausschaltzeit_licht_abend_bedien stateFormat  ;
attr readingsProxy_bad_ausschaltzeit_licht_abend_bedien webCmd state


Funktioniert soweit auch, mein Problem ist jetzt aber, dass das Drop-Down Feld nicht mehr den zuletzt angegebenen Wert anzeigt sondern stattdessen einfach leer ist. Liegt vermutlich daran, dass ich die Uhrzeit verrechne. dadurch hat "state" z.B. bei 22:30 (Uhr) einen (Int) Wert von 81000000. Ledglich das Reading "LastCmd" hat den richtigen wert. Kann man das Drop-Down Feld umbiegen, dass es den Wert aus "LastCmd" anzeigt? Oder gibt es einen anderen Weg, wie ich immer die zuletzt eingestellte Uhrzeit sehen kann?

Thomas41587


xenos1984