Berechnung von mehreren Energie-Werten

Begonnen von klausmrkor, 15 Dezember 2014, 17:59:20

Vorheriges Thema - Nächstes Thema

klausmrkor

Hallo, hier die Fhem,cfg

define fb1 FBAHA fritz.box:2002


define hz_pumpe_og FBDECT fb1:16 switch
attr hz_pumpe_og IODev fb1
attr hz_pumpe_og event-min-interval power:120
attr hz_pumpe_og room Heizungsenergy

define FileLog_hz_pumpe_og FileLog /opt/fhem/log/hz_pumpe_og-%Y.log hz_pumpe_og
attr FileLog_hz_pumpe_og room FileLog

define hz_pumpe_eg FBDECT fb1:17 switch
attr hz_pumpe_eg IODev fb1
attr hz_pumpe_eg event-min-interval power:120
attr hz_pumpe_eg room Heizungsenergy

define FileLog_hz_pumpe_eg FileLog /opt/fhem/log/hz_pumpe_eg-%Y.log hz_pumpe_eg
attr FileLog_hz_pumpe_eg room FileLog

define hz_brenner FBDECT fb1:18 switch
attr hz_brenner IODev fb1
attr hz_brenner event-min-interval power:120
attr hz_brenner room Heizungsenergy

define FileLog_hz_brenner FileLog /opt/fhem/log/hz_brenner-%Y.log hz_brenner:energy:.*|hz_brenner:power\x3a.*
attr FileLog_hz_brenner room FileLog

define hz_verbrauch readingsGroup <Heizungsmessung>,<Verbrauch>,<Power>\
hz_brenner:energy,power\
hz_pumpe_eg:energy,power\
hz_pumpe_og:energy,power\
hz_strom_gesamt
attr hz_verbrauch group Heizung
attr hz_verbrauch room Heizungsenergy
attr hz_verbrauch userReadings hz_strom_gesamt {(ReadingNum ["hz_brenner","energy",0] + ReadingNum ["hz_pumpe_eg","energy",0] + ReadingNum ["hz_pumpe_og","energy,0])}

define strom_Tmpges notify hz_strom_gesamt {my $ges = (Value("hz_brenner","energy",0) + Value("hz_pumpe","energy",0)/1000) fhem("trigger strom_Tmpges $ges")}

define hz_strom_Log FileLog /opt/fhem/log/hz_strom-%Y.log hz_strom_gesamt.*

define SVG_FileLog_hz_brenner_1 SVG FileLog_hz_brenner:SVG_FileLog_hz_brenner_1:CURRENT
attr SVG_FileLog_hz_brenner_1 room SVG_Brenner

define SVG_FileLog_hz_brenner_2 SVG FileLog_hz_brenner:SVG_FileLog_hz_brenner_2:CURRENT
attr SVG_FileLog_hz_brenner_2 room SVG_Brenner

define SVG_FileLog_hz_pumpe_eg_1 SVG FileLog_hz_pumpe_eg:SVG_FileLog_hz_pumpe_eg_1:CURRENT
attr SVG_FileLog_hz_pumpe_eg_1 room SVG_pumpe_eg

define SVG_FileLog_hz_pumpe_eg_2 SVG FileLog_hz_pumpe_eg:SVG_FileLog_hz_pumpe_eg_2:CURRENT
attr SVG_FileLog_hz_pumpe_eg_2 room SVG_pumpe_eg

define SVG_FileLog_hz_pumpe_og_1 SVG FileLog_hz_pumpe_og:SVG_FileLog_hz_pumpe_og_1:CURRENT
attr SVG_FileLog_hz_pumpe_og_1 room SVG_pumpe_og

define SVG_FileLog_hz_pumpe_og_2 SVG FileLog_hz_pumpe_og:SVG_FileLog_hz_pumpe_og_2:CURRENT
attr SVG_FileLog_hz_pumpe_og_2 room SVG_pumpe_og


List hz_verbrauch

Internals:
   DEF        <Heizungsmessung>,<Verbrauch>,<Power>
hz_brenner:energy,power
hz_pumpe_eg:energy,power
hz_pumpe_og:energy,power
hz_strom_gesamt
   NAME       hz_verbrauch
   NR         62
   NTFY_ORDER 50-hz_verbrauch
   STATE      Initialized
   TYPE       readingsGroup
   Content:
     hz_brenner 1
     hz_pumpe_eg 1
     hz_pumpe_og 1
   Content2:
   DEVICES:
     ARRAY(0x21199e0)
     ARRAY(0x20d80e0)
     ARRAY(0x2119500)
     ARRAY(0x1c77228)
   Fhem:
     lastDefChange 831
     last_update 1418832090.89971
   Helper:
     DEF
Attributes:
   group      Heizung
   room       Heizungsenergy
   userReadings hz_strom_gesamt {(ReadingNum ["hz_brenner","energy",0] + ReadingNum ["hz_pumpe_eg","energy",0] + ReadingNum ["hz_pumpe_og","energy,0])}


List stromTMP_ges

Internals:
   DEF        hz_strom_gesamt {my $ges = (Value("hz_brenner","energy",0) + Value("hz_pumpe","energy",0)/1000) fhem("trigger strom_Tmpges $ges")}
   NAME       strom_Tmpges
   NR         64
   NTFY_ORDER 50-strom_Tmpges
   REGEXP     hz_strom_gesamt
   STATE      active
   TYPE       notify
Attributes:


Ich hoffe du kannst mir helfen.

Gruß Klaus

Bennemannc

Hallo,

ich habe Dich nicht vergessen, aber ich hatte bis jetzt leider keine Zeit zu antworten.
Ok - was ich vorhabe:
Ein UserReading am Gerät hz_brenner
attr UserReading ges_Energy {ReadingsVal("hz_brenner","Energy",0) + ReadingsVal("hz_pumpe_og","Energy",0) + ReadingsVal("hz_pumpe_eg","Energy",0)}, ges_Power {ReadingsVal("hz_brenner","Power",0) + ReadingsVal("hz_pumpe_og","Power",0) + ReadingsVal("hz_pumpe_eg","Power",0)}
nach dem nächste Aktualisiseren müssten beim hz_brenner die Reading ges_Energy und ges_Power auftauchen, diese würde ich dann in die ReadingGroup stecken "hz_brenner:ges_Energy, ges_Power.
Nachteil - die Gesamtwerte werden immer nur dann berechnet, wenn hz_brenner aktualisiert wird. Es kann also vorkommen, das der Gesamtwert manchmal nicht gleich der Summe der Einzelwerten ist.
Probier das mal aus.
Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

klausmrkor

Hallo Christoph

Das Ergebnis war = 0 aber ich hatte mal ein Ergebnis.

Es funktionierte nachdem ich etwas geändert habe.
Power habe ich weggelassen, da ich dies nicht rechnen wollte.

1. ReadingVal geändert in ReadingNum da in Energy die Wh mit angegeben ist (60 Wh)

2. Energy ist im Log klein geschrieben (energy)

Dann hat es funktioniert.

Danach habe ich ein copy von hz_brenner in hz_Strom_gesamt gemacht und die Userreading hineingeschrieben und in hz_verbrauch angegeben.

Leider steht nun das Wh soweit weg.

Aber sonst bin ich sehr zufrieden und habe eine Menge gelernt.

Vielen Dank

Gruß Klaus