esphome icon indicating copy to clipboard operation
esphome copied to clipboard

[dlms_meter] Add dlms smart meter component

Open SimonFischer04 opened this issue 1 year ago • 87 comments

What does this implement/fix?

Add support for smartmeters using the dlms/cosem protocol.

Heavily inspired by the dsmr component and thanks to DomiStyle and firegore for initial work on basic protocol implementation.

PS: also got some other people successfully testing with other smartmeters here: https://github.com/SimonFischer04/esphome/issues/1.

Types of changes

  • [ ] Bugfix (non-breaking change which fixes an issue)
  • [X] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • [ ] Code quality improvements to existing code or addition of tests
  • [ ] Other

Related issue or feature (if applicable):

  • fixes https://github.com/esphome/feature-requests/issues/1487

Pull request in esphome-docs with documentation (if applicable):

  • esphome/esphome-docs#4536

Test Environment

  • [X] ESP32
  • [X] ESP32 IDF
  • [X] ESP8266
  • [ ] RP2040
  • [ ] BK72xx
  • [ ] RTL87xx

Example entry for config.yaml:

# Example config.yaml
uart:
  rx_pin: GPIO33 # change this to the pin where you connected the mbus adapter board
  baud_rate: 2400
  rx_buffer_size: 1024 # Needed to receive the large packets send by the smart meter

dlms_meter:
  decryption_key: "36C66639E48A8CA4D6BC8B282A793BBB" # change this to your decryption key!
  provider: netznoe # (optional) key - only set if using evn

sensor:
  - platform: dlms_meter
    voltage_l1:
      name: "Voltage L1"
    voltage_l2:
      name: "Voltage L2"
    voltage_l3:
      name: "Voltage L3"
    current_l1:
      name: "Current L1"
    current_l2:
      name: "Current L2"
    current_l3:
      name: "Current L3"
    active_power_plus:
      name: "Active power taken from grid"
    active_power_minus:
      name: "Active power put into grid"
    active_energy_plus:
      name: "Active energy taken from grid"
    active_energy_minus:
      name: "Active energy put into grid"
    # EVN
    power_factor:
      name: "Power Factor"

text_sensor:
  - platform: dlms_meter
    timestamp:
      name: "timestamp"
    # EVN
    meternumber:
      name: "meterNumber"

Checklist:

  • [X] The code change is tested and works locally.
  • [X] Tests have been added to verify that the new code works (under tests/ folder).

If user exposed functionality or configuration variables are added/changed:

SimonFischer04 avatar Dec 24 '24 23:12 SimonFischer04

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 72.44%. Comparing base (191a88c) to head (5615341). :warning: Report is 4 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #8009      +/-   ##
==========================================
- Coverage   72.47%   72.44%   -0.03%     
==========================================
  Files          53       53              
  Lines       11123    11123              
  Branches     1503     1503              
==========================================
- Hits         8061     8058       -3     
- Misses       2674     2676       +2     
- Partials      388      389       +1     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

codecov-commenter avatar Dec 24 '24 23:12 codecov-commenter

@SimonFischer04 if you want i could also do a test with a ESP32-C6 in january

ximex avatar Dec 25 '24 16:12 ximex

@SimonFischer04 if you want i could also do a test with a ESP32-C6 in january

@ximex thanks for the offer, would be nice 👍

Although: If we still use arduino framework it should not change anything. But with newer esp chips it's usually recommended to use idf. I did not yet dig into idf- programming, but I think some changes would be required to get this working with idf. That's why I did not check idf support above.

Let's start with this and later idf support can be added if desired, so this initial pr is smaller and easier to reviewer.

SimonFischer04 avatar Dec 25 '24 16:12 SimonFischer04

Ok than i have to wait for IDF support as i didn't get the ESP32-C6 running with arduino framework What changes would be necessary for IDF support? For C6 i saw at least this checks #if defined(ESP32) At least i could confirm that UART with IDF is working on ESP32-C6. Have this running: https://esphome.io/components/sensor/pmsx003

ximex avatar Jan 21 '25 01:01 ximex

For C6 i saw at least this checks #if defined(ESP32)

Just a check, should be the least problem with IDF support. As said, I haven't worked with idf yet, so not really sure. At least "native idf" seems to be quite different. Don't know how much platformio (used by esphome) already abstracts here. Also want to keep this initial PR as small as possible, already quite a lot like this to review.

Also, this could be a stepstone in the meantime: https://github.com/esphome/esphome/pull/6894

SimonFischer04 avatar Feb 02 '25 15:02 SimonFischer04

Any progress on this pr? @jesserockz or someone might wanna take a look and review?

CodeMystic21 avatar Feb 07 '25 22:02 CodeMystic21

@SimonFischer04 maybe change the pin? see: https://github.com/SimonFischer04/esphome/issues/1#issuecomment-2671008121

maybe this would also an improvement: https://github.com/DomiStyle/esphome-dlms-meter/issues/46

ximex avatar Feb 20 '25 10:02 ximex

@SimonFischer04 maybe change the pin? see: https://github.com/SimonFischer04/esphome/issues/1#issuecomment-2671008121

maybe this would also an improvement: https://github.com/DomiStyle/esphome-dlms-meter/issues/46

Thanks, will do later so I can also change it in the docs-pr.

SimonFischer04 avatar Feb 20 '25 11:02 SimonFischer04

This fixes https://github.com/DomiStyle/esphome-dlms-meter/issues/47 . Thank you!

pos-ei-don avatar Feb 20 '25 12:02 pos-ei-don

As mentioned in https://github.com/DomiStyle/esphome-dlms-meter/issues/47 this also fixed it for me.

cococheaf avatar Feb 20 '25 16:02 cococheaf

Fix for https://github.com/DomiStyle/esphome-dlms-meter/issues/47 also working for me.

RocketSience avatar Feb 21 '25 09:02 RocketSience

Just give a 👍 to the first post if it works for you. Keeps the thread here cleaner.

SimonFischer04 avatar Feb 21 '25 09:02 SimonFischer04

@ximex thanks for the review. Added some comments. Rest I will look at later.

SimonFischer04 avatar Feb 23 '25 00:02 SimonFischer04

Does anyone know how i could use AES128 GCM with ESP-IDF?

i'm currently trying to get this PR running with ESP-IDF but i'm getting this errors:

Linking .pioenvs/smart-meter/firmware.elf
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp.o: in function `esphome::dlms_meter::DlmsMeterComponent::loop()':
/config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:159:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x43a): undefined reference to `mbedtls_gcm_init'
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:170:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x456): undefined reference to `mbedtls_gcm_setkey'
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:176:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x476): undefined reference to `mbedtls_gcm_auth_decrypt'
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:176:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x480): undefined reference to `mbedtls_gcm_free'
collect2: error: ld returned 1 exit status
*** [.pioenvs/smart-meter/firmware.elf] Error 1

I have already changed the ESP32 constants to USE_ESP32 and "fixed" the warning about the possible to short char timestamp[21]. now this error is the next error i get

ximex avatar Feb 24 '25 17:02 ximex

Does anyone know how i could use AES128 GCM with ESP-IDF?

i'm currently trying to get this PR running with ESP-IDF but i'm getting this errors:

Linking .pioenvs/smart-meter/firmware.elf
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp.o: in function `esphome::dlms_meter::DlmsMeterComponent::loop()':
/config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:159:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x43a): undefined reference to `mbedtls_gcm_init'
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:170:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x456): undefined reference to `mbedtls_gcm_setkey'
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:176:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x476): undefined reference to `mbedtls_gcm_auth_decrypt'
/config/.esphome/platformio/packages/[email protected]+20240530/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /config/.esphome/build/smart-meter/src/esphome/components/dlms_meter/dlms_meter.cpp:176:(.text._ZN7esphome10dlms_meter18DlmsMeterComponent4loopEv+0x480): undefined reference to `mbedtls_gcm_free'
collect2: error: ld returned 1 exit status
*** [.pioenvs/smart-meter/firmware.elf] Error 1

I have already changed the ESP32 constants to USE_ESP32 and "fixed" the warning about the possible to short char timestamp[21]. now this error is the next error i get

I guess idf requires also some other decryption lib. Like with esp8266 vs 32?

Ok, if idf is not that hard to integrate why not include it. Unfortunately I didn't have time yet to work on this also. Great to see that you are trying to get it working!

PS: thanks again for the thorough review. Quite a lot of interesting points here. Will try to integrate them this weekend.

SimonFischer04 avatar Feb 25 '25 22:02 SimonFischer04

@ximex I have now implemented most requested changes. Some things I'm unsure / don't fully understand. Have left some comments. Please re-check.

SimonFischer04 avatar Feb 28 '25 22:02 SimonFischer04

Would it make sense to extract the parts (M-Bus, DLMS, Decryption, Decoding) in the loop function into separate functions and move them into mbus.cpp, dlms.cpp, decryption.cpp obis.cpp?

what about that?

Have answered on every question if i didn't missed anything

ximex avatar Mar 03 '25 22:03 ximex

Would it make sense to extract the parts (M-Bus, DLMS, Decryption, Decoding) in the loop function into separate functions and move them into mbus.cpp, dlms.cpp, decryption.cpp obis.cpp?

what about that?

Have answered on every question if i didn't missed anything

Sorry, missed that one. Yeah, probably makes sense in the future. Would also be good to then add unit tests for some known data for the individual parts (I see there is something in progress about adding unit test support: https://github.com/esphome/esphome/pull/5728). But unfortunately don't have time to re-structure code so it can be split-up, ... currently. Hope it's not a blocker to get this initial implementation forward.

Same here. Implemented some more requested changes. A few questions left.

SimonFischer04 avatar Mar 05 '25 18:03 SimonFischer04

Most of the requested changes and some more are here: https://github.com/ximex/esphome/commits/dlms-meter-idf/ @SimonFischer04 you could merge/cherry-pick etc my commits into your branch

ximex avatar Mar 27 '25 21:03 ximex

Most of the requested changes and some more are here: https://github.com/ximex/esphome/commits/dlms-meter-idf/ @SimonFischer04 you could merge/cherry-pick etc my commits into your branch

Want to make a pr against my branch so I don't have to cherry-pick them individually? 😀

SimonFischer04 avatar Mar 27 '25 21:03 SimonFischer04

@SimonFischer04 good idea. Done: https://github.com/SimonFischer04/esphome/pull/2

ximex avatar Mar 27 '25 21:03 ximex

Most of the requested changes and some more are here: https://github.com/ximex/esphome/commits/dlms-meter-idf/ @SimonFischer04 you could merge/cherry-pick etc my commits into your branch

From the remaining few requested changes. Anything you are already working on / still want to do? So we don't do duplicate changes again.

SimonFischer04 avatar Mar 27 '25 22:03 SimonFischer04

@SimonFischer04 no currently not working on anything of the other changes

ximex avatar Mar 27 '25 22:03 ximex

it's possible to dig deeper and deeper and you will always find more^^

maybe adding also some default icons in the python file? like:

  • https://pictogrammers.com/library/mdi/icon/lightning-bolt/
  • https://pictogrammers.com/library/mdi/icon/current-ac/
  • https://pictogrammers.com/library/mdi/icon/sine-wave/

and should we use vec.at(...) instead of vec[...]` to access the vector?

@ximex Yes ... If we are now discussing about icons for the webserver ... (not a lot of components have them either) Can we just get the basics working first and also not change everything now so @swoboda1337 don't has to re-review all the files already checked.

SimonFischer04 avatar Mar 28 '25 01:03 SimonFischer04

@swoboda1337 requested changes implemented. only thing left i think is the ci fail - any idea?

SimonFischer04 avatar Mar 28 '25 01:03 SimonFischer04

@swoboda1337 requested changes implemented. only thing left i think is the ci fail - any idea?

Yes include <cstdint> where those are defined.

swoboda1337 avatar Mar 28 '25 02:03 swoboda1337

@swoboda1337 requested changes implemented. only thing left i think is the ci fail - any idea?

Yes include <cstdint> where those are defined.

@swoboda1337

Thanks, implemented. All checks pass now. mbedtls_gcm_context move to cpp also done.

Anything left here?

SimonFischer04 avatar Mar 28 '25 22:03 SimonFischer04

SimonFischer04

Anything left here?

My EPS8266 which worked, stopped working with the last changes. The compilation and OTA Update ist good, but no Data ist deliverwd after booting, and No Log exept the Boot Log below ist awailable. I am not seeing any debug-log information, the serial logger just shows this.

The code i included this is

external_components:
  - source: github://pr#8009   # see https://github.com/esphome/esphome/pull/8009
    components: [ dlms_meter ]
#    refresh: 0s

[08:02:40]
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����g�;��o|�$�l`b��|{�d�n��'�d`��`;�l�d��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����g�s��g|�l�d`c��<;�$�g��o�l �� s�$�l��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����g�r��o|�l�d`c��<;�$�g��o�$ ��{�$�l��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����n��{��'<�d�l #��|s�l�'��'�l`��;�l�l��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����n��{��'|�l�$ c��|;�l�g��g�l`��{�$�l��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����'�s��g|�l�d`c��|{�d�n��'�d`��;�l�d��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����'��s��'<�d�l`b��|{�$�o��o�$ ��s�d�$��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����'�s��g|�l�$ c��|r�l�g��g�l ��{�$�l��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����n��{��'<�d�l #��|s�l�'��g�l`��;�l�l��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]����'��{��'<�d�l`#��|s�l�'��'�d`��`s�d�$��
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld

pos-ei-don avatar Apr 01 '25 06:04 pos-ei-don

SimonFischer04

Anything left here?

My EPS8266 which worked, stopped working with the last changes. The compilation and OTA Update ist good, but no Data ist deliverwd after booting, and No Log exept the Boot Log below ist awailable. I am not seeing any debug-log information, the serial logger just shows this.

The code i included this is

external_components:
  - source: github://pr#8009   # see https://github.com/esphome/esphome/pull/8009
    components: [ dlms_meter ]
#    refresh: 0s
[08:02:40]
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������g�;��o|�$���l`��b�����|�{��d�n��'��d`���`;�l�d����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������g�s��g|��l��d`��c����<�;��$�g���o�l ��� s�$�l�����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������g�r��o|�l���d`��c�����<�;��$�g��o�$ ���{�$�l����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������n��{��'<��d��l ��#�����|�s��l�'���'��l`���;�l�l�����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������n��{��'|��l�$ ��c����|�;��l�g���g��l`���{�$�l����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������'�s��g|��l���d`��c�����|�{��d�n��'��d`���;�l�d����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������'��s��'<��d��l`��b�����|�{��$�o��o�$ ���s�d�$�����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������'�s��g|��l��$ ��c����|�r��l�g���g��l ���{�$�l�����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������n��{��'<��d��l ��#�����|�s��l�'���g��l`���;�l�l�����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld
[08:02:40]������'��{��'<��d��l`��#�����|�s��l�'���'��d`���`s�d�$�����
[08:02:40] ets Jan  8 2013,rst cause:2, boot mode:(3,6)
[08:02:40]
[08:02:40]load 0x4010f000, len 3424, room 16 
[08:02:40]tail 0
[08:02:40]chksum 0x2e
[08:02:40]load 0x3fff20b8, len 40, room 8 
[08:02:40]tail 0
[08:02:40]chksum 0x2b
[08:02:40]csum 0x2b
[08:02:40]v0008eb60
[08:02:40]~ld

Seems like some more severe boot problem. please (binary-search) the commit where it broke for you.

external_components:
  source:
    type: git
    url: https://github.com/SimonFischer04/esphome
    ref: c2a219b162c91d421fb31a5a1fbd46482fa67115
  components: [ dlms_meter ]

SimonFischer04 avatar Apr 03 '25 07:04 SimonFischer04

SimonFischer04

Thank you!!! I did test this.

Seems like some more severe boot problem. please (binary-search) the commit where it broke for you.

external_components:
  source:
    type: git
    url: https://github.com/SimonFischer04/esphome
    ref: c2a219b162c91d421fb31a5a1fbd46482fa67115
  components: [ dlms_meter ]

This works

  • 'c2a219b162c91d421fb31a5a1fbd46482fa67115 # works
  • 'd3d346c51d555496b383cf2dd1718b8def8e9f50 # this next one aswell
  • '6a94324b6042d7676329ddfc89089e0479301930 # stopped working

pos-ei-don avatar Apr 03 '25 11:04 pos-ei-don