FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Heiner am 17 April 2014, 08:35:49

Titel: mehrere neue Userreadings
Beitrag von: Heiner am 17 April 2014, 08:35:49
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
Titel: Antw:mehrere neue Userreadings
Beitrag von: betateilchen am 17 April 2014, 09:16:03
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.
Titel: Antw:mehrere neue Userreadings
Beitrag von: Thorsten Pferdekaemper am 17 April 2014, 09:24:08
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);;}
Titel: Antw:mehrere neue Userreadings
Beitrag von: Heiner am 17 April 2014, 14:13:17
@ 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
Titel: Antw:mehrere neue Userreadings
Beitrag von: Joachim am 17 April 2014, 15:02:42
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
Titel: Antw:mehrere neue Userreadings
Beitrag von: Heiner am 23 April 2014, 09:02:31
Hi,

klappt leider nicht. es wird kein neues Reading fuer Power erzeugt. Aber auch keine Fehlermeldung im Log.
Titel: Antw:mehrere neue Userreadings
Beitrag von: Joachim am 23 April 2014, 11:51:19
Zeig mal deine fhem.cfg
Titel: Antw:mehrere neue Userreadings
Beitrag von: Heiner am 25 April 2014, 08:06:10
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