Autor Thema: Programmlaufzeit auswerten und speichern  (Gelesen 128 mal)

Offline irenaeusbecker

  • New Member
  • *
  • Beiträge: 21
Programmlaufzeit auswerten und speichern
« 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!



Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17205
Antw:Programmlaufzeit auswerten und speichern
« Antwort #1 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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17205
Antw:Programmlaufzeit auswerten und speichern
« Antwort #2 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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline irenaeusbecker

  • New Member
  • *
  • Beiträge: 21
Antw:Programmlaufzeit auswerten und speichern
« Antwort #3 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) }

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17205
Antw:Programmlaufzeit auswerten und speichern
« Antwort #4 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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
kein Support für cfg Editierer

Offline irenaeusbecker

  • New Member
  • *
  • Beiträge: 21
Antw:Programmlaufzeit auswerten und speichern
« Antwort #5 am: 12 Oktober 2018, 15:07:57 »
Benutze den stopWert auch zur Anzeige in FTUI wann das letzte mal bewässert wurde.

Danke!