Smartmeter Kundenschnittstelle aus der Hölle

Hi, habe das Programm von GreenMike schon eine Zeit lang mit einem RPI4 und dem m-bus-Teil von Mikroe für einen Kaifa MA309 bei EVN im Einsatz; funktioniert sehr gut, allerdings stürzt immer um 03:00 das Systemctl.Service ab; hab zwar eine Watch-Dog-Logik für Restart in NodeRed eingebaut, allerdings kommt das systemctl.Service nicht wieder zum Laufen ;-(
Ich habe es auch mal mit https://github.com/tirolerstefan/kaifa probiert; funktioniert auch; allerdings mit dem gleichen Effekt - um 03:00 kommt es zu einer Unterbrechung des Systemctl.Service; der Restart über den NodeRed-Watchdog funktioniert hier allerdings ;-)
Hat jemand von euch auch so einen Effekt um 3:00???
 
gkutyi schrieb:
Hi, habe das Programm von GreenMike schon eine Zeit lang mit einem RPI4 und dem m-bus-Teil von Mikroe für einen Kaifa MA309 bei EVN im Einsatz; funktioniert sehr gut, allerdings stürzt immer um 03:00 das Systemctl.Service ab; hab zwar eine Watch-Dog-Logik für Restart in NodeRed eingebaut, allerdings kommt das systemctl.Service nicht wieder zum Laufen ;-(
Ich habe es auch mal mit https://github.com/tirolerstefan/kaifa probiert; funktioniert auch; allerdings mit dem gleichen Effekt - um 03:00 kommt es zu einer Unterbrechung des Systemctl.Service; der Restart über den NodeRed-Watchdog funktioniert hier allerdings ;-)
Hat jemand von euch auch so einen Effekt um 3:00???

Hi gkutyi , wie hast du das m-bus-Teil von Mikroe and den RPI4 angeschlossen (Wie sieht der Schaltplan aus?)?

vielen Dank,
Ulrich!
 
Mit Hilfe dieses Beitrags habe ich es geschafft die Daten auszulesen. Meine Installation:
Anbieter: Vorarlberg Netz
Zähler: Kaifa MA309
Raspi: Raspian 10

Den Schlüssel des Energieversorgers habe ich eingegeben. Mit sudo python3 /home/pi/Desktop/EvnSmartmeterMQTT.py bekomme ich die Daten auf der Kommandozeile.
Nun stehe ich an, welche Programme muss ich zur Anzeige der Daten installieren ... und vor allem wie gehe ich dazu vor?
Ich bin um jeden Tipp froh, da ich selbst hier wirklich nicht weiterkommen.
 
Zuletzt bearbeitet:
Hallo Kasparro,
ich habe zu dem Thema auf meiner Website einen Beitrag geschrieben.
Thema: Wie speichere ich Daten von meinem Smart Meter die über MQTT gesendet werden in eine Datenbank.

Zukünftig wird auch noch ein Beitrag mit einer Auswertung im Program Grafana kommen. Aber Grafana ist "relativ" simpel wenn man keine Besonderen Anzeigen bauen will.

https://www.michaelreitbauer.at/mqtt-nachrichten-in-datenbank-speichern/

LG Michael
 
Hallo Michael, danke für die Antwort. Ich habe deine Seite schon gesehen, war mir aber unsicher, ob das für meine Situation passt. Ich gehe nun nach deinem Beitrag vor, sollte ich wieder hängen bleiben melde ich mich mit einem Kommentar auf deiner Seite - oder ist es besser hier?
LG Robert
 
  • Gefällt mir
Reaktionen: greenmike
Hallo,
ich habe eine eigene Website wo ich Themen zum Smart Home erkläre. In den letzten Beiträgen habe ich erklärt wie ich meinen Smart Meter auslese und ein passendes Dashboard dafür baue.
Ich würde mich über ein Feedback sehr freuen.
https://www.michaelreitbauer.at/smart-meter-dashboard-in-grafana-influxdb/
Ergänzung ()

Hallo kasparro,
besser du meldest dich auf meiner Seite da habe ich einen besseren Überblick.
LG Michael
 
Hallo,
ich bin neu hier und bräuchte eure Hilfe.

Ich komme aus Vorarlberg und würden gerne, so wie ihr auch, meinen Kaifa Samrtmeter der VKW auslesen.
Nachdem ich dieses Github-Projekt gefunden habe (https://github.com/DomiStyle/esphome-dlms-meter), habe ich mir alles besorgt was ich zum auslesen brauche:
-https://www.amazon.de/gp/product/B07Z83MF5W/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
-https://www.mikroe.com/m-bus-slave-click
-den Schlüssel der für den Smartmeter habe ich auch

Mein Plan: der ESP32 soll die Daten per MQTT an meinen ioBroker schicken.
HomeAssistent verwende ich nicht - daher versuche ich auch ESPHome über die CommandLine zu flashen.

Was habe ich bis jetzt gemacht:
-auf dem PC Python installiert
-dann per CommandLine "Wheel und ESPHome installiert
-dann habe ich die Dateien der Github-Seite auf einen beliebigen Ort auf meinem PC kopiert.
mit der vorgegebenen Ordnerstruktur:
  • config
    • meter01.yaml
    • esphome-dlms-meter
      • The files from this repo (espdm.h, ...)
-Die Datei meter01.yaml habe ich mit meinen Daten entsprechend geändert.
-Den ESP32 per USB an den PC angeschlossen.
-mittels CommandLine meter01.yaml gestartet (esphome run meter01.yaml)

nach mehreren Versuchen wurde der Compile-Vorgang gestartet.
Aber leider bricht der Vorgang nach einiger Zeit mit einer Fehlermeldung ab. Noch bevor ich den com-Port auswählen kann.

Im Anhang sind meine meter01.yaml Datei und die Fehlermeldung.


Wäre super wenn mir jemand helfen könnte!

Danke
LG Andy
esphome:
name: meter01
platform: ESP32
board: nodemcu-32s
includes:
- ./esphome-dlms-meter

# ethernet:
#type: LAN8720
# mdc_pin: GPIO23
# mdio_pin: GPIO18
# clk_mode: GPIO17_OUT
# phy_addr: 0
# power_pin: GPIO12
# domain: .example.org

wifi:
ssid: "xxxxxx"
password: "xxxxxx"

# Enable logging
logger:
level: INFO
# tx_buffer_size: 2048 # Only needed when logging large packets

# Enable Home Assistant API if not using MQTT
#api:
# password: "1234"
# reboot_timeout: 0s

ota:
password: "1234"

web_server:
port: 80

uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 2400
rx_buffer_size: 1024 # Needed to receive the large packets send by the smart meter
id: mbus

sensor:
- platform: template
id: meter01_voltage_l1
name: meter01_voltage_l1
unit_of_measurement: V
accuracy_decimals: 1
device_class: "voltage"
state_class: "measurement"
- platform: template
id: meter01_voltage_l2
name: meter01_voltage_l2
unit_of_measurement: V
accuracy_decimals: 1
device_class: "voltage"
state_class: "measurement"
- platform: template
id: meter01_voltage_l3
name: meter01_voltage_l3
unit_of_measurement: V
accuracy_decimals: 1
device_class: "voltage"
state_class: "measurement"

- platform: template
id: meter01_current_l1
name: meter01_current_l1
unit_of_measurement: A
accuracy_decimals: 2
device_class: "current"
state_class: "measurement"
- platform: template
id: meter01_current_l2
name: meter01_current_l2
unit_of_measurement: A
accuracy_decimals: 2
device_class: "current"
state_class: "measurement"
- platform: template
id: meter01_current_l3
name: meter01_current_l3
unit_of_measurement: A
accuracy_decimals: 2
device_class: "current"
state_class: "measurement"

- platform: template
id: meter01_active_power_plus
name: meter01_active_power_plus
unit_of_measurement: W
accuracy_decimals: 0
device_class: "power"
state_class: "measurement"
- platform: template
id: meter01_active_power_minus
name: meter01_active_power_minus
unit_of_measurement: W
accuracy_decimals: 0
device_class: "power"
state_class: "measurement"

- platform: template
id: meter01_active_energy_plus
name: meter01_active_energy_plus
unit_of_measurement: Wh
accuracy_decimals: 0
device_class: "energy"
state_class: "total_increasing"
- platform: template
id: meter01_active_energy_minus
name: meter01_active_energy_minus
unit_of_measurement: Wh
accuracy_decimals: 0
device_class: "energy"
state_class: "total_increasing"

- platform: template
id: meter01_reactive_energy_plus
name: meter01_reactive_energy_plus
unit_of_measurement: Wh
accuracy_decimals: 0
device_class: "energy"
state_class: "total_increasing"
- platform: template
id: meter01_reactive_energy_minus
name: meter01_reactive_energy_minus
unit_of_measurement: Wh
accuracy_decimals: 0
device_class: "energy"
state_class: "total_increasing"

text_sensor:
- platform: template
id: meter01_timestamp
name: meter01_timestamp





mqtt:
broker: 192.168.1.20
username: "xxxxx"
password: "xxxxx"
id: mqtt_broker

custom_component:
- lambda: |-
auto dlms_meter = new DlmsMeter(id(mbus));

byte key[] = {0x48, 0x78, 0x55, 0x54, 0x75, 0x77, 0x50, 0x78, 0x6C, 0x42, 0x6A, 0x6A, 0x45, 0x35, 0x79, 0x6E};dlms_meter->set_key(key, 16);
dlms_meter->set_voltage_sensors(id(meter01_voltage_l1), id(meter01_voltage_l2), id(meter01_voltage_l3));
dlms_meter->set_current_sensors(id(meter01_current_l1), id(meter01_current_l2), id(meter01_current_l3));
dlms_meter->set_active_power_sensors(id(meter01_active_power_plus), id(meter01_active_power_minus));
dlms_meter->set_active_energy_sensors(id(meter01_active_energy_plus), id(meter01_active_energy_minus));
dlms_meter->set_reactive_energy_sensors(id(meter01_reactive_energy_plus), id(meter01_reactive_energy_minus));
dlms_meter->set_timestamp_sensor(id(meter01_timestamp));
dlms_meter->enable_mqtt(id(mqtt_broker), "meter01/data");
return {dlms_meter};


Building in release mode
Compiling .pioenvs\meter01\src\main.cpp.o
Archiving .pioenvs\meter01\libe4f\libUpdate.a
Compiling .pioenvs\meter01\lib650\ESPAsyncWebServer-esphome\WebAuthentication.cpp.o
Compiling .pioenvs\meter01\lib650\ESPAsyncWebServer-esphome\WebHandlers.cpp.o
Compiling .pioenvs\meter01\lib650\ESPAsyncWebServer-esphome\WebRequest.cpp.o
Compiling .pioenvs\meter01\lib650\ESPAsyncWebServer-esphome\WebResponses.cpp.o
meter01.yaml: In lambda function:
meter01.yaml:151:29: error: expected type-specifier before 'DlmsMeter'
meter01.yaml:161:25: error: could not convert '{dlms_meter}' from '<brace-enclosed initializer list>' to 'std::vector<esphome::Component*>'
*** [.pioenvs\meter01\src\main.cpp.o] Error 1
============================================= [FAILED] Took 43.33 seconds =============================================
 
Zuletzt bearbeitet:
Nachtrag: Compile hat nun funktioniert!

Leider bekomme ich trotzdem noch keine Daten vom Zähler.
 
Hallo

da ich leider diese Woche auch enen Smarten Zähler bekommen habe, bin ich bei der Suche hier gelandet.
Die beiträga sind zwar schon älter aber vieleicht list doch noc jemand und kann bir helfen
Problem ist bei compilieren

LG
Obmar
1690529862185.png
 
Hi,

da sind eben syntaktische Fehler in dem Code. Beispiel: beim ersten fehlt ein "Komma" zwischen den beiden ersten Werten.

Die Fehlermeldungen stehen ja dran. Einfach der reihe nach fixen, compilen, schauen ob es läuft, und wieder von vorne.

VG,
Mad
 
Hi Madman1209,
danke für den Hinweis . Da ich so gut wie keine Ahnung vom Programmieren habe hat mir der Tip geholfen es zu verstehen.
Da ich den Code vom Git verwendet habe verstehe ich leider das nächste Problem nicht.
Ich hoffe du kannst mir nochmal helfen.
DANKE

LG
Obmar
 

Anhänge

  • Smartmeter-01.jpg
    Smartmeter-01.jpg
    137,1 KB · Aufrufe: 155
hab die Yaml vom Git genommen und nur meinen Schlüssel eingetragen. Kommentare auch gelöscht.
Ergebnis ist gleich.
Hier die Yaml.
Kann nur TXT hochladen

LG
Obmar
 

Anhänge

Hab jetzt nochmal die Daten vom Git geladen und plötzlich läuft es durch.
Warum auch immer, der Unterschied lag in der espdm.h
 
Hallo

Weis jemand ob greenMike noch aktiv ist ich versuche in zu erreichen da ich die Software benötigen laut dem Video.

Danke euch

 
Zurück
Oben