[Gelöst] statistic Reading separieren

Begonnen von Vanitas, 11 Januar 2023, 09:46:23

Vorheriges Thema - Nächstes Thema

Vanitas

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: -

Icinger

Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Vanitas

Wie oben beschrieben habe ich egnau das probiert und es funktioniert nicht. Sonst müsste ich hier nicht fragen ;-).

OdfFhem

Hilfreich wäre es, wenn Du das fragliche statistics-Device zeigst ...

Icinger

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)
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Vanitas

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?

KölnSolar

Stefan hats Dir eigentlich mundgerecht geschrieben. Auch noch gekaut ;)attr Deinstatistics singularReadings DeineDect:Energy:Delta:DayEnergy muss dann ein fortlaufender Zähler der Energie(nicht Leistung) sein.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

OdfFhem

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 ...

Vanitas

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:DayEnergy 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?

OdfFhem

@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


Icinger

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
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Vanitas

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.

Icinger

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
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

KölnSolar

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.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Vanitas

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.