[gelöst] Wie definiere ich singularReadings für Statisiken?

Begonnen von Burny4600, 22 November 2015, 12:09:28

Vorheriges Thema - Nächstes Thema

Burny4600

Habe wie folgt die Definition durchgeführt:
define EnergieOG2statW statistics EnergieOG2
attr EnergieOG2statW alias Energieverbrauch OG2 W
attr EnergieOG2statW dayChangeTime 00:00
attr EnergieOG2statW event-on-change-reading EnergieOG2:electricityPower
attr EnergieOG2statW ignoreDefaultAssignments 1
attr EnergieOG2statW singularReadings EnergieOG2:electricityPower:(Min|Avg|Max):(Hour|Day|Month|Year)
define FileLog_EnergieOG2statW FileLog /media/hdd/fhem/log/energiezaehler/EnergieOG2statW-%Y.log EnergieOG2:statelectricityPower.*
define SVG_EnergieOG2statW SVG FileLog_EnergieOG2statW:SVG_EnergieOG2statW:CURRENT


Trotzdem bekomme ich keine Werte in das LogFile.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Die Readings werden von statistics in das entsprechende Device geschrieben (bei dir EnergieOG2). Dort musst du sie auch loggen und ggf. event-on-.* anpassen.

Burny4600

Definiert wäre ja das mit electricityPower.
Im Gerät EnergieOG2 werden folgende readings erfast: electricityPower, electricityConsumed, electricityConsumed_kWh.

Habe ich hier einen Definitionsfehler?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

statistics bietet sigularReadings und minAvgMaxReadings Readings.  Ich denke, das zweite Attribut fehlt dir noch. Dann sollten die Readings im Device EnergieOG2 landen.

Das hier macht im stastistics Device keinen Sinn

attr EnergieOG2statW event-on-change-reading EnergieOG2:electricityPower



Burny4600

Gut das habe ich soweit geändert und sieht jetzt so aus:

define EnergieOG2statW statistics EnergieOG2
attr EnergieOG2statW alias Energieverbrauch OG2 W
attr EnergieOG2statW dayChangeTime 00:00
attr EnergieOG2statW ignoreDefaultAssignments 1
attr EnergieOG2statW minAvgMaxReadings electricityPower.*
attr EnergieOG2statW singularReadings EnergieOG2:electricityPower.*:(Min|Avg|Max):(Hour|Day|Month|Year)
define FileLog_EnergieOG2statW FileLog /media/hdd/fhem/log/energiezaehler/EnergieOG2statW-%Y.log EnergieOG2:statelectricityPower.*
define SVG_EnergieOG2statW SVG FileLog_EnergieOG2statW:SVG_EnergieOG2statW:CURRENT


Trotzdem habe ich keine Einträge im FileLog_EnergieOG2statW File.

Weiters ist mir gerade aufgefallen das unter Readings folgendes vermerkt ist.
monitoredDevicesUnsupportedt.

Irgendwo muß ich hier noch einen grundsätzlichen Fehler haben.


LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Wie oben in meinem ersten Post schon gesagt: Die readings werden in das Device (bei dir EnergieOG2) geschrieben. Also musst du sie auch dort loggen. Deine Logfile-Definition zeigt aber auf das statistics Device.

Burny4600

#6
Folgendes Ziel möchte ich hier erreichen:
Das Gerät Stromzähler (EnegrieOG2) hat die Readings electricityConsumed,electricityConsumed_kWh,electricityPower.
Diese schreibe ich ins Logfile EnergieOG2.

define EnergieOG2 JSONMETER LS110 192.xxx.xxx.xxx 60
attr EnergieOG2 alias Energieverbrauch OG2
attr EnergieOG2 event-min-interval .*:60
attr EnergieOG2 event-on-change-reading electricityConsumed,electricityConsumed_kWh,electricityPower
attr EnergieOG2 group Energiezaehler_Verbraucher
attr EnergieOG2 icon measure_power
attr EnergieOG2 room _Statistiken
attr EnergieOG2 stateFormat {sprintf("Zählerstand: %.1f kWh , Aktuell: %s Watt",(ReadingsVal($name,"electricityConsumed",0)*0.001), ReadingsVal($name,"electricityPower",0))}
attr EnergieOG2 userReadings electricityConsumed_kWh:electricityConsumed {ReadingsVal("EnergieOG2","electricityConsumed",0)*0.001}
define FileLog_EnergieOG2 FileLog /media/hdd/fhem/log/energiezaehler/EnergieOG2-%Y-%m.log EnergieOG2:(electricityConsumed_kWh|electricityPower).*
attr FileLog_EnergieOG2 logtype :,text
attr FileLog_EnergieOG2 room _LOG
define SVG_EnergieOG2 SVG FileLog_EnergieOG2:SVG_EnergieOG2:CURRENT
attr SVG_EnergieOG2 group Energie
attr SVG_EnergieOG2 label "EnergieOG2 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_EnergieOG2 room Stromzaehler


Nun möchte ich die statistischen Werte aber nicht in dieses EnergieOG2 Logfeile schreiben, sondern in das Logfile EnergieOG2statW damit kein einzelnes Logfile entsteht was zu groß wird und zu lange dauert um eingelesen zu werden.

Ich finde aber nicht den Punkt den du meinst, dass dieser geändert werden muß, zudem möchte ich wie schon erläutert auch nicht das Logfile EnergieOG2 verwenden.

define EnergieOG2statW statistics EnergieOG2
attr EnergieOG2statW alias Energieverbrauch OG2 W
attr EnergieOG2statW dayChangeTime 00:00
attr EnergieOG2statW group Energie Statistiken
attr EnergieOG2statW ignoreDefaultAssignments 1
attr EnergieOG2statW minAvgMaxReadings electricityPower.*
attr EnergieOG2statW room _Statistiken
attr EnergieOG2statW singularReadings EnergieOG2:electricityPower.*:(Min|Avg|Max):(Hour|Day|Month|Year)
define FileLog_EnergieOG2statW FileLog /media/hdd/fhem/log/energiezaehler/EnergieOG2statW-%Y.log EnergieOG2statW:statelectricityPower.*
attr FileLog_EnergieOG2statW logtype :,text
attr FileLog_EnergieOG2statW room _LOG
define SVG_EnergieOG2statW SVG FileLog_EnergieOG2statW:SVG_EnergieOG2statW:CURRENT
attr SVG_EnergieOG2statW fixedrange week
attr SVG_EnergieOG2statW label "EnergieOG2statW Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_EnergieOG2statW room Stromzaehler


Irgendwie stehe ich hier momentan auf der Leitung.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Burny4600

Gibt es wirklich zu dieser Aufgabenstellung keine Lösung?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Nochmal: Du versuchst offenbar von deinem statistics Device zu loggen. Das erzeugt aber nicht die gewünschten Events. Du musst hier also den Regex so anpassen, dass aus deinem Device geloggt wird:

define FileLog_EnergieOG2statW FileLog /media/hdd/fhem/log/energiezaehler/EnergieOG2statW-%Y.log EnergieOG2statW:statelectricityPower.*

Burny4600

Kannst du mir das bitte verständlicher darstellen.

Ich verstehe wirklich nicht was ich an der Zeile die du angefügt hast ändern muss damit es funktioniert.

Habe auch deswegen die Konfiguration des Gerätes und die Statistische Auswertung angehängt.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

marvin78

Ich habe die Screenshots nicht beachtet. Du scheinst das Logging schon auf das richtige Device zu machen (obwohl deine DEF anders aussieht, als die Screenshots). Aber du bekommst keine Events und das liegt an dem Attribut event-on-change-reading im EnergieOG2 Device. Das musst du auf die neuen Readings erweitern.

Burny4600

#11
So jetzt habe ich den Knoten gelöst.
Manchmal steht man wirklich ganz schön auf der Leitung.

Anbei das komplette Script für den Nachbau wie ich es jetzt mit den Youless LS110 Modulen definiert habe.
Ausgabe des aktuellen Energieverbrauchs inklusive Liniendiagramm, sowie Balkendiagramme für die Statistiken.

#####################################
###    INPUT Energiezaehler EG    ###
#####################################
define EnergieEG JSONMETER LS110 192.xxx.xxx.xxx 60
attr EnergieEG alias Energieverbrauch EG
attr EnergieEG event-on-change-reading electricityConsumed,electricityConsumed_kWh,electricityPower,statElectricityConsumed_kWh(Day|Hour|Month|Year),statElectricityPowerDay(Avg|Max|Min),statElectricityPowerHour(Avg|Max|Min),statElectricityPowerMonth(Avg|Max|Min),statElectricityPowerYear(Avg|Max|Min)
attr EnergieEG group Energiezaehler_Verbraucher
attr EnergieEG icon measure_power
attr EnergieEG room _Statistiken
attr EnergieEG stateFormat {sprintf("Zählerstand: %.1f kWh , Aktuell: %s Watt",(ReadingsVal($name,"electricityConsumed_kWh",0)), ReadingsVal($name,"electricityPower",0))}
attr EnergieEG userReadings electricityConsumed_kWh:electricityConsumed {ReadingsVal("EnergieEG","electricityConsumed",0)*0.001}

define FileLog_EnergieEG FileLog /media/hdd/fhem/log/energiezaehler/EnergieEG-%Y-%m.log EnergieEG:(electricityConsumed_kWh|electricityPower).*
attr FileLog_EnergieEG logtype :,text
attr FileLog_EnergieEG room _LOG

define SVG_EnergieEG SVG FileLog_EnergieEG:SVG_EnergieEG:CURRENT
attr SVG_EnergieEG group Energie
attr SVG_EnergieEG label "EnergieEG Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_EnergieEG room Stromzaehler

#####################################
###  Statistik Energiezaehler EG  ###
#####################################
define EnergieEGstatkWh statistics EnergieEG
attr EnergieEGstatkWh alias Energieverbrauch EG kWh
attr EnergieEGstatkWh dayChangeTime 00:00
attr EnergieEGstatkWh deltaReadings electricityConsumed_kWh
attr EnergieEGstatkWh group Energie Statistiken
attr EnergieEGstatkWh ignoreDefaultAssignments 1
attr EnergieEGstatkWh room _Statistiken
attr EnergieEGstatkWh singularReadings EnergieEG:electricityConsumed_kWh:Delta:(Hour|Day|Month|Year)

define FileLog_EnergieEGstatkWh FileLog /media/hdd/fhem/log/energiezaehler/EnergieEGstatkWh-%Y.log EnergieEG:(statElectricityConsumed_kWh(HourLast|Day|Month|Year)).*
attr FileLog_EnergieEGstatkWh logtype :,text
attr FileLog_EnergieEGstatkWh room _LOG

define SVG_EnergieEGstatkWhWeek SVG FileLog_EnergieEGstatkWh:SVG_EnergieEGstatkWhWeek:CURRENT
attr SVG_EnergieEGstatkWhWeek fixedrange week
attr SVG_EnergieEGstatkWhWeek group Energie Statisik pro Woche
attr SVG_EnergieEGstatkWhWeek label "EnergieEGstatkWhWeek Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_EnergieEGstatkWhWeek room Stromzaehler

define SVG_EnergieEGstatkWhYear SVG FileLog_EnergieEGstatkWh:SVG_EnergieEGstatkWhYear:CURRENT
attr SVG_EnergieEGstatkWhYear fixedrange year
attr SVG_EnergieEGstatkWhYear group Energie Statisik pro Jahr
attr SVG_EnergieEGstatkWhYear label "EnergieEGstatkWhYear Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_EnergieEGstatkWhYear room Stromzaehler
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Heimweh

Ist zwar schon ein Weilchen her, ich habe das nun "nachgebaut" - allerdings klappt irgendwas mit dem UserReading nicht. Die kW/h werden einfach nicht errechnet

attr EnergieEG userReadings electricityConsumed_kWh:electricityConsumed {ReadingsVal("EnergieEG","electricityConsumed",0)*0.001}

Weiß jemand wieso nicht?
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

CoolTux

attr EnergieEG userReadings electricityConsumed_kWh:electricityConsumed.* {ReadingsVal("EnergieEG","electricityConsumed",0)*0.001}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Heimweh

Hallo CoolTux :)

Du hast es einfach drauf! DANKE! Es geht....  :)

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,