Hauptmenü

Mit Readings rechnen ...

Begonnen von fhem:user, 22 Oktober 2015, 15:43:07

Vorheriges Thema - Nächstes Thema

fhem:user

Hallo!

Ich habe mehrere Fibaro Wall-Plugs und lasse mir u.a. den Energieverbrauch ausgeben:


define Energieverbrauch_Waschmaschine readingsGroup Steckdose_Waschmaschine:energy
attr Energieverbrauch_Waschmaschine alias Energieverbrauch Waschmaschine
attr Energieverbrauch_Waschmaschine group Energieverbrauch
attr Energieverbrauch_Waschmaschine room Keller Wäsche
attr Energieverbrauch_Waschmaschine nostate 1
attr Energieverbrauch_Waschmaschine notime 1
attr Energieverbrauch_Waschmaschine mapping %ALIAS


Als Ergebnis sehe ich dann den Energieverbrauch des angeschlossenen Geräts, z.B. 33.57 kWh.
Ok, ich kenne den Verbrauch und ich in kenne meinen Preis pro kWh. Nun würde ich mir gerne ausgeben lassen, was das an den Wall-Plug angeschlossene Gerät an Stromkosten generiert hat. Kann ich mein Reading Energieverbrauch_Waschmaschine irgendwie zum Rechnen benutzen und mir das Ergebnis ausgeben lassen?


viegener

Lies mal in der commandref unter userreadings http://fhem.de/commandref.html#userReadings
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fhem:user

Ok, habe ich mir durchgelesen, aber so ganz werde ich daraus nicht schlau.

Bei mir müsste das dann wie folgt aussehen:

attr Energieverbrauch_Waschmaschine userReadings energy {ReadingsVal("Energieverbrauch_Waschmaschine",??????)*0.2351}

Aus dem Beispiel bin ich nicht ganz schlau geworden, was ich für "counters.A",0 einsetzen muss.

justme1968

#3
userReadings sind dazu um im device das ein reading erzeugt ein davon abgeleitetes reading zu erzeugen. also z.b. mit dem preis zu multiplizieren. du erhältst ein neues reading. das gehört in Steckdose_Waschmaschine nicht in die readingsGroup.

wenn du eine readingGroup hast kannst du jeden angezeigten wert über valueFormat manipulieren. also auch mit einem preis multiplizieren.

bei einem einzigen device ist es normaler weise nicht nötig eine readingGroup zu verwenden. du kannst entweder das originalDevice zum anzeigen verwenden und über stateFormat deine berechnung durchführen. oder du kannst einen readingsProxy verwenden und über die valueFn rechnen.

falls du vor hast in der readingsGroup mehr als ein device zu haben schau dir an wie man mit den werten in der readingsGroup rechnen um z.b. summen oder mittelwerte zu bilden.

zu allem findest du beispiel im wiki.

ansonsten sind vielleicht noch die EMONITOR, statistics und HourCounter module für dich interessant.

gruss
  andre

ps: wenn dir nicht klar ist das du "counters.A" durch das "energy" ersetzen musst und Energieverbrauch_Waschmaschine Steckdose_Waschmaschine sein sollte schau dir das einsteiger pdf und die vielen beispiele im wiki an.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

fhem:user

Hallo Andre,

Danke für deine Nachricht. Ich habe es jetzt über die readingGroup gelöst und mit valueFormat gearbeitet:

attr Energieverbrauch_Waschmaschine valueFormat {current => {sprintf("%.2f EUR",$VALUE*0.2351)}}

Leider liefert mir $VALUE nicht nur rein den numerischen Wert, sondern direkt den Wert inkl. Einheit. Ich hatte hier im Forum schon einen Ansatz gefunden (http://forum.fhem.de/index.php?topic=21247.0) allerdings komme ich damit nicht ganz zurecht. Dort heißt es:
Zitatein s /^([+-]?\d*\.?\d*).*/$1/ sollte die zahl aus einem Reading extrahieren
Ich bin nicht wirklich fit in RegularExpressions, von daher weiß ich nicht, wie ich das jetzt in meine Berechnung mit einbauen kann, so dass aus "xx.xx kWh" ein "xx.xx" wird.

justme1968

nimm $NUM statt $VALUE

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

neidersun

Habe das nur ausprobiert und leider scheint es nicht zu gehen. kann mir eine bitte behilflich sein. :-\

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

neidersun

#8
ich habe das brobiert :

Zitatdefine Verbrauch readingsGroup TYPE=EC3000:state,power,consumption
attr Verbrauch mapping %ALIAS
attr Verbrauch nameStyle style="font-weight:bold"
attr Verbrauch style style="font-size:20px"
attr valueFormat {current => {sprintf("%.2f EUR",$VALUE*0.2549)}}
attr Verbrauch valueFormat {power => "%.1f W", consumption => "%.2f kWh"}
attr Verbrauch valueIcon { state => '%devStateIcon' }
attr Verbrauch valueStyle {($READING eq "power" && $VALUE > 150)?'style="color:red"':'style="color:green"'}

juergs

Hier habe ich auch mit "readingsVal" gehadert.
Die Auflösung, falls jemand suchen sollte :
https://forum.fhem.de/index.php/topic,56660.msg482785.html#msg482785