FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: irenaeusbecker am 12 Oktober 2018, 14:16:56

Titel: Programmlaufzeit auswerten und speichern
Beitrag von: irenaeusbecker am 12 Oktober 2018, 14:16:56
Hi,

bräuchte mal einen Tipp von Euch bezüglich Umsetzung.

Konkret möchte ich pro Bewässerungslauf im Garten speichern wie viel Wasser pro Bewässerung verbraucht wurde. Dies hilft auch um Werte von 0 Liter festzustellen, sprich ein defektes Ventil zu identifizieren.

#

Konkret habe ich verschiedene Dummys definiert, die dann Ventile ansteuern.

Beispiel:

define Bewaesserung_BuchsHecke dummy;
attr Bewaesserung_BuchsHecke setList on off;
defmod Bewaesserung_BuchsHeckeAn notify Bewaesserung_BuchsHecke:on set Bewaesserung_Ventil2 on-for-timer 80;;sleep 100 Hecke-1;; set Bewaesserung_BuchsHecke off;
defmod Bewaesserung_BuchsHeckeAus notify Bewaesserung_BuchsHecke:off cancel Hecke-1;; set Bewaesserung_Ventil2 off;
define Timer_BuchsHecke WeekdayTimer Bewaesserung_BuchsHecke 14|13:20|on 14|13:40|off;

Aktuell kann ich via folgendem Command einen Durchschnittswert von 60 Sekunden Wasserverbrauch auslesen und in Bewaesserung_BuchsHecke speichern.
{ fhem("setreading Bewaesserung_BuchsHecke Wasserverbrauch ".ReadingsVal('Verbrauch_60s','CONSUMPTION','0')) }

Wie komme ich denn nun an die Programmlaufzeit von Bewaesserung_BuchsHecke ran bzw. wie kann ich dies am besten speichern damit ich die Gesamtwassermenge berechnen kann?

Danke vorab!


Titel: Antw:Programmlaufzeit auswerten und speichern
Beitrag von: CoolTux am 12 Oktober 2018, 14:30:44
Du setzt beim Dummy ein Reading bei start und liest das alter des Readings aus wenn Dein Dummy auf off geht.
Titel: Antw:Programmlaufzeit auswerten und speichern
Beitrag von: CoolTux am 12 Oktober 2018, 14:42:29
Hier mal ein Beispiel


Internals:
   CFGFN     
   NAME       GeschirrspuelerBetriebDummy
   NR         222
   STATE      off
   TYPE       dummy
   READINGS:
     2018-10-10 13:35:27   beginEnd        0
     2018-10-10 13:35:27   state           off
Attributes:
   alias      Betrieb
   devStateIcon on:scene_dishwasher@green off:scene_dishwasher@red dry:icoLuefter
   group      Geschirrspüler
   oldreadings beginEnd
   room       Küche
   sortby     1
   userReadings beginEnd:(on|off) { (ReadingsVal($name,'state',0) eq 'on' ? 1 : 0) }


BeginEnd Reading setze ich entsprechend über state on/off und in der Auswertung schaue ich wie alt das oldReading von beginEnd ist

OldReadingsAge($name,'beginEnd',0)

Das ist das alter des vorherigen Wertes vom Reading beginEnd
Titel: Antw:Programmlaufzeit auswerten und speichern
Beitrag von: irenaeusbecker am 12 Oktober 2018, 14:55:29
Dankeschön!

Werde es dann wie folgt umsetzen:

{ my $timenow =  time();;fhem("setreading Bewaesserung_BuchsHecke startDate $timenow");; }

{ my $timenow =  time();; fhem("setreading Bewaesserung_BuchsHecke Wasserverbrauch ".ReadingsVal('Verbrauch_60s','CONSUMPTION','0')*($timenow-ReadingsVal('Bewaesserung_BuchsHecke','startDate','0'))/60) }
Titel: Antw:Programmlaufzeit auswerten und speichern
Beitrag von: CoolTux am 12 Oktober 2018, 15:01:02
Kann man so machen.
Aber wie gesagt Du hast ja die Laufzeit wenn Du mit OldReadingsAge das alter des alten Values vom Reading aus liest
Du musst also keine Zeit ins Reading setzen. Setz einfach ein Reading das reicht schon.
Titel: Antw:Programmlaufzeit auswerten und speichern
Beitrag von: irenaeusbecker am 12 Oktober 2018, 15:07:57
Benutze den stopWert auch zur Anzeige in FTUI wann das letzte mal bewässert wurde.

Danke!