Autor Thema: Variable über neustart speichern  (Gelesen 4088 mal)

Offline maeke

  • Newbie
  • Beiträge: 2
Variable über neustart speichern
« am: 21 Oktober 2013, 18:26:54 »
Hallo,

habe mir aus dem fhem wiki die Ölverbrauchsanzeige abgeguckt.
http://www.fhemwiki.de/wiki/Ölverbrauchsanzeige_/_Betriebsstundenzähler
das wollte ich so erweitern das ich die verbrauchten Liter sehe.
Dazu habe ich mir den Betriebstundenzähler modifiziert, so dass es mir das total-liter logt:


define boiler_total dummy
define boiler_totLt dummy
define boiler_time notify fs_boiler {\
  if("%" eq "on") {\
   $data{boiler_last} = time();;\
  } elsif("%" eq "off") {\
   $data{boiler_min} = (time()-$data{boiler_last})/60;;\
   $data{boiler_tot} += $data{boiler_min};;\
   $data{boiler_totlt} = ($data{boiler_tot}*0.03296);;\
   fhem "trigger boiler_time $data{boiler_min}";;\
   fhem "trigger boiler_totLt $data{boiler_totlt}";;\
  }\
 }

kurz erklärt:
boiler_min ist die Zeit die verstrichen ist, diese addiere ich immer wieder zu boiler_tot daraus berechne ich dann die Liter (Boiler_totlt)


nun habe ich das Problem dass die Variable $data{boiler_tot} nach einem neustart wieder bei 0 anfängt.

hat wer eine Idee wie ich den wert so speichern kann dass er nach dem Neustart noch vorhanden ist?
oder gibt es eine Möglichkeit die einzelnen gelogten werte (boiler_min) zu addieren und auszugeben? (dann könnte ich mir die obige Formel sparen)

Danke für antworten im Voraus, hoffe habe mit dem Post alles richtig gemacht, is mein erster ^^

« Letzte Änderung: 22 Oktober 2013, 18:03:32 von maeke »
Hilfreich Hilfreich x 1 Liste anzeigen

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16894
Antw:log einträge addieren oder Variable über neustart speichern
« Antwort #1 am: 21 Oktober 2013, 18:41:51 »
das einfachste ist wenn du dir den wert als reading ins zugehörige device schreibst. dann wird es bei neustart auch wieder gesetzt.

dann kannst du auch völlig auf den dummy verzichten.

schau dir mal userReadings an oder alternativ setreading.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline maeke

  • Newbie
  • Beiträge: 2
Antw:log einträge addieren oder Variable über neustart speichern
« Antwort #2 am: 22 Oktober 2013, 14:10:18 »
habs hinbekommen
besten dank

define boiler_time notify fs_boiler {\
  if("%" eq "on") {\
   $data{boiler_last} = time();;\
  } elsif("%" eq "off") {\
   $data{boiler_min} = (time()-$data{boiler_last})/60*0.03296;;\
   $data{boiler_rv} = ReadingsVal ("fs_boiler","Liter",0);;\
   $data{boiler_tot} = $data{boiler_rv}+$data{boiler_min};;\
 fhem "setreading fs_boiler Liter $data{boiler_tot}";;\
  }\
 }