Hallo Zusammen
Ich habe eine statistics Funktion auf meine FritzBox Dect 200 gelegt, die die Leistung meines Balkonkraftwerks aufzeichnen soll. Nun würde ich gerne einmal täglich die erbrachte Leistung in ein Logfile schreiben. Der Punkt an dem es bei mir hapert ist folgender:
Mit der statistics Funktion taucht das Reading statEnergyLast auf. Den dortigen Day Wert würde ich gerne verwenden für das Logfile. Nur wie kann ich diesen sparieren? Denn dort tauchen ja auch Werte Hour, Month, Year auf. Habe bereits versucht mit singularReadings weiterzukommen, allerdings ohne Erfolg.
Die Readings die mir aktuell durch das statistics Modul zur Verfügung stehen sehen wie folgt aus:
statEnergy Hour: 4 Day: 4 Month: 534 Year: 534 (since: 2023-01-10 )
statEnergyLast Hour: 0 Day: 530 Month: - Year: -
Stichwort singularReadings
Wie oben beschrieben habe ich egnau das probiert und es funktioniert nicht. Sonst müsste ich hier nicht fragen ;-).
Hilfreich wäre es, wenn Du das fragliche statistics-Device zeigst ...
Zitat von: Vanitas am 11 Januar 2023, 19:01:31
Wie oben beschrieben habe ich egnau das probiert und es funktioniert nicht. Sonst müsste ich hier nicht fragen ;-).
Hmm, also ich sehe in deinem ersten Beitrag keinen Hinweis darauf, dass du singularReadings verwendest.
Auszug aus der commandref vom statistics:
singularReadings <GerätRegExp:GeräteWertRegExp:Statistiktyp:Zeitraum>
Statistik-Typ: Min|Avg|Max|Delta|DurationState|Tendency
Zeitraum: Hour|Day|Month|Year|1h|2h|3h|6h
Regulärer Ausdruck statistischer Werte, die zusätzlich auch als einzelne Werte gespeichert werden sollen. Erleichtert die Erzeugung von Plots und anderer Auswertungen (notify).
Für "duration"-Gerätewerte muss der Name des jeweiligen Statuswertes als Statistiktyp eingesetzt werden.
Beispiel:
Wettersensor:rain:Delta:(Hour|Day)|FritzDect:power:Delta:Day
Wettersensor:rain:Delta:(Hour|Day)|FritzDect:power:Delta:Day
Für deinen Fall also zB sowas wie
.*:energy:(Max|Delta):(Hour|Day|Month|Year)
Hmm, dachte der Satz "Habe bereits versucht mit singularReadings weiterzukommen, allerdings ohne Erfolg." wäre ein Hinweis darauf das ich es damit probiert habe...
Die interessanten Readings vom statistic Device habe ich ja gepostet, oder was genau wird noch gebraucht?
Stefan hats Dir eigentlich mundgerecht geschrieben. Auch noch gekaut ;)attr Deinstatistics singularReadings DeineDect:Energy:Delta:Day
Energy muss dann ein fortlaufender Zähler der Energie(nicht Leistung) sein.
Zitat von: Vanitas am 11 Januar 2023, 20:05:35
Die interessanten Readings vom statistic Device habe ich ja gepostet, oder was genau wird noch gebraucht?
Readings können interessant sein, aber damit wird KEIN Device definiert. Glaskugel hole ich selten raus ... daher "copy for forum", "list" oder "Raw definition" nutzen.
Zitat von: Vanitas am 11 Januar 2023, 20:05:35
Hmm, dachte der Satz "Habe bereits versucht mit singularReadings weiterzukommen, allerdings ohne Erfolg." wäre ein Hinweis darauf das ich es damit probiert habe...
Nachträgliches Editieren von singleReadings in singularReadings ändert nichts am ersten Eindruck ...
Zitat von: KölnSolar am 11 Januar 2023, 20:23:30
Stefan hats Dir eigentlich mundgerecht geschrieben. Auch noch gekaut ;)attr Deinstatistics singularReadings DeineDect:Energy:Delta:Day
Energy muss dann ein fortlaufender Zähler der Energie(nicht Leistung) sein.
Also auf die Art den Tag zu separieren ist klar, allerdings ist dies dann ein Wert der sich minütlich aktualisiert. Ich möchte allerdings nur einmal am Ende des Tages die Leistung in ein Log-File schreiben, weshalb an sich statEnergyLast interessant wäre. Diese wird aber vom statistic-Modul erstellt und lässt sich auf diese Art nicht zerlegen, zumindest kommen da keine sinnvollen Sachen bei raus.
Ist es möglich die vom statistic-Modul automatisch erstellten Readings weiter zu separieren? Oder wie kann ich Alternativ den minütlich aktualisierten Day Wert nur einmal am Tag wegschreiben?
@Vanitas
Du scheinst ja nicht gerne was zeigen zu wollen ... dann doch mal die Glaskugel raus und ich sehe:
setstate Plug3 2023-01-12 02:15:35 statUserRead_energyConsDay 100.07194450474
setstate Plug3 2023-01-11 23:59:54 statUserRead_energyConsDayLast 850.84500002872
ZitatDu scheinst ja nicht gerne was zeigen zu wollen ...
Vlt. is es ja ein absolutes Geheimprojekt, und er muss uns töten, wenn wir zuviel wissen? :-X :-X
Einmal das staistic Modul:
define Balkonkraftwerk_Statistik statistics FBDECT_FB_6490_11630_0323795
setuuid Balkonkraftwerk_Statistik 63bc7dba-f33f-ff41-e759-7cbce976d748dbf7
attr Balkonkraftwerk_Statistik deltaReadings energy
attr Balkonkraftwerk_Statistik singularReadings FBDECT_FB_6490_11630_0323795:energy:Delta:Day
attr Balkonkraftwerk_Statistik alias Balkonkraftwerk Statistik
attr Balkonkraftwerk_Statistik group Balkonkraftwerk
attr Balkonkraftwerk_Statistik icon measure_photovoltaic_inst
attr Balkonkraftwerk_Statistik room Zentralfunktionen
Einmal die Readings des Gerätes dazu:
AIN 11630 0323795
FBNAME FRITZ!DECT 200 #1
FBPROP microphone,switch,powerMeter,tempSensor,switch
FBTYPE FRITZ!DECT 200
ID 16
IODev FB_6490
devicelock no
energy 2585 Wh
fwversion 04.25
locked no
mode manuell
power 0.00 W
present yes
statEnergy Hour: 0 Day: 0 Month: 768 Year: 768 (since: 2023-01-10 )
statEnergyDay 0
statEnergyLast Hour: 0 Day: 238 Month: - Year: -
statPowerDay Min: 0.00 Avg: 0.00 Max: 0.00
statPowerDayLast Min: 0.00 Avg: 9.91 Max: 148.98
statPowerMonth Min: 0.00 Avg: 13.13 Max: 333.30 (since: 2023-01-09_21:41:39 )
statPowerYear Min: 0.00 Avg: 13.13 Max: 333.30 (since: 2023-01-09_21:41:39 )
statTemperatureDay Min: 11.0 Avg: 11.0 Max: 11.0
statTemperatureDayLast Min: 10.0 Avg: 11.0 Max: 12.5
statTemperatureMonth Min: 9.5 Avg: 10.9 Max: 12.5 (since: 2023-01-09_21:41:39 )
statTemperatureYear Min: 9.5 Avg: 10.9 Max: 12.5 (since: 2023-01-09_21:41:39 )
statVoltageDay Min: 230.188 Avg: 233.893 Max: 237.438
statVoltageDayLast Min: 229.878 Avg: 233.047 Max: 236.033
statVoltageMonth Min: 229.878 Avg: 233.499 Max: 237.438 (since: 2023-01-09_21:41:39 )
statVoltageYear Min: 229.878 Avg: 233.499 Max: 237.438 (since: 2023-01-09_21:41:39 )
state off
tempadjust 0.0 C
temperature 11.0 C (measured)
voltage 231.151 V
Den Tageswert separieren ist wie gesagt nicht das Problem, aber dann habe ich minütlich Werte. Und an den DayLast Wert komme ich so nicht ran bzw. kann diesen nicht separieren.
Also bei mir werden auch die "Last" als Einzelreadings erstellt.
setstate PoolStrom_attr 2023-01-12 08:50:05 statEnergy_totalDay 0.68
setstate PoolStrom_attr 2023-01-11 23:59:57 statEnergy_totalDayLast 3.60
setstate PoolStrom_attr 2023-01-12 08:50:05 statEnergy_totalHour 0.14
setstate PoolStrom_attr 2023-01-12 07:59:56 statEnergy_totalHourLast 0.14
Einziger Unterschied zu meiner Def, den ich sehen kann, ist die Regex im singularReading:
PoolStrom_attr:energy_total:(Max|Delta):(Hour|Day|Month|Year)
Keine Ahnung mehr, warum ich das Max da mit drinnen habe, das Modul läuft seit Jahren, ohne dass ich es angegriffen habe.
PS: Grade kurz gegoogelt, ob mich meine Erinnerung nicht täuscht:
Es gibt scheinbar wirklich Probleme mit der singular/Delta-Kombination, zB
https://forum.fhem.de/index.php/topic,115506.msg1102080.html#msg1102080 (https://forum.fhem.de/index.php/topic,115506.msg1102080.html#msg1102080)
ZitatAlso bei mir werden auch die "Last" als Einzelreadings erstellt.
Genau. Ich kann mir das nur durch ungeduldiges Gefummel am device erklären, wenn es kein DayLast reading gibt.
ZitatOder wie kann ich Alternativ den minütlich aktualisierten Day Wert nur einmal am Tag wegschreiben?
DayLast gibt es nur einmal am Tag zum Tageswechsel.
Zitat von: KölnSolar am 12 Januar 2023, 09:18:16
Genau. Ich kann mir das nur durch ungeduldiges Gefummel am device erklären, wenn es kein DayLast reading gibt.
Eine schöne aber unnötige Bemerkung ;)
Außer mir ist da keiner dran und was ich gemacht habe steht oben. Statistics Modul angewandt und leider taucht der DayLast Einzelwert nicht auf.
Zitat von: KölnSolar am 12 Januar 2023, 09:18:16
DayLast gibt es nur einmal am Tag zum Tageswechsel.
Das ist klar. Aber es geht ja darum das dieses nicht auftaucht und daher die Frage nach einer alternativen Lösung. Wenn es das gebe bräuchte ich hier ja nicht fragen. Vielleicht weiß ja wer warum das nicht auftaucht (vielleicht generell bei diesem Device nicht?). Oder weiß wie ich sonst den normalen Day Wert dazu bekomme nur einmal am Ende des Tages im Log aufzutauchen.
Das schon probiert??
ZitatEinziger Unterschied zu meiner Def, den ich sehen kann, ist die Regex im singularReading
PS: Wo bleibt denn eigentlich betateilchen mit seinem Popcorn?
@Vanitas
Die bereinigte Version (ohne ?setuuid?,alias,group,icon,room) Deiner gezeigten Definition (vermutlich aus fhem.cfg kopiert)
defmod Test_Statistik statistics ftuitest
attr Test_Statistik deltaReadings energy1
attr Test_Statistik singularReadings ftuitest:energy1:Delta:(Day|Hour)
erzeugt
setstate ftuitest 2023-01-13 06:38:36 statEnergy1 Hour: 0.5 Day: 0.6 Month: 0.6 Year: 0.6 (since: 2023-01-13_05:33:43 )
setstate ftuitest 2023-01-13 06:38:36 statEnergy1Day 0.6
setstate ftuitest 2023-01-13 06:38:36 statEnergy1Hour 0.5
setstate ftuitest 2023-01-13 05:59:55 statEnergy1HourLast 0.1
setstate ftuitest 2023-01-13 05:59:55 statEnergy1Last Hour: 0.1 Day: - Month: - Year: - (since: 2023-01-13_05:33:43 )
und funktioniert wie erwartet ... DayLast braucht nur noch ein bisschen Zeit ...
Okay, Danke soweit. Ich werde das nochmal probieren. Werde einmal das statistic Modul rauswerfen sowie die dadurch erzeugten readings und es nochmals neu einbinden und schauen ob es klappt.
Edit: Okay, gerade reingeschaut und nun taucht es auf. Problem war also einfach das es nicht direkt leer erstellt wurde sondern man halt einen Tag drauf warten musste. Damit komme ich nun weiter.
Danke an alle.