[OBIS V2] - Jetzt auch mit SML-Unterstützung

Begonnen von Icinger, 08 April 2016, 19:54:44

Vorheriges Thema - Nächstes Thema

sunrise

#1620
Hallo zusammen!

Habt Ihr einen Tipp, wie man am einfachsten Tageswerte des Stromverbrauchs auswertet und darstellt? Ich hörte vom statistics Hilfs-Modul, was aber höhere Leistungsanforderungen zu haben scheint als es mein Raspberry Pi 2 hergibt.

Wichtig ist mir, dass ich die Werte retrospektiv, wenigstens ab 01.01.2024, darstellen kann, d.h. der Weg müsste über eine Auswertung des/der Logiles gehen. Meine Daten werden monatlich in einem Logfile abgelegt:
MyObis2-2023-11.log
MyObis2-2023-12.log
MyObis2-2024-01.log
etc.

Ich benötige ja nur den täglichen Wert von total_consumption um 00:00 Uhr, weiß aber nicht so richtig, ob/wie das ohne das o.g. zusätzliche Modul funktioniert.

Herzlichen Dank für Eure Hilfe! 👍


PS:
Mit dem ElectricityCalculator Hilfs-Modul (siehe auch Wiki) bekomme ich Readings, allerdings nur ab heute. Ich werde mich damit noch eingehender beschäftigen müssen und hoffe, dass auch rückwirkend etwas möglich ist.

EDIT: Das Modul ist für mich nicht brauchbar - daher teste ich dann doch das statistics-Modul.

Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

KölnSolar

statistics ist natürlich das richtige Mittel für Statistikdaten. Sollte auch auf einem RPi2 noch performant sein. Es sei denn Dein System ist schon relativ groß, aber dann ist ein 2B sowieso nicht mehr ausreichend.

Schau Dir alternativ das Attribut userreadings an. Damit kannst Du das Gewünschte machen. Oder mit einem at mit setreading und eigens definierten readings. Ich speichere z.B. mitdefine Daily at *00:00:15 {fhem("setreading zaehler Lasttotal_feed ".ReadingsVal("zaehler","total_feed",0).";;setreading zaehler Lasttotal_consumption ".ReadingsVal("zaehler","total_consumption",0).";;setreading PVzaehler Lasttotal_feed ".ReadingsVal("PVzaehler","total_feed",0).";;setreading PVzaehler Lasttotal_consumption ".ReadingsVal("PVzaehler","total_consumption",0).")}
die 4 Zählerstande zwischen, NACHDEM ich die Differenz verarbeitet habe. (Viele Wege führen nach Rom).

Historisch würde ich manuell vorgehen: Logfiles in Excel entsprechend aufbereiten/sortieren/ergänzen, die Tageswerte dazu mit einer simplen Formel ermitteln und schließlich als "event" zurück in die/das Logfile kopieren.

Grüße Markus
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

sunrise

#1622
Weißt Du, ob die Hilfs-Module ElectricityCalculator und Statistics "einfach" auch historische Werte in Logfiles verarbeiten können? Der ElectricityCalculator scheint mich ja schon ein Stück weiterzubringen, aber ich bin mir anhand Doku & Wiki noch nicht sicher, ob mein Vorhaben damit auch ohne Excel und manuelle Einfügungen ins Logfile möglich sein wird.

EDIT: Das Modul ist für mich nicht brauchbar - daher teste ich dann doch das statistics-Modul.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

KölnSolar

Ein Logfile(vergangene Events) kannst Du manipulieren, um Grafiken zu "korrigieren". Auf "Hilfsmodule" haben nur aktuelle Events einen Einfluß.
Deine Fragen haben recht wenig mit OBIS zu tun. Mach doch einen eigenen Thread unter Anfängerfragen auf. Ich denke, dann antworten auch mehr.
Grüße Markus
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

sunrise

Danke - habe ich inzwischen getan. 😊

Falls sonst noch jemand über meine Frage hier stolpert und am weiteren Verlauf interessiert ist: https://forum.fhem.de/index.php?msg=1301231

Sorry, nun wieder zurück zum eigentlich Thema - Obis ...
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

dogas

Ich habe vor zwei Tagen einen DZG DWS7412.2V.G2 eingebaut bekommen.
Wir betreiben eine Mini-PV und ich hatte bisher die Einspeisung am Zähler (Mit Rücklaufsperre) mittels IR Lesekopf direkt am Raspi für die Schaltung der Überschussladung verwendet wenn ein negativer Wert größer X ausgegeben wurde.

Das funktioniert nun nicht mehr, da kein Negativwert mehr gelesen wird. Wo sehe ich hier wenn die Einspeisung stattfindet? (Nicht am Display)

Pin am Zähler ist bereits deaktiviert.
define Zaehler_HS OBIS /dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_015AE266-if00-port0@9600,8,N,1 SML
attr Zaehler_HS DbLogExclude .*
attr Zaehler_HS DbLogInclude power_clear:60
attr Zaehler_HS alias Smartmeter Hausstrom (Nr.:1)
attr Zaehler_HS event-on-change-reading power,power_clear,statTotal_consumption
attr Zaehler_HS icon measure_power_meter
attr Zaehler_HS interval 5
attr Zaehler_HS nohacks 1
attr Zaehler_HS pollingMode on
attr Zaehler_HS room EG,HWR
attr Zaehler_HS stateFormat statTotal_costsMerged
attr Zaehler_HS unitReadings on
attr Zaehler_HS userReadings power_clear {\
my @val = split(/ /,ReadingsVal($NAME, "power", 0) );;;; \
sprintf(\
"%s",\
$val[0])\
}\
,\
total_consumption_clear_Wh\
{\
my @val = split(/ /,ReadingsVal($NAME, "total_consumption", 0) );;;; \
sprintf(\
"%s",\
$val[0])\
}\
,\
statTotal_costs { \
my @val = split(/ /,ReadingsVal($NAME, "statTotal_consumption", 0) );;;; \
sprintf(\
"%s %.2f € %s %.2f € %s %.2f € %s %.2f € (26,28 Ct a kWh)",\
$val[0],\
$val[1]/1000*0.2628,\
$val[2],\
$val[3]/1000*0.2628,\
$val[4],\
$val[5]/1000*0.2628,\
$val[6],\
$val[7]/1000*0.2628\
)\
}\
,\
statTotal_costsLast { \
my @val = split(/ /,ReadingsVal($NAME, "statTotal_consumptionLast", 0) );;;; \
sprintf(\
"%s %.2f € %s %.2f € %s %.2f € %s %.2f € (26,28 Ct a kWh)",\
$val[0],\
$val[1]/1000*0.2628,\
$val[2],\
$val[3]/1000*0.2628,\
$val[4],\
$val[5]/1000*0.2628,\
$val[6],\
$val[7]/1000*0.2628\
)\
}\
,\
statTotal_costsMerged {\
sprintf(\
"%.2f kWh - %.2f € (26,28 Ct a kWh)",\
ReadingsNum($NAME, "total_consumption",0)/1000,\
ReadingsNum($NAME,"total_consumption",0)/1000*0.2628\
)\
}
#   CRC_Errors 109
#   DEF        /dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_015AE266-if00-port0@9600,8,N,1 SML
#   DeviceName /dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_015AE266-if00-port0@9600,8,N,1
#   FD         11
#   FUUID      5c61c090-f33f-de9d-41b7-d9608e9cba0e3e71
#   MeterType  SML
#   NAME       Zaehler_HS
#   NR         52
#   PARTIAL   
#   STATE      10.41 kWh - 2.74 € (26,28 Ct a kWh)
#   TYPE       OBIS
#   eventCount 719
#   Helper:
#     DBLOG:
#       power_clear:
#         DBLogging:
#           TIME       1707512699.55673
#           VALUE      97.6
#   READINGS:
#     2018-07-25 17:20:38   0.118.7.0.10.255 0
#     2018-09-23 13:32:16   0.118.7.0.11.255 0*var
#     2020-01-19 22:19:05   0.118.7.0.12.255 0*var
#     2021-02-22 16:49:51   0.118.7.0.13.255 0*var
#     2021-03-21 23:59:55   1.0.0.0.9.255   06-45-4D-48-01-0E-15-BE-87-A4
#     2024-02-09 22:04:59   1.0.96.1.0.255  DZG*var
#     2021-03-21 23:59:55   129.129.199.130.3.255 EMH
#     2024-02-07 08:42:57   ManufID         EMH
#     2024-02-09 22:04:59   ManufID2        DZG*var
#     2024-02-07 08:42:57   Serial          06-45-4D-48-01-0E-15-BE-87-A4
#     2021-03-31 06:49:54   Version         
#     2024-02-09 22:04:59   power           97.6 W
#     2024-02-09 22:04:59   power_clear     97.6
#     2024-02-09 22:04:59   statPowerDay    Min: 6.38 Avg: 241.07 Max: 1091.64
#     2024-02-08 23:59:55   statPowerDayLast Min: 0.01 Avg: 199.29 Max: 3039.86
#     2024-02-09 22:04:59   statPowerMonth  Min: -511.50 Avg: 166.99 Max: 5240.90
#     2024-01-31 23:59:55   statPowerMonthLast Min: -530.4 Avg: 168.7 Max: 7271.4
#     2024-02-09 22:04:59   statPowerYear   Min: -530.40 Avg: 168.35 Max: 7271.40
#     2023-12-31 23:59:55   statPowerYearLast Min: -1352.3 Avg: 49.4 Max: 11399.2
#     2024-02-09 22:04:59   statTotal_consumption Hour: 8.4 Day: 3411.1 Month: -8576259.4 Year: -8444931.1
#     2024-02-09 21:59:55   statTotal_consumptionLast Hour: 678.3 Day: 4305.9 Month: 131328.3 Year: 1157853.8
#     2024-02-09 22:04:59   statTotal_costs Hour: 0.00 € Day: 0.90 € Month: -2253.84 € Year: -2219.33 € (26,28 Ct a kWh)
#     2024-02-09 22:04:59   statTotal_costsLast Hour: 0.18 € Day: 1.13 € Month: 34.51 € Year: 304.28 € (26,28 Ct a kWh)
#     2024-02-09 22:04:59   statTotal_costsMerged 10.41 kWh - 2.74 € (26,28 Ct a kWh)
#     2024-02-09 21:50:27   state           opened
#     2024-02-09 22:04:59   total_consumption 10408.2 Wh
#     2024-02-07 08:42:57   total_consumption_Ch1 0 Wh
#     2024-02-07 08:42:57   total_consumption_Ch2 8612085.2 Wh
#     2024-02-09 22:04:59   total_consumption_clear_Wh 10408.2
#     2024-02-09 22:04:59   total_feed      306.7 Wh
#   helper:
#     BUFFER     
#     DIRECTIONSUM >
#     DZGHACK   
#     EoM        1
#     LastPacketTime 1707512699.57481
#     NOHACKS    1
#     SPEED      5
#     SPEED2     5
#     TRIGGERTIME 1707511827.00141
#     _98_statistics StatStrom_HS
#     Channels:
#     DEVICES:
#       
#       5
#       
#     RULECACHE:
#       1-0:1.8.0*255 Counter
#       1-0:16.7.0*255 Channels
#       1-0:2.8.0*255 Counter
#       1-0:96.1.0*255 unknown
#       1-0:96.50.1*1 ManufID2
#     directions:
#
setstate Zaehler_HS 10.41 kWh - 2.74 € (26,28 Ct a kWh)
setstate Zaehler_HS 2018-07-25 17:20:38 0.118.7.0.10.255 0
setstate Zaehler_HS 2018-09-23 13:32:16 0.118.7.0.11.255 0*var
setstate Zaehler_HS 2020-01-19 22:19:05 0.118.7.0.12.255 0*var
setstate Zaehler_HS 2021-02-22 16:49:51 0.118.7.0.13.255 0*var
setstate Zaehler_HS 2021-03-21 23:59:55 1.0.0.0.9.255 06-45-4D-48-01-0E-15-BE-87-A4
setstate Zaehler_HS 2024-02-09 22:04:59 1.0.96.1.0.255 DZG*var
setstate Zaehler_HS 2021-03-21 23:59:55 129.129.199.130.3.255 EMH
setstate Zaehler_HS 2024-02-07 08:42:57 ManufID EMH
setstate Zaehler_HS 2024-02-09 22:04:59 ManufID2 DZG*var
setstate Zaehler_HS 2024-02-07 08:42:57 Serial 06-45-4D-48-01-0E-15-BE-87-A4
setstate Zaehler_HS 2021-03-31 06:49:54 Version
setstate Zaehler_HS 2024-02-09 22:04:59 power 97.6 W
setstate Zaehler_HS 2024-02-09 22:04:59 power_clear 97.6
setstate Zaehler_HS 2024-02-09 22:04:59 statPowerDay Min: 6.38 Avg: 241.07 Max: 1091.64
setstate Zaehler_HS 2024-02-08 23:59:55 statPowerDayLast Min: 0.01 Avg: 199.29 Max: 3039.86
setstate Zaehler_HS 2024-02-09 22:04:59 statPowerMonth Min: -511.50 Avg: 166.99 Max: 5240.90
setstate Zaehler_HS 2024-01-31 23:59:55 statPowerMonthLast Min: -530.4 Avg: 168.7 Max: 7271.4
setstate Zaehler_HS 2024-02-09 22:04:59 statPowerYear Min: -530.40 Avg: 168.35 Max: 7271.40
setstate Zaehler_HS 2023-12-31 23:59:55 statPowerYearLast Min: -1352.3 Avg: 49.4 Max: 11399.2
setstate Zaehler_HS 2024-02-09 22:04:59 statTotal_consumption Hour: 8.4 Day: 3411.1 Month: -8576259.4 Year: -8444931.1
setstate Zaehler_HS 2024-02-09 21:59:55 statTotal_consumptionLast Hour: 678.3 Day: 4305.9 Month: 131328.3 Year: 1157853.8
setstate Zaehler_HS 2024-02-09 22:04:59 statTotal_costs Hour: 0.00 € Day: 0.90 € Month: -2253.84 € Year: -2219.33 € (26,28 Ct a kWh)
setstate Zaehler_HS 2024-02-09 22:04:59 statTotal_costsLast Hour: 0.18 € Day: 1.13 € Month: 34.51 € Year: 304.28 € (26,28 Ct a kWh)
setstate Zaehler_HS 2024-02-09 22:04:59 statTotal_costsMerged 10.41 kWh - 2.74 € (26,28 Ct a kWh)
setstate Zaehler_HS 2024-02-09 21:50:27 state opened
setstate Zaehler_HS 2024-02-09 22:04:59 total_consumption 10408.2 Wh
setstate Zaehler_HS 2024-02-07 08:42:57 total_consumption_Ch1 0 Wh
setstate Zaehler_HS 2024-02-07 08:42:57 total_consumption_Ch2 8612085.2 Wh
setstate Zaehler_HS 2024-02-09 22:04:59 total_consumption_clear_Wh 10408.2
setstate Zaehler_HS 2024-02-09 22:04:59 total_feed 306.7 Wh


KölnSolar

Vorschlag: Mal die readings von den Altlasten bereinigen. Dann erkennen wir auch einfacher, was der neue Zähler liefert.
Wenn Du Dir unsicher bist, wie Du das machst, dann am einfachsten/sichersten in der Details-View in die raw-Anzeige. Alle Zeilen, die nicht zu löschende readings enthalten entfernen und dann z.B. die Zeilensetstate Zaehler_HS 2018-09-23 13:32:16 0.118.7.0.11.255 0*varüberschreiben mitdeletereading Zaehler_HS 0.118.7.0.11.255.*
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

dogas

Danke, hätte auch selbst drauf kommen können den Zähler einfach neu zu erstellen. Jetzt stimmen die Werte auch nachdem ich nohacks auf 1 gesetzt habe.  :)

Franzel007

#1628
Hihi zusammen,

ich habe das OBIS Modul nun seit über zwei Jahren am laufen und es funktionierte bis jetzt ohne Probleme mit ESPeasy Selbstbau Modul und Selbstbau- Lesekopf.
Nun ist mir leider ein Fehler unterlaufen und die SD Karte im fhem Raspberry Pi ist vollgelaufen. Mit Putty konnte ich das durch löschen der größten logs lösen und die Ursache beheben. Nun habe ich das Problem dass ich die Readings alle wieder bekomme aber es fehlt natürlich die Differenz im Monat und im Jahr.
Mit setreading kann man hier wohl nicht die Historie- Werte eingeben.

Gibt es eine Möglichkeit die Differenzwerte irgendwie sonst einzugeben oder in einer Datei zu ändern?

Gruß
Franzel

KölnSolar

Womit erstellst Du denn
Zitatdie Differenz im Monat und im Jahr.
ZitatMit setreading kann man hier wohl nicht die Historie- Werte eingeben.
Sollte eigentlich funktionieren. :-\
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

sunrise

Ich hatte schonmal fehlende Werte direkt ins Obis Logfile des betroffenen Monats geschrieben (via WinSCP und Notepad++), und das hat funktioniert. Wenn ich es richtig erinnere, ist das vermutlich nicht die empfohlene Methode, und ich weiß auch nicht mehr, ob ich FHEM dazu temporär angehalten hatte. Aber die Plots sahen danach nahtlos aus, und ich konnte auch sonst keine Nebenwirkungen beobachten.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

bertl

Hallo Leute,

die AES-Verschlüsselung wurde hier schon 2 mal angesprochen und ich möchte dieses Thema nochmals aufwärmen.

Es handelt sich um den Siemens AMIS Multifunktionszähler TD3511.
Ich möchte die Smartmeter-Werte über einen IR-Lesekopf für Stromzähler von z.B. Weidmann Elektronik welchen ich per USB an den Raspi 3b stecke auslesen.

Die Ausgabe der Schnittstelle ist mit einem AES Code verschlüsselt.
Diesen Code/Key bekommt man vom Netzbetreiber und ist somit verfügbar.

Leider ist es im Moment so, dass man entweder über die Volkszaehler Schnittstelle gehen muss, oder einen AMIS-Leser (z.B. https://www.mitterbaur.at/amis-leser.html) welcher über WiFi und MQTT arbeitet kaufen muss, um die Zählerdaten in FHEM zu bekommen.

Das OBIS-Modul bietet die perfekte Anbindung an FHEM, wenn da nicht diese blöde AES-Verschlüsselung wäre.

Wäre es möglich die AES-Entschlüsselung ins OBIS-Modul zu implementieren?

Hier sind Links, wo diese AES-Entschlüsselung über Python bzw. Javascript gelöst wurde (leider habe ich diesbezüglich überhaupt keine Ahnung).

Danke für die Unterstützung, Robert

sunrise

Hallo Robert!

Reicht es nicht, dass Du die PIN einmal am Zähler eingibst und auch am Zähler einstellst, dass die PIN dann nicht mehr abgefragt wird? So war's bei meinem Landis & Gyr Zähler. Oder habe ich Dich missverstanden? Ich verstehe nämlich nicht, weshalb ein digitaler Zähler trotz PIN-Eingabe die Daten immer noch verschlüsselt über die IR-Schnittstelle ausgibt.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

bertl

Hallo sunrise,

soweit ich das verstanden haben, gibt es bei diesen Zählern keine PIN Eingabe.
Die AES-Verschlüsselung gibt der Netzbetreiber (Netz OÖ) vor - ihm gehört auch der Zähler.
Zum Entschlüsseln benötigt man einen Key, welchen man vom Netzbetreiber bekommt.

sunrise

Ich erhielt eine 4-stellige PIN, die ich mittels Taschenlampe an der IR-Schnittstelle eingeben konnte. Ebenso konnte ich danach einstellen, dass keine weitere PIN-Abfrage mehr benötigt wird, wenn ich alle Daten an der Schnittstelle auslesen möchte. Sorry, dass ich Dir nicht weiter helfen kann.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2