Hi,
ich versuche meinem Device neue Userreadings beizubringen. Mit einem klappt es ja noch naemlich dieser Codezeile:
attr Wechselrichter userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*44.6*0.12;;}
Dieser Berechnet aus dem vorhandenen Readingvalue "Global Radiation" das neue Reading "EnergyExpected".
Nun will ich aber noch ein zweites erzeugen der aus den vorhanden Weten Strom und Spannung die Leistung berechnet. Deshalb habe ich den Befehl von oben versucht zu erweitern, klappt aber leider nicht.
attr Wechselrichter userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*44.6*0.12;;},
generator.1.power:generator.1.current { return ReadingsVal("Wechselrichter","generator.1.current",0)*generator.1.voltage { ReadingsVal("Wechselrichter","generator.1.voltage",0);;}
Was muss ich machen damit das klappt?
Vielen Dank fuer die Hilfe
deine geschweiften Klammern richtig und vor allem richtigrum setzen?
Das Setzen mehrere userreadings würde ich übrigens immer in eine Funktion in die 99_myUtils auslagern, da kann man sehr viel übersichtlicher arbeiten.
Zitat von: Heiner am 17 April 2014, 08:35:49 attr Wechselrichter userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*44.6*0.12;;},
generator.1.power:generator.1.current { return ReadingsVal("Wechselrichter","generator.1.current",0)*generator.1.voltage { ReadingsVal("Wechselrichter","generator.1.voltage",0);;}
Ich denke, dass der Teil "generator.1.voltage {" zu viel ist. Versuch's mal so:
attr Wechselrichter userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*44.6*0.12;;},
generator.1.power:generator.1.current { return ReadingsVal("Wechselrichter","generator.1.current",0) * ReadingsVal("Wechselrichter","generator.1.voltage",0);;}
@ Betateilchen: Leider bin ihc ein doofer Anfaenger und brauche sehr konkretes Feedback. Ich habs nun so versucht, geht aber auch nicht:
attr Wechselrichter userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*44.6*0.12;;}, generator.1.power:generator.1.current { return ReadingsVal("Wechselrichter","generator.1.current",0)}*generator.1.voltage { ReadingsVal("Wechselrichter","generator.1.voltage",0)}
alles in einer Zeile.
Wie ich das in die 99_myUtils reinbekomme weiss ich gleich gar nicht, leider.
Kannst du etwas konkreter werden bitte?
@Thorsten:
klappt leider auch nicht.
Geht das nicht irgendwie auch simpler? Lassen wir mal den ersten Teil weg fuer den Moment, ich glaube zu wissen das ich mittels "," diesen Teil jederzeit wieder reinbekommen kann.
Nun will ich also 2 Readings miteinander multiplizieren und das Ergebnis als weiteres Reading haben, damit ich mir das in ein logfile schrieben kann. wie geth das in der simpelsten Methode?
attr Wechselrichter userReadings power:current { return ReadingsVal("Wechselrichter","current",0)}*voltage { readingsVal("Wechselrichter","voltage",0)}
so gehts offensichtlich nicht 9 ich hab die Namen hier ein wenig gekuertzt um die Uebersichtlichkeit zu erhoehen
Danke nochmals fuer jeden Hinweis
versuchs mal so:
attr Wechselrichter userReadings power:current { ReadingsVal("Wechselrichter","current",0) * readingsVal("Wechselrichter","voltage",0)}
Der Name des neuen readings ist power, er wird immer dann berechnet, wenn ein neues reading von current eintrifft, und dann wird current mit voltage multipliziert.
Gruß Joachim
Hi,
klappt leider nicht. es wird kein neues Reading fuer Power erzeugt. Aber auch keine Fehlermeldung im Log.
Zeig mal deine fhem.cfg
Hallo, hier kommt sie:
define Wechselrichter KOSTALPIKO 192.168.178.xx xxxxx xxxx
attr Wechselrichter delay 60
attr Wechselrichter delayCounter 4
attr Wechselrichter group PV-Anlage
attr Wechselrichter loglevel 4
attr Wechselrichter userReadings generator.1.power:generator.1.current { ReadingsVal("Wechselrichter","generator.1.current",0) * ReadingsVal("Wechselrichter","generator.1.voltage",0)}
und ein screenshot aus fhem