Laufzeit Rollos weiterverabeiten.

Begonnen von prenzela, 29 November 2024, 14:46:36

Vorheriges Thema - Nächstes Thema

prenzela

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 ?

betateilchen

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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

prenzela

#2
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")}

Damian

Das state-Attribut arbeitet mit FHEM-Befehlen, die Perlebene wird durch {( eingeleitet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF