FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: klausmrkor am 15 Dezember 2014, 17:59:20

Titel: Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 15 Dezember 2014, 17:59:20
Hallo, heute muss ich euch nochmals belästigen.
Ich habe alles versucht, komme aber nicht weiter.
Was mache ich falsch. Hier meine Definition:

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

Danach noch die Logfile um die Gesamt-verbrauch herauszuholen.

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

Für eine Antwort wäre ich sehr dankbar, auch wenn ich einigen wieder falsch komme.

Mit freundlichen Grüßen
Klaus Mrkor



Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: fiedel am 15 Dezember 2014, 19:08:22
Hi Klaus,

define klein und eine runde Klammer um die Berechnung könnte klappen (ungetestet):

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


Gruß

Frank
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 15 Dezember 2014, 20:38:03
Vielen Dank, doch leider habe keine logfile zum auslesen gefunden,

Irgendetwas haut noch nicht hin.

Gruß
Klaus
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Puschel74 am 15 Dezember 2014, 20:44:48
Hallo,

einen trigger auf den Namen eines notify (oder was auch immer) macht nicht viel Sinn.

Du kannst den errechneten Wert einem Device als "neues" Reading zuweisen oder einem Dummy aber nicht einem notify.
Oder damit ein notify triggern - wobei das evtl. klappen sollte aber ich wüsste nicht wozu das gut sein sollte.
Ein notify sollte doch ein Reading "tragen" können  ???
Wobei der Wert aber dann nicht mit "trigger" zugewiesen wird.

Du müsstest aber entsprechende Meldungen im Logfile finden  ;)
Wieder einer der meinen angepinnten Beitrag nicht gelesen hat

Grüße

Edith: Beitrag überarbeitet.
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 15 Dezember 2014, 21:07:57
Vielen Dank, aber jetzt weiß ich gar nicht mehr weiter.
Wo kann ich das nachlesen?

Gruß Klaus
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Puschel74 am 15 Dezember 2014, 21:16:07
Hallo,

das define von hz_strom_gesamt fehlt.
Vermutlich willst du den errechneten Wert diesem Device zuweisen.
Das sollte sich mit setreading hz_strom_gesamt $ges
erledigen lassen.

Einpflücken musst du es selbst noch richtig - meine Beispiele sind NICHT für die fhem.cfg gedacht.

Nachlesen kannst du das eigentlich im Forum oder im Wiki - setreading wäre ein Suchbegriff.
Wenn du die benötigten Daten meinst zum nachlesen würde ich dir mal meinen angepinnte Beitrag ans Herz legen.

Grüße

Edith: Sorry aber setreading klappt natürlich nur auf ein Reading.
Vielleicht erklärst du einfach mal kurz was du haben möchtest.
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 15 Dezember 2014, 22:24:49
Hallo,
also es geht darum hz_brenner energy + hz_pumpe energy zusammen zuzählen und da die erergy in wh ist,  größere Werte in kwh auszurechnen.

Das ist alles, aber ich habe keine Ahnung.

Gruß Klaus
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Puschel74 am 16 Dezember 2014, 19:43:23
Hallo,

ok, es darf dann doch etwas ausführlicher sein.
Zum Beispiel wäre es nett wenn du dafür interessanten Defines postest - so wie ich in meinem angepinnten Beitrag auch bitte.
Es wäre evtl. auch mal nett wenn du ihn dir auch durchlesen würdest.
Dann bräuchte man nicht alles und jeden nachfragen  ;)

Grüße
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Bennemannc am 17 Dezember 2014, 00:05:24
Hallo,

mach doch ein userReading, wo du beide Werte addierst und mit 0.0001 multiplizierst.

Gruß Christoph
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 17 Dezember 2014, 10:19:02
Hallo,besten Dank für die Antwort,
ich habe es versucht, aber ich weiß einfach nicht weiter.
anbei ein bildschirmfoto.

Gruß Klaus
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Bennemannc am 17 Dezember 2014, 10:39:26
Hallo,

mit ReadingsNum habe ich noch nciht gearbeitet - aber das R am Anfang muss groß sein! Fhem, Perl und Linux unterscheiden zwischen Groß- und Kleinschreibung.
Außerdem stimmt das Format nicht, es müsste sein {ReadingsNum("hz_brenner","Energy",0)+....)*0.0001} dann sollten da kWh raus kommen. Wenn Du die Einzelwerten auch in kWh haben möchteste - UserReading Power_Brenner {ReadingsNum("hz_brenner","Energy",0)*0.0001}. Die einzelnen Definitionen für die UserReadings sind durch Komma+Leerzeichen getrennt.

Gruß Christoph
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 17 Dezember 2014, 11:23:51
Hallo,
ist das so richtig?

userReadings   hz_strom_gesamt {ReadingNum("hz_brenner","energy",0) + ReadingNum("hz_pumpe_eg","energy",0) + ReadingNum("hz_pumpe_og","energy",0)/1000}

aber wie lese ich es dann aus, dass es neben den Gesamt_Strom ausgedruckt wird?

Gruß Klaus
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Bennemannc am 17 Dezember 2014, 11:53:13
Hallo,

ein UserReading ist, wie der Name schon sagt, ein "normales" Reading. Dieses wird Dir, nach der ersten Aktualisierung im Reading Bereich des Gerätes angezeigt - als ob es ein reading vom Gerät selber wäre. Das kannst Du mit StateFormat oder wie auch immer nutzen. Wenn Du es mehrfach unterschiedlich nutzen möchtest, nimmst Du das Modul CloneDummy. Das dupliziert das Gerät, besser gesagt die Reading und verhält sich an sonsten wie ein richtiges Gerät. Dadurch kannst Du die Daten mit anderem StateFormat, Gruppen, Aliasse ... anzeigen lassen.

Gruß Christoph
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 17 Dezember 2014, 16:28:48
Hallo.
irgendwie komme ich mir schon zu alt vor, ich komme einfach nicht weiter, ich blicke nicht mehr durch.
kann ich bitte einen Tipp bekommen wie ich die Define beginne und wo ich die userreading hintue und wie ich es auslese.

Andernfalls werde ich es langsam ausrollen lassen und die Berechnung halt mit der Hand ausführen.

Gruß Klaus
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Bennemannc am 17 Dezember 2014, 16:33:49
Hallo,

Post doch mal den Teil der fhem.cfg, der das Gerät beschreibt. Zusätzlich poste mal einen "list GERÄT" - einfach list und den Gerätenamen oben in die Befehlszeile eingeben. Vielleicht kann ich Dir dann weiterhelfen.
BTW man sollte alle Änderungen in der fhem.cfg über die Geräte-Detailseite machen und nicht die fhem.cfg von Hand ändern.

Gruß Christoph
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 17 Dezember 2014, 17:12:58
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
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: Bennemannc am 18 Dezember 2014, 12:53:24
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
Titel: Antw:Berechnung von mehreren Energie-Werten
Beitrag von: klausmrkor am 18 Dezember 2014, 16:51:48
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