[dlms_meter] Add dlms smart meter component
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:
- [X] Documentation added/updated in esphome-docs.
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.
@SimonFischer04 if you want i could also do a test with a ESP32-C6 in january
@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.
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
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
Any progress on this pr? @jesserockz or someone might wanna take a look and review?
@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
@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.
This fixes https://github.com/DomiStyle/esphome-dlms-meter/issues/47 . Thank you!
As mentioned in https://github.com/DomiStyle/esphome-dlms-meter/issues/47 this also fixed it for me.
Fix for https://github.com/DomiStyle/esphome-dlms-meter/issues/47 also working for me.
Just give a 👍 to the first post if it works for you. Keeps the thread here cleaner.
@ximex thanks for the review. Added some comments. Rest I will look at later.
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
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 1I have already changed the
ESP32constants toUSE_ESP32and "fixed" the warning about the possible to shortchar 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.
@ximex I have now implemented most requested changes. Some things I'm unsure / don't fully understand. Have left some comments. Please re-check.
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.cppobis.cpp?
what about that?
Have answered on every question if i didn't missed anything
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.cppobis.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.
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
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 good idea. Done: https://github.com/SimonFischer04/esphome/pull/2
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 no currently not working on anything of the other changes
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 ofvec[...]` 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.
@swoboda1337 requested changes implemented. only thing left i think is the ci fail - any idea?
@swoboda1337 requested changes implemented. only thing left i think is the ci fail - any idea?
Yes include <cstdint> where those are defined.
@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?
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
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 ]
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