Stromzähler eBZ, ESPHome, Hichi v1.1 Lesekopf; Sensordaten nicht durchgängig verfügbar

Hallo zusammen

ich habe obigen Stromzähler und lese ihn mit einem Hichi V1.1 aus.
Anfangs mit Tasmota, jetzt mit ESPHome.

Das hat auch eine Zeit lang gut geklappt, seit einiger Zeit immer wieder mit Unterbrechungen in den Lesungen.

Mir wurden im Log 2 Probleme angezeigt, einderseits musste ich “minimum_chip_revision: “3.1”“ setzen und andererseits gab es wohl ein Problem mit der Quarzfrequenz.
Diese habe ich mit

sdkconfig_options:
CONFIG_XTAL_FREQ_40: ‘y’

gesetzt.

Trotzdem läuft es nicht rund.

Hier mal mein Code in ESPHome

esphome:

  name: stromzaehlerhv

  friendly_name: StromzaehlerHV




esp32:

  board: esp32dev

  framework:

    type: esp-idf

    sdkconfig_options:

        CONFIG_XTAL_FREQ_40: 'y'

    advanced: 

      minimum_chip_revision: "3.1"




# Enable logging

#logger:




# Enable Home Assistant API

api:

  encryption:

    key: "secret"




ota:

  - platform: esphome

    password: "secret"




wifi:

  ssid: !secret wifi_ssid

  password: !secret wifi_password




  # Enable fallback hotspot (captive portal) in case wifi connection fails

  ap:

    ssid: "Stromzaehlerhv Fallback Hotspot"

    password: "secret"




captive_portal:




external_components:

  - source: github://mampfes/esphome_obis_d0




uart:

  id: uart_bus

  tx_pin: 17

  rx_pin: 16

  baud_rate: 9600

  data_bits: 7

  parity: EVEN

  stop_bits: 1

  debug: 




# Example configuration entry

logger:

  level: DEBUG




obis_d0:

  id: mysml

  uart_id: uart_bus

  optimize_size: true

# Logging if needed

  on_telegram:

    then:

      - logger.log: "telegram received"




sensor:

   - platform: obis_d0

     name: "StromzEGVerbrauch"

     obis_d0_id: mysml

     obis_code: "1-0:1.8.0*255"

     unit_of_measurement: kWh

     accuracy_decimals: 8

     device_class: energy

     state_class: total_increasing

     value_regex: "\\d{6}\\.\\d{8}\\*kWh"

     filters:

     - filter_out: nan




   - platform: obis_d0

     name: "StromzEGVerbrauch_T1"

     obis_d0_id: mysml

     obis_code: "1-0:1.8.1*255"

     unit_of_measurement: kWh

     accuracy_decimals: 3

     device_class: energy

     state_class: total_increasing

     value_regex: "\\d{6}\\.\\d{3}\\*kWh"

     # Filter, b/c sometimes NaN is received

     filters:

     - filter_out: nan




   - platform: obis_d0

     name: "StromzEGVerbrauch_T2"

     obis_d0_id: mysml

     obis_code: "1-0:1.8.2*255"

     unit_of_measurement: kWh

     accuracy_decimals: 3

     device_class: energy

     state_class: total_increasing

     value_regex: "\\d{6}\\.\\d{3}\\*kWh"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzEGErzeugung"

     obis_d0_id: mysml

     obis_code: "1-0:2.8.0*255"

     unit_of_measurement: kWh

     accuracy_decimals: 8

     device_class: energy

     state_class: total_increasing

     value_regex: "\\d{6}\\.\\d{8}\\*kWh"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzMomVerbrauchGesamt"

     obis_d0_id: mysml

     obis_code: "1-0:16.7.0*255"

     unit_of_measurement: W

     accuracy_decimals: 8

     device_class: energy

     state_class: measurement

     value_regex: "\\d{6}\\.\\d{2}\\*W"

     # Filter, b/c sometimes NaN is received

     filters:

     - filter_out: nan




   - platform: obis_d0

     name: "StromzMomVerbrauch_L1"

     obis_d0_id: mysml

     obis_code: "1-0:36.7.0*255"

     unit_of_measurement: W

     accuracy_decimals: 2

     device_class: energy

     state_class: measurement

     value_regex: "\\d{6}\\.\\d{2}\\*W"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzMomVerbrauch_L2"

     obis_d0_id: mysml

     obis_code: "1-0:56.7.0*255"

     unit_of_measurement: W

     accuracy_decimals: 2

     device_class: energy

     state_class: measurement

     value_regex: "\\d{6}\\.\\d{2}\\*W"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzMomVerbrauch_L3"

     obis_d0_id: mysml

     obis_code: "1-0:76.7.0*255"

     unit_of_measurement: W

     accuracy_decimals: 2

     device_class: energy

     state_class: measurement

     value_regex: "\\d{6}\\.\\d{2}\\*W"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzMomSpannung_L1"

     obis_d0_id: mysml

     obis_code: "1-0:32.7.0*255"

     unit_of_measurement: V

     accuracy_decimals: 1

     device_class: energy

     state_class: measurement

     value_regex: "\\d{3}\\.\\d{1}\\*V"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzMomSpannung_L2"

     obis_d0_id: mysml

     obis_code: "1-0:52.7.0*255"

     unit_of_measurement: V

     accuracy_decimals: 1

     device_class: energy

     state_class: measurement

     value_regex: "\\d{3}\\.\\d{1}\\*V"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




   - platform: obis_d0

     name: "StromzMomSpannung_L3"

     obis_d0_id: mysml

     obis_code: "1-0:72.7.0*255"

     unit_of_measurement: V

     accuracy_decimals: 1

     device_class: energy

     state_class: measurement

     value_regex: "\\d{3}\\.\\d{1}\\*V"

     # Filter, b/c sometimes NaN is received

     filters:

      - filter_out: nan




text_sensor:

  - platform: obis_d0

    name: "Device Identification"

    obis_d0_id: mysml

    obis_code: "1-0:96.1.0*255"

    entity_category: diagnostic

    value_regex: "\\w{14}"




  - platform: obis_d0

    name: "Manufacturer ID"

    obis_d0_id: mysml

    obis_code: "id"

    entity_category: diagnostic

    value_regex: "\\w+"

Muss ich in meinem Code noch irgendwas ändern ?

Übrigens ist es wohl so wenn was ausgelesen wurde ist der ESP eine Zeit lang nicht erreichbar.

Ich hoffe es kann einer helfen, ist schon nervig wenn das nicht sauber läuft

Vielen Dank im Voraus

Ich habe von einem ESPHome Code für einen IR-Lesekopf keine Ahnung, aber mal eine Frage: Wenn Du vorher bereits Tasmota genutzt hast, warum bist Du dabei nicht einfach geblieben? :thinking:

Die IR-Leseköpfe mit Tasmota Firmware funktionieren bereits seit Jahren absolut problemlos und auf meinem IR-Lesekopf läuft z.B. noch eine Tasmota Version aus 2023 (oder so) und es gab auch keine Notwendigkeit irgendetwas an der Firmware und/oder der HA Tasmota Integration zu ändern. Bei ESPHome gibt es halt jeden Monat - teils mehrfach - Updates und somit ggf. auch immer mal wieder die Notwendigkeit irgendetwas zu ändern, weil ggf. irgendetwas nicht mehr wie bisher funktioniert. Allein aus dem Grund würde ich niemals freiwillig und ohne zwingenden Grund, bei dem IR-Leskopf von Tasmota zu ESPHome wechseln. :laughing:

VG Jim

Hi Jim

Meine Fritzbox war kaputt gegangen und ich habe nicht die Einstellungen der alten Box übernommen.
Deswegen musste ich allen Geräten, überwiigend den Tasmota Geräten neue IPs verpassen.
Dabei habe ich den Fehler gemacht und den ESP mit einer neuen Firmware per direkten Verbindung aufgespielt.
Leider ohne die Einstellungen für SML

Zusätzlich hatte ich das Skript nicht mehr.

Also habe ich mir gedacht stelle den auch um auf ESPHome.

Wie gesagt hat ja anfangs auch alles geklappt.
Jetzt halt die Probleme das der ständig ausfällt.

Zu Tasmota zurück möchte ich eigentlich nicht mehr.

OK dann kannst Du nur hoffen das ein User etwas zu Deinem Problem posten kann. Ich nutze hier zwar auch noch ESPHome, aber ein Code für einen IR-Lesekopf war für mich noch nie ein Thema. Daher kann ich dazu auch leider nichts sagen.

VG Jim