Stromkosten Berechnung Innr SP120

Begonnen von TottiToad, 04 Februar 2020, 16:00:38

Vorheriges Thema - Nächstes Thema

Starsurfer

Zitat von: TottiToad am 06 Februar 2020, 12:10:40
Und jetzt nochmal für doofe  :P ?
Mit dem ElectricityCalculator so wie ihn @Starsurfer angelegt hat, bekomme ich die bisherigen Gesamtkosten, oder ? Und das fortlaufend über die Jahre hinweg ?

Wie daraus jetzt Tages / Wochen / Monats / Jahres Werte raus generieren ?

Grüße & Danke weiterhin
Totti

Sieht bei mir so aus wie im angehängten Bild, ob man da irgendwie eine Übersicht über Jahre hinbekommt weiß ich nicht.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

TottiToad

Zitat von: Starsurfer am 06 Februar 2020, 17:47:45
Sieht bei mir so aus wie im angehängten Bild, ob man da irgendwie eine Übersicht über Jahre hinbekommt weiß ich nicht.

Das sieht schon Super aus !
Im Prinzip will ich es so umsetzen wie Du bei Verrauch Steckdosen hast.
Darf ich Fragen wie du das konkret gemacht hast ?

Grüße
Totti

Starsurfer

Hier mal die RAW Auszug, muss natürlich auf deine Steckdosen angepasst werden.
defmod r_Verbrauch.Steckdosen readingsGroup <%measure_power>,<Zählerstand>,<aktuelle Leistung>,<Tagesverbrauch=>>,<Heute>,<Tagesverbrauch=>>,<Gestern>,<Monat>,<Jahr>,<€-Reserve> \
.*(Gefrierschrank_Verbrauch|GefrierschrankHinten_Verbrauch|Server_Verbrauch|Terrarium_Verbrauch|Terrarium2_Verbrauch|Kuehlschrank_Verbrauch|Steckdose_SaschaPC_Verbrauch|Heizung_Verbrauch):consumption_CounterCurrent,consumption_PowerCurrent,consumption_EnergyDay,consumption_EnergyCostDay,consumption_EnergyDayLast,consumption_EnergyCostDayLast,consumption_EnergyCostMonth,consumption_EnergyCostMeter,consumption_FinanceReserve
attr r_Verbrauch.Steckdosen DbLogExclude .*
attr r_Verbrauch.Steckdosen mapping %ALIAS
attr r_Verbrauch.Steckdosen nameStyle style="color:black"
attr r_Verbrauch.Steckdosen room Energie
attr r_Verbrauch.Steckdosen valueFormat {'consumption_CounterCurrent' =>"%09d",\
'consumption_PowerCurrent' =>"%.0f W",\
'consumption_EnergyDay'=> "%.1f kWh",\
'consumption_EnergyCostDay' => "%.2f €",\
'consumption_EnergyDayLast' => "%.1f kWh",\
'consumption_EnergyCostDayLast'=> "%.2f €",\
'consumption_EnergyCostMonth'=> "%.2f €",\
'consumption_EnergyCostMeter'=> "%.2f €",\
'consumption_FinanceReserve' => "%.2f €"\
}
attr r_Verbrauch.Steckdosen valueStyle {\
'consumption_CounterCurrent' => '{"style=\"color:#".substr(Color::pahColor(0,1000,3000,$VALUE,0),0,6)."\""}',\
'consumption_PowerCurrent' => '{"style=\"color:#".substr(Color::pahColor(0,6000,15000,$VALUE,1),0,6)."\""}',\
'consumption_EnergyDayLast' => '{"style=\"color:#".substr(Color::pahColor(0,15,20,$VALUE,3),0,6)."\""}',\
'consumption_EnergyDay' => '{"style=\"color:#".substr(Color::pahColor(0,15,20,$VALUE,0),0,6)."\""}',\
'consumption_EnergyCostDay' => '{"style=\"color:#".substr(Color::pahColor(0,2,5,$VALUE,0),0,6)."\""}',\
'consumption_EnergyCostDayLast' => '{"style=\"color:#".substr(Color::pahColor(0,2,5,$VALUE,0),0,6)."\""}',\
'consumption_EnergyCostMonth' => '{"style=\"color:#".substr(Color::pahColor(0,15,30,$VALUE,0),0,6)."\""}',\
'consumption_EnergyCostMeter' => '{"style=\"color:#".substr(Color::pahColor(0,90,150,$VALUE,0),0,6)."\""}',\
'consumption_FinanceReserve' => '{"style=\"color:#".substr(Color::pahColor(0,200,400,$VALUE,0),0,6)."\""}'\
}


FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Beta-User

Nur mal zum Vergleich...

Habe eben mal statistics definiert (die Namen der beiden innr enden mit _Verbrauch):
defmod Statistik statistics .*_Verbrauch
attr Statistik deltaReadings Consumption_Total
attr Statistik singularReadings .*:Consumption_Total:Delta:Day

Etwas warten oder "set Statistik doStatistics", schon hat man - ausgehend von dem bereits definierten userReading - Werte in den Devices, die man mitloggen kann, wie das aktuelle Tagesdelta...

Ebenfalls super-easy, finde ich...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TottiToad

Zitat von: Beta-User am 06 Februar 2020, 23:03:32
Nur mal zum Vergleich...

Habe eben mal statistics definiert (die Namen der beiden innr enden mit _Verbrauch):
defmod Statistik statistics .*_Verbrauch
attr Statistik deltaReadings Consumption_Total
attr Statistik singularReadings .*:Consumption_Total:Delta:Day

Etwas warten oder "set Statistik doStatistics", schon hat man - ausgehend von dem bereits definierten userReading - Werte in den Devices, die man mitloggen kann, wie das aktuelle Tagesdelta...

Ebenfalls super-easy, finde ich...

Dank Dir, habe es heute Nachmittag ähnlich eingerichtet (etwas komplizierte ;) ) und lasse es gerade parallel zum ElectricityCalculator Modul laufen.
So kann ich mal sehen wie ich was machen kann und wer wie wo was für Werte ausgibt.


Zitat von: Starsurfer am 06 Februar 2020, 21:03:46
Hier mal die RAW Auszug, muss natürlich auf deine Steckdosen angepasst werden.

Auch ein Riesen Dank an Dich !
Habs auch direkt mal umgesetzt
.

Was mir aufgefallen ist, das ich keine Werte im Reading consumption_PowerCurrent habe - also der Wert bleibt bei 0
Im Gegensatz erhalte ich consumption_PowerDayAver Werte - also den Mittelwert

Woran kann das liegen ? Bzw. der power Wert ist ja im anderen Sensor als Reading und nicht beim Sensor mit dem consumption und in dem die "neuen" Readings vom Modul auftauchen.
Verstehe nicht wirklich warum dürren nicht angezeigt wird, avg jedoch schon

Grüße & weiterhin Riesen Dank
Totti


P.S.: So langsam verstehe ich das Modul Statistics etwas besser  ;)

Starsurfer

#20
Zitat von: TottiToad am 06 Februar 2020, 23:40:04
Was mir aufgefallen ist, das ich keine Werte im Reading consumption_PowerCurrent habe - also der Wert bleibt bei 0
Im Gegensatz erhalte ich consumption_PowerDayAver Werte - also den Mittelwert

Woran kann das liegen ? Bzw. der power Wert ist ja im anderen Sensor als Reading und nicht beim Sensor mit dem consumption und in dem die "neuen" Readings vom Modul auftauchen.
Verstehe nicht wirklich warum dürren nicht angezeigt wird, avg jedoch schon

Kein Problem, ich freue mich auch immer, wenn ich im Forum Beispiele aus der Praxis finde.
Das ist bei mir auch so, dort werden nur sporadisch mal Werte angezeigt. Ich habe mich bisher aber noch nicht weiter drum gekümmert, da ich mir das direkt bei den Steckdosen anzeigen lasse.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

TottiToad

Zitat von: Starsurfer am 07 Februar 2020, 08:27:49
Das ist bei mir auch so, dort werden nur sporadisch mal Werte angezeigt. Ich habe mich bisher aber noch nicht weiter drum gekümmert, da ich mir das direkt bei den Steckdosen anzeigen lasse.

Ah Ok ! Dann scheint es eher ein grundsätzliches Problem zu sein.
Ich lasse es mir ja auch über die Steckdose anziehen, jedoch wäre bei einer Readinggroup dann schon super alles im Gesamtüberblick zu haben.


Grüße & Danke
Totti

TottiToad

Hi,

So denn ich habe mir jetzt was "gebastelt", ich denke man wird schnell sehen, das programmieren nicht ganz meins ist  ;)

Wäre schön wenn ich dazu nen Feedback und Verbesserungsvorschläge oder Fragen bekomme

Ein Sensor Verbrauch (Consumption):

defmod Sensor_Server_Verbrauch HUEDevice sensor 2  IODev=deCONZ
attr Sensor_Server_Verbrauch DbLogExclude .*
attr Sensor_Server_Verbrauch DbLogInclude consumption,kWh,ConsumptionTotal
attr Sensor_Server_Verbrauch IODev deCONZ
attr Sensor_Server_Verbrauch group Steckdose1
attr Sensor_Server_Verbrauch model SP 120
attr Sensor_Server_Verbrauch room Energie
attr Sensor_Server_Verbrauch sortby 2
attr Sensor_Server_Verbrauch stateFormat {sprintf "%.0f Wh", ReadingsVal($name, "consumption", 0)}
attr Sensor_Server_Verbrauch subType switch
attr Sensor_Server_Verbrauch userReadings kWh:consumption.* monotonic {sprintf("%.1f",ReadingsVal($name,"consumption",0)/1000)}, Kosten_Gesamt:consumption.* { ReadingsVal($name,"kWh",0)*ReadingsNum("kWh_Price","state",0.25) . " €"}, ConsumptionTotal:consumption.* monotonic { ReadingsVal("Sensor_Server_Verbrauch","consumption",0)/1000 }, Kosten_Tag { ReadingsVal($name,"statConsumptionTotalDay",0)*0.25 . " €"}, Kosten_Monat { ReadingsVal($name,"statConsumptionTotalMonth",0)*0.25 . " €"}, Kosten_Jahr { ReadingsVal($name,"statConsumptionTotalYear",0)*0.25 . " €"}, Kosten_Gestern { ReadingsVal($name,"statConsumptionTotalDayLast",0)*0.25 . " €"}


Der Sensor mit Power:

defmod Sensor_Server_Power HUEDevice sensor 3  IODev=deCONZ
attr Sensor_Server_Power DbLogExclude .*
attr Sensor_Server_Power DbLogInclude current,power
attr Sensor_Server_Power IODev deCONZ
attr Sensor_Server_Power group Steckdose1
attr Sensor_Server_Power room Energie
attr Sensor_Server_Power sortby 3
attr Sensor_Server_Power stateFormat current mA <br>power W


Das Modul Statistics für die Steckdosen:

defmod VerbrauchStatistik statistics .*_Verbrauch.*
attr VerbrauchStatistik deltaReadings ConsumptionTotal
attr VerbrauchStatistik room Energie
attr VerbrauchStatistik singularReadings .*:ConsumptionTotal:Delta:(Hour|Day|Week|Month|Year)


Die dazugehörige Readingsgroup:

defmod Gruppe_Verbrauch_Steckdosen readingsGroup <aktuelle Leistung>,<Tagesverbrauch=>>,<Heute>,<Tagesverbrauch=>>,<Gestern>,<Monat>,<Jahr> \
(Sensor_TV_Verbrauch|Sensor_Server_Verbrauch|):power@{$DEVICE=~s/_Verbrauch/_Power/;;$DEVICE;;},statConsumptionTotalDay,Kosten_Tag,statConsumptionTotalDayLast,Kosten_Tag_Gestern,Kosten_Monat,Kosten_Jahr
attr Gruppe_Verbrauch_Steckdosen DbLogExclude .*
attr Gruppe_Verbrauch_Steckdosen mapping %ALIAS
attr Gruppe_Verbrauch_Steckdosen nameStyle style="color:black"
attr Gruppe_Verbrauch_Steckdosen room Energie
attr Gruppe_Verbrauch_Steckdosen valueFormat {'consumption_CounterCurrent' =>"%09d",\
'power' =>"%.0f W",\
'statConsumptionTotalDay'=> "%.1f kWh",\
'Kosten_Tag' => "%.2f €",\
'statConsumptionTotalDayLast' => "%.1f kWh",\
'Kosten_Tag_Gestern'=> "%.2f €",\
'Kosten_Monat'=> "%.2f €",\
'Kosten_Jahr'=> "%.2f €",\
}
attr Gruppe_Verbrauch_Steckdosen valueStyle {\
'power' => '{"style=\"color:#".substr(Color::pahColor(0,6000,15000,$VALUE,1),0,6)."\""}',\
'statConsumptionTotalDay' => '{"style=\"color:#".substr(Color::pahColor(0,15,20,$VALUE,3),0,6)."\""}',\
'Kosten_Tag' => '{"style=\"color:#".substr(Color::pahColor(0,15,20,$VALUE,0),0,6)."\""}',\
'statConsumptionTotalDayLast' => '{"style=\"color:#".substr(Color::pahColor(0,2,5,$VALUE,0),0,6)."\""}',\
'Kosten_Tag_Gestern' => '{"style=\"color:#".substr(Color::pahColor(0,2,5,$VALUE,0),0,6)."\""}',\
'Kosten_Monat' => '{"style=\"color:#".substr(Color::pahColor(0,15,30,$VALUE,0),0,6)."\""}',\
'Kosten_Jahr' => '{"style=\"color:#".substr(Color::pahColor(0,90,150,$VALUE,0),0,6)."\""}',\
}


Bezüglich dem Userreading beim Sensor habe ich ein paar Fragen:
- wie kann ich bei den kWh Preis irgendwie als Reading oder so übergeben ? Ich habe ja jetzt mehrmals jeweils den Preisangegeben, besser und übersichtlicher wäre ja wenn ich es irgendwoher übergebe.
- dann würde ich noch gerne wissen, ob es irgendwie möglichst ist userReadings in mehrere Zeilen zu definieren. Es ist jetzt alles in einer meeeega langen Zeile.
Wenn Ich nach dem Komma in den nächsten Absatz gehe bei der definition, funktioniert es nicht mehr ? (Ich hoffe ihr wisst wie und was ich meine !)


Wenn ich das mal alles habe, schaue ich mal wie ich das ganze in einen Plot bekomme


Hoffe ihr könnt auch hier weiterhelfen

Grüße & Danke
Totti

Beta-User

Auf die Schnelle:

Den Preis mußt du nur als "state" in ein Gerät (z.B. Dummy) bringen, der "kWh_Price" heißt, und ansonsten verstehe ich gewisse Doppelungen in dem userReadings nicht...

Warum du nicht bei den power-Geräten "event-on-..." verwendest, verstehe ich auch nicht, ebensowenig warum du da überhaupt was logst.

(Überhaupt: Warum die Kosten loggen? Verbauch kann man beeinflussen, Anzeige mit stateFormat machen, damit die Mitbewohner sehen, was passiert, aber loggen?)

MMn. ist weniger mehr...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Starsurfer

Wenn Du die Userreading untereinander haben willst, schau dir mal stateFormat an.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

TottiToad

Zitat von: Beta-User am 07 Februar 2020, 17:41:13
Auf die Schnelle:

Den Preis mußt du nur als "state" in ein Gerät (z.B. Dummy) bringen, der "kWh_Price" heißt, und ansonsten verstehe ich gewisse Doppelungen in dem userReadings nicht...

Warum du nicht bei den power-Geräten "event-on-..." verwendest, verstehe ich auch nicht, ebensowenig warum du da überhaupt was logst.

(Überhaupt: Warum die Kosten loggen? Verbauch kann man beeinflussen, Anzeige mit stateFormat machen, damit die Mitbewohner sehen, was passiert, aber loggen?)

MMn. ist weniger mehr...

Mit dem Preis probiere ich später mal aus, Danke !

Mit dem loggen gebe ich Dir vollkommen Recht, hab ich so auch nicht unbedingt am Ende vor. Zur Zeit logge ich ja "nur" cosumption, power, KWh und consumptionTotal mit.
Werd ich aber auch noch ändern, jenachdem wie und was ich noch in Graphen darstellen will.

Mit den Dopplungen muss ich mal schauen was Du da meinst.

Bin erstmal froh es vom Ergebnis so zu haben wie gehofft, jetzt gehts darum es zu verbessern und "unnsiinges" zu entfernen.


Zitat von: Starsurfer am 07 Februar 2020, 17:58:33
Wenn Du die Userreading untereinander haben willst, schau dir mal stateFormat an.

Es geht mir darum das ich die UserReadings beim "definieren" der übersichtshalber auf mehrere Zeilen schrieben wollte.

Das ist ja zur Zeit alles in EINER ewig langen Zeile

attr Sensor_Server_Verbrauch userReadings kWh:consumption.* monotonic {sprintf("%.1f",ReadingsVal($name,"consumption",0)/1000)}, Kosten_Gesamt:consumption.* { ReadingsVal($name,"kWh",0)*ReadingsNum("kWh_Price","state",0.25) . " €"}, ConsumptionTotal:consumption.* monotonic { ReadingsVal("Sensor_Server_Verbrauch","consumption",0)/1000 }, Kosten_Tag { ReadingsVal($name,"statConsumptionTotalDay",0)*0.25 . " €"}, Kosten_Monat { ReadingsVal($name,"statConsumptionTotalMonth",0)*0.25 . " €"}, Kosten_Jahr { ReadingsVal($name,"statConsumptionTotalYear",0)*0.25 . " €"}, Kosten_Gestern { ReadingsVal($name,"statConsumptionTotalDayLast",0)*0.25 . " €"}


Würde es gerne ungefähr so machen:
code]
attr Sensor_Server_Verbrauch userReadings kWh:consumption.* monotonic {sprintf("%.1f",ReadingsVal($name,"consumption",0)/1000)},
Kosten_Gesamt:consumption.* { ReadingsVal($name,"kWh",0)*ReadingsNum("kWh_Price","state",0.25) . " €"},
ConsumptionTotal:consumption.* monotonic { ReadingsVal("Sensor_Server_Verbrauch","consumption",0)/1000 },
Kosten_Tag { ReadingsVal($name,"statConsumptionTotalDay",0)*0.25 . " €"},
Kosten_Monat { ReadingsVal($name,"statConsumptionTotalMonth",0)*0.25 . " €"},
Kosten_Jahr { ReadingsVal($name,"statConsumptionTotalYear",0)*0.25 . " €"},
Kosten_Gestern { ReadingsVal($name,"statConsumptionTotalDayLast",0)*0.25 . " €"}
[/code]

So funktioniert es jedoch nicht

Grüße
Totti