Nu heb ik gewoon vrijwel de standaard code van het voorbeeld gepakt, alleen met andere pin nummers:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| # define multiple uart's uart: - id: p1_uart rx_pin: number: 4 inverted: true baud_rate: 115200 rx_buffer_size: 1700 - id: p1_bridge_uart tx_pin: number: 10 baud_rate: 115200 # link input uart to dsmr dsmr: uart_id: p1_uart max_telegram_length: 1700 # log the telegram and pass telegram to p1_bridge_uart text_sensor: - platform: dsmr telegram: name: "telegram" on_value: then: - lambda: |- ESP_LOGV("dsrm", "telegram: %s", x.c_str()); p1_bridge_uart->write_str(x.c_str()); |
En ik zie ook een bericht gaan;
/f/image/OxEWVtYlr9sOuohGCnSou2nW.png?f=fotoalbum_large)
Alleen snapt de P1 meter die ingeplugd zit er niets van.
Heb ook de uitgang nog geinverteerd, want mijn P1 meter is ook geinverteerd, maar dat mocht niet baten.
Nu kan ik nog met de scoop kijken ofdat ze bitwise overeenkomen, of zou er iets in de code niet kloppen?
edit;
Volgens https://cese.pages.ewi.tu...-1/individual/manual.html
Moet de telegram worden afgesloten met
1
| 1.2.0#(END) |
Dat is niet het geval, en ik zie op het oog ook niet alle waardes er in terug zoals L1 voltage, dus ik vermoed dat er wat data weg valt.
[ Voor 9% gewijzigd door _ferry_ op 16-12-2025 09:41 ]
Hobby electronica club in de buurt?Trent schreef op dinsdag 16 december 2025 @ 15:48:
Bestaat er zoiets als een ESPhome soldeerdienst waar je betaalt om voor het soldeerwerk? Ik had dat ooit ergens gelezen, dacht ik, maar ik vind het niet meer:)
Mrfix.nl
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler. :) Debiet is vermogen en niet de temperatuur.
Heeft dat bordje iets van een opto erop? Immers verwacht het aangesloten device inverted en open collector (dus mag naar 5V getrokken worden) signaal.
In je screenshot is inderdaad geen volledige telegram. Mist ook de header. Optie om een USB-serial of andere ESP aan te sluiten?
Krijg je in je sensoren wel alle waardes? Of wordt ook niet alles door de ESP geparst en is er een ontvangst issue? Je zou eens UART debugging kunnen doen. Zou ik dat gewoon op \n doen.
Ik zat het schema te bekijken en inderdaad geen optocoupler, wat wel jammer is, want de output van de meter heeft dat natuurlijk ook en dan ben je niet zo afhankelijk van hoe de dongle zelf zijn signaal wil hebben. De boel hangt dan ook allemaal weer met de GND en +5V aan elkaar, wat een beetje onhandig is.
Ik heb nog wat met buffers gespeeld, geen effect. De waardes in HA komen wel prima binnen, dus ik ga er eigenlijk ook gewoon niet teveel tijd in stoppen, soldeer mijn eigen splitter wel af, en deze ESP gaat naar een familielid die de meter wil uitlezen.
[ Voor 98% gewijzigd door Obelixxx op 19-12-2025 16:30 ]
Zijn er meer mensen die een probleem ondervinden bij het installeren van de ESPHome 2025.12.1 van vandaag.
Probleempje opgelost !!
[ Voor 79% gewijzigd door Gondelier op 19-12-2025 23:26 ]
https://github.com/thelastoutpostworkshop/ESPConnect
src/main.cpp: In function 'void setup()': src/main.cpp:647:7: error: 'class esphome::Application' has no member named 'register_climate' 647 | App.register_climate(comfoair_climate);
Onderstaand de totale yaml die bij familie wel draait op de Zehnder WHR930, maar waar het updaten van ESPHome niet lukt. Ook op een Atom s3 lite.
:strip_exif()/f/image/c0n7I5ovQTh83nCVzY84tU1K.png?f=user_large)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
| ########################### # Configuration variables # ########################### substitutions: device_name: whr930 filter_time: 10s filter_send_every: '1' filter_window_size: '3' # Wifi status update_interval: 10s ############################################################# ##### No need to edit anything below this line ##### # based on https://github.com/LukasdeBoer/esp8266-whr930-mqtt # and https://github.com/nilsbebelaar/esphome-comfoair ############################################################# external_components: - source: type: git url: https://github.com/tieskuh/esphome-comfoair components: [comfoair] refresh: 0s # includes: # - components/comfoair.h # - components/esphome.h # - components/climate/climate.h # - components/climate/climate_mode.h # - components/climate/climate_traits.h # - components/climate/custom_climate.h # - components/climate_mode.h # - components/climate_traits.h # - components/custom_climate.h esphome: name: whr930 friendly_name: WHR930 esp32: board: esp32-s3-devkitc-1 framework: type: esp-idf # Enable logging logger: baud_rate: 0 logs: esp32.preferences: DEBUG sensor: DEBUG text_sensor: DEBUG switch: DEBUG button: DEBUG number: DEBUG climate: DEBUG component: ERROR # Enable Home Assistant API api: encryption: key: "mYBYjWJChjUbuP0cPGhthvmnqer9Rys/5QQfRPsOdMA=" ota: - platform: esphome password: "4c3c14163210eb985d0092398b1c33ce" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Optional manual IP manual_ip: static_ip: 192.168.2.79 gateway: 192.168.2.1 subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Whr930 Fallback Hotspot" password: "m6lRCDCST0Gl" captive_portal: web_server: port: 80 # ==== Algemene items ======================================== globals: - id: my_time_internal_led type: int restore_value: no initial_value: '10' - id: my_status_internal_led type: bool restore_value: no initial_value: 'false' binary_sensor: #The GPIO Binary Sensor platform allows you to use any input pin on your device as a binary sensor. # mdi:check-network-outline - platform: status name: "NodeESP Status" sensor: # Wifi Signal - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB name: "WiFi Signal Sensor" update_interval: ${update_interval} # gegevens hieronder van UART Climates ed. #====================================== uart: id: uart_bus baud_rate: 9600 tx_pin: GPIO6 rx_pin: GPIO5 comfoair: name: "WHR 950" id: comfoair_climate uart_id: uart_bus fan_supply_air_percentage: name: "Supply fan" fan_exhaust_air_percentage: name: "Exhaust fan" fan_speed_supply: name: "Supply fan speed" fan_speed_exhaust: name: "Exhaust fan speed" is_bypass_valve_open: name: "Bypass" is_preheating: name: "Preheating" outside_air_temperature: name: "Outside temperature" supply_air_temperature: name: "Supply temperature" return_air_temperature: name: "Return temperature" exhaust_air_temperature: name: "Exhaust temperature" is_supply_fan_active: name: "Supply fan" is_filter_full: name: "Filter status" bypass_step: name: "Bypass valve" is_summer_mode: name: "Summer mode" button: - platform: template name: "Reset filter" on_press: then: - lambda: |- id(comfoair_climate)->reset_filter(); # end gegevens van UART Climates ed. #====================================== switch: # Interval voor RUN led - platform: gpio pin: 2 #PCB D4 = Blue led inverted: True name: 'Run_led' id: internal_led #interval: # - interval: 10ms # then: # - lambda: |- # id(my_time_internal_led) -= 1; # if (id(my_time_internal_led)== 0) { # if (id(my_status_internal_led) == false) { # id(my_status_internal_led) = true; # id(internal_led).publish_state(true); # id(internal_led).turn_on(); # id(my_time_internal_led) += 20; # } else { # id(my_status_internal_led) = false; # id(internal_led).publish_state(false); # id(internal_led).turn_off(); # id(my_time_internal_led) += 500; # } # } |
[ Voor 0% gewijzigd door Septillion op 27-12-2025 16:34 . Reden: Denk aan de 'yaml' bij de code tags aub! Zie topic warning en hoe deze post is aangepast. ]
Zubadan 11,2, 50x170Wp SF, WTW Orcon HRC400, Douche WTW Qblue v6, Wijas POW lcd multi doorstromer
ESPhome al ge-update naar de laatste versie?
Ook met Claud kreeg ik mijn nieuw ontvangen LilyGO niet aan de gang. Volgens leverancier niet compatible met de laatste versies van ESPHome. Jammer.Villager schreef op zaterdag 13 december 2025 @ 09:01:
[...]
Nee hoor. Hoeft niet. Het is misschien heel goed mogelijk met jouw hardware. Daar kom je dan wel achter als je de vraag stelt aan Claude. Dus ik stel voor dat je het eerst daarmee probeert.
Kan iemand me adviseren betreffende Waveshare? Of ander merk?
Ik zou graag een wat groter scherm willen. (> 4 Inch)
Kleur zou ook leuk zijn.
Batterij aanwezig of aansluitbaar.
Maar belangrijkste is dat ESPHome zonder problemen te gebruiken zou moeten zijn.
Iemand een advies?
Idd geupdated.Hermarcel schreef op zaterdag 27 december 2025 @ 20:45:
@bbn_ldp
ESPhome al ge-update naar de laatste versie?
Als ik het stuk vanaf Comfoair weglaat krijg ik geen foutmeldingen
[ Voor 15% gewijzigd door bbn_ldp op 29-12-2025 18:09 ]
Zubadan 11,2, 50x170Wp SF, WTW Orcon HRC400, Douche WTW Qblue v6, Wijas POW lcd multi doorstromer
Even build files deleten en opnieuw proberen.bbn_ldp schreef op maandag 29 december 2025 @ 18:07:
[...]
Idd geupdated.
Als ik het stuk vanaf Comfoair weglaat krijg ik geen foutmeldingen
Misschien even exact proberen te vermelden wat je wilt?Lord Anubis schreef op maandag 29 december 2025 @ 22:42:
vraag over de gebruikte displays izm een esp32 en ESPhome. Er zullen wel mensen zijn die dit gebruiken bij een vijver of iets buiten. Nu wil ik een controller buiten plaatsen, in een kast weliswaar , maar de controller heeft een display nodig. Iemand ervaring daarmee tijdens de vrieskou ( nu dus 😉) of dat het overleeft?
Maar een ESP32 heeft wifi en dan kun je vanachter je triple glas met een pot bier in de hand deze met een browser uitlezen bij een kamer temperatuur van 21°, lijkt me heel comfortabel.
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler. :) Debiet is vermogen en niet de temperatuur.
Lijkt me comfortabel, maar is niet de vraag. Het gaat over een display in een buiten kast. Simpel en niet anders.Seafarer schreef op maandag 29 december 2025 @ 23:04:
[...]
Misschien even exact proberen te vermelden wat je wilt?
Maar een ESP32 heeft wifi en dan kun je vanachter je triple glas met een pot bier in de hand deze met een browser uitlezen bij een kamer temperatuur van 21°, lijkt me heel comfortabel.
Vrieskou is het minste probleem, heb je al eens specificaties gelezen? Een -20 t/m 70°C operating temperature is redelijk normaal zo te zien.Lord Anubis schreef op maandag 29 december 2025 @ 22:42:
vraag over de gebruikte displays izm een esp32 en ESPhome. Er zullen wel mensen zijn die dit gebruiken bij een vijver of iets buiten. Nu wil ik een controller buiten plaatsen, in een kast weliswaar , maar de controller heeft een display nodig. Iemand ervaring daarmee tijdens de vrieskou ( nu dus 😉) of dat het overleeft?
Moet je 'm inderdaad wel waterdicht neerzetten zoals een kast, maar dat is niet alles. Electronica kan slecht tegen water in de vorm van regen, maar ook niet best tegen condens. Tegen condensatie kun je een weerstand gebruiken om warmte te genereren, kun je mooi aan/uit schakelen op basis van een vochtigheidssensor om beneden de 90-95% te blijven, maar lager is beter. Als je toch met 230V voor voeding zit kun je ook een gloeilamp gebruiken via relais, dat warmt ook lekker op in een kleine ruimte.
De weerstand stond wel op BOM maar moet nog uitrekenen hoeveel ohm/watt het zou moeten worden. Voeding is POE vanaf een tweede mcu waar wel 230vac aanwezig is. Dus je lamp/weerstand idee is wel goed; alleen geen ervaring ermee. Ben bang dat de lamp eerder dan een weerstand kapot gaat als het droog vriesweer is en de lamp gaat aan of uit.MazzHead schreef op woensdag 31 december 2025 @ 17:55:
[...]
Vrieskou is het minste probleem, heb je al eens specificaties gelezen? Een -20 t/m 70°C operating temperature is redelijk normaal zo te zien.
Moet je 'm inderdaad wel waterdicht neerzetten zoals een kast, maar dat is niet alles. Electronica kan slecht tegen water in de vorm van regen, maar ook niet best tegen condens. Tegen condensatie kun je een weerstand gebruiken om warmte te genereren, kun je mooi aan/uit schakelen op basis van een vochtigheidssensor om beneden de 90-95% te blijven, maar lager is beter. Als je toch met 230V voor voeding zit kun je ook een gloeilamp gebruiken via relais, dat warmt ook lekker op in een kleine ruimte.
Heb wel een camera gemaakt en die in plastic dip gedompeld en werkt prima maar of het intern is.. geen idee.
Thanks.
[ Voor 4% gewijzigd door Lord Anubis op 01-01-2026 13:13 ]
Ik probeerde uit te vinden waarom een display buiten? Als je een esp32 ook met je telefoon of pc kunt bereiken en vandaar af je informatie kunt lezen.Lord Anubis schreef op woensdag 31 december 2025 @ 15:48:
[...]
Lijkt me comfortabel, maar is niet de vraag. Het gaat over een display in een buiten kast. Simpel en niet anders.
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler. :) Debiet is vermogen en niet de temperatuur.
Kan je mij vertellen waar ik die vind?chaoscontrol schreef op maandag 29 december 2025 @ 19:19:
[...]
Even build files deleten en opnieuw proberen.
Zubadan 11,2, 50x170Wp SF, WTW Orcon HRC400, Douche WTW Qblue v6, Wijas POW lcd multi doorstromer
De menu's van ESPHome zijn een rotzooi. Waarom dat menu en de log niet ook gewoon in de edit zit snap ik ook echt niet.
Als ik nu een stream start dan errort die met:
Wat uiteraard nogal een erg vage error is, vooral gezien "ik geen code schrijf"Media reader encountered an error: ESP_ERR_NOT_SUPPORTED
En extra gek, ik had eerst geprobeerd met media_player: platform: i2s_audio, en dan werkt exact dezelfde stream (URL) wel. Waarbij het wel zo is dat met het speaker platform HA de stream doet transcoden naar flac, maar ook als ik format: NONE toepas werkt het niet (terwijl ik in de logging wel de originele mp3 URL zie binnen komen, i.t.t. zonder format, dus die transcode niet meer (zonder format is de URL het IP van mijn HA instance met iets van ffmpeg_proxy? en dan ook met een flac extensie dat overeen komt met het default flac format dus).
Ik kwam daarbij ook nog tegen dat bij het switchen tussen arduino & esp-idf frameworks een volledige reflash ("met kabeltje") nodig is/zou zijn. Dus dat ook al eens geprobeerd, maar met hetzelfde resultaat.
Iemand enig idee?
Het bordje is overigens een ("antieke") "ESP32 DEVKIT V1". Waar blijkbaar geen PSRAM op zit, en dus ook niet ideaal is
Edit:
Met verbose logging in ESPHome + verbose logging in esp-idf (en na strippen van regels van de wifi component):
(Emphasis mine is de error output van ESPHome die ook zonder verbose zichtbaar is)[23:03:52.642][D][media_player:091]: Media URL: https://playerservices.st...eam-redirect/RADIO538.mp3
[23:03:52.649][D][speaker_media_player:406]: State changed to PLAYING
[23:03:52.657][V][esp-idf:000][med_read]: D (25148) HTTP_CLIENT: Begin connect to: https://playerservices.streamtheworld.com:443
[23:03:52.658][V][esp-idf:000][med_read]: D (25150) esp-tls: host:playerservices.streamtheworld.com: strlen 33
[23:03:52.687][V][esp-idf:000][med_read]: D (25160) esp-tls: [sock=58] Resolved IPv4 address: 208.92.53.43
[23:03:52.700][V][esp-idf:000][med_read]: D (25162) esp-tls: Enable TCP keep alive. idle: 5, interval: 5, count: 3
[23:03:52.704][V][esp-idf:000][med_read]: D (25163) esp-tls: [sock=58] Connecting to server. HOST: playerservices.streamtheworld.com, Port: 443
[23:03:52.708][V][esp-idf:000][med_read]: D (25195) esp-tls-mbedtls: Use certificate bundle
[23:03:52.722][V][esp-idf:000][med_read]: D (25197) esp-tls: handshake in progress...
[23:03:52.846][V][esp-idf:000][med_read]: D (25313) esp-x509-crt-bundle: 150 certificates in bundle
[23:03:52.847][V][esp-idf:000][med_read]: I (25336) esp-x509-crt-bundle: Certificate validated
[23:03:53.398][V][esp-idf:000][sys_evt]: D (25886) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:1 posted to loop 0x3ffc2fa0
[23:03:53.398]User-Agent: ESP32 HTTP Client/1.0
[23:03:53.398]Host: playerservices.streamtheworld.com
[23:03:53.399][V][esp-idf:000][sys_evt]: D (25891) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:2 posted to loop 0x3ffc2fa0
[23:03:53.674][V][esp-idf:000][med_read]: D (25954) HTTP_CLIENT: on_message_begin
[23:03:53.714][V][esp-idf:000][med_read]: D (25955) HTTP_CLIENT: HEADER=date:Fri, 02 Jan 2026 22:03:53 GMT
[23:03:53.726][V][esp-idf:000][med_read]: D (25956) HTTP_CLIENT: HEADER=access-control-allow-origin:*
[23:03:53.745][V][esp-idf:000][sys_evt]: D (25955) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:3 posted to loop 0x3ffc2fa0
[23:03:53.775][V][esp-idf:000][med_read]: D (25956) HTTP_CLIENT: HEADER=access-control-allow-credentials:true
[23:03:53.787][V][esp-idf:000][med_read]: D (26029) HTTP_CLIENT: HEADER=x-stw-site:LDN
[23:03:53.808][V][esp-idf:000][med_read]: D (26234) esp-tls: Enable TCP keep alive. idle: 5, interval: 5, count: 3
[23:03:53.863][V][esp-idf:000][med_read]: D (26285) esp-tls-mbedtls: Use certificate bundle
[23:03:53.864][V][esp-idf:000][med_read]: D (26286) esp-tls: handshake in progress...
[23:03:53.951][V][esp-idf:000][med_read]: D (26418) esp-x509-crt-bundle: 150 certificates in bundle
[23:03:53.963][V][esp-idf:000][med_read]: I (26448) esp-x509-crt-bundle: Certificate validated
[23:03:54.495][V][esp-idf:000][sys_evt]: D (26978) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:1 posted to loop 0x3ffc2fa0
[23:03:54.502]User-Agent: ESP32 HTTP Client/1.0
[23:03:54.502]Host: 23543.live.streamtheworld.com
[23:03:54.502][V][esp-idf:000][sys_evt]: D (26982) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:2 posted to loop 0x3ffc2fa0
[23:03:55.005][V][esp-idf:000][med_read]: D (27497) HTTP_CLIENT: on_message_begin
[23:03:55.026][V][esp-idf:000][med_read]: D (27498) HTTP_CLIENT: HEADER=Expires:Thu, 01 Dec 2003 16:00:00 GMT
[23:03:55.094][V][esp-idf:000][sys_evt]: D (27498) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:3 posted to loop 0x3ffc2fa0
[23:03:55.251][V][esp-idf:000][med_read]: D (27499) HTTP_CLIENT: HEADER=Cache-Control:no-cache, must-revalidate
[23:03:55.283][V][esp-idf:000][sys_evt]: D (27500) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:3 posted to loop 0x3ffc2fa0
[23:03:55.346][V][esp-idf:000][med_read]: D (27500) HTTP_CLIENT: HEADER=Pragma:no-cache
[23:03:55.360][V][esp-idf:000][sys_evt]: D (27511) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:3 posted to loop 0x3ffc2fa0
[23:03:55.428][V][esp-idf:000][med_read]: D (27532) HTTP_CLIENT: HEADER=Access-Control-Allow-Credentials:true
[23:03:55.474][V][esp-idf:000][med_read]: D (27768) HTTP_CLIENT: HEADER=icy-description:
[23:03:55.506][V][esp-idf:000][med_read]: D (27839) HTTP_CLIENT: HEADER=icy-br:128
[23:03:55.515][V][esp-idf:000][sys_evt]: D (27870) event: no handlers have been registered for event ESP_HTTP_CLIENT_EVENT:3 posted to loop 0x3ffc2fa0
[23:03:55.527][V][esp-idf:000][med_read]: D (27931) HTTP_CLIENT: content_length = -1
[23:03:55.558][E][speaker_media_player.pipeline:112]: Media reader encountered an error: ESP_ERR_NOT_SUPPORTED
[23:03:55.565][E][speaker_media_player:315]: The media pipeline's file reader encountered an error.
[23:03:55.614][V][esp-idf:000][med_read]: D (28108) HTTP_CLIENT: Begin connect to: https://playerservices.streamtheworld.com:443
[23:03:55.615][V][esp-idf:000][med_read]: D (28111) esp-tls: host:playerservices.streamtheworld.com: strlen 33
[23:03:55.635][V][esp-idf:000][med_read]: D (28118) esp-tls: [sock=58] Resolved IPv4 address: 192.173.29.77
[23:03:55.640][V][esp-idf:000][med_read]: D (28120) esp-tls: Enable TCP keep alive. idle: 5, interval: 5, count: 3
[23:03:55.650][V][esp-idf:000][med_read]: D (28123) esp-tls: [sock=58] Connecting to server. HOST: playerservices.streamtheworld.com, Port: 443
Echt totaal niks dus. Er wordt geconnect, en vervolgens knalt die er uit (nadat die een content length van -1 ontvangt, dat mogelijk niet heel gek is voor een radio stream). En daarna begint die weer opnieuw te connecten.
[ Voor 59% gewijzigd door RobertMe op 02-01-2026 23:07 ]
Had alleen de keuze Clean all, maar probleem is er niet door opgelost. Zodra ik het stuk vanaf Comfoair in de yaml plaats komen de foutmeldingen. Het lijkt wel of het komt door de laatste versies van esphome.Septillion schreef op donderdag 1 januari 2026 @ 17:25:
@bbn_ldp ESPHome => 3-dots bij het device => Clean build files.
De menu's van ESPHome zijn een rotzooi. Waarom dat menu en de log niet ook gewoon in de edit zit snap ik ook echt niet.
Is er iemand die een werkende yaml heeft van een whr930 / Comfoair 350 die wel werkt met de meest recente versie van ESPHome?
Zubadan 11,2, 50x170Wp SF, WTW Orcon HRC400, Douche WTW Qblue v6, Wijas POW lcd multi doorstromer
Twee weken terug heb ik een ESPHome-temperatuursensor gebouwd en geïntegreerd in HA. Na veel lezen heb ik besloten om met een BME280 sensor te gaan.
Alles ging goed tot ik de sensor in gebruik nam in HA. Het viel gelijk op dat de meting te hoog was. Na even wat zoeken is het me duidelijk geworden BME280 “self-heating issues” heeft, Dus een behuizing ontworpen met zoveel mogelijk gaten erin, maar dat hielp niet. Er zijn verschillende manieren om dit te compenseren. Ik heb de makkelijkste weg gekozen door offset te gebruiken. Dit heb ik bepaald door twee sensoren te vergelijken, de andere sensor was de Aqara sensor die al jaren daar staat. Dit is wel de minste goede manier van calibreren, maar het gaf me wel een idee. Na paar dagen monitoren kwam ik op -3,6 graden uit.
Het draait nu redelijk goed, paar tiendes verschil is te verwaarlozen. De blauwe lijn is de NME280:
:strip_exif()/f/image/VimvPVIOFbAuOnIYZx8W2uYP.png?f=user_large)
Even voor de duidelijkheid; sensor heb ik nodig om virtuele thermostaat aan te sturen, daar was de Aqara-sensor te traag voor. Aqara werkt voor normale situaties goed, maar niet voor dit. Als de virtuele sensor op 20°C ingesteld wordt en Aqara stuurt de ketel uit dan is het te laat, temperatuur loopt op tot bijna 24°C uit, dit is wel verholpen met BME280.
Conclusie is dat je internet niet moet vertrouwen. Dit wist ik al, maar je moet toch ergens beginnen. De meeste deden alsof het een perfecte sensor was, maar heeft toch zijn nukken…
Maar ik ben waarschijnlijk niet slim genoeg om daar les uit te trekken. Volgend project was een presence sensor bouwen. Na weer op internet te hebben gestruind, kwam ik op een LD2450-sensor uit. Het zou een geweldige sensor zijn.
Min of meer is het ook zo, maar stilstaand doel detecteren, ho maar, dat schijnt niet zijn sterkste kant te zijn, maar daar wil ik het juist voor. Na bijna alle kamers in huis te hebben geprobeerd, kwam ik erachter dat het weer te goed was voor het detecteren van dingen dwars door deuren en muren (gipsblokwanden). Uiteindelijk heb ik het in mijn hobbykamer geplaatst. Gelukkig is het mogelijk om zones in te stellen via Bluetooth en een app van HKL (merk van de sensor) of via HA.
Eerlijk is eerlijk, het is wel erg goedkoop om er een te bouwen. Totale kosten voor deze sensor samen met een ESP32 C3 super mini waren maar €5 (en een USB-voeding natuurlijk). Dit voor EU en NL invoerrechten en toeslaggedoe net voor 2026.
Het is ook mogelijk om radar in een dashboard toe te voegen via een custom card:
:strip_exif()/f/image/kVhL00nRqLFByp7pOviusW3A.png?f=user_large)
Omdat ik toch graag stilstaande objecten wil detecteren, heb ik een andere sensor besteld, dit keer een LD2410C. Schijnt beter te zijn voor stilstaan target presence.
Ben benieuwd of deze sensor weer andere problemen geeft, want je komt er pas achter als je er een in gebruik neemt. Dan pas ga je naar een specifiek probleem zoeken op interwebs…
Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
Onder aan de streep meer een ESPHome discussie
[ Voor 0% gewijzigd door Septillion op 06-01-2026 12:55 ]
Dat ligt toch 100% aan wat je bouwt en waarmee? Ik heb al vele jaren (7? 8?) naar tevredenheid een "bed presence" sensor op basis van een antiek NodeMCU bord met ESP8266 met 4 load cells, werkt vaak lang prima (totdat er iets te veel aan de kabels gerammeld wordt?). Ook de kledingkast met een ESP32 dev board zelf 4 contact sensoren in gemaakt (i.p.v. 4 Zigbee sensoren op een oppervlakte van niks) en ook dat werkt gewoon prima.Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
mmwave radar heb ik mijn vingers ook aan gebrand. HLK LD2411(S?), die heeft geen "makkelijke" connector, geen ESPHome support (wist ik al bij bestellen) en nooit fatsoenlijk gesoldeerd gekregen. Wel zelf een ESPHome component voor gemaakt die an zich werkte. Maar de sensor zelf is lang niet zo goed als de oudere LD2410, veel minder mogelijkheden (niet eens een rechtstreekse trigger pin).
En daarnaast natuurlijk ook hardware besteld voor projecten die ik nooit heb opgepakt
@RobertMe, Klopt inderdaad, mechanische onderdelen zoals een schakelaar zal minder problemen opleveren. ESP-borden en ESPHome doen hun werk goed, het gaat meer om de sensoren. Temperatuur sensor heb ik ook op basis van een ESP8266 gebouwd.RobertMe schreef op dinsdag 6 januari 2026 @ 06:45:
[...]
Dat ligt toch 100% aan wat je bouwt en waarmee?
Ik heb ook 4 jaar terug twee bed presence sensoren gebouwd, op basis van een Aqara deur/raam sensor met een microswitch. Werkt ook heel goed.
LD2410C werkt goed voor de rest, als “still target” goed had gewerkt, was het perfect geweest. Daar bouw je een presence sensor voor, anders kan je net zo goed een PIR sensor nemen.
Ik ben benieuwd hoe LD2410C gaat werken, het is ook een ouder model sensor. Ik heb ook LD2420 besteld, en daar ga ik ook mee experimenteren.
@Stef012, Ik ben ook van plan om dallas sensoren gebruiken voor in de enclosure van mijn 3D printer, omdat ik bijna alleen met ABS print, heb ik verwarming ingebouwd. Op dit moment zit er een Aqara sensor met een display in. Daar heb ik de sensor verlengd met een flat cable. Goed om te horen dat dallas sensoren werken.
Volgend project is een CO₂-sensor op basis van SCD41, ben benieuwd hoe dat gaat werken.
Ik heb ook een JSN-SR04T / AJ-SR04M ultrasoon sensor liggen om het waterniveau te meten in een waterton. Ik moet wel eerst een waterton kopen
Heb hier nu een weekje de Diyless Thermostat draaien en werkt als een tierelier moet ik zeggen.Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik wil even een discussie openen over ESPHome in combinatie met Home Assistant. Ik ben benieuwd naar de ervaringen van andere ESPHome i.c.m. HA medegebruikers.
Even voor de duidelijkheid; sensor heb ik nodig om virtuele thermostaat aan te sturen, daar was de Aqara-sensor te traag voor. Aqara werkt voor normale situaties goed, maar niet voor dit. Als de virtuele sensor op 20°C ingesteld wordt en Aqara stuurt de ketel uit dan is het te laat, temperatuur loopt op tot bijna 24°C uit, dit is wel verholpen met BME280.
Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
:strip_exif()/f/image/wD44eMbG4rGyUa0HjtQgnbqK.png?f=user_large)
De aqara sensor stuurt als ik mij niet vergis elke 5 minuten de actuele temperatuur uit. Omdat de afstand tussen ketel en de aqara sensor te groot is publiceer ik elke x minuten de actuele waarde via MQTT naar mijn Opentherm gateway.
Dus om de paar minuten vind er wel verandering plaats, lijkt mij niet dat je daardoor van 20 naar 24 graden kan doorschieten?
Aqara zigbee sensor die ik had gebruikt "zou" na elk 0,5 °C verschil moeten updaten, maar dat deed ie niet. Soms duurt het wel meer dan 30 minuten voordat het reageert, dit met een volle batterij, dus daardoor was het niet betrouwbaar. Kamer is 9m x 3m met een 500x1800 T22 - 3472 watt radiator, met een temperatuurupdate van 20 minuten (in de meeste gevallen) was het veel te laat.paul-s83 schreef op dinsdag 6 januari 2026 @ 12:23:
[...]
Dus om de paar minuten vind er wel verandering plaats, lijkt mij niet dat je daardoor van 20 naar 24 graden kan doorschieten?
Hieronder een voorbeeld van twee sensoren, de blauwe lijn is van ESPHome sensor en de gele lijn is van de Aqara zigbee sensor. Zie update verschillen en hoe mooi de ESP sensor reageert. Dit was een moment toen verwarming aangezet werd.
:strip_exif()/f/image/rAwwY7hVjfmaKoOkCPbIgww8.png?f=user_large)
Moment dat ze elkaar kruisen, zie je dat zigbee sensor hele tijd hetzelfde blijft en dat is meer dan 30 minuten. Graad verschil bovenaan was 1 °C , lijkt niet veel maar dit komt door dat ESP sensor ketel heeft uitgezet, toen het andersom was geconfigureerd, dus zigbee sensor aansturing regelde, ESP sensor was al lang op 20 °C maar zigbee sensor had nog lang niet gereageerd, je ziet het wel langzaam omhoog gaan maar niet snel genoeg updates geeft.
Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik wil even een discussie openen over ESPHome in combinatie met Home Assistant. Ik ben benieuwd naar de ervaringen van andere ESPHome i.c.m. HA medegebruikers.
Twee weken terug heb ik een ESPHome-temperatuursensor gebouwd en geïntegreerd in HA. Na veel lezen heb ik besloten om met een BME280 sensor te gaan.
Alles ging goed tot ik de sensor in gebruik nam in HA. Het viel gelijk op dat de meting te hoog was. Na even wat zoeken is het me duidelijk geworden BME280 “self-heating issues” heeft, Dus een behuizing ontworpen met zoveel mogelijk gaten erin, maar dat hielp niet. Er zijn verschillende manieren om dit te compenseren. Ik heb de makkelijkste weg gekozen door offset te gebruiken. Dit heb ik bepaald door twee sensoren te vergelijken, de andere sensor was de Aqara sensor die al jaren daar staat. Dit is wel de minste goede manier van calibreren, maar het gaf me wel een idee. Na paar dagen monitoren kwam ik op -3,6 graden uit.
Ik denk dat je ESPHome moet zien als een doos Lego. Om iets moois te maken moet je het ook slim in elkaar zetten en slim programmeren.Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
Zo'n BME280 zelf zal geen self-heating issues hebben, dat stroomverbruik meet je in µA. Een ESP met wifi aan verstookt 1000x zoveel. Een andere warmtebron zijn de spanningsregelaars, voor de ESP, en soms hebben BME280 modules ook een (overbodige) regelaar aan boord. Dingen die je kan doen:
- sensor zo ver mogelijk van je ESP
- deep sleep mode van de ESP gebruiken
- clock speed van de ESP naar beneden
Met een warmtebeeld camera is een BME280 niet zichtbaar:
Ik kan even niet bij de sensor, maar hier is de tekening.
:strip_exif()/f/image/dm4KBJEYKGBL5M7TF7eYOJDf.png?f=user_large)
Ik laat het nu zoals het is, ik ben tevreden hoe het werkt, maar volgende keer ga ik daar zeker rekening mee houden.
Ik ben net klaar met een 3D tekening voor een SCD41 sensor i.c.m. C3 Supermini. Daar heb ik zelfs veel meer gaten in gemaakt. Ik ga het morgen in elkaar zetten.
Je kan eventueel ook met wat schuim o.i.d. je sensor nog wat meer scheiden van de ESP.Reptile-X schreef op dinsdag 6 januari 2026 @ 19:09:
Ik ben net klaar met een 3D tekening voor een SCD41 sensor i.c.m. C3 Supermini. Daar heb ik zelfs veel meer gaten in gemaakt. Ik ga het morgen in elkaar zetten.
De meeste ESP C3 Supermini's hebben trouwens een verkeerd uitgevoerde wifi-antenne, waardoor het wifi signaal zeer matig is en de chip extra opwarmt. Een kleine antenne modificatie los dat op. (Zie bijv. https://hackaday.com/2025...for-better-esp32-c3-wifi/)
Die antenne is een goeie oplossing, C3 supermini die ik voor de presence sensor gebruik, wordt 55°C met uitschieters tot 60°C. Wifi verbinding lijk goed te gaan tot nu toe.
Ik heb exact hetzelfde model als die gemodificeerde C3. Ik heb er nog 10 van liggen, vorige maand ingeslagen voordat gedoe begint met NL/EU nvoerkosten. Voor het aankomende project heb ik al de behuizing geprint, maar de volgende ga ik wel met zo'n antenne proberen, denk ik. Moet nog wel de juiste draad bestellen daarvoor.
EDIT:
Ongeduldig dat ik ben, ik kon het niet laten om zo'n antenne op te solderen, ik had 0.8 mm draad of 1.5mm installatiedraad. In het artikel deed 0.8 niet zo goed als 1mm dus maar met 1.5mm draad gedaan. Ik ga het morgen vergelijken als ik tijd heb.
Zo is het geworden, koper gaat uiteindelijk oxideren, maar ik kan het altijd vervangen door een verzilverd koperdraad.
:strip_exif()/f/image/9OqhYqBCHHSAMrRMSjOcMjgW.png?f=user_large)
Nu moet ik de behuizing aanpassen...
[ Voor 38% gewijzigd door Reptile-X op 06-01-2026 22:55 ]
Echt exact dezelfde, tot op de millimeter? Want ik had het nog even nagekeken, en het verschil tussen goed en fout is letterlijk 1 millimeter. Er "hoort" ~3,5mm te zijn van het zichtbare randje tot waar het PCB "gebruikt" wordt (/de eerste/laatste pin) en bij de foute is dat ~2,5mm. Die "C3" bovenaan is de antenne en die hoort vrij geplaatst te zijn, en dat beetje verschil (door het 1mm korter zijnde PCB?) is al "voldoende" dat het bereik flink afneemt.Reptile-X schreef op dinsdag 6 januari 2026 @ 21:30:
Ik heb exact hetzelfde model als die gemodificeerde C3. Ik heb er nog 10 van liggen, vorige maand ingeslagen voordat gedoe begint met NL/EU nvoerkosten.
Plaatje van Reddit:
Ik had zelf net ook eens gemeten, heb er een paar, ongebruikt, en die binnen handbereik was wel juist. Je zou het natuurlijk ook kunnen zien aan de afstand tussen C3 en de "(soldeer)lijnen" op het PCB, in dat plaatje van mijn vorige post zie je links duidelijk iets van afstand en rechts veel minder. Dat heb ikzelf "nu" niet nagekeken.Reptile-X schreef op dinsdag 6 januari 2026 @ 23:13:
@RobertMe, Ik heb hem toevallig in mijn hand, samen met een schuifmaat, om de behuizing aan te passen. Die van mij is 2.5mm versie.,,,
Maar wel crap dat je nu nieuwe hebt en ze niet goed zijn. Ik heb al maanden terug van dit probleem gelezen. Je zou dus verwachten dat "ze" allemaal hun proces hebben aangepast.
:strip_exif()/f/image/7O7xyFx8nmu8Ia5NhyLEQo6U.png?f=user_large)
Ben benieuwd of de antenneversie betere verbinding heeft.
Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik wil even een discussie openen over ESPHome in combinatie met Home Assistant. Ik ben benieuwd naar de ervaringen van andere ESPHome i.c.m. HA medegebruikers.
Twee weken terug heb ik een ESPHome-temperatuursensor gebouwd en geïntegreerd in HA. Na veel lezen heb ik besloten om met een BME280 sensor te gaan.
Alles ging goed tot ik de sensor in gebruik nam in HA. Het viel gelijk op dat de meting te hoog was. Na even wat zoeken is het me duidelijk geworden BME280 “self-heating issues” heeft, Dus een behuizing ontworpen met zoveel mogelijk gaten erin, maar dat hielp niet. Er zijn verschillende manieren om dit te compenseren. Ik heb de makkelijkste weg gekozen door offset te gebruiken. Dit heb ik bepaald door twee sensoren te vergelijken, de andere sensor was de Aqara sensor die al jaren daar staat. Dit is wel de minste goede manier van calibreren, maar het gaf me wel een idee. Na paar dagen monitoren kwam ik op -3,6 graden uit.
Het draait nu redelijk goed, paar tiendes verschil is te verwaarlozen. De blauwe lijn is de NME280:
[Afbeelding]
Even voor de duidelijkheid; sensor heb ik nodig om virtuele thermostaat aan te sturen, daar was de Aqara-sensor te traag voor. Aqara werkt voor normale situaties goed, maar niet voor dit. Als de virtuele sensor op 20°C ingesteld wordt en Aqara stuurt de ketel uit dan is het te laat, temperatuur loopt op tot bijna 24°C uit, dit is wel verholpen met BME280.
Conclusie is dat je internet niet moet vertrouwen. Dit wist ik al, maar je moet toch ergens beginnen. De meeste deden alsof het een perfecte sensor was, maar heeft toch zijn nukken…
Maar ik ben waarschijnlijk niet slim genoeg om daar les uit te trekken. Volgend project was een presence sensor bouwen. Na weer op internet te hebben gestruind, kwam ik op een LD2450-sensor uit. Het zou een geweldige sensor zijn.
Min of meer is het ook zo, maar stilstaand doel detecteren, ho maar, dat schijnt niet zijn sterkste kant te zijn, maar daar wil ik het juist voor. Na bijna alle kamers in huis te hebben geprobeerd, kwam ik erachter dat het weer te goed was voor het detecteren van dingen dwars door deuren en muren (gipsblokwanden). Uiteindelijk heb ik het in mijn hobbykamer geplaatst. Gelukkig is het mogelijk om zones in te stellen via Bluetooth en een app van HKL (merk van de sensor) of via HA.
Eerlijk is eerlijk, het is wel erg goedkoop om er een te bouwen. Totale kosten voor deze sensor samen met een ESP32 C3 super mini waren maar €5 (en een USB-voeding natuurlijk). Dit voor EU en NL invoerrechten en toeslaggedoe net voor 2026.
Het is ook mogelijk om radar in een dashboard toe te voegen via een custom card:
[Afbeelding]
Omdat ik toch graag stilstaande objecten wil detecteren, heb ik een andere sensor besteld, dit keer een LD2410C. Schijnt beter te zijn voor stilstaan target presence.
Ben benieuwd of deze sensor weer andere problemen geeft, want je komt er pas achter als je er een in gebruik neemt. Dan pas ga je naar een specifiek probleem zoeken op interwebs…
Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
[mbr]Onder aan de streep meer een ESPHome discussie[/]
Xiaomi 13T Pro
Deze jongen hier legt precies uit wat je moet doen om het werkend te krijgen, hij heeft ook yaml op zijn website.
Video start waar hij begint uit te leggen
Zijn website waar hij het over heeft met de yaml, ergens onderaan
Ik heb de eerder gemaakte Presence Sensor met hetzelfde type ESP32-C3 en nieuwe 5cm naast elkaar gezet en het verschil in wifi-verbinding is duidelijk te zien. Temperaturen zijn ook behoorlijk uit elkaar. Natuurlijk hebben beide borden verschillende sensoren nu, maar als de presence sensor niet bezig is, dus geen mensen/dieren in de buurt, dan heeft 'ie weinig te verwerken.
Nieuwe CO₂-sensor:
:strip_exif()/f/image/SckrL50nrB2PFqRW4ESxZdIl.png?f=user_large)
Presence sensor:
:strip_exif()/f/image/CcKCrjjbRHIxjqjHZLaJxBhn.png?f=user_large)
Sensor ziet er zo uit:
:no_upscale():strip_icc():strip_exif()/f/image/OODegU3HQTFJaPqw74XgV6pV.jpg?f=user_large)
ABS printen met veel gaten in de print in een koude hobbykamer, ondanks verwarmde behuizing, was best moeizaam.
@jvanderneut Nogmaals bedankt voor de antene tip, werkt heel goed!
Moet ik hier misschien ook eens proberen
Die staat hier: Reptile-X in "Het grote ESPhome topic"Septillion schreef op woensdag 7 januari 2026 @ 17:41:
@Reptile-X Heb je foto hoe je antennemod er nu bij jouw uitziet?
Moet ik hier misschien ook eens proberen
esptool zelf soort van idem dito:
esptool.py v4.10.0 Serial port /dev/ttyACM0 Connecting.... Detecting chip type... ESP32-S3 Chip is ESP32-S3 (QFN56) (revision v0.2) Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3) Crystal is 40MHz MAC: <knip> Uploading stub... Running stub... Stub running... A fatal error occurred: Unable to verify flash chip connection (No serial data received.).
Ook het indrukken (en al dan niet permanent ingedrukt houden) van de boot knop maakt geen verschil. Noch werkt "de andere" USB-C poort. Met de USB kabel in de "COM" poort (staat onderop het PCB, zijnde de rechter poort) knipperen wel een aantal keren de 2 blauwe LEDs (naast de oranje? power LED) tijdens het "uitlezen" (vooraf aan de "Uploading stub"), maar daarna blijft die dus uit (en duurt het nog even voordat esptool errort). Bij het gebruik van de "USB" poort (de linker dus) gebeurd helemaal niks en blijft de power LED om de X seconden even knipperen (continu aan met een kleine onderbreking naar uit) en blijft "Linux" ook de hele tijd meldingen geven van een nieuw aangesloten USB apparaat.
Het enige dat ik op internet tegen kom is "controleer de USB kabel", maar daarvan heb ik er al twee geprobeerd. Waarvan 1 die van het toetsenbord is, en ik weet "vrij zeker" dat die kabel gewoon werkt
Ik heb zelf ook een vraagje, de CO2 sensor draait al een tijdje. Fijn om te weten dat het bij ons iets te hoog is we kunnen er in ieder geval wat aan doen.
Echter, ESPHome laat de waarde zonder punten zien als het boven 1000 komt, maar HA laat 1.000 zien, ik heb juist een template sensor gemaakt om het visueel makkelijk leesbaar te maken.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| - sensor: - unique_id: 2dfb8359123-1234-9909-123456789123 name: "CO2 Meting WK" icon: mdi:molecule-co2 state: >- {% set temp = states('sensor.wk_co2_sensor_woonkamer_co2') | float %} {% if temp <= 800 %} goed {% elif temp <= 1200 %} redelijk {% elif temp >= 1201 %} slecht {% else %} error {% endif %} |
En ik voeg het toe aan het dashboard, zodat je alleen kleuren ziet:
1
2
3
4
5
6
7
8
| - type: image entity: sensor.co2_meting_wk state_image: goed: local/images/groen.png redelijk: local/images/geel.png slecht: local/images/rood.png unavailable: local/images/nav.png |
Dit werkte natuurlijk niet toen het net boven 1000 schoot, zoals ik had gezegd. Ik heb ESPHome nagekeken, daar is het 1032 en in HA verschijnt het als 1.032
Ik zocht een filter hiervoor, maar het is me niet duidelijk of er een bestaat. In HA Precisie weergeven heeft ook geen optie om een te kiezen zonder punt.
[ Voor 0% gewijzigd door Reptile-X op 07-01-2026 22:40 . Reden: Er zat een foutje in de code, dit hersteld. ]
Als de kabel niet werkt kan esptool natuurlijk niet weergeven dat het om een ESP32-S3 gaat incl het mac adres ervanReptile-X schreef op woensdag 7 januari 2026 @ 21:16:
@RobertMe Ik ben te nieuw (n00b) in ESP spullen, maar bij mijn eerste project had ik ook moeite om te verbinden. Ik maak de eerste verbinding via USB op de NUC waar Home Assistant op staat met ESPHome Builder. Het was een oude ESP8266 met een micro usb, en ik had geen idee of mijn kabels data kon overdragen, uiteindelijk niet dus. Ik had nog zo'n USB-kabeltester liggen, daarmee heb ik een kabel kunnen vinden die werkt. Ik zou je kabels testen om bijvoorbeeld je telefoon op je PC te aansluiten en kijken of je foto's kan afhalen bijvoorbeeld.
+ intussen heb ik nog een C3 over dezelfde (niet toetsenbord) kabel geflasht.
Het zat in de gebruikersinstellingen van HA, getalnotatie zat op automatisch. Ik heb het nu op Geen gezet:
[ Voor 9% gewijzigd door Reptile-X op 07-01-2026 22:21 ]
Volgens mij maakt dat niks uit? De aanpassing die je nu hebt gedaan is puur voor het frontend. Ik zie bij mij ook "Number format: Automatic" met als voorbeeld "1,234,567.89". Maar als ik vervolgens bij DevTools => States kijk staan daar gewoon sensoren in de vorm van 1234567.89. En automations werken ook gewoon met de ruwe state en niet met de formatted state. Dus als de sensor 1000 is dan moet states(...) ook de string 1000 zijn en na de float filter dus 1000 als float. En de rest van het Jinja2 template moet dan ook gewoon werken. De getalnotatie die je hebt ingesteld heeft hier dus geen betrekking op.Reptile-X schreef op woensdag 7 januari 2026 @ 22:20:
Om mijn eigen vraag hier te beantwoorden, ik heb het gevonden. Duizend wordt nu al 1000 weergegeven i.p.v. 1.000
Het zat in de gebruikersinstellingen van HA, getalnotatie zat op automatisch. Ik heb het nu op Geen gezet:
[Afbeelding]
Edit/aanvulling:
Ook dus omdat de getalnotatie een gebruiekrsspecifieke instelling is en automations natuurlijk niet gekoppeld aan een gebruiker zijn. Dus er is niet eens een "getalnotatie".
[ Voor 7% gewijzigd door RobertMe op 07-01-2026 22:41 ]
je moet de poort met COM gebruiken. Misschien moet je hem in boot mode zetten. BOOT ingedrukt houden, dan even resetten met de andere button (RST) en dan BOOT weer los laten.RobertMe schreef op woensdag 7 januari 2026 @ 19:17:
Ik probeer ESPHome op mijn (tot nu toe enige) ESP32 S3 bordje te zetten (van Ali, lijkt de devkitm-1 te zijn gaat om een devkitc-1, dubbele USB-C poort etc). Alleen, it no worky. Op web.esphome.io in Chromium kan die niet verbinden en spuugt in de dev console ook "No serial data received" errors.
esptool zelf soort van idem dito:Gezien die wel kan lezen om welk apparaat het gaat (ESP32-S3 (QFN56)) en een mac adres er uit lepelt zou ik dus zeggen dat er wel iets gebeurd. Maar installeren ho maar.esptool.py v4.10.0 Serial port /dev/ttyACM0 Connecting.... Detecting chip type... ESP32-S3 Chip is ESP32-S3 (QFN56) (revision v0.2) Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3) Crystal is 40MHz MAC: <knip> Uploading stub... Running stub... Stub running... A fatal error occurred: Unable to verify flash chip connection (No serial data received.).
Ook het indrukken (en al dan niet permanent ingedrukt houden) van de boot knop maakt geen verschil. Noch werkt "de andere" USB-C poort. Met de USB kabel in de "COM" poort (staat onderop het PCB, zijnde de rechter poort) knipperen wel een aantal keren de 2 blauwe LEDs (naast de oranje? power LED) tijdens het "uitlezen" (vooraf aan de "Uploading stub"), maar daarna blijft die dus uit (en duurt het nog even voordat esptool errort). Bij het gebruik van de "USB" poort (de linker dus) gebeurd helemaal niks en blijft de power LED om de X seconden even knipperen (continu aan met een kleine onderbreking naar uit) en blijft "Linux" ook de hele tijd meldingen geven van een nieuw aangesloten USB apparaat.
Het enige dat ik op internet tegen kom is "controleer de USB kabel", maar daarvan heb ik er al twee geprobeerd. Waarvan 1 die van het toetsenbord is, en ik weet "vrij zeker" dat die kabel gewoon werkt. Iemand dus een idee wat hier aan de hand kan zijn?
Helaas had ik dat ook al geprobeerd (ook weer op beide poorten), maar vergeten te vermelden. Incl dus boot ingedrukt houden, reset "klikken" en boot los laten.chaoscontrol schreef op woensdag 7 januari 2026 @ 22:52:
[...]
je moet de poort met COM gebruiken. Misschien moet je hem in boot mode zetten. BOOT ingedrukt houden, dan even resetten met de andere button (RST) en dan BOOT weer los laten.
Ik vermoed dat er dus ergens een hardwarematig defect is waardoor die de boot mode niet activeert. Noch via de boot button noch via de serial interface / chip. Want normaliter zou die dus "automatisch" geactiveerd moeten worden door esptool, apart serial commando waarmee die de "juiste" GPIOs hoog/laag trekt om boot mode te activeren op de ESP.
Ik zou nog zelf een serial adapter er aan kunnen hangen (heb zo'n USB serial adapter met de 4 headers voor TX/RX/GND/(5V/3.3V)), maar ik verwacht daarvan hetzelfde resultaat. Ik vermoed dat ik dan sowieso boot zelf moet activeren (niet over serial kan) waarbij het dus niet uit zal maken of die aan USB of aan "GPIOs" hangt v.w.b. stroom en serial.
Of wat ik nog kan proberen is de GPIOs voor boot en reset. Boot is GPIO0 en die zit volgens mij ook gewoon op een "poort" (/header na solderen) en reset is mogelijk ook exposed. Misschien dat die wel werken. (En mogelijk kan ik de werking van de knoppen testen met een multimeter op de headers)
Edit/aanvulling:
Trouwens exposed de C3 (super mini) zich over USB als "Espressif USB/JTAG" of zoiets. En dat is identiek aan de USB poort op de S3. Eigenlijk verwacht ik dus dat beiden zouden moeten werken. [small]Maakt alleen het boot/reset verhaal over serial "raar". Want dan zit er geen losse serial adapter meer op die de GPIOs kan pullen. Zal dan wel weer een "software" feature in de ESP zelf zijn. Om bij bepaalde commando's boot mode te activeren (al dan niet door binnen de ESP zelf de GPIOs te pullen, of gewoon een software based "reboot" te doen).
[ Voor 16% gewijzigd door RobertMe op 07-01-2026 23:10 ]
Ik hou het in de gaten, het blijft net boven 1200 hangen. Kijken of het allemaal goed werkt of ik toch iets fout gedaan heb. Dat zie ik pas als het weer lager dan 1200 wordt. Ik ga geen ramen openen met dit weer, terwijl ik hier zit
Morgenochtend gaat de ventilatie open.
Ik ben raamventilaties aan het automatiseren, vandaar deze sensor ook.
Ik heb een tijd geleden een ESP32 uit China over laten komen die een configuratie erop had staan die op geen enkele manier in boot mode wilde gaan. Vervolgens heb ik een pin van GPIO0 naar GND verbonden, opnieuw via usb ingeprikt, waarna die direct naar boot mode ging. Vervolgens ESPhome erop gezet. Sindsdien ook geen issues meer met in boot mode starten.RobertMe schreef op woensdag 7 januari 2026 @ 23:06:
[...]
Helaas had ik dat ook al geprobeerd (ook weer op beide poorten), maar vergeten te vermelden. Incl dus boot ingedrukt houden, reset "klikken" en boot los laten.
Ik vermoed dat er dus ergens een hardwarematig defect is waardoor die de boot mode niet activeert. Noch via de boot button noch via de serial interface / chip. Want normaliter zou die dus "automatisch" geactiveerd moeten worden door esptool, apart serial commando waarmee die de "juiste" GPIOs hoog/laag trekt om boot mode te activeren op de ESP.
Ik zou nog zelf een serial adapter er aan kunnen hangen (heb zo'n USB serial adapter met de 4 headers voor TX/RX/GND/(5V/3.3V)), maar ik verwacht daarvan hetzelfde resultaat. Ik vermoed dat ik dan sowieso boot zelf moet activeren (niet over serial kan) waarbij het dus niet uit zal maken of die aan USB of aan "GPIOs" hangt v.w.b. stroom en serial.
Of wat ik nog kan proberen is de GPIOs voor boot en reset. Boot is GPIO0 en die zit volgens mij ook gewoon op een "poort" (/header na solderen) en reset is mogelijk ook exposed. Misschien dat die wel werken. (En mogelijk kan ik de werking van de knoppen testen met een multimeter op de headers)
Edit/aanvulling:
Trouwens exposed de C3 (super mini) zich over USB als "Espressif USB/JTAG" of zoiets. En dat is identiek aan de USB poort op de S3. Eigenlijk verwacht ik dus dat beiden zouden moeten werken. [small]Maakt alleen het boot/reset verhaal over serial "raar". Want dan zit er geen losse serial adapter meer op die de GPIOs kan pullen. Zal dan wel weer een "software" feature in de ESP zelf zijn. Om bij bepaalde commando's boot mode te activeren (al dan niet door binnen de ESP zelf de GPIOs te pullen, of gewoon een software based "reboot" te doen).
Misschien dat het werkt? ¯\_(ツ)_/¯
Edit: zoek het vooral ook even op in de datasheet van jouw specifieke model.
1995: 486 AM5x86-p75@160 512kb L2, 64MB, S3 Stealth 64 3000 4MB VLB, AWE64 Value, 8GB CFµDrive
1998: K6-III 400MHz, 384MB, Voodoo4 AGP, AWE64 Gold!, Adaptec AHA-29160+2x 72GB 10krpm SCSI
Thanks voor de suggestie, en in principe wat ik gisteren ook zelf al aangaf dat wellicht zou kunnen werken.InjecTioN schreef op donderdag 8 januari 2026 @ 08:31:
[...]
Ik heb een tijd geleden een ESP32 uit China over laten komen die een configuratie erop had staan die op geen enkele manier in boot mode wilde gaan. Vervolgens heb ik een pin van GPIO0 naar GND verbonden, opnieuw via usb ingeprikt, waarna die direct naar boot mode ging. Vervolgens ESPhome erop gezet. Sindsdien ook geen issues meer met in boot mode starten.
Misschien dat het werkt? ¯\_(ツ)_/¯
Edit: zoek het vooral ook even op in de datasheet van jouw specifieke model.
Net even geprobeerd, maar... ook dit werkt niet. Verschillende kabels geprobeerd in combinatie met 2 verschillende GND poorten (GPIO0 is er uiteraard maar 1). Op https://docs.espressif.co.../boot-mode-selection.html staat ook dat het om GPIO0 gaat bij de ESP32-S3, die met GND verbonden moet worden. Dus het is wel de correcte "procedure". Daarnaast staat daar ook dat vele bordjes een FLASH of BOOT knop hebben die hetzelfde doet tijdens reset / opstarten. En dat had ik gisteren ook al geprobeerd.
Wat jij impliciet wel aangeeft is dat USB aansluiten ook een RESET is (gelijk aan de knop en ook daarvoor is er een GPIO). Dus een defecte RESET knop/aansluiting is daarmee ook uitgesloten.
Ik ga er dan maar vanuit dat het een defect bord is. En later vandaag maar eens kijken wat de verkoper / Ali er van zegt. Het was in ieder geval wel een shop die al vele bordjes verkocht had incl. positieve reviews. Dus (dit keer eens
Ik doelde met USB aansluiten meer op voeding (en direct serial connection) inschakelen. Dat is direct een reset. Maar je kan natuurlijk het apparaat gewoon verbinden met je PC en eerst eens zien of de serial port beschikbaar komt in `/dev/ttyUSB*` of onder Device Manager. Als dat zo is, even een console starten met bijvoorbeeld `screen` of putty onder Windows. Dan zie je of er überhaupt iets gebeurt. Dan kan je ook zien of de knoppen iets van feedback geven. (let wel even op de baud rate, wat kan verschillen per ESP model - ik heb uit mijn hoofd geen idee welke baud rate die gebruikt).RobertMe schreef op donderdag 8 januari 2026 @ 09:16:
[...]
Thanks voor de suggestie, en in principe wat ik gisteren ook zelf al aangaf dat wellicht zou kunnen werken.
Net even geprobeerd, maar... ook dit werkt niet. Verschillende kabels geprobeerd in combinatie met 2 verschillende GND poorten (GPIO0 is er uiteraard maar 1). Op https://docs.espressif.co.../boot-mode-selection.html staat ook dat het om GPIO0 gaat bij de ESP32-S3, die met GND verbonden moet worden. Dus het is wel de correcte "procedure". Daarnaast staat daar ook dat vele bordjes een FLASH of BOOT knop hebben die hetzelfde doet tijdens reset / opstarten. En dat had ik gisteren ook al geprobeerd.
Wat jij impliciet wel aangeeft is dat USB aansluiten ook een RESET is (gelijk aan de knop en ook daarvoor is er een GPIO). Dus een defecte RESET knop/aansluiting is daarmee ook uitgesloten.
Ik ga er dan maar vanuit dat het een defect bord is. En later vandaag maar eens kijken wat de verkoper / Ali er van zegt. Het was in ieder geval wel een shop die al vele bordjes verkocht had incl. positieve reviews. Dus (dit keer eens) niet gewoon de goedkoopste shop met 5 verkocht en 0 reviews.
1995: 486 AM5x86-p75@160 512kb L2, 64MB, S3 Stealth 64 3000 4MB VLB, AWE64 Value, 8GB CFµDrive
1998: K6-III 400MHz, 384MB, Voodoo4 AGP, AWE64 Gold!, Adaptec AHA-29160+2x 72GB 10krpm SCSI
Hier ondertussen ook maar wat ESP32-C3's besteld om mee te klussen...
Ik heb wel 1mm² verzilverd koperen draad besteld, 1,5mm² is net even te stug om goed mee te werken op zo'n printplaatje.
Serieel werkt, want esptool kan de hardware info opvragen (laat zien dat het om een ESP32-S3 gaat en geeft het MAC adres weer). Dat zou natuurlijk niet kunnen zonder werkende seriele verbinding.InjecTioN schreef op donderdag 8 januari 2026 @ 10:02:
Maar je kan natuurlijk het apparaat gewoon verbinden met je PC en eerst eens zien of de serial port beschikbaar komt in `/dev/ttyUSB*` of onder Device Manager. Als dat zo is, even een console starten met bijvoorbeeld `screen` of putty onder Windows. Dan zie je of er überhaupt iets gebeurt.
Gezien die ook niet in de boot/flash mode komt bij het "kortsluiten" van GPIO0 en GND zal het niet heel veel uit maken of de knoppen enig teken van leven geven.Dan kan je ook zien of de knoppen iets van feedback geven.
Effectief zouden er 3 manieren zijn om in boot/flash mode te komen. Via de seriële interface in combinatie met een specifiek commando; Via de boot knop (gecombineerd met reset / stroom aansluiten); Door GPIO0 op GND aan te sluiten (gecombineerd met reset / stroom aansluiten).
Dat één methode defect is en de rest werkt lijkt ne onwaarschijnlijk. Dat 2 of 3 methode defect zijn maar er nog een derde/vierde methode is die wel werkt lijkt me onwaarschijnlijk. Het meest voordehand liggende zal zijn dat de ESP zelf of een defecte GPIO0 of iets dergelijks heeft of dat op het bord deze drie methode dan alle drie op GPIO0 zijn aangesloten met een gecombineerde trace die ergens eerder stuk is.
Ik zou dus de multimeter op GPIO0 en GND kunnen zetten en ik vermoed dan te zien dat die "open" / "dicht" staat afhankelijk van of de boot knop is ingedrukt. En theoretisch zou je dat lijkt mij ook behoren te zien als je over USB een flash start en de seriële chip dus een boot triggert over de GPIO (alleen zal die zo kort triggeren dat je het op een multimeter waarschijnlijk niet ziet).
Ik dien dan de trigger en de echo pin (naast de 5v en ggnd) aan te sluiten.
Ik zou alleen niet weten welke pinnen er geschikt zijn.
1
2
3
4
5
| sensor: - platform: ultrasonic trigger_pin: D1 echo_pin: D2 name: "Ultrasonic Sensor" |
https://esphome.io/components/sensor/ultrasonic/
iemand een idee welke pinnen ik voor de trigger en echo van de c3 kan gebruiken?
Tijd van werken, tijd van rusten
Thanks,Septillion schreef op donderdag 8 januari 2026 @ 16:01:
@Driek Heb je geen specifieke pin voor nodig dus elke die je anders ook zou gebruiken. Mooie uiteenzetting van de pinnen hier.
Let wel op, de echo pin stuurt 5V uit en de ESP kan daar officieel niet tegen. Dus die voorzien van een spanningsdeler.
ik heb nog een nodemcu ESP8266 liggen, dan kan ik de spanningsdeler skippen en deze layout volgen.
https://randomnerdtutoria...-sr04-ultrasonic-arduino/
Tijd van werken, tijd van rusten
Toen dacht ik, ik ga even de andere borden controleren die ik heb, want ik heb de laatste tijd bij verschillende Aliexpress winkels besteld.
Ik heb het even nagemeten, het kan zelfs nog erger dan 2,5mm zijn, ik heb paar tussen zitten met 1.8mm afstand.
:strip_exif()/f/image/y77iRfvJD45EbitouRx11SrS.png?f=user_large)
Linker heb ik vandaag binnengekregen, met merk Tenstar op, ik had het 3 januari besteld en het heeft maar 5 dagen geduurd voordat het geleverd werd, er is ook geen EU/NL toeslag opgelegd, ik weet niet wanneer ze daarmee beginnen.
Ik heb €1,69 p.s. voor betaald met zo'n choice-optie na €10 gratis verzenden.
Het is nu iets duurder, maar als mensen willen bestellen:
https://nl.aliexpress.com/item/1005006599545782.html
Daar kwamen de mijne zo te zien ook vandaan. Zo te zien besteld op 12 januari, 2024, en nog niks mee gedaanReptile-X schreef op donderdag 8 januari 2026 @ 16:05:
Linker heb ik vandaag binnengekregen, met merk Tenstar op
En mijn bestelling "van kerst" (letterlijk tijdens het kerstdiner mail krijgen dat "vliegtuig is geland") zit een H2 van bij hun bij. En daar heb ik nu net even een compleet lege ESPHome firmware op gezet. Ding doet "dus" geen wifi, dus de wifi, network, ota, integraties er allemaal uit gegooid. Gewoon even lekker compacte firmware (scheelt compilatie tijd op mijn N5105 servertje) en die flashte vanaf de CLI gewoon prima (vanuit Chromium leek die het niet te doen, geen idee).
En de S3, van andere store, net maar eens een bericht gestuurd....
Oh, dat leek de link wel te suggeren.Septillion schreef op donderdag 8 januari 2026 @ 16:05:
@Driek Nee, die kan er ook niet tegen. Nu zeggen veel dat hun ESP het overleeft maar officieel zijn alle ESP's niet 5V compatible.
Dan moet ik me toch even verdiepen in een spanningsdeler.
Tijd van werken, tijd van rusten
You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.
Maar er zijn op andere plaatsen ook te vinden Tinytronics bv https://www.tinytronics.n...level-converter-4-kanaals
[ Voor 50% gewijzigd door Der Rudi op 08-01-2026 18:59 ]
Ik zie overigens ook dat er specifiek 3V3 modellen van de HC-SR04 verkrijgbaar zijn.
Tijd van werken, tijd van rusten
Hierop terugkomende...RobertMe schreef op woensdag 7 januari 2026 @ 19:17:
Ik probeer ESPHome op mijn (tot nu toe enige) ESP32 S3 bordje te zetten (van Ali, lijkt de devkitm-1 te zijn gaat om een devkitc-1, dubbele USB-C poort etc). Alleen, it no worky. Op web.esphome.io in Chromium kan die niet verbinden en spuugt in de dev console ook "No serial data received" errors.
esptool zelf soort van idem dito:Gezien die wel kan lezen om welk apparaat het gaat (ESP32-S3 (QFN56)) en een mac adres er uit lepelt zou ik dus zeggen dat er wel iets gebeurd. Maar installeren ho maar.esptool.py v4.10.0 Serial port /dev/ttyACM0 Connecting.... Detecting chip type... ESP32-S3 Chip is ESP32-S3 (QFN56) (revision v0.2) Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3) Crystal is 40MHz MAC: <knip> Uploading stub... Running stub... Stub running... A fatal error occurred: Unable to verify flash chip connection (No serial data received.).
Ook het indrukken (en al dan niet permanent ingedrukt houden) van de boot knop maakt geen verschil. Noch werkt "de andere" USB-C poort. Met de USB kabel in de "COM" poort (staat onderop het PCB, zijnde de rechter poort) knipperen wel een aantal keren de 2 blauwe LEDs (naast de oranje? power LED) tijdens het "uitlezen" (vooraf aan de "Uploading stub"), maar daarna blijft die dus uit (en duurt het nog even voordat esptool errort). Bij het gebruik van de "USB" poort (de linker dus) gebeurd helemaal niks en blijft de power LED om de X seconden even knipperen (continu aan met een kleine onderbreking naar uit) en blijft "Linux" ook de hele tijd meldingen geven van een nieuw aangesloten USB apparaat.
Het enige dat ik op internet tegen kom is "controleer de USB kabel", maar daarvan heb ik er al twee geprobeerd. Waarvan 1 die van het toetsenbord is, en ik weet "vrij zeker" dat die kabel gewoon werkt. Iemand dus een idee wat hier aan de hand kan zijn?
Op AliExpress via het message center contact met de shop gehad. Eerst werd om mijn mailsdres gevraagd zodat ze me de documentatie konden sturen. Uberhaupt al "neej", laat staan dat, al dan niet op keyword of eerste bericht, er een waarschuwing onder stond om geen privégegevens (of betaalgegevens) te delen. Vervolgens wat gepingpong verder waarbij ik ook aangaf wat ik dan deed met de vraag of ze me konden aangeven wat dan wel de juiste esptool.py ... write_flash zou zijn. Maar ik moest maar op YouTube kijken dan
Ik heb zelfs nog een serial USB kabel aangesloten (op de TX/RX GPIOs dus) om zo misschien "mee te kunnen kijken" wat wel iets van data opleverde bij de USB flash (als in: USB kabel op de COM poort en dus over de serial chip op het bord). Om vervolgens toch een andere (software) route te kiezen waarbij je nogal extreem strace kunt gebruiken om IO te loggen.
Om vervolgens maar eens in de esptool code te neuzen, en weet niet meer hoe, maar liep op een gegeven moment gewoon tegen documentatie aan dat er een --trace flag is
Conclusie is in ieder geval dat er bij gebruik van de stub wel iets van communicatie is. Waarbij de ESP zijn (volgens documentatie) enige bericht op eigen initiatief stuurt "OHAI" (als soort van bevestiging dat de stub geupload is?). Vervolgens stuurt esptool command 0x02 (IIRC) gedocumenteerd als "begin flash", en dan houd het op. Geen reactie, en uiteindelijk een timeout.
Waar ik nog vermoede dat misschien de RX of TX niet aangesloten zou zijn is dat nu dus ook uitgesloten. Gezien niet alleen de download mode bevestiging (de TX werkt), maar ook die "OHAI" die in antwoord op komt. (En nja, het uitlezen van het model + MAC werkte ook, daarvoor zal ook wel tweeweg verkeer met de ESP nodig zijn).
En het "mysterie" van de "USB" poort die de hele tijd aan/uit/aan/uit doet maar soms niet is ook verklaarbaar. In download mode is de USB poort gewoon "verbonden". Als de ESP normaal opstart is die USB poort uiteraard beheerd door de ESP zelf. En de ESP reboot dus continu / in een loop. Waardoor die dus steeds wel/niet beschikbaar is. (Totdat je download mode activeert).
Edit:
Owja, ESPHome topic
Ik heb sowieso nog wat producten in mijn Ali mandje waar vast een "nieuwe" ESP32 S3 N16R8 devkit-c-1 bij komt. Maar ik zit ook serieus een nFR52840 te overwegen
En waarom? Omdat deze chip schijnbaar veel zuiniger is dan de ESPs (incl dan de ESP32 H2, die al in mijn vorige bestelling zat
Maar ESPHome is mogelijk ook niet lekker in sleep? ESP32 ondersteund twee sleep modes? Waarvan ESPHome alleen deep sleep ondersteund. Maar deep sleep resulteert in een (re)boot oftewel is (erg) traag (lees in combinatie met Thread tot 40 sec na "wakeup" voordat data door komt
En volgens mij had ik hier al geschreven over mogelijk zelf een batterij gevoede brievenbussensor? En nu met 1 Aqara contactsensor onder de klep is het nogal eens dat ik de notificatie krijg van "er is post" terwijl de klep nog dicht moet gaan
[ Voor 11% gewijzigd door RobertMe op 12-01-2026 18:33 ]
Ik ben weer een stapje verder met de implementatie van het H-Bridge verhaal. H-Bridge is ESPHome native maar helaas flikkert de verlichting met deze implementatie. LT-Hbridge is een 3 jaar oud alternatief welke ik gisteravond maar eens met ESPHome in een nieuwe 123-LED stekker heb ge-flashed.CDAAbeltje schreef op donderdag 27 november 2025 @ 23:30:
Mocht er belang zijn bij het lokaal integreren van 123led kerstverlichting 31V adapters middels ESPHome. Ik heb het een en ander uitgeplozen en uitgeschreven:
IR variant:
code:
1 https://github.com/AbeltjeNL/123-LED-Kerstverlichting-IR
WB2S Variant:
code:
1 https://github.com/AbeltjeNL/123-LED-Kerstverlichting-Wi-Fi-Tuya-BK7231T-WB2S
CB2S Variant:
code:
1 https://github.com/AbeltjeNL/123-LED-Kerstverlichting-Wi-Fi-Tuya-BK7231N-CB2S
De globale 'how to' staat op GH. De volledige vertaling naar Engels zit in de pijp, verdere aanvullingen ook.
Vertaling naar Engels gereed, quick and dirty, moet er nog een keer overheen lezen.
PCB foto's toegevoegd voor een beeld van wat je aantreft als je zo'n rakker uit elkaar trekt.
To-Do:
- Goede en duidelijke foto's maken van de gesoldeerde draden op de PCB
- Basis ESPHome yaml config maken
- Pinouts staan nu in de bijgevoegde datasheet, betere weergave en uitleg
- Toelichten waarom de hbdrige optie vanuit ESPHome ruk is
- Andere software matige oplossingen voorstellen voor Beken chips
- Verschil tussen WB2S en CB2S toelichten
Korte variant van het laatste punt is:
- WB2S heeft wat meer rekenkracht, andere chip (details volgen)
- CB2S heeft wat minder rekenkracht, andere chip (details volgen)
- Pinouts zijn net een klein beetje anders voor de onboard LED en de drukknop
- De WB2S werd als eerste geleverd door 123, lees, deze eerste variant kocht ik 3 jaar geleden
- De CB2S wordt momenteel uitgeleverd door 123
Voordat ik als een wilde hengst van stal ga even de vraag, is er überhaupt behoefte vanuit hier om dit verder uit te werken? Ik zie een aantal duimpjes dus dat lijkt me al wel een goed teken. Let me know!
Werkend getest op nieuwe Lumineo Icicle Twinkle (IJspegels) welke je aan het huis of dakgoot maakt.
Deze keer zonder enig geflikker van de verlichting!
Verdere uitwerking en opschoning van Github repo's komt er nog aan maar voor nu alvast een kijkje in de keuken:
LT-Hbridge:
1
| https://github.com/AbeltjeNL/lt-hbridge/tree/main |
Het enige wat mij (enorm) stoort is dat het relais schakelt bij een boot wanneer deze aanstaat. Ik gebruik daarbij de volgende configuratie waarbij ik mijzelf afvraag of het überhaupt mogelijk is om het relais aan te houden bij een boot.
1
2
3
4
5
6
| switch: - platform: gpio id: switch_gpio_relay_1 name: ${friendly_name} pin: P8 restore_mode: RESTORE_DEFAULT_ON |
En een van mijn stekkers heeft een brakke power meter erin zitten. Maar dat is voor de prijs niet het einde van de wereld.
misschien begrijp ik je verkeerd maar hetalex3305 schreef op maandag 19 januari 2026 @ 17:28:
Het enige wat mij (enorm) stoort is dat het relais schakelt bij een boot wanneer deze aanstaat. Ik gebruik daarbij de volgende configuratie waarbij ik mijzelf afvraag of het überhaupt mogelijk is om het relais aan te houden bij een boot.
lijkt me ongewenst om ongecontroleerd een relais tijdens een boot geschakeld te houden. Wat als je boot of wat dan ook hangt ?
Gebruik dan een relais met nc of no en gebruik een van deze als standaard toestand voor je apparaat.
@Septillion Dat begrijp ik
Ik vind het verder ook geen ramp, maar misschien onhandig wanneer bijvoorbeeld het draadloos netwerk er (te) lang uitligt. En dat betekend ook dat ik zo'n stekker niet kan gebruiken voor een aantal apparaten.
Maar ja, een van mijn grootste hekelpunten met heel ESPHome is hoe het standaard netwerk loss doet. Dat zou voor mij geen reboot moeten geven. Maar ik heb helaas nog steeds geen manier gevonden hoe je AP-mode aan kunt zetten met een actie. Dus voor die keer dat ik het netwerk zou willen wisselen. En volgens de doc heeft de IP stack moeite met herverbinden. Ook al zou dat best wel eens ESP-only kunnen zijn. Dus misschien dat ik reboot_timeout toch maar eens uit ga zetten. Maar blijft dus wel een pijnpunt in ESPHome
Tegelijkertijd vind ik het AP mode met Captive Portal niet super vervelend. Eerder had ik problemen dat de verbinding van die krengen soms plots wegviel en ook niet meer terugkwam. Dat was nogal frustrerend omdat een restart van de ESP het wel oploste. Tegelijkertijd was het ook geen echt fraaie oplossing als 's nachts ineens wat (status) LEDs onverwacht aangaan en/of gereset worden
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| wifi: id: wificomp binary_sensor: - platform: gpio pin: D4 name: btntest filters: - invert: on_click: - min_length: 2000ms max_length: 5000ms then: - lambda: |- id(wificomp).set_ap_timeout(1); id(wificomp).disable(); id(wificomp).clear_sta(); id(wificomp).enable(); |
Dat heeft er dus voor gezorgd dat ik maanden geleden al mijn ESPHome apparaten heb afgekoppeld en in de kast heb gelegd. Ik had simpelweg geen zin meer in vage issues op ongunstige momenten.
Inmiddels heb ik ook alweer een tijdje nieuwe netwerkapparatuur en wilde ik daarom nogmaals een poging wagen. Ik moet zeggen dat het inmiddels dus ook een stuk stabieler werkt. En wellicht ook door updates aan de kant van ESPHome / ESP-IDF.
Daarop voortbordurend heb ik inmiddels ook een aantal apparaten draaien met ESPHome over Thread. Dat werkt verrassend goed, snel en stabiel. Ook zijn die ESP's ook direct Thread Routers die ik goed kan gebruiken met mijn startend netwerk. Configuratie is eveneens bijzonder eenvoudig door de TLV vanuit Home Assistant in het OpenThread component van ESPHome mee te geven. Eveneens heb ik ook geen gare wifi (antenne) issues meer waar ik eerder in dit topic al eens over schreef.
Het enige wat ik nog niet werkend heb gekregen is OTA updates en logging vanuit ESPHome. ESPHome ziet wel mDNS. ESPHome krijgt zelfs via Router Advertisments netjes de (twee) Thread Border Router(s), maar DNS lookup werkt niet.
Je bedoelt specifiek OTA updates en logging m.b.t. Thread devices? Of in het algemeen (als in: wifi)?alex3305 schreef op maandag 19 januari 2026 @ 21:13:
Het enige wat ik nog niet werkend heb gekregen is OTA updates en logging vanuit ESPHome. ESPHome ziet wel mDNS. ESPHome krijgt zelfs via Router Advertisments netjes de (twee) Thread Border Router(s), maar DNS lookup werkt niet.
Edit:
En in het algemeen: gebruik je de C6 of H2? (Of zijn er al meer 802.15.4 compatible ESPs?)
[ Voor 10% gewijzigd door RobertMe op 19-01-2026 21:43 ]
Met Thread devices inderdaad. Met wifi werkt het prima.RobertMe schreef op maandag 19 januari 2026 @ 21:41:
[...]
Je bedoelt specifiek OTA updates en logging m.b.t. Thread devices? Of in het algemeen (als in: wifi)?
AllebeiEn in het algemeen: gebruik je de C6 of H2? (Of zijn er al meer 802.15.4 compatible ESPs?)
De Beetle had problemen wifi en bijv. een LD2410. Omdat de UART zo dicht op de antenne zit krijg je dan interferentie. Allemaal omheen te werken, maar niet ideaal. Met Thread vooralsnog geen enkel probleem. Vandaar dat ik ook de H2 Supermini had besteld. De C3 Supermini die ik heb zijn nog erger dan de Beetle's, daarbij valt de wifi verbinding na ~9m line of sight gewoon weg. Maar dat lijkt niet bestaand te zijn bij de H2 Supermini en Thread. Waarschijnlijk vanwege de meerdere router(s).
[ Voor 57% gewijzigd door alex3305 op 19-01-2026 21:50 ]
Daarnaast hebben ze in 2026.1 verbeteringen gedaan aan ESP8266 en is er de toezegging dit platform niet meer te "verwaarlozen". Het is uiteraard (te) makkelijk om te wijzen naar "ESP32 is beter gebruik dat". Maar onder de beloften van de Open Home Foundation, waaronder duurzaamheid, willen ze beter waken dat de kwaliteit van in dit geval dan ESP8266 niet achteruit gaat. In de zin van dat de afgelopen jaren er te veel een push was voor nieuwe features / componenten waardoor het te log werd en niet meer (lekker) draaide op de ESP8266 waar oudere versies dat wel deden. Nu moet dat "hersteld" zijn incl dus de toezegging dat de ESP8266 nog langdurig ondersteund zal worden voor in ieder geval bestaande hardware (nieuwe hardware zal de aanbeveling vast wel nog steeds zijn om geen ESP8266 meer te gebruiken omdat er betere opties zijn).
Ik heb (weer) problemen met mijn watermeter via esphome. Ik heb inmiddels totaal geen idee meer wat er nou in moet staan, ik begrijp de documentatie niet, deels omdat deze niet wordt bijgewerkt en dus het overgrote deel wat ik online vind, verouderd is en niet werkt. Bij bovenstaande yaml krijg ik de foutmelding:Vaevictis_ schreef op maandag 7 juli 2025 @ 15:37:
[...]
@Septillion Hoe dan? Want dat staat niet bij de documentatie van de sensor component.
Ik heb wel accuracy_decimals gebruikt maar de API stuurt dus de volledige waarde door naar HA.YAML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 sensor: - platform: pulse_counter pin: GPIO13 id: watermeter_pulse name: "Water Pulse Counter" state_class: total_increasing device_class: water unit_of_measurement: "liter/min" accuracy_decimals: 1 icon: "mdi:water-pump" internal_filter: 50ms update_interval: 5s total: name: 'Totaal aantal' id: sensor_pulse_meter_total unit_of_measurement: "m³" state_class: total_increasing device_class: water accuracy_decimals: 1 filters: - multiply: 0.001 - platform: template id: watermeter_pulses name: "watermeter pulses totaal" state_class: "total_increasing" accuracy_decimals: 0 lambda: return id(total_water_pulses);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| INFO ESPHome 2026.1.1 INFO Reading configuration /config/esphome/watermeter.yaml... Failed config sensor.template: [source /config/esphome/watermeter.yaml:56] platform: template id: watermeter_pulses name: watermeter pulses totaal state_class: total_increasing accuracy_decimals: 0 Couldn't find ID 'total_water_pulses'. Please check you have defined an ID with that name in your configuration. These IDs look similar: "watermeter_pulses", "watermeter_pulse". lambda: !lambda |- return id(total_water_pulses); disabled_by_default: False force_update: False update_interval: 60s |
[ Voor 3% gewijzigd door BounceMeister op 23-01-2026 19:24 ]
Ik ga deze eens proberen, de hele boel was in de war nadat ik een tweede device had aangemaakt met esp builder.CDAAbeltje schreef op dinsdag 2 december 2025 @ 23:01:
Even inhakend op het verhaal watermeter. Ik draai hier een zelf gemaakte watermeter met een ESP8266 icm LJ18A3-8-Z/BX-5V pulse counter. De volgende configuratie gebruik ik hiervoor:YAML:Wellicht heeft iemand er hier wat aan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 # ESPHome instellingen esphome: name: "watermeter" friendly_name: "Watermeter" comment: "ESP8266 met LJ18A3-8-Z/BX-5V pulse counter" esp8266: board: d1_mini restore_from_flash: true # Schakel logging in logger: # Debug: debug: update_interval: 10s # Home Assistant API aan api: encryption: key: !secret api_password services: - service: meterstand_water variables: meter_value: float then: - globals.set: id: initial_water_usage value: !lambda "return ( meter_value - (id(total_water_pulses)) * atof(id(Select_pulse_water).state.c_str()) ) ;" - globals.set: id: total_water_pulses value: "0" # OTA instellingen ota: platform: esphome password: !secret ota_password # WiFi instellingen: wifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: none # Statische IP instellingen manual_ip: static_ip: xxx.xxx.xxx.xxx gateway: xxx.xxx.xxx.xxx subnet: xxx.xxx.xxx.xxx # Tijd Synchroniseren met Home Assistant: time: - platform: homeassistant id: huidige_tijd on_time_sync: - component.update: uptime_timestamp # Globals globals: - id: initial_water_usage type: float restore_value: yes initial_value: '010' - id: total_water_pulses type: int restore_value: yes # Water Per m³ Rate select: - platform: template name: "Pulsrate Water Per m³ (0.001 default)" id: Select_pulse_water optimistic: true options: - "0.0001" - "0.0005" - "0.001" - "0.01" - "0.1" initial_option: "0.001" restore_value: yes on_value: then: - logger.log: format: "Chosen option: %s " args: ["x.c_str()"] # Watermeter binary_sensor: - platform: gpio id: internal_pulse_counter name: Pulssensor Bedrijf pin: number: GPIO12 allow_other_uses: true inverted: true mode: input: true on_press: - then: lambda: id(total_water_pulses) += 1; # Status Watermeter - platform: status name: "Status" # Herstart Informatie: text_sensor: - platform: debug reset_reason: name: Herstart Informatie # IP Adres & SSID - platform: wifi_info ip_address: name: IP Address icon: mdi:ip-network-outline ssid: name: SSID icon: mdi:wifi-lock # ESPHome Versie - platform: version name: ESPHome Versie hide_timestamp: true entity_category: diagnostic sensor: # Watermeter Pulsen - platform: pulse_counter pin: number: GPIO12 allow_other_uses: true id: watermeter_pulse name: "Liters Per Minuut" update_interval: 5s state_class: measurement unit_of_measurement: "l/min" accuracy_decimals: 1 icon: "mdi:water-pump" filters: lambda: return x * atof(id(Select_pulse_water).state.c_str()) * 1000; # Totaal Watermeter total: id: sensor_pulse_meter_total name: "Waterverbruik Totaal" unit_of_measurement: "m³" state_class: total_increasing icon: mdi:pulse device_class: water accuracy_decimals: 3 filters: lambda: return x * atof(id(Select_pulse_water).state.c_str()); # Uptime Sensor - platform: uptime name: Uptime Verborgen id: uptime_seconds unit_of_measurement: h device_class: duration state_class: total_increasing entity_category: diagnostic update_interval: 10s icon: mdi:clock-start internal: true - platform: template id: uptime_timestamp name: Uptime device_class: timestamp entity_category: diagnostic accuracy_decimals: 0 update_interval: never icon: mdi:clock-start lambda: |- static float timestamp = ( id(huidige_tijd).utcnow().timestamp - id(uptime_seconds).state ); return timestamp; # Wi-Fi Signaal Info - platform: wifi_signal name: Wi-Fi Signaalsterkte dB icon: mdi:wifi id: wifi_signal_db update_interval: 10s entity_category: "diagnostic" - platform: copy # Reports the WiFi signal strength in % source_id: wifi_signal_db name: Wi-Fi Signaalsterkte icon: mdi:signal filters: - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0); unit_of_measurement: "%" entity_category: "diagnostic" device_class: "" - platform: template name: Wi-Fi Kanaal icon: mdi:wifi-settings lambda: return WiFi.channel(); entity_category: "diagnostic" accuracy_decimals: 0 update_interval: 60s # Watermeterstand Bij Benadering - platform: template id: watermeter_total name: "Meterstand" state_class: "total_increasing" icon: mdi:counter unit_of_measurement: "m³" accuracy_decimals: 3 update_interval: 10s lambda: return id(initial_water_usage) + (id(total_water_pulses) * atof(id(Select_pulse_water).state.c_str())); # Waterverbruik HA Energy Dashboard - platform: template id: watermeter_pulses name: "Water Verbruik Totaal" device_class: "energy" unit_of_measurement: "m3" state_class: "total_increasing" icon: mdi:pulse accuracy_decimals: 0 lambda: return id(total_water_pulses); internal: True # VCC - platform: adc pin: VCC name: "VCC Voltage" # Herstart Node button: - platform: restart name: "Herstart" icon: "mdi:restart" # Safe Mode - platform: safe_mode name: "! Safe Mode !" icon: mdi:alert-octagram-outline entity_category: "config" # Status LED: status_led: pin: number: GPIO2 inverted: true
Welke device entry heb je gebruikt op het energy dashboard?
Ik heb even niet niet meegelezen dus misschien is jouw esp32 anders dan die van mij (ik gebruik die van pbrink), ik heb alleen dit stukje in mijn esp32-build:BounceMeister schreef op vrijdag 23 januari 2026 @ 19:18:
[...]
Ik heb (weer) problemen met mijn watermeter via esphome. Ik heb inmiddels totaal geen idee meer wat er nou in moet staan, ik begrijp de documentatie niet, deels omdat deze niet wordt bijgewerkt en dus het overgrote deel wat ik online vind, verouderd is en niet werkt. Bij bovenstaande yaml krijg ik de foutmelding:YAML:En deze stuur je naar de watermeter via ESPHome Device Builder toch? Of moet dit in configuration.yaml? Ik heb geen idee waarom er overal wat staat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 INFO ESPHome 2026.1.1 INFO Reading configuration /config/esphome/watermeter.yaml... Failed config sensor.template: [source /config/esphome/watermeter.yaml:56] platform: template id: watermeter_pulses name: watermeter pulses totaal state_class: total_increasing accuracy_decimals: 0 Couldn't find ID 'total_water_pulses'. Please check you have defined an ID with that name in your configuration. These IDs look similar: "watermeter_pulses", "watermeter_pulse". lambda: !lambda |- return id(total_water_pulses); disabled_by_default: False force_update: False update_interval: 60s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| sensor: - platform: pulse_meter pin: number: GPIO12 name: "Water Pulse Meter" unit_of_measurement: "liter/min" icon: "mdi:water" total: name: "Water Meter Total" unit_of_measurement: "m³" id: water_meter_total accuracy_decimals: 3 device_class: water state_class: total_increasing filters: - multiply: 0.001 |
1
2
3
4
5
6
7
8
9
10
11
12
13
| utility_meter: util_water_usage_hourly: source: sensor.water_total cycle: hourly util_water_usage_daily: source: sensor.water_total cycle: daily util_water_usage_monthly: source: sensor.water_total cycle: monthly util_water_usage_yearly: source: sensor.water_total cycle: yearly |
[ Voor 10% gewijzigd door MJV op 23-01-2026 21:08 ]
In mijn geval heb ik voor het HA Energy Dashboard gebruikt:BounceMeister schreef op vrijdag 23 januari 2026 @ 19:35:
[...]
Ik ga deze eens proberen, de hele boel was in de war nadat ik een tweede device had aangemaakt met esp builder.
Welke device entry heb je gebruikt op het energy dashboard?
1
2
3
4
5
6
7
8
9
10
11
| # Totaal Watermeter total: id: sensor_pulse_meter_total name: "Waterverbruik Totaal" unit_of_measurement: "m³" state_class: total_increasing icon: mdi:pulse device_class: water accuracy_decimals: 3 filters: lambda: return x * atof(id(Select_pulse_water).state.c_str()); |
Ik ben momenteel met deze bezig, ik vraag me af of de "sensor.water_total" in configration.yaml wel bekend is, want die zie ik bij de yaml van esphome niet terug? Hij lijkt ook geen waarde te hebben of krijgen.MJV schreef op vrijdag 23 januari 2026 @ 21:06:
[...]
Ik heb even niet niet meegelezen dus misschien is jouw esp32 anders dan die van mij (ik gebruik die van pbrink), ik heb alleen dit stukje in mijn esp32-build:YAML:In mijn configuration.yaml staat het volgende stukje:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sensor: - platform: pulse_meter pin: number: GPIO12 name: "Water Pulse Meter" unit_of_measurement: "liter/min" icon: "mdi:water" total: name: "Water Meter Total" unit_of_measurement: "m³" id: water_meter_total accuracy_decimals: 3 device_class: water state_class: total_increasing filters: - multiply: 0.001YAML:
1 2 3 4 5 6 7 8 9 10 11 12 13 utility_meter: util_water_usage_hourly: source: sensor.water_total cycle: hourly util_water_usage_daily: source: sensor.water_total cycle: daily util_water_usage_monthly: source: sensor.water_total cycle: monthly util_water_usage_yearly: source: sensor.water_total cycle: yearly
Hier ben ik gisteren mee bezig geweest. Ik durf het bijna niet te vragen, maar ik kan in het HA Energy Dashboard heen YAML code plakken volgens mij? Waar heb je dit staan?CDAAbeltje schreef op vrijdag 23 januari 2026 @ 23:43:
[...]
In mijn geval heb ik voor het HA Energy Dashboard gebruikt:YAML:
1 2 3 4 5 6 7 8 9 10 11 # Totaal Watermeter total: id: sensor_pulse_meter_total name: "Waterverbruik Totaal" unit_of_measurement: "m³" state_class: total_increasing icon: mdi:pulse device_class: water accuracy_decimals: 3 filters: lambda: return x * atof(id(Select_pulse_water).state.c_str());
Wij hebben nu een in de woonkamer en twee in verschillende slaapkamers. De sensor die ik heb gebruikt is een SCD41. Ze zijn niet goedkoop op Aliexpress maar zal wel een dure sensor zijn, 3 sensoren in totaal samen met C3 Super Mini heeft me €63 gekost. Het is toch wel veel goedkoper dan kant en klare sensoren.
Sensor heb ik hier vandaan:
https://nl.aliexpress.com/item/1005005075052056.html
was €19 toen ik het kocht.
Self heating is nog steeds een probleem, maar was goed te krijgen met offset. Ik heb een gecalibreerde Vaisala meter van werk geleend en daarmee offset bepaald. Na 4 uur metingen ziet het er echt goed uit. Metingen in koude en verwarmde ruimte gedaan om zo goed mogelijk te kunnen krijgen. Elke sensor had toch verschillende offsets nodig.
Een voet geprint waarbij USB-C kabel ingeschoven kan worden, connector steekt net genoeg uit om de sensor op te prikken, sensor wordt door de USB-C connector vastgehouden.
De eerder door mij beschreven code staat in de configuratie van de ESPHome node (het ESPHome apparaat).BounceMeister schreef op zondag 25 januari 2026 @ 13:39:
[...]
Hier ben ik gisteren mee bezig geweest. Ik durf het bijna niet te vragen, maar ik kan in het HA Energy Dashboard heen YAML code plakken volgens mij? Waar heb je dit staan?
Als het volledige ESPHome configuratie bestand geldig is dan kun je deze uploaden naar jouw node. Home Assistant zal dan vervolgens de sensoren aanmaken/importeren zodat jij deze betreffende sensor toe kunt voegen aan het Energy Dashboard
@BounceMeister zie hier mijn eerder gedeelde configuratie. Hier kom je vast wel mee uit de voetenCDAAbeltje schreef op dinsdag 2 december 2025 @ 23:01:
Even inhakend op het verhaal watermeter. Ik draai hier een zelf gemaakte watermeter met een ESP8266 icm LJ18A3-8-Z/BX-5V pulse counter. De volgende configuratie gebruik ik hiervoor:YAML:Wellicht heeft iemand er hier wat aan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 # ESPHome instellingen esphome: name: "watermeter" friendly_name: "Watermeter" comment: "ESP8266 met LJ18A3-8-Z/BX-5V pulse counter" esp8266: board: d1_mini restore_from_flash: true # Schakel logging in logger: # Debug: debug: update_interval: 10s # Home Assistant API aan api: encryption: key: !secret api_password services: - service: meterstand_water variables: meter_value: float then: - globals.set: id: initial_water_usage value: !lambda "return ( meter_value - (id(total_water_pulses)) * atof(id(Select_pulse_water).state.c_str()) ) ;" - globals.set: id: total_water_pulses value: "0" # OTA instellingen ota: platform: esphome password: !secret ota_password # WiFi instellingen: wifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: none # Statische IP instellingen manual_ip: static_ip: xxx.xxx.xxx.xxx gateway: xxx.xxx.xxx.xxx subnet: xxx.xxx.xxx.xxx # Tijd Synchroniseren met Home Assistant: time: - platform: homeassistant id: huidige_tijd on_time_sync: - component.update: uptime_timestamp # Globals globals: - id: initial_water_usage type: float restore_value: yes initial_value: '010' - id: total_water_pulses type: int restore_value: yes # Water Per m³ Rate select: - platform: template name: "Pulsrate Water Per m³ (0.001 default)" id: Select_pulse_water optimistic: true options: - "0.0001" - "0.0005" - "0.001" - "0.01" - "0.1" initial_option: "0.001" restore_value: yes on_value: then: - logger.log: format: "Chosen option: %s " args: ["x.c_str()"] # Watermeter binary_sensor: - platform: gpio id: internal_pulse_counter name: Pulssensor Bedrijf pin: number: GPIO12 allow_other_uses: true inverted: true mode: input: true on_press: - then: lambda: id(total_water_pulses) += 1; # Status Watermeter - platform: status name: "Status" # Herstart Informatie: text_sensor: - platform: debug reset_reason: name: Herstart Informatie # IP Adres & SSID - platform: wifi_info ip_address: name: IP Address icon: mdi:ip-network-outline ssid: name: SSID icon: mdi:wifi-lock # ESPHome Versie - platform: version name: ESPHome Versie hide_timestamp: true entity_category: diagnostic sensor: # Watermeter Pulsen - platform: pulse_counter pin: number: GPIO12 allow_other_uses: true id: watermeter_pulse name: "Liters Per Minuut" update_interval: 5s state_class: measurement unit_of_measurement: "l/min" accuracy_decimals: 1 icon: "mdi:water-pump" filters: lambda: return x * atof(id(Select_pulse_water).state.c_str()) * 1000; # Totaal Watermeter total: id: sensor_pulse_meter_total name: "Waterverbruik Totaal" unit_of_measurement: "m³" state_class: total_increasing icon: mdi:pulse device_class: water accuracy_decimals: 3 filters: lambda: return x * atof(id(Select_pulse_water).state.c_str()); # Uptime Sensor - platform: uptime name: Uptime Verborgen id: uptime_seconds unit_of_measurement: h device_class: duration state_class: total_increasing entity_category: diagnostic update_interval: 10s icon: mdi:clock-start internal: true - platform: template id: uptime_timestamp name: Uptime device_class: timestamp entity_category: diagnostic accuracy_decimals: 0 update_interval: never icon: mdi:clock-start lambda: |- static float timestamp = ( id(huidige_tijd).utcnow().timestamp - id(uptime_seconds).state ); return timestamp; # Wi-Fi Signaal Info - platform: wifi_signal name: Wi-Fi Signaalsterkte dB icon: mdi:wifi id: wifi_signal_db update_interval: 10s entity_category: "diagnostic" - platform: copy # Reports the WiFi signal strength in % source_id: wifi_signal_db name: Wi-Fi Signaalsterkte icon: mdi:signal filters: - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0); unit_of_measurement: "%" entity_category: "diagnostic" device_class: "" - platform: template name: Wi-Fi Kanaal icon: mdi:wifi-settings lambda: return WiFi.channel(); entity_category: "diagnostic" accuracy_decimals: 0 update_interval: 60s # Watermeterstand Bij Benadering - platform: template id: watermeter_total name: "Meterstand" state_class: "total_increasing" icon: mdi:counter unit_of_measurement: "m³" accuracy_decimals: 3 update_interval: 10s lambda: return id(initial_water_usage) + (id(total_water_pulses) * atof(id(Select_pulse_water).state.c_str())); # Waterverbruik HA Energy Dashboard - platform: template id: watermeter_pulses name: "Water Verbruik Totaal" device_class: "energy" unit_of_measurement: "m3" state_class: "total_increasing" icon: mdi:pulse accuracy_decimals: 0 lambda: return id(total_water_pulses); internal: True # VCC - platform: adc pin: VCC name: "VCC Voltage" # Herstart Node button: - platform: restart name: "Herstart" icon: "mdi:restart" # Safe Mode - platform: safe_mode name: "! Safe Mode !" icon: mdi:alert-octagram-outline entity_category: "config" # Status LED: status_led: pin: number: GPIO2 inverted: true
Een 4 inch display met ESPHome om de laadpaal om te schakelen van Slim laden naar Zon laden. Deze gaat elke nacht van 2-6 naar slim laden, daarbuiten naar zon laden. Soms hebben we overdag prik nodig en kunnen we deze nu binnen omzetten met een knop op een LCD.
Het is deze: https://devices.esphome.i...3-4.0-inch-smart-display/
Een aantal van de templates hebben vreemde benaming, I know. Deel komt van https://github.com/jtenniswood/esphome-lvgl
Thematisch probeerde ik de knoppen nog een andere kleur te geven voor Checked, maar had met Gemini niet echt succes.
3D Print voor dimmer wandplaat waar het 4 inch scherm in past.
https://www.thingiverse.com/thing:7283457
Ondersteboven printen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
| esphome:
name: displee
friendly_name: displee
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "dpMjHsGEaiq34F1Y8x+="
ota:
- platform: esphome
password: "assdfsasfsfsf"
on_begin: # prevent screen flickering during OTA
- light.turn_off:
id: display_backlight
transition_length: 0s
- lambda: "id(display_backlight).loop();"
esp32:
variant: esp32s3
framework:
type: esp-idf
psram:
mode: octal
speed: 80MHz
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Snmp Time
time:
- platform: sntp
id: sntp_time
timezone: Europe/Amsterdam
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
on_time_sync:
- script.execute: time_update
on_time:
- minutes: '*'
seconds: 0
then:
- script.execute: time_update
# Clock
script:
- id: time_update
then:
- lvgl.label.update:
id: display_time
text: !lambda |-
static char time_buf[17];
auto now = id(sntp_time).now();
snprintf(time_buf, sizeof(time_buf), "%02d:%02d", now.hour, now.minute);
return time_buf;
switch:
- platform: gpio
name: Relay 1
pin:
number: GPIO40
inverted: true
- platform: gpio
name: Relay 2
pin:
number: GPIO2
inverted: true
- platform: gpio
name: Relay 3
pin:
number: GPIO1
inverted: true
output:
- platform: ledc
id: backlight_output
pin: GPIO38
frequency: 150Hz
min_power: 0.01
zero_means_zero: true
light:
- platform: monochromatic
name: Backlight
id: display_backlight
output: backlight_output
restore_mode: ALWAYS_ON
default_transition_length: 1s
spi:
- id: lcd_spi
clk_pin: GPIO48
mosi_pin: GPIO47
i2c:
id: touchscreen_bus
sda: GPIO19
scl:
number: 45
ignore_strapping_warning: true
display:
- platform: st7701s
id: tft_display
dimensions:
width: 480
height: 480
# rotation: 270 #uncomment for placement with down-facing USB socket
spi_mode: MODE3
data_rate: 2MHz
color_order: RGB
invert_colors: False
cs_pin: 39
de_pin: 18
hsync_pin: 16
vsync_pin: 17
pclk_pin: 21
pclk_frequency: 12MHz
pclk_inverted: False
hsync_pulse_width: 8
hsync_front_porch: 10
hsync_back_porch: 20
vsync_pulse_width: 8
vsync_front_porch: 10
vsync_back_porch: 10
update_interval: never
auto_clear_enabled: False
init_sequence:
- 1
- [0xFF, 0x77, 0x01, 0x00, 0x00, 0x10] # CMD2_BKSEL_BK0
- [0xCD, 0x00] # disable MDT flag
data_pins:
red: [11, 12, 13, 14, 0]
green: [8, 20, 3, 46, 9, 10]
blue: [4, 5, 6, 7, 15]
touchscreen:
- platform: gt911
id: tft_touch
display: tft_display
# transform: #uncomment for placement with down-facing USB socket
# swap_xy: true
# mirror_x: true
font:
- file: "gfonts://Roboto"
id: roboto17_font
size: 17
bpp: 4
- file: "gfonts://Roboto"
id: roboto15_font
size: 15
bpp: 4
# http://materialdesignicons.com/cdn/7.4.47/
- file: 'https://github.com/Templarian/MaterialDesign-Webfont/raw/v7.4.47/fonts/materialdesignicons-webfont.ttf'
id: icon_font
size: 36
bpp: 4
glyphs: [
"\U000F0335", # mdi-lightbulb
"\U000F042B", # mdi-printer-3d
"\U000F0D43", # mdi-air-filter
"\U000F1051", # mdi-led-strip-variant
"\U000F03D7", # mdi-package-variant-closed
"\U000F07D6", # mdi-led-strip
"\U000F00AC", # mdi-blinds-closed
"\U000F1011", # mdi-blinds-open
"\U000F1A4C", # mdi-lightbulb-night
"\U000F1087", # mdi-router-network
"\U000F036B", # mdi-message-video
"\U000F0614", # mdi-application-outline
"\U000F089E", # mdi-battery
"\U000F07DE", # mdi-filament
"\U000F0317", # mdi-lan
]
# Map icons to names
substitutions:
lightbulb: "\U000F0335"
printer: "\U000F042B"
aircon: "\U000F0D43"
ledstrip: "\U000F1051"
led_strip_variant: "\U000F1051"
package: "\U000F03D7"
lights: "\U000F07D6"
blinds_closed: "\U000F00AC"
blinds_open: "\U000F1011"
nightlight: "\U000F1A4C"
network: "\U000F1087"
videocall: "\U000F036B"
application: "\U000F0614"
battery: "\U000F089E"
filament: "\U000F07DE"
lan: "\U000F0317"
icon_font: icon_font
text_font: roboto17_font
button_on_color: "0xFF8C00"
button_text_color: "0xFFFFFF"
button_control_color: "0x313131"
button_webhook_color: "0x212121"
button_height_single: 103px
button_height_double: 216px
button_width: 150px
padding: 12px
radius: 8px
slider_background_color: "0x505050"
slider_active_color: "0x2D2D2D"
slider_knob_color: "0xE5E5E5"
sensor:
# Header Outdoor Temperate
- platform: homeassistant
entity_id: sensor.overkapping_overkapping_temperature
id: outdoor_temperature
on_value:
- lvgl.label.update:
id: temperatures
text:
format: "%d° / %d°"
args: [ '(int)round(id(office_temperature).state)', '(int)round(x)' ]
- platform: homeassistant
entity_id: sensor.ecodan_heatpump_zone_1_ruimte_temp
id: office_temperature
on_value:
- lvgl.label.update:
id: temperatures
text:
format: "%d° / %d°"
args: [ '(int)round(x)', '(int)round(id(outdoor_temperature).state)' ]
text_sensor:
- platform: homeassistant
id: charger_mode_ha
entity_id: select.peblar_ev_charger_slim_laden
on_value:
then:
- lvgl.widget.update:
id: btn_pure_solar
state:
checked: !lambda 'return x == "pure_solar";'
- lvgl.widget.update:
id: btn_default
state:
checked: !lambda 'return x == "default";'
binary_sensor:
# Office Storage Lights
- platform: homeassistant
id: office_storage_lights
entity_id: switch.shellyplusplugs_08f9e0fee554_switch_0
trigger_on_initial_state: true
on_state:
then:
lvgl.widget.update:
id: storage_lights_button
state:
checked: !lambda return x;
# Battery Charger
- platform: homeassistant
id: office_battery_charger
entity_id: switch.shellyplusplugs_fcb4672587a4_switch_0
trigger_on_initial_state: true
on_state:
then:
lvgl.widget.update:
id: battery_charger_button
state:
checked: !lambda return x;
lvgl:
style_definitions:
- id: webhook
bg_color: $button_webhook_color
- id: control
bg_color: $button_control_color
- id: roboto15_style
text_font: roboto15_font
theme:
button:
text_font: $text_font
scroll_on_focus: false
radius: $radius
width: $button_width
height: $button_height_single
pad_all: $padding
shadow_width: 0
text_color: $button_text_color
checked:
bg_color: $button_on_color
text_color: $button_text_color
top_layer:
widgets:
# Temperature
- label:
text: "-° / -°"
id: temperatures
styles: roboto15_style
align: top_left
x: 8
y: 4
text_color: 0xFFFFFF
# Clock
- label:
text: "--:--"
id: display_time
styles: roboto15_style
align: top_mid
x: 0
y: 4
text_align: center
text_color: 0xFFFFFF
pages:
- id: main_page
layout:
type: flex
flex_flow: row_wrap
scrollbar_mode: "off"
width: 100%
bg_color: Black
bg_opa: cover
pad_top: 30
pad_bottom: 5
pad_left: 5
pad_right: 5
widgets:
# --- BUTTON 1: PURE SOLAR ---
- button:
id: btn_pure_solar
width: 45%
height: 80
widgets:
- label: { text: "Zon laden" }
bg_color: !lambda |-
return (id(charger_mode_ha).state == "pure_solar") ? lv_color_make(0, 200, 0) : lv_color_make(60, 60, 60);
#styles: style_pure_solar # Points to the yellow style above
on_click:
- homeassistant.service:
service: select.select_option
data:
entity_id: select.peblar_ev_charger_slim_laden
option: "pure_solar"
# --- BUTTON 2: DEFAULT ---
- button:
id: btn_default
width: 45%
height: 80
widgets:
- label: { text: "Normaal laden" }
bg_color: !lambda |-
return (id(charger_mode_ha).state == "default") ? lv_color_make(0, 120, 255) : lv_color_make(60, 60, 60);
#styles: style_default_laden # Points to the yellow style above
on_click:
- homeassistant.service:
service: select.select_option
data:
entity_id: select.peblar_ev_charger_slim_laden
option: "default"
# Storage Lights
- button:
height: $button_height_single
width: $button_width
checkable: true
id: storage_lights_button
styles: control
widgets:
- label:
text_font: $icon_font
align: top_left
id: storage_lights_icon
text: $package
- label:
align: bottom_left
id: storage_lights_label
text: "Vitrinekast"
on_click:
- homeassistant.service:
service: switch.toggle
data:
entity_id: switch.shellyplusplugs_08f9e0fee554_switch_0
# Battery Charger
- button:
height: $button_height_single
width: $button_width
checkable: true
id: battery_charger_button
styles: control
widgets:
- label:
text_font: $icon_font
align: top_left
id: battery_charger_icon
text: $battery
- label:
align: bottom_left
id: battery_charger_label
text: "Kerstboom"
on_click:
- homeassistant.service:
service: switch.toggle
data:
entity_id: switch.shellyplusplugs_fcb4672587a4_switch_0 |
Nice, ben ook wel benieuwd naar een foto hoe het geheel eruit ziet.databeestje schreef op woensdag 28 januari 2026 @ 15:43:
Niet zeker of dit de juiste plek is, maar hier gaat ie.
Een 4 inch display met ESPHome om de laadpaal om te schakelen van Slim laden naar Zon laden. Deze gaat elke nacht van 2-6 naar slim laden, daarbuiten naar zon laden. Soms hebben we overdag prik nodig en kunnen we deze nu binnen omzetten met een knop op een LCD.
Het is deze: https://devices.esphome.i...3-4.0-inch-smart-display/
Een aantal van de templates hebben vreemde benaming, I know. Deel komt van https://github.com/jtenniswood/esphome-lvgl
Thematisch probeerde ik de knoppen nog een andere kleur te geven voor Checked, maar had met Gemini niet echt succes.
3D Print voor dimmer wandplaat waar het 4 inch scherm in past.
https://www.thingiverse.com/thing:7283457
Ondersteboven printencode:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423esphome: name: displee friendly_name: displee # Enable logging logger: # Enable Home Assistant API api: encryption: key: "dpMjHsGEaiq34F1Y8x+=" ota: - platform: esphome password: "assdfsasfsfsf" on_begin: # prevent screen flickering during OTA - light.turn_off: id: display_backlight transition_length: 0s - lambda: "id(display_backlight).loop();" esp32: variant: esp32s3 framework: type: esp-idf psram: mode: octal speed: 80MHz wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Snmp Time time: - platform: sntp id: sntp_time timezone: Europe/Amsterdam servers: - 0.pool.ntp.org - 1.pool.ntp.org - 2.pool.ntp.org on_time_sync: - script.execute: time_update on_time: - minutes: '*' seconds: 0 then: - script.execute: time_update # Clock script: - id: time_update then: - lvgl.label.update: id: display_time text: !lambda |- static char time_buf[17]; auto now = id(sntp_time).now(); snprintf(time_buf, sizeof(time_buf), "%02d:%02d", now.hour, now.minute); return time_buf; switch: - platform: gpio name: Relay 1 pin: number: GPIO40 inverted: true - platform: gpio name: Relay 2 pin: number: GPIO2 inverted: true - platform: gpio name: Relay 3 pin: number: GPIO1 inverted: true output: - platform: ledc id: backlight_output pin: GPIO38 frequency: 150Hz min_power: 0.01 zero_means_zero: true light: - platform: monochromatic name: Backlight id: display_backlight output: backlight_output restore_mode: ALWAYS_ON default_transition_length: 1s spi: - id: lcd_spi clk_pin: GPIO48 mosi_pin: GPIO47 i2c: id: touchscreen_bus sda: GPIO19 scl: number: 45 ignore_strapping_warning: true display: - platform: st7701s id: tft_display dimensions: width: 480 height: 480 # rotation: 270 #uncomment for placement with down-facing USB socket spi_mode: MODE3 data_rate: 2MHz color_order: RGB invert_colors: False cs_pin: 39 de_pin: 18 hsync_pin: 16 vsync_pin: 17 pclk_pin: 21 pclk_frequency: 12MHz pclk_inverted: False hsync_pulse_width: 8 hsync_front_porch: 10 hsync_back_porch: 20 vsync_pulse_width: 8 vsync_front_porch: 10 vsync_back_porch: 10 update_interval: never auto_clear_enabled: False init_sequence: - 1 - [0xFF, 0x77, 0x01, 0x00, 0x00, 0x10] # CMD2_BKSEL_BK0 - [0xCD, 0x00] # disable MDT flag data_pins: red: [11, 12, 13, 14, 0] green: [8, 20, 3, 46, 9, 10] blue: [4, 5, 6, 7, 15] touchscreen: - platform: gt911 id: tft_touch display: tft_display # transform: #uncomment for placement with down-facing USB socket # swap_xy: true # mirror_x: true font: - file: "gfonts://Roboto" id: roboto17_font size: 17 bpp: 4 - file: "gfonts://Roboto" id: roboto15_font size: 15 bpp: 4 # http://materialdesignicons.com/cdn/7.4.47/ - file: 'https://github.com/Templarian/MaterialDesign-Webfont/raw/v7.4.47/fonts/materialdesignicons-webfont.ttf' id: icon_font size: 36 bpp: 4 glyphs: [ "\U000F0335", # mdi-lightbulb "\U000F042B", # mdi-printer-3d "\U000F0D43", # mdi-air-filter "\U000F1051", # mdi-led-strip-variant "\U000F03D7", # mdi-package-variant-closed "\U000F07D6", # mdi-led-strip "\U000F00AC", # mdi-blinds-closed "\U000F1011", # mdi-blinds-open "\U000F1A4C", # mdi-lightbulb-night "\U000F1087", # mdi-router-network "\U000F036B", # mdi-message-video "\U000F0614", # mdi-application-outline "\U000F089E", # mdi-battery "\U000F07DE", # mdi-filament "\U000F0317", # mdi-lan ] # Map icons to names substitutions: lightbulb: "\U000F0335" printer: "\U000F042B" aircon: "\U000F0D43" ledstrip: "\U000F1051" led_strip_variant: "\U000F1051" package: "\U000F03D7" lights: "\U000F07D6" blinds_closed: "\U000F00AC" blinds_open: "\U000F1011" nightlight: "\U000F1A4C" network: "\U000F1087" videocall: "\U000F036B" application: "\U000F0614" battery: "\U000F089E" filament: "\U000F07DE" lan: "\U000F0317" icon_font: icon_font text_font: roboto17_font button_on_color: "0xFF8C00" button_text_color: "0xFFFFFF" button_control_color: "0x313131" button_webhook_color: "0x212121" button_height_single: 103px button_height_double: 216px button_width: 150px padding: 12px radius: 8px slider_background_color: "0x505050" slider_active_color: "0x2D2D2D" slider_knob_color: "0xE5E5E5" sensor: # Header Outdoor Temperate - platform: homeassistant entity_id: sensor.overkapping_overkapping_temperature id: outdoor_temperature on_value: - lvgl.label.update: id: temperatures text: format: "%d° / %d°" args: [ '(int)round(id(office_temperature).state)', '(int)round(x)' ] - platform: homeassistant entity_id: sensor.ecodan_heatpump_zone_1_ruimte_temp id: office_temperature on_value: - lvgl.label.update: id: temperatures text: format: "%d° / %d°" args: [ '(int)round(x)', '(int)round(id(outdoor_temperature).state)' ] text_sensor: - platform: homeassistant id: charger_mode_ha entity_id: select.peblar_ev_charger_slim_laden on_value: then: - lvgl.widget.update: id: btn_pure_solar state: checked: !lambda 'return x == "pure_solar";' - lvgl.widget.update: id: btn_default state: checked: !lambda 'return x == "default";' binary_sensor: # Office Storage Lights - platform: homeassistant id: office_storage_lights entity_id: switch.shellyplusplugs_08f9e0fee554_switch_0 trigger_on_initial_state: true on_state: then: lvgl.widget.update: id: storage_lights_button state: checked: !lambda return x; # Battery Charger - platform: homeassistant id: office_battery_charger entity_id: switch.shellyplusplugs_fcb4672587a4_switch_0 trigger_on_initial_state: true on_state: then: lvgl.widget.update: id: battery_charger_button state: checked: !lambda return x; lvgl: style_definitions: - id: webhook bg_color: $button_webhook_color - id: control bg_color: $button_control_color - id: roboto15_style text_font: roboto15_font theme: button: text_font: $text_font scroll_on_focus: false radius: $radius width: $button_width height: $button_height_single pad_all: $padding shadow_width: 0 text_color: $button_text_color checked: bg_color: $button_on_color text_color: $button_text_color top_layer: widgets: # Temperature - label: text: "-° / -°" id: temperatures styles: roboto15_style align: top_left x: 8 y: 4 text_color: 0xFFFFFF # Clock - label: text: "--:--" id: display_time styles: roboto15_style align: top_mid x: 0 y: 4 text_align: center text_color: 0xFFFFFF pages: - id: main_page layout: type: flex flex_flow: row_wrap scrollbar_mode: "off" width: 100% bg_color: Black bg_opa: cover pad_top: 30 pad_bottom: 5 pad_left: 5 pad_right: 5 widgets: # --- BUTTON 1: PURE SOLAR --- - button: id: btn_pure_solar width: 45% height: 80 widgets: - label: { text: "Zon laden" } bg_color: !lambda |- return (id(charger_mode_ha).state == "pure_solar") ? lv_color_make(0, 200, 0) : lv_color_make(60, 60, 60); #styles: style_pure_solar # Points to the yellow style above on_click: - homeassistant.service: service: select.select_option data: entity_id: select.peblar_ev_charger_slim_laden option: "pure_solar" # --- BUTTON 2: DEFAULT --- - button: id: btn_default width: 45% height: 80 widgets: - label: { text: "Normaal laden" } bg_color: !lambda |- return (id(charger_mode_ha).state == "default") ? lv_color_make(0, 120, 255) : lv_color_make(60, 60, 60); #styles: style_default_laden # Points to the yellow style above on_click: - homeassistant.service: service: select.select_option data: entity_id: select.peblar_ev_charger_slim_laden option: "default" # Storage Lights - button: height: $button_height_single width: $button_width checkable: true id: storage_lights_button styles: control widgets: - label: text_font: $icon_font align: top_left id: storage_lights_icon text: $package - label: align: bottom_left id: storage_lights_label text: "Vitrinekast" on_click: - homeassistant.service: service: switch.toggle data: entity_id: switch.shellyplusplugs_08f9e0fee554_switch_0 # Battery Charger - button: height: $button_height_single width: $button_width checkable: true id: battery_charger_button styles: control widgets: - label: text_font: $icon_font align: top_left id: battery_charger_icon text: $battery - label: align: bottom_left id: battery_charger_label text: "Kerstboom" on_click: - homeassistant.service: service: switch.toggle data: entity_id: switch.shellyplusplugs_fcb4672587a4_switch_0
☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant
manusjevanalles schreef op woensdag 28 januari 2026 @ 16:06:
[...]
Nice, ben ook wel benieuwd naar een foto hoe het geheel eruit ziet.
:strip_exif()/f/image/djqHX7VzoniXZQnfHe0OMFsF.jpg?f=fotoalbum_large)
Met een ESP32 (oud ding dus, zonder toevoeging) krijg ik met Arduino framework audio uit mijn MAX98357A. Switch ik naar esp-idf errort die met een not supported achtige melding. Voeg ik psram: toe dan errort die met een no memory error en bij boot ook dat er helemaal geen psram is. Op een ESP32-S3 (devkit-c-1 N16R8) met 16MB flash en 8MB psram krijg ik noch met arduino noch met esp-idf audio er uit. Geen errors (als ik psram.mode: octal gebruik), maar ook geen geluid.
Mijn config is nu als volgt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| substitutions: name: "music" friendly_name: music esphome: name: music friendly_name: music name_add_mac_suffix: false esp32: board: esp32-s3-devkitc-1 framework: type: esp-idf sdkconfig_options: CONFIG_MBEDTLS_SSL_PROTO_TLS1_3: 'y' logger: level: VERY_VERBOSE api: ota: - platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password psram: mode: octal web_server: i2s_audio: - id: i2s_out i2s_bclk_pin: GPIO09 i2s_lrclk_pin: GPIO08 speaker: - platform: i2s_audio dac_type: external i2s_audio_id: i2s_out i2s_dout_pin: GPIO10 id: spkr sample_rate: 48000 - platform: mixer id: mixer_spkr output_speaker: spkr source_speakers: - id: announcement_spkr_mixer_input - id: media_spkr_mixer_input - platform: resampler id: media_spkr_resampling_input output_speaker: media_spkr_mixer_input - platform: resampler id: announcement_spkr_resampling_input output_speaker: announcement_spkr_mixer_input media_player: - platform: speaker name: ESPHome I2S Media Player id: media_plyr media_pipeline: speaker: media_spkr_resampling_input num_channels: 2 format: NONE announcement_pipeline: speaker: announcement_spkr_resampling_input num_channels: 1 |
[small]Klein opvallend dingetje is de [mono]?u] op het eind van de URL in de logging van de "MediaPlayerCommandRequest", deze staat niet in de (HA) service call noch in de logging van de media_player component. Daarnaast, for better or for worse, als ik format: NONE weg haal in de ESPHome config dan gebruikt die een URL naar de HA instance (/ffmpeg_proxy/....), en deze URL kan ik prima openen / afspelen op mijn PC dus die transcode / proxy werkt prima (en maakt er een flac van die dus zou moeten werken).[20:54:51.887][VV][api.service:016]: on_media_player_command_request: MediaPlayerCommandRequest {
[20:54:51.887][VV][api.service:016]: key: 3210548230
[20:54:51.888][VV][api.service:016]: has_command: NO
[20:54:51.889][VV][api.service:016]: command: MEDIA_PLAYER_COMMAND_PLAY
[20:54:51.889][VV][api.service:016]: has_volume: NO
[20:54:51.889][VV][api.service:016]: volume: 0
[20:54:51.890][VV][api.service:016]: has_media_url: YES
[20:54:51.892][VV][api.service:016]: media_url: 'https://playerservices.streamtheworld.com/api/livestream-redirect/RADIO538.mp3?u'
[20:54:51.892][VV][api.service:016]: has_announcement: NO
[20:54:51.893][VV][api.service:016]: announcement: NO
[20:54:51.893][VV][api.service:016]: }
[20:54:51.895][D][media_player:084]: 'ESPHome I2S Media Player' - Setting
[20:54:51.897][D][media_player:091]: Media URL: https://playerservices.st...eam-redirect/RADIO538.mp3
[20:54:51.901][D][speaker_media_player:410]: State changed to PLAYING
[20:54:52.012][VV][api.service:012]: send_message media_player_state_response: MediaPlayerStateResponse {
[20:54:52.012][VV][api.service:012]: key: 3210548230
[20:54:52.013][VV][api.service:012]: state: MEDIA_PLAYER_STATE_PLAYING
[20:54:52.013][VV][api.service:012]: volume: 1
[20:54:52.014][VV][api.service:012]: muted: NO
[20:54:52.014][VV][api.service:012]: }
[20:54:55.098][VV][app:499]: logger loop enabled from ISR
[20:54:55.101][D][speaker_media_player.pipeline:114]: Reading MP3 file type
[20:54:55.105][D][ring_buffer:034][med_read]: Created ring buffer with size 1000000
[20:54:55.122][VV][component:302]: logger loop disabled
[20:54:55.334][D][speaker_media_player.pipeline:124]: Decoded audio has 2 channels, 44100 Hz sample rate, and 16 bits per sample
[20:54:55.440][D][ring_buffer:034]: Created ring buffer with size 19200
[20:54:55.448][D][resampler_speaker:064]: Starting resampler task
[20:54:55.454][D][resampler_speaker:085]: Started resampler task
[20:54:55.462][VV][app:499]: logger loop enabled from ISR
[20:54:55.469][D][speaker_mixer:317]: Starting speaker mixer
[20:54:55.480][D][speaker_mixer:325]: Started speaker mixer
[20:54:55.489][D][ring_buffer:034][sample]: Created ring buffer with size 17640
[20:54:55.510][D][ring_buffer:034][speaker_task]: Created ring buffer with size 48000
[20:54:55.518][D][i2s_audio.speaker:102]: Starting
[20:54:55.524][D][i2s_audio.speaker:106]: Started
[20:54:55.530][VV][component:302]: logger loop disabled
Daarnaast heb ik ook al meerdere pinnen geprobeerd, dus het is geen slechte verbinding in het (eigen) soldeerwerk en zonder stroom er op ook al de multimeter er aan gehouden, alhoewel dat natuurlijk meer zegt over de kabel dan de daadwerkelijke soldeerbinding gezien het meten aan de bovenkant van de pin/soldeer wat niks zegt over of het soldeer ook met het PCB verbind. En de DAC werkt dus bewezen want op de ESP32 werkt die wel (incl. zelfde dupont kabel).
Heeft iemand dus een idee wat hier mogelijk mis zou kunnen gaan?
Edit:
De hele mixer + resampler(s) er uit gegooid en vervolgens ook bij de media player de media_pipeline er uit en de announcement_pipeline (verplicht) rechtstreeks aan de spkr speaker gehangen. Als ik dan een tts.speak doe werkt het nog (steeds) niet. Dus het lijkt ook niet in de mixer/resampler te zitten.
Probeer eens andere gpio, volgens mij is gpio8 een strapping pin op de s3. Probeer eens io4 en io5 voor i2c.RobertMe schreef op zondag 1 februari 2026 @ 22:21:
Ik zit nog steeds een beetje te rommelen om een muziek speler / smart speaker te maken, maar loop nogal (snel) vast.
Met een ESP32 (oud ding dus, zonder toevoeging) krijg ik met Arduino framework audio uit mijn MAX98357A. Switch ik naar esp-idf errort die met een not supported achtige melding. Voeg ik psram: toe dan errort die met een no memory error en bij boot ook dat er helemaal geen psram is. Op een ESP32-S3 (devkit-c-1 N16R8) met 16MB flash en 8MB psram krijg ik noch met arduino noch met esp-idf audio er uit. Geen errors (als ik psram.mode: octal gebruik), maar ook geen geluid.
Mijn config is nu als volgt:YAML:En de logging vanaf de "play" in HA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 substitutions: name: "music" friendly_name: music esphome: name: music friendly_name: music name_add_mac_suffix: false esp32: board: esp32-s3-devkitc-1 framework: type: esp-idf sdkconfig_options: CONFIG_MBEDTLS_SSL_PROTO_TLS1_3: 'y' logger: level: VERY_VERBOSE api: ota: - platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password psram: mode: octal web_server: i2s_audio: - id: i2s_out i2s_bclk_pin: GPIO09 i2s_lrclk_pin: GPIO08 speaker: - platform: i2s_audio dac_type: external i2s_audio_id: i2s_out i2s_dout_pin: GPIO10 id: spkr sample_rate: 48000 - platform: mixer id: mixer_spkr output_speaker: spkr source_speakers: - id: announcement_spkr_mixer_input - id: media_spkr_mixer_input - platform: resampler id: media_spkr_resampling_input output_speaker: media_spkr_mixer_input - platform: resampler id: announcement_spkr_resampling_input output_speaker: announcement_spkr_mixer_input media_player: - platform: speaker name: ESPHome I2S Media Player id: media_plyr media_pipeline: speaker: media_spkr_resampling_input num_channels: 2 format: NONE announcement_pipeline: speaker: announcement_spkr_resampling_input num_channels: 1
[...]
[small]Klein opvallend dingetje is de [mono]?u] op het eind van de URL in de logging van de "MediaPlayerCommandRequest", deze staat niet in de (HA) service call noch in de logging van de media_player component. Daarnaast, for better or for worse, als ik format: NONE weg haal in de ESPHome config dan gebruikt die een URL naar de HA instance (/ffmpeg_proxy/....), en deze URL kan ik prima openen / afspelen op mijn PC dus die transcode / proxy werkt prima (en maakt er een flac van die dus zou moeten werken).
Daarnaast heb ik ook al meerdere pinnen geprobeerd, dus het is geen slechte verbinding in het (eigen) soldeerwerk en zonder stroom er op ook al de multimeter er aan gehouden, alhoewel dat natuurlijk meer zegt over de kabel dan de daadwerkelijke soldeerbinding gezien het meten aan de bovenkant van de pin/soldeer wat niks zegt over of het soldeer ook met het PCB verbind. En de DAC werkt dus bewezen want op de ESP32 werkt die wel (incl. zelfde dupont kabel).
Heeft iemand dus een idee wat hier mogelijk mis zou kunnen gaan?
Edit:
De hele mixer + resampler(s) er uit gegooid en vervolgens ook bij de media player de media_pipeline er uit en de announcement_pipeline (verplicht) rechtstreeks aan de spkr speaker gehangen. Als ik dan een tts.speak doe werkt het nog (steeds) niet. Dus het lijkt ook niet in de mixer/resampler te zitten.
Ik had ook al 12, 13, 14 geprobeerd zonder succes.chaoscontrol schreef op maandag 2 februari 2026 @ 09:00:
[...]
Probeer eens andere gpio, volgens mij is gpio8 een strapping pin op de s3. Probeer eens io4 en io5 voor i2c.
Vanmorgen kwam ik op Reddit nog een voorbeeld tegen: https://www.reddit.com/r/...ice_to_turn_any_existing/ / https://github.com/rgnyld...ance-media-player-v2.yaml . Vanavond dus eens vergelijken en zijn pins gebruiken die dus sowieso zouden moeten werken dan (ook gezien ook daar de devkit-c-1 gebruikt wordt).
Zet je code tussen [code=yaml] [/code] tags om het goed leesbaar te houden; ook makkelijker voor de eventuele foutopsporing.