FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: prenzela am 29 November 2024, 14:46:36

Titel: Laufzeit Rollos weiterverabeiten.
Beitrag von: prenzela am 29 November 2024, 14:46:36
Hallo ,

meine Rollos geben den Endlagenstatus oben bzw unten nicht aus. Die Aktoren liefern nur die Laufzeit.
Ich möchte über FHEM die Endlagen "errechnen". Aus einem anderen Beitrag habe habe ich mir die Laufzeit errechnet

define ZM_r_og_schlafen_erker_heben DOIF ([r_og_schlafen_erker_heben] eq "on") (setreading ZM_r_og_schlafen_erker_heben start {(time)}) DOELSEIF  ([r_og_schlafen_erker_heben] eq "off") (setreading ZM_r_og_schlafen_erker_heben stop {(time)})
attr ZM_r_og_schlafen_erker_heben stateFormat {ReadingsVal("ZM_r_og_schlafen_erker_heben","stop","0")-ReadingsVal("ZM_r_og_schlafen_erker_heben","start","0")}


Die Laufzeit steht danch im STATE und nicht im state.

Wie kann ich jetzt die errechnete Laufzeit weiterverarbeiten ?

wenn ZM_r_og_schlafen_erker_heben > 30s (dann ist das Rollo sicher oben) & r_og_schlafen_erker_senken ist "off" DANN setstate Rollo oben

Wie löst man das ? Denke ich zu kompliziert ? Geht es einfacher ? Was übersehe ich ?
Titel: Aw: Laufzeit Rollos weiterverabeiten.
Beitrag von: betateilchen am 29 November 2024, 15:02:54
Zitat von: prenzela am 29 November 2024, 14:46:36Die Laufzeit steht danch im STATE und nicht im state.

Natürlich, Du hast ja im Attribut stateFormat angegeben, dass Du das genau so haben möchtest.
Warum schreibst Du den Wert nicht in das reading 'state', wenn Du den Wert dort haben möchtest?
Titel: Aw: Laufzeit Rollos weiterverabeiten.
Beitrag von: prenzela am 29 November 2024, 16:04:47
In state steht ja bereits cmd_1 bzw. cmd_2

Wenn ich das so eingebe

attr ZM_r_og_schlafen_erker_heben state {ReadingsVal("ZM_r_og_schlafen_erker_senken","stop","0")-ReadingsVal("ZM_r_og_schlafen_erker_senken","start","0")}

Dann steht die "Formel" im state und nicht das Ergebnis.

mit einem Userreading klappt es
attr ZM_r_og_schlafen_erker_heben userReadings Laufzeit {ReadingsVal("ZM_EnO_05206F8D","stop","0")-ReadingsVal("ZM_EnO_05206F8D","start","0")}
Titel: Aw: Laufzeit Rollos weiterverabeiten.
Beitrag von: Damian am 29 November 2024, 20:49:25
Das state-Attribut arbeitet mit FHEM-Befehlen, die Perlebene wird durch {( eingeleitet.