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
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
Vielen Dank, doch leider habe keine logfile zum auslesen gefunden,
Irgendetwas haut noch nicht hin.
Gruß
Klaus
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.
Vielen Dank, aber jetzt weiß ich gar nicht mehr weiter.
Wo kann ich das nachlesen?
Gruß Klaus
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.
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
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
Hallo,
mach doch ein userReading, wo du beide Werte addierst und mit 0.0001 multiplizierst.
Gruß Christoph
Hallo,besten Dank für die Antwort,
ich habe es versucht, aber ich weiß einfach nicht weiter.
anbei ein bildschirmfoto.
Gruß Klaus
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
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
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
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
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
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
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
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