Smartmeter Kundenschnittstelle aus der Hölle

In der example.yaml Datei musste ich auch das in Zeile 33 verwendete invert: flase entfernen da es diesen Befehl nicht für den ESP8266 gibt sonder nur für den ES32.

Ich habe keine Roten stellen im Code.

Wenn ich das Example lade dann ist eine rote Makirung ganz oben und er sagt er findet die Datei nicht. Der Include passt nicht denke ich.

Code:
esphome:
  name: meter01
  platform: ESP32
  board: esp32-poe
  includes:
    - ./espdm


Code:
esphome:
  name: meter01
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "RJ-Home"
  password: "Reit2196"

# 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: D1
  rx_pin: D2
  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
  - platform: template
    id: meter01_voltage_l2
    name: meter01_voltage_l2
    unit_of_measurement: V
    accuracy_decimals: 1
  - platform: template
    id: meter01_voltage_l3
    name: meter01_voltage_l3
    unit_of_measurement: V
    accuracy_decimals: 1

  - platform: template
    id: meter01_current_l1
    name: meter01_current_l1
    unit_of_measurement: A
    accuracy_decimals: 2
  - platform: template
    id: meter01_current_l2
    name: meter01_current_l2
    unit_of_measurement: A
    accuracy_decimals: 2
  - platform: template
    id: meter01_current_l3
    name: meter01_current_l3
    unit_of_measurement: A
    accuracy_decimals: 2

  - platform: template
    id: meter01_active_power_plus
    name: meter01_active_power_plus
    unit_of_measurement: W
    accuracy_decimals: 0
  - platform: template
    id: meter01_active_power_minus
    name: meter01_active_power_minus
    unit_of_measurement: W
    accuracy_decimals: 0

  - platform: template
    id: meter01_active_energy_plus
    name: meter01_active_energy_plus
    unit_of_measurement: kWh
    accuracy_decimals: 0
  - platform: template
    id: meter01_active_energy_minus
    name: meter01_active_energy_minus
    unit_of_measurement: kWh
    accuracy_decimals: 0

  - platform: template
    id: meter01_reactive_energy_plus
    name: meter01_reactive_energy_plus
    unit_of_measurement: kWh
    accuracy_decimals: 0
  - platform: template
    id: meter01_reactive_energy_minus
    name: meter01_reactive_energy_minus
    unit_of_measurement: kWh
    accuracy_decimals: 0

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

mqtt:
  broker: 192.168.1.1
  id: mqtt_broker

custom_component:
  - lambda: |-
      auto dlms_meter = new DlmsMeter(id(mbus));
      byte key[] = {0x01, 0x6F, 0x76, 0x54, 0x35, 0x57, 0xDE, 0x95, 0x26, 0x0D, 0xA0, 0x68, 0xB9, 0xC6, 0x40, 0xA9};
      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};
 
Die espdm Datei ist vom Repo, die wird er nicht im richtigen Ordner finden.
Deshalb wird der include nicht gehen.
Ergänzung ()

Den Webserver würde ich auch aktivieren zum testen.

Und im UART Block hast Du noch einen Kommentar mit # Zeichen stehen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: greenmike
Die Datei ist im richtigen Verzeichnis wenn ich .cpp oder .h hinschreibe passt es. Es treten wider Fehler beim Kompilieren auf.

Ich denke im fehlt noch ein Lib die "mbedtls/gcm.h" die ist aber nicht im Repo.
 

Anhänge

  • ESPHomeFehler.PNG
    ESPHomeFehler.PNG
    43,7 KB · Aufrufe: 362
Zuletzt bearbeitet:
ich kann mir aml meine datei ansehen wenn ich zuhause bin
 
  • Gefällt mir
Reaktionen: greenmike
Sicher dass dein Kopf passt?

Probiers mal damit:

platform = espressif8266
board = nodemcuv2
 
  • Gefällt mir
Reaktionen: greenmike
Ja sollte passen.
Wenn ich deinen Vorschlage probier bekomme ich eine Fehlermeldung.

Mit welchem Board machst sie es ? Sonst kaufe ich mir das und spiele die selbe Config drauf wie sie.
 

Anhänge

  • 634570b4-79cd-44a6-b109-f957cbc9be76.jpg
    634570b4-79cd-44a6-b109-f957cbc9be76.jpg
    89 KB · Aufrufe: 364
  • 41e6454c-12bc-47b1-9809-b9398b84d6ec.jpg
    41e6454c-12bc-47b1-9809-b9398b84d6ec.jpg
    108,8 KB · Aufrufe: 395
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: IBISXI
Oke danke ich bin schon so verzweifelt das ich mir deine Bestellt habe.

Ich denke V2 macht keinen Unterschied bzw es gibt keine V3.
 
So, hier meine Config.
Kanns leider nur als Text hochladen.

Code:
esphome:
  name: meter01
  platform: ESP32
  board: esp32-poe
  includes:
    - ./espdm

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

# 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: GPIO4
  rx_pin: GPIO36
  baud_rate: 2400
  rx_buffer_size: 1024 # Needed to receive the large packets send by the smart meter
  invert: false
  id: mbus

sensor:
  - platform: template
    id: meter01_voltage_l1
    name: meter01_voltage_l1
    unit_of_measurement: V
    accuracy_decimals: 1
  - platform: template
    id: meter01_voltage_l2
    name: meter01_voltage_l2
    unit_of_measurement: V
    accuracy_decimals: 1
  - platform: template
    id: meter01_voltage_l3
    name: meter01_voltage_l3
    unit_of_measurement: V
    accuracy_decimals: 1

  - platform: template
    id: meter01_current_l1
    name: meter01_current_l1
    unit_of_measurement: A
    accuracy_decimals: 2
  - platform: template
    id: meter01_current_l2
    name: meter01_current_l2
    unit_of_measurement: A
    accuracy_decimals: 2
  - platform: template
    id: meter01_current_l3
    name: meter01_current_l3
    unit_of_measurement: A
    accuracy_decimals: 2

  - platform: template
    id: meter01_active_power_plus
    name: meter01_active_power_plus
    unit_of_measurement: W
    accuracy_decimals: 0
  - platform: template
    id: meter01_active_power_minus
    name: meter01_active_power_minus
    unit_of_measurement: W
    accuracy_decimals: 0

  - platform: template
    id: meter01_active_energy_plus
    name: meter01_active_energy_plus
    unit_of_measurement: kWh
    accuracy_decimals: 0
  - platform: template
    id: meter01_active_energy_minus
    name: meter01_active_energy_minus
    unit_of_measurement: kWh
    accuracy_decimals: 0

  - platform: template
    id: meter01_reactive_energy_plus
    name: meter01_reactive_energy_plus
    unit_of_measurement: kWh
    accuracy_decimals: 0
  - platform: template
    id: meter01_reactive_energy_minus
    name: meter01_reactive_energy_minus
    unit_of_measurement: kWh
    accuracy_decimals: 0

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

mqtt:
  broker: 192.168.1.180
  id: mqtt_broker

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

      byte key[] = {0x47, 0x35, 0x71, 0x33, 0x17, 0x69, 0x49, 0x68, 0x6a, 0xa7, 0x4e, 0x4e, 0x45, 0x50, 0x5a, 0x73};
      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};
 

Anhänge

Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: greenmike
Ich habe noch eine Frage brauche ich dann noch ein Poe Board oder kann man diesen über WLAN einbinden ?
 
Nö, kannst WLAN verwenden.

Ich bin im Moment auch noch mit WLAN unterwegs aber alle 3 Tage verschwindet der ESP aus dem Netzwerk und brauch einen Neustart. Ich werds mal mit LAN probieren.

Wo einbinden?

Klappt es jetzt?
 
  • Gefällt mir
Reaktionen: greenmike
Bin gerade nicht Zuhause muss es erst später probieren.

Habe erst später gesehen das du in der Config WLAN aktiviert hast.

Kannst du mir noch den Pfad und die Dateien raussuchen welche in ESPHome Verzeichnis liegen. Einfach einen Screenshot oder so.
 
1.PNG


2.PNG


Zum Auslesen hast Du mehrere Möglichkeiten:

Das Webinterface, wenn aktiv. (Screenshot oben)

Die Event API, ( IPADRESSEdesESP/events )

MQTT wenn du einen externen Broker aktiv hast. (RASPI)

Oder die Homeassistant API, wenn aktiv. (Dann tauchen die Werte automatisch in Homeassistant auf)

Und natürlich brauchst Du WIFI, wenn du keinen ESP32 mit Lan hast... Beamen wird es die Werte nicht.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: greenmike
Hallo danke für die Screenshots habe gesehen mir fehlt der espdm Ordner (config/esphome/) ich finde diesen aber auch nicht auf Github in der .zip Datei.


Das wird der Grund sein warum es nicht funktioniert. Kannst du mir diesen Hochladen ?
 
Nö, geh den ganzen Prozess nochmal von vorne bis hinten durch.
Ich habe den Ordner auch nicht selbst erstellt.

Vielleicht brauchst Du einen erfolgreichen Compile dafür.

Du hast jetzt mehr als alle Infos die nötig sind.
Da musst Du Dich jetzt mal durchtesten.

Wenn Du Dich an die Readme von Github hälst, klappt eingentlich alles, sofern Du eine taugliche Config hast.

Hat es mit meiner Config nicht geklappt?
Sonst warte bis die bestellten ESP32 da sind.

Wie sieht das Compile Ergebnis jetzt aus? Kopier mal das Log.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: greenmike
Ich bekomme beim Compiler eine Fehlermeldung (mit deiner Config) das der Ordner fehlt. Es liegt auf keinen Fall daran das ich ein anderes Board habe. Aber ich habe sie vorhin bestellt und sie werden am Freitag geliefert.

Software installation (Meine Vorgehensweise)​

This software installation guide assumes some familiarity with ESPHome.

  • Pull this repository into your ESPHome config files (habe die Dadtein wie du in die beiden configs kopiet)
  • Adjust the meter01.example.yaml to your needs, copy it into your ESPHome config folder as meter01.yaml (Habe deine yaml benutzt)
  • Don't forget to add your decryption key in meter01.yaml (habe ich gemacht)
  • Connect your ESP
  • Run esphome meter01.yaml run and choose your serial port (or do this via the Home Assistant UI)
  • Disconnect the ESP and continue with hardware installation
 

Anhänge

  • ESPHomeFehler.PNG
    ESPHomeFehler.PNG
    10 KB · Aufrufe: 321
Jetzt mal eine blöde Frage... Das ESPhome Addon hast Du schon installiert in Homeassistant?
Falls es das war darfst Du mich auf eine virtuelle oder echte Kiste Bier einladen :D
 
  • Gefällt mir
Reaktionen: greenmike
Natürlich

Die Kiste Bier ist trotzdem klein Problem für mich für so helfende Menschen wie dich. 👌
 

Anhänge

  • ESPHomeFehler.PNG
    ESPHomeFehler.PNG
    45,1 KB · Aufrufe: 350
greenmike schrieb:
Natürlich

Die Kiste Bier ist trotzdem klein Problem für mich für so helfende Menschen wie dich. 👌
Hi,

ich bin über genau die gleiche Probleme wie du gestolpert und bekomme das yaml im ESPhome nicht zum laufen.
Konntest du nun meter01 mit ESPhome compilen, was war der Fehler?
 
Zurück
Oben