Het grote ESPhome topic

Pagina: 1 ... 14 15 Laatste
Acties:

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 03:56
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:
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.).
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.

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?
Hierop terugkomende...
offtopic:
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 :X. Vervolgens "net" een refund aangevraagd en binnen volgens mij half uur goedgekeurd. Maar AE wordt er niet duidelijker op (vast bewust).
Verder had ik nog vanalles geprobeerd. Met picocom (/elk prog dat serial kan gebruiken dan) kreeg ik wel mooi een oneindige stroom aan "invalid header" errors, vast omdat die dus leeg was. Bij enablen download mode (boot + reset knoppen dus) stopte die berichten met een bevestiging van het feit dat... (exacte tekst heb ik niet bij de hand).
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 :+ esptool.py --trace [port, baud rate, ...] [commando] .... Waarbij natuurlijk ook alles zichtbaar wordt v.w.b. gewone logging in code maar dan logt die dus ook de "ruwe" bytes die die schrijft/leest.

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 :o Alhoewel ik niet weet of ik die met ESPHome ga gebruiken. Support staat op experimenteel. En áls ik er echt iets mee ga doen is de kans groot dat het Zigbee wordt.
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 :X).

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 :+ Zo'n reactietijd is dan wel cool. Zelfbouw om ook een sensor op het deurtje te doen v.w.b. "brievenbus is leeg gemaakt". En misschien doe ik nog wel een load cell onder het roostertje zodat ik weet hoe zwaar de post is :+

[ Voor 11% gewijzigd door RobertMe op 12-01-2026 18:33 ]


  • CDAAbeltje
  • Registratie: Maart 2007
  • Laatst online: 22-03 21:00

CDAAbeltje

Cool Down !

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!
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.
Werkend getest op nieuwe Lumineo Icicle Twinkle (IJspegels) welke je aan het huis of dakgoot maakt.
Deze keer zonder enig geflikker van de verlichting! 8)

Verdere uitwerking en opschoning van Github repo's komt er nog aan maar voor nu alvast een kijkje in de keuken:

LT-Hbridge:

code:
1
https://github.com/AbeltjeNL/lt-hbridge/tree/main

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:06
Ik heb een aantal van de LSC Smart Connect slimme stekkers die na het flashen al tijden verrassend goed werken met ESPHome. Idem trouwens voor ook wat andere apparaten die ik heb en op het Beken platform werken, waaronder LSC en Kruidvat Smart.

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.

YAML:
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.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@alex3305 Pin aan houden is nooit te doen op een microcontroller. Dus je kan hoogstens geluk hebben dat een restart snel genoeg gebeurd zodat hij herstelt kan worden. En een Beken lijkt vrij traag te starten, waarschijnlijk door hoe de bootloader werkt die na een boot eerst even gaat kijken of er seriële data is.

  • Lord Anubis
  • Registratie: Juni 2009
  • Laatst online: 23:57
alex3305 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.
misschien begrijp ik je verkeerd maar het
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.

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:06
@Lord Anubis Ik denk dat je me niet verkeerd begrijpt :). Ik weet niet precies wat voor relais er in de LSC stekker zit, maar er zijn producten op de markt die 'andersom' werken en dus geschakeld blijven bij een reboot. Als ik het relais uitzet en vervolgens een reboot doet wordt deze namelijk ook niet geschakeld.

@Septillion Dat begrijp ik :). Ik zag wat posts langskomen waarbij mensen op het ESP8266 platform de optie early_pin_init konden zetten waardoor een reboot (of firmware update) dus geen invloed had op de schakeling.

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.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@alex3305 Zoals de naam ook doet vermoeden is en blijft het gewoon zo snel mogelijk weer de state herstellen na boot. En hopen dat je sneller bent dan het relais afvalt :+

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 :/

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:06
@Septillion Volgens mij hoef ik jou niet te vertellen hoe kritisch ik soms ben O-), dus mij frustreert wel meer aan 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 :X. Of relais die elke x-minuten geswitcht worden. Blijkbaar is het wel mogelijk om on-demand de AP modus te activeren:

YAML:
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.

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 03:56
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.
Je bedoelt specifiek OTA updates en logging m.b.t. Thread devices? Of in het algemeen (als in: wifi)?

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 ]


  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:06
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)?
Met Thread devices inderdaad. Met wifi werkt het prima.
En in het algemeen: gebruik je de C6 of H2? (Of zijn er al meer 802.15.4 compatible ESPs?)
Allebei :D. Ik heb een aantal DFRobot ESP32-C6 Beetle en toevallig een OEM ESP32-H2 Supermini.

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 ]


  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 03:56
Nice. In 2026.1 zit ondersteuning voor Zigbee op het nRF52 platform. Waarbij er, blijkbaar, ook is samengewerkt met de developer van de Zigbee custom component voor ESP32 chips. En ook daarvoor ligt er een PR, voor Zigbee support voor esp32 (H2 / C6 dus).

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).

  • BounceMeister
  • Registratie: Maart 2002
  • Niet online
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);
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:
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
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.

[ Voor 3% gewijzigd door BounceMeister op 23-01-2026 19:24 ]


  • BounceMeister
  • Registratie: Maart 2002
  • Niet online
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:
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  (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
Wellicht heeft iemand er hier wat aan :)
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?

  • MJV
  • Registratie: Mei 2003
  • Laatst online: 23:11

MJV

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:
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
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.
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:
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
In mijn configuration.yaml staat het volgende stukje:
YAML:
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 ]


  • CDAAbeltje
  • Registratie: Maart 2007
  • Laatst online: 22-03 21:00

CDAAbeltje

Cool Down !

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?
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());

  • BounceMeister
  • Registratie: Maart 2002
  • Niet online
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:
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
In mijn configuration.yaml staat het volgende stukje:
YAML:
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
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.
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());
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?

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

Vandaag derde CO2 sensor gebouwd met een C3 super mini. ik kan weinig zeggen over hoe accuraat CO₂-metingen zijn, in een goed geventileerde ruimte zakt het tot 420 ppm CO₂.

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.

Afbeeldingslocatie: https://tweakers.net/i/3oa9P_9jcj9uwKD7JuvEqAh4vyM=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/rReWJSPzvdlLdxSRswYA5JXL.jpg?f=user_large

  • CDAAbeltje
  • Registratie: Maart 2007
  • Laatst online: 22-03 21:00

CDAAbeltje

Cool Down !

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?
De eerder door mij beschreven code staat in de configuratie van de ESPHome node (het ESPHome apparaat).
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 :)

  • CDAAbeltje
  • Registratie: Maart 2007
  • Laatst online: 22-03 21:00

CDAAbeltje

Cool Down !

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:
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  (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
Wellicht heeft iemand er hier wat aan :)
@BounceMeister zie hier mijn eerder gedeelde configuratie. Hier kom je vast wel mee uit de voeten :)

  • databeestje
  • Registratie: Oktober 2002
  • Laatst online: 22-03 20:08

databeestje

Von PrutsHausen

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 printen ;)
code:
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

  • manusjevanalles
  • Registratie: Januari 2009
  • Laatst online: 21:42
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 printen ;)
code:
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.

☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant


  • databeestje
  • Registratie: Oktober 2002
  • Laatst online: 22-03 20:08

databeestje

Von PrutsHausen

manusjevanalles schreef op woensdag 28 januari 2026 @ 16:06:
[...]


Nice, ben ook wel benieuwd naar een foto hoe het geheel eruit ziet.
Afbeeldingslocatie: https://tweakers.net/i/mUIgLr8Q5zfJNRzcZ4M8nwwgI68=/x800/filters:strip_icc():strip_exif()/f/image/djqHX7VzoniXZQnfHe0OMFsF.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/rtxFR8MVFIa-CM-BmZOT-P6DfAk=/x800/filters:strip_icc():strip_exif()/f/image/jOGPOYh2A2930Fo3RbLjcdED.jpg?f=fotoalbum_large

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 03:56
Ik zit nog steeds een beetje te rommelen om een muziek speler / smart speaker te maken, maar loop nogal (snel :P) 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:
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
En de logging vanaf de "play" in HA:
[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
[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.

  • chaoscontrol
  • Registratie: Juli 2005
  • Laatst online: 22-03 23:14
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 :P) 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:
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
En de logging vanaf de "play" in HA:

[...]

[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.
Probeer eens andere gpio, volgens mij is gpio8 een strapping pin op de s3. Probeer eens io4 en io5 voor i2c.

Inventaris - Koop mijn meuk!


  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 03:56
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.
Ik had ook al 12, 13, 14 geprobeerd zonder succes.
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).

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

ESPHome windsnelheid- en richtings sensor via bedraad netwerk met een WT32-ETH01
Afbeeldingslocatie: https://tweakers.net/i/mwQHMU5ky7xtNp7etquF87rkBMM=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/CJ6dZ2cdMtOnmk0Nc3aPQh7r.jpg?f=user_large

Ik ga (proberen) een tutorial schrijven voor een bedrade ESP32-windsensor.

Ik gebruik voor onze zonweringen windsnelheidsmetingen via een internet API zodat het dichtgaat als de windsnelheid te hoog is, dit gebruik al jaren maar meestal kwam de informatie te laat of verkeerd.
Om dit te elimineren heb ik besloten om mijn eigen sensor te plaatsen.

Eerste doel was om een ESP32 te gebruiken zonder wifi-verbinding, dan kom je gauw op een WT-32ETH01 terecht (of vele varianten daarvan).

Onderdelen die nodig zijn:
1x ESP32 WT32-ETH01
1x USB TO TTL CH340G
1x RS485 windsnelheid en richting sensor set
1x TTL naar RS485-modulebord
1x 5VDC voeding
1x 10 tot 30VDC voeding

Optioneel:
1x USB naar RS485 converter
1x Misol sensor arm om sensoren op te monteren
1x RVS buizen arm voor muur montage
3D STL-bestanden die ik heb getekend om sensoren te monteren

Eerst gaan we WT32-ETH01 verbinden met ESPHome via ethernet.
Omdat WT32-ETH01 geen USB aansluiting heeft, heb je een USB naar TTL adapter nodig.
Voeg een nieuw apparaat toe aan ESPHome, kies hiervoor ESP32 skip de rest, zodat je een lege yaml hebt met benodigde codering.

Verbind WT32-ETH01 via USB naar TTL adapter op je Home Assistant-server. Bedrading ziet er als volgt uit:
Afbeeldingslocatie: https://tweakers.net/i/MzZ0q6vng1B6f3vJWWzCtOU6B0Q=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/v09Fj7IBNf3Kmf8hOqUmgftZ.png?f=user_large
LET OP: op ESP32 sluit je TX0 en RX0 aan, geen RXD en TXD

Via ESPHome builder voeg volgende YAML-code toe:
YAML:
1
2
3
4
5
6
7
8
9
ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16
Installeer de code via:
Afbeeldingslocatie: https://tweakers.net/i/xLlwwpNRXCV-N4qNWu24eS9GiFM=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/9M6U6YikRTNwssTN2ppQPqx1.png?f=user_large

Nadat de installatie klaar is, haal de USB-TTL adapter uit je Home Assistant server en sluit de WT32-ETH01 aan op je router/switch/modem met een netwerkkabel en verbind het weer met je Home Assistant server.
Als ESP32 opgestart is, check of de netwerklampen knipperen op je WT32-ETH01
Kijk nu in je router/modem welke IP adres WT32-ETH01 heeft gekregen. Terwijl je daar toch bent, maak dat IP-adres vast (static) op je router/modem.

Bij mij werkt localhost bijna nooit, dus ik doe het volgende:
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
30
31
32
33
34
35
36
37
38
esphome:
  name: weer-station
  friendly_name: weer_station

esp32:
  board: esp32dev
  framework:
    type: arduino

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16

  manual_ip:
    static_ip: 192.168.1.41
    gateway: 192.168.1.1
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

web_server:
  port: 80
Dit is de kop YAML-code van mijn WT32-ETH01. Heeft het vaste IP-adres 192.168.1.41 gekregen en die heb ik hier toegevoegd, samen met poort 80. Hiermee kan ik zonder problemen via netwerk code installeren. Als jouw systeem werkt via localhost, dan is dit waarschijnlijk niet nodig. Let op: gateway en subnet kan anders zijn op jouw netwerk.

Haal WT32-ETH01 weer los van je Home Assistant-server. Haal tevens de verbindingsbrug tussen GND en IO0 weg, blauw getekend in mijn tekening hierboven. Ik ben het wel eens vergeten en kon via Netwerk niets doen.
Sluit nu je ET32-ETH01 aan een USB voeding via USB-TTL adapter, je mag ook direct een 5V-voeding aansluiten zonder USB-TTL adapter.

Als goed is kan je nu in je ESPHome builder net toegevoegde WT32-ETH01 online zien, zonder sensoren nog.

Als jij via WIFI wil verbinden, werkt ook een ESP32 C3 mini met deze sensoren, dit heb ik zelf gecontroleerd.

Nu komt het leuke gedeelte, eerste avond heb ik de sensoren niet werkend gekregen, beide gaven geen response.
Modbus-adressen zijn fabrieksaf al goed ingesteld, daarom is een USB-naar-RS485-adapter optioneel. Ik had het wel gekocht, omdat dit nergens vermeld was,
Snelheid meter heeft adres 1 en richting meter adres 2.
Omdat ik eerst niet werkend kreeg heb ik het op mijn PC aangesloten met de USB naar RS485 adapter en met deze software heb ik kunnen zien dat sensoren inderdaad adres 1 en 2 heeft en data verstuurt.

Probleem was dat ik de code van ESPHome documents gebruik van Renke sensoren:
https://devices.esphome.i...e-rs-fsjt-n01-wind-speed/
Op zich was alles goed, behalve register_type: read moest register_type: holding zijn voor mijn sensoren.

Eerst een foto van mijn WT32-ETH01:
Afbeeldingslocatie: https://tweakers.net/i/P09YL2YIxjJt9zfmXJ_ytqeLcRk=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/6w12KkPYmDCFKNnsfBlsDB0Y.jpg?f=user_large
Dit laat ik zien omdat het soms verschillende modellen zijn en GPIO's anders kunnen zijn.

Documentatie van de sensoren is te vinden via QR-code op het pakje van de sensorenkabels.

Nu gaan we sensoren aansluiten op WT32-ETH01 via een TTL-naar-RS485-module. Kijk goed naar mijn tekening en controleer alles dubbel tijdens aansluiten. Haal de voedingen niet door elkaar!
Afbeeldingslocatie: https://tweakers.net/i/AQJFB2UpTaDrvgP4a7U0yffsVf4=/800x/filters:strip_exif()/f/image/Rf5eBeWcVyS0L7XlhUlvbpzy.png?f=fotoalbum_large

Dit is mijn volledige YAML:
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
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
esphome:
  name: weer-station
  friendly_name: weer_station

esp32:
  board: esp32dev
  framework:
    type: arduino

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16

  manual_ip:
    static_ip: 192.168.1.41
    gateway: 192.168.1.1
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

web_server:
  port: 80

uart:
  rx_pin: 5
  tx_pin: 17
  baud_rate: 9600

modbus:
  id: modbus1

modbus_controller:
- id: wind_speed_meter
  address: 1
  modbus_id: modbus1
  setup_priority: -10
  command_throttle: 200ms
  update_interval: 15s #or whatever you need

- id: wind_direction_meter
  address: 2
  modbus_id: modbus1
  setup_priority: -10
  command_throttle: 200ms
  update_interval: 15s #or whatever you need

sensor:
- platform: modbus_controller
  modbus_controller_id: wind_speed_meter
  name: "Wind Speed"
  device_class: wind_speed
  id: wind_speed
  register_type: holding
  address: 0
  unit_of_measurement: "m/s"
  value_type: U_WORD
  accuracy_decimals: 1
  filters:
    - multiply: 0.1

- platform: modbus_controller
  modbus_controller_id: wind_direction_meter
  name: "Wind direction gear"
  device_class: wind_direction
  internal: true
  register_type: holding
  address: 0
  value_type: U_WORD
  accuracy_decimals: 0
  on_value:
    - lambda: |-
          switch (int(x)) {
            case 0:
              id(wind_direction_cardinal).publish_state("N");  //North
              break;
            case 1:
              id(wind_direction_cardinal).publish_state("NE"); //North-East
              break;
            case 2:
              id(wind_direction_cardinal).publish_state("E");  //East
              break;
            case 3:
              id(wind_direction_cardinal).publish_state("SE"); //South-East
              break;
            case 4:
              id(wind_direction_cardinal).publish_state("S");  //South
              break;
            case 5:
              id(wind_direction_cardinal).publish_state("SW"); //South-West
              break;
            case 6:
              id(wind_direction_cardinal).publish_state("W");  //West
              break;
            case 7:
              id(wind_direction_cardinal).publish_state("NW"); //North-West
              break;
            default:
              id(wind_direction_cardinal).publish_state("");   //invalid
          }

- platform: modbus_controller
  modbus_controller_id: wind_direction_meter
  name: "Wind direction degree"
  icon: mdi:compass-rose
  register_type: holding
  address: 1
  value_type: U_WORD
  accuracy_decimals: 0
  unit_of_measurement: "°"

text_sensor:
  - platform: template
    name: "Wind direction cardinal"
    id: wind_direction_cardinal
    icon: mdi:compass-rose
Nogmaals: gebruik het juiste IP, de juiste gateway en het juiste subnet voor jouw eigen installatie,

Aangepaste YAML kan je via netwerk installeren:
Afbeeldingslocatie: https://tweakers.net/i/_SqTBfRRcCpK2IvbNFfD8xqyrhc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/mx8pOySN8ZfVQKOH52WHdTo7.png?f=user_large

Nu heb je een werkende windsnelheids- en richtingssensor, die aan Home Assisntant toegevoegd kan worden:
Afbeeldingslocatie: https://tweakers.net/i/NSELrMYGDP8luJwSu7JoloRuO1k=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/TIOVnEJoLnNSVfmDxbO3s098.png?f=user_large

In de eptioneel benodigheden lijst heb ik ook STL toegevoegd om behuizing en deksel te printen voor WT32-ETH01 en TTL naar RS485 module, ik heb hierbij ook een wartel gebruikt en twee barrel jacks, een met 2.5mm plus kern en een met 2.1mm plus kern zodat ik per ongeluk geen 12V op de WT32-ETH01 zet.

Hier paar foto's van de behuizing:
Afbeeldingslocatie: https://tweakers.net/i/yaX_KcCHzm7scwvCAUANhBG9_IE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/4MguUBCpTHaMRQZnzyXP2EeA.jpg?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/larDe7V5IYG2uhXveJDplcLnHeg=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/UeP1LlffUMqq0uVlyTVdtW5x.jpg?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/IKrNX0V9Ufcj5yZdxwHfGL9CU68=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/wxCIG9XVLOmF0Vh0VJUhpR15.jpg?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/JhefBZgvsHrkXLWXFeetgvjFhvc=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/sn0gAdpwaUT2BeIfzpTSdz7v.jpg?f=user_large

Wind meter is op mijn schuur muur gemonteerd, ik had al een netwerkswitch in mijn schuur dus daar heb ik de netwerkkabel van WT32-ETH01 aangesloten.

Ik hoop dat ik geen stappen ben vergeten, zo ja hoor ik het graag.

Volgende stap is om een Misol regenmeter en regensensor toevogen aan dit installatie, ik moet het wel goed uitzoeken hoe ik dat allemaal ga doen, want regensensor heeft een output nodig die als voeding geschakeld wordt, of dit mogelijk is op WT32-ETH01 weet ik nog niet.

[ Voor 0% gewijzigd door Reptile-X op 09-02-2026 12:37 . Reden: device_class: wind_direction toegevoegd aan yaml ]


  • InjecTioN
  • Registratie: Juli 2005
  • Laatst online: 17:42

InjecTioN

¯\_(ツ)_/¯

Reptile-X schreef op zondag 8 februari 2026 @ 18:56:
ESPHome windsnelheid- en richtings sensor via bedraad netwerk met een WT32-ETH01
[Afbeelding]

Ik ga (proberen) een tutorial schrijven voor een bedrade ESP32-windsensor.

Ik gebruik voor onze zonweringen windsnelheidsmetingen via een internet API zodat het dichtgaat als de windsnelheid te hoog is, dit gebruik al jaren maar meestal kwam de informatie te laat of verkeerd.
Om dit te elimineren heb ik besloten om mijn eigen sensor te plaatsen.

Eerste doel was om een ESP32 te gebruiken zonder wifi-verbinding, dan kom je gauw op een WT-32ETH01 terecht (of vele varianten daarvan).

Onderdelen die nodig zijn:
1x ESP32 WT32-ETH01
1x USB TO TTL CH340G
1x RS485 windsnelheid en richting sensor set
1x TTL naar RS485-modulebord
1x 5VDC voeding
1x 10 tot 30VDC voeding

Optioneel:
1x USB naar RS485 converter
1x Misol sensor arm om sensoren op te monteren
1x RVS buizen arm voor muur montage
3D STL-bestanden die ik heb getekend om sensoren te monteren

Eerst gaan we WT32-ETH01 verbinden met ESPHome via ethernet.
Omdat WT32-ETH01 geen USB aansluiting heeft, heb je een USB naar TTL adapter nodig.
Voeg een nieuw apparaat toe aan ESPHome, kies hiervoor ESP32 skip de rest, zodat je een lege yaml hebt met benodigde codering.

Verbind WT32-ETH01 via USB naar TTL adapter op je Home Assistant-server. Bedrading ziet er als volgt uit:
[Afbeelding]
LET OP: op ESP32 sluit je TX0 en RX0 aan, geen RXD en TXD

Via ESPHome builder voeg volgende YAML-code toe:
YAML:
1
2
3
4
5
6
7
8
9
ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16
Installeer de code via:
[Afbeelding]

Nadat de installatie klaar is, haal de USB-TTL adapter uit je Home Assistant server en sluit de WT32-ETH01 aan op je router/switch/modem met een netwerkkabel en verbind het weer met je Home Assistant server.
Als ESP32 opgestart is, check of de netwerklampen knipperen op je WT32-ETH01
Kijk nu in je router/modem welke IP adres WT32-ETH01 heeft gekregen. Terwijl je daar toch bent, maak dat IP-adres vast (static) op je router/modem.

Bij mij werkt localhost bijna nooit, dus ik doe het volgende:
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
30
31
32
33
34
35
36
37
38
esphome:
  name: weer-station
  friendly_name: weer_station

esp32:
  board: esp32dev
  framework:
    type: arduino

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16

  manual_ip:
    static_ip: 192.168.1.41
    gateway: 192.168.1.1
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

web_server:
  port: 80
Dit is de kop YAML-code van mijn WT32-ETH01. Heeft het vaste IP-adres 192.168.1.41 gekregen en die heb ik hier toegevoegd, samen met poort 80. Hiermee kan ik zonder problemen via netwerk code installeren. Als jouw systeem werkt via localhost, dan is dit waarschijnlijk niet nodig. Let op: gateway en subnet kan anders zijn op jouw netwerk.

Haal WT32-ETH01 weer los van je Home Assistant-server. Haal tevens de verbindingsbrug tussen GND en IO0 weg, blauw getekend in mijn tekening hierboven. Ik ben het wel eens vergeten en kon via Netwerk niets doen.
Sluit nu je ET32-ETH01 aan een USB voeding via USB-TTL adapter, je mag ook direct een 5V-voeding aansluiten zonder USB-TTL adapter.

Als goed is kan je nu in je ESPHome builder net toegevoegde WT32-ETH01 online zien, zonder sensoren nog.

Als jij via WIFI wil verbinden, werkt ook een ESP32 C3 mini met deze sensoren, dit heb ik zelf gecontroleerd.

Nu komt het leuke gedeelte, eerste avond heb ik de sensoren niet werkend gekregen, beide gaven geen response.
Modbus-adressen zijn fabrieksaf al goed ingesteld, daarom is een USB-naar-RS485-adapter optioneel. Ik had het wel gekocht, omdat dit nergens vermeld was,
Snelheid meter heeft adres 1 en richting meter adres 2.
Omdat ik eerst niet werkend kreeg heb ik het op mijn PC aangesloten met de USB naar RS485 adapter en met deze software heb ik kunnen zien dat sensoren inderdaad adres 1 en 2 heeft en data verstuurt.

Probleem was dat ik de code van ESPHome documents gebruik van Renke sensoren:
https://devices.esphome.i...e-rs-fsjt-n01-wind-speed/
Op zich was alles goed, behalve register_type: read moest register_type: holding zijn voor mijn sensoren.

Eerst een foto van mijn WT32-ETH01:
[Afbeelding]
Dit laat ik zien omdat het soms verschillende modellen zijn en GPIO's anders kunnen zijn.

Documentatie van de sensoren is te vinden via QR-code op het pakje van de sensorenkabels.

Nu gaan we sensoren aansluiten op WT32-ETH01 via een TTL-naar-RS485-module. Kijk goed naar mijn tekening en controleer alles dubbel tijdens aansluiten. Haal de voedingen niet door elkaar!
[Afbeelding]

Dit is mijn volledige YAML:
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
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
esphome:
  name: weer-station
  friendly_name: weer_station

esp32:
  board: esp32dev
  framework:
    type: arduino

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16

  manual_ip:
    static_ip: 192.168.1.41
    gateway: 192.168.1.1
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

web_server:
  port: 80

uart:
  rx_pin: 5
  tx_pin: 17
  baud_rate: 9600

modbus:
  id: modbus1

modbus_controller:
- id: wind_speed_meter
  address: 1
  modbus_id: modbus1
  setup_priority: -10
  command_throttle: 200ms
  update_interval: 15s #or whatever you need

- id: wind_direction_meter
  address: 2
  modbus_id: modbus1
  setup_priority: -10
  command_throttle: 200ms
  update_interval: 15s #or whatever you need

sensor:
- platform: modbus_controller
  modbus_controller_id: wind_speed_meter
  name: "Wind Speed"
  device_class: wind_speed
  id: wind_speed
  register_type: holding
  address: 0
  unit_of_measurement: "m/s"
  value_type: U_WORD
  accuracy_decimals: 1
  filters:
    - multiply: 0.1

- platform: modbus_controller
  modbus_controller_id: wind_direction_meter
  name: "Wind direction gear"
  internal: true
  register_type: holding
  address: 0
  value_type: U_WORD
  accuracy_decimals: 0
  on_value:
    - lambda: |-
          switch (int(x)) {
            case 0:
              id(wind_direction_cardinal).publish_state("N");  //North
              break;
            case 1:
              id(wind_direction_cardinal).publish_state("NE"); //North-East
              break;
            case 2:
              id(wind_direction_cardinal).publish_state("E");  //East
              break;
            case 3:
              id(wind_direction_cardinal).publish_state("SE"); //South-East
              break;
            case 4:
              id(wind_direction_cardinal).publish_state("S");  //South
              break;
            case 5:
              id(wind_direction_cardinal).publish_state("SW"); //South-West
              break;
            case 6:
              id(wind_direction_cardinal).publish_state("W");  //West
              break;
            case 7:
              id(wind_direction_cardinal).publish_state("NW"); //North-West
              break;
            default:
              id(wind_direction_cardinal).publish_state("");   //invalid
          }

- platform: modbus_controller
  modbus_controller_id: wind_direction_meter
  name: "Wind direction degree"
  icon: mdi:compass-rose
  register_type: holding
  address: 1
  value_type: U_WORD
  accuracy_decimals: 0
  unit_of_measurement: "°"

text_sensor:
  - platform: template
    name: "Wind direction cardinal"
    id: wind_direction_cardinal
    icon: mdi:compass-rose
Nogmaals: gebruik het juiste IP, de juiste gateway en het juiste subnet voor jouw eigen installatie,

Aangepaste YAML kan je via netwerk installeren:
[Afbeelding]

Nu heb je een werkende windsnelheids- en richtingssensor, die aan Home Assisntant toegevoegd kan worden:
[Afbeelding]

In de eptioneel benodigheden lijst heb ik ook STL toegevoegd om behuizing en deksel te printen voor WT32-ETH01 en TTL naar RS485 module, ik heb hierbij ook een wartel gebruikt en twee barrel jacks, een met 2.5mm plus kern en een met 2.1mm plus kern zodat ik per ongeluk geen 12V op de WT32-ETH01 zet.

Hier paar foto's van de behuizing:
[Afbeelding]

[Afbeelding]

[Afbeelding]

[Afbeelding]

Wind meter is op mijn schuur muur gemonteerd, ik had al een netwerkswitch in mijn schuur dus daar heb ik de netwerkkabel van WT32-ETH01 aangesloten.

Ik hoop dat ik geen stappen ben vergeten, zo ja hoor ik het graag.

Volgende stap is om een Misol regenmeter en regensensor toevogen aan dit installatie, ik moet het wel goed uitzoeken hoe ik dat allemaal ga doen, want regensensor heeft een output nodig die als voeding geschakeld wordt, of dit mogelijk is op WT32-ETH01 weet ik nog niet.
Allereerst: Wauw! :D Ontzettend vet!

Zit flink wat werk in. De afwerking is ook absoluut niet mis. Netjes man!

Ik zie wel een paar puntjes waar ik zelf moeite mee zou hebben in deze situatie:
  1. Een metalen pijp (met bedrading) is mijns inziens een recept voor een goede bliksemafleider. Heb je ook nagedacht over aarding?
  2. Als je dan een voeding gebruikt meer dan 5V output heeft, dan kan je mogelijk beter een buck converter voor 30V>5V gebruiken om slechts een power supply te hebben.
  3. Ik zou de power supply ook zoveel mogelijk proberen te isoleren van het lichtnet. Een transformator is in zo’n geval slechts een galvanische isolatie, wat imho bare minimum is. Bij inslag frituur je alsnog flink wat hardware.
  4. Ik zou alsnog voor een ESP32 met wifi gaan. Dan heb je minder bliksemafleiding naar je apparatuur.
  5. De meest veilige oplossing zou een accu (en zonnecellen) zijn, in combinatie met wifi. Dan weet je zeker dat je geen bliksem het lichtnet en/of je netwerk inblaast vanaf het weerstation.
  6. De “stang” waarop de apparaten van buiten zijn vastgezet is naar mijn idee ook een makkelijk uitrustpunt voor bijvoorbeeld iets als een duif. Die beesten kunnen aardig zwaar worden. Zo zijn er ook andere vogels die mogelijk lopen te k**ten met de apparatuur, terwijl ze zich lopen te vervelen. Misschien is het dan interessanter om bijvoorbeeld een V-vorm te maken, waarbij je de meters op de uiteinden zet?
Laat even voorop staan dat ik niet te cynisch wil zijn over je werkelijk ontzettend vette concept! Je geeft mij heel wat leer-voer over hoe ik het mogelijk aan zou willen gaan pakken. En dat is m.i. ook erg veel waard en (gezien de uitgebreide tutorial) ook jouw bedoeling.

Ik ga dit project ook maar eens toevoegen aan mijn DIY takenlijstje, en jouw idee als basis gebruiken. I’m inspired! :Y)

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


  • Bockelaar
  • Registratie: Juli 2001
  • Laatst online: 10-03 11:41
VET! Dank je voor het delen!

Remember: A CRAY is the only computer that runs an endless loop in just 4 hours...


  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

@InjecTioN Bedankt voor je reactie, ik vat het zeker niet als cynische opmerkingen, het is juist fijn om te horen.

Over blijksemafleider, ik woon in een gebied waar zeker 10 á 15 bliksemafleiders zijn in nog geen 100m radius. Op de TLL naar RS485 module heb ik grond aangesloten. Dit is eigenlijk niet nodig, maar bij deze module wordt het gebruikt voor bliksembeveiliging.

Om een beter gevoel te hebben kan je een overspanning bescherming gebruiken zoals deze.
Dit gebruik ik bij ons slimme kattenluik, maar jij hebt mij op het idee gebracht om het ook bij deze installatie te gebruiken.

Voeding heb je wel gelijk in, buckconverter was een betere optie geweest. Die had ik niet liggen, maar deze twee voedingen vind ik makkelijker om te vervangen als het stukgaat.

Over de vogels, daar was ik niet zo bang voor. Er lopen genoeg katten op de daken van ons en buren, ik ben meer bezorgd over de katten :P, maar we gaan het zien.

Nogmaals bedankt voor je reactie. Het is ook mijn vakgebied. Ik vertrouw wel zelf hoe het nu geïnstalleerd is, maar ik ga zeker kijken of ik het iets veiliger kan maken.

  • Oilman
  • Registratie: December 2012
  • Laatst online: 21-03 08:49
@Reptile-X Vanwaar heb je niet de 0-5V versie van de sensoren gekozen? Dan had je het RS485 board kunnen besparen en via de ADC in de ESP32 de sensoren uit kunnen lezen.

Zelf pak ik liever een iets duurder ESP board, die wel gewoon een USB poort heeft en daarmee ook te programmeren is, gemak dient de mens. Jouw route is wel iets goedkoper.

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

@Oilman Ik heb kort ervaring met ESPHome, ik vond de Renke versie op hun database om het mijzelf makkelijk te maken, heb ik de RS485-versie gekozen, RS485 board was €2,20 per 5 dus dat zijn de kosten niet. De kabel tussen RS485 en sensoren is 5 meter. Ik weet uit ervaring dat Modbus goed werkt op grotere afstanden (niet dat 5 meter erg groot is). Maar als ik de 0-5V versie had, kon de behuizing nog kleiner.

Ik heb geen ESP board gezien met een ethernet en USB poort, of heb ik niet goed genoeg gekeken? Andere sensoren die ik heb gebouwd zijn wel met USB poort maar ik wou bij deze sensor ethernet aansluiting en geen WIFI gebruiken.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@Reptile-X Netjes gemaakt! Prima afgewerkt :) Juist gewoon de boel uitlezen ipv zelf met analoog moeten klooien lijkt me alleen maar makkelijk :)

Over inslag zou ik me niet zo zorgen maken. Klein stukje pijp, juist niet geaard dus minder aantrekkelijk voor inslag. En bij directe inslag is toch alles stuk. Zelfs bij goede afvoer is de kans heel groot dat er zaken in huis dan overlijden.

Enige dat ik nog na zou kijken, stuurt dat RS485 boardje wel 3.3V TTL nu? Bij veel mensen gaat 5V op een GPIO wel goed maar officieel is hij er niet geschikt voor.

En ik mis device class voor de windrichting (graden).
offtopic:
En zelf heb ik een hekel aan vast IP op een device :+

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 23-03 15:41

Gizz

Dunder-Mifflin, Inc.

Reptile-X schreef op maandag 9 februari 2026 @ 00:15:
Ik heb geen ESP board gezien met een ethernet en USB poort, of heb ik niet goed genoeg gekeken?
Voorbeeldje: LilyGO T-ETH ELite ESP32-S3 - W5500 Ethernet with PoE. Ook meteen te voeden met PoE, wat een losse voeding scheelt als je met PoE-werkt in je netwerk.

Vet project! :)

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

@Septillion Bedankt :)

Ik maak me niet al te druk over blikseminslag. Zoals ik al had gezegd het is mijn vakgebied. Ik ben zelf technicus sterkstroom installaties, in mijn jonge jaren heb ik veel bliksemafleidingen aangelegd.

RS485-board had ik niet gecontroleerd, maar volgens mij heb je gelijk, het stuurt 5V. Daar moet ik even naar kijken dan, of ik kijk hoe lang het goedgaat. Ik heb nog een paar WT32-ETH01 liggen als het fout gaat :D

Device class voor windrichting heb ik gemist, zal ik even toevoegen in de yaml van mijn post.

Ik ben vannacht bezig geweest met hoe ik eventueel de Misol rain gauge en een apparte regendruppels sensor ga aansluiten, omdat de GPIO's beperkt zijn van WT32-ETH01. Ik ben uit, denk ik. Ik wil geschakelde 3.3v GPIO voor de regendruppelsensor om corrosie tegen te gaan, maar ik kan alleen DO uitlezen. Ik hou geen GPIO's over AO, maar dat vind ik niet erg, ik wil alleen weten of het regent of niet.

@Gizz Oh... dat ziet er goed uit. Ik heb alleen een PoE-injector voor onze Reoling-deurbel. Voor de rest heb ik alleen veel switches door het hele huis heen, maar geen PoE helaas.

  • badkuip
  • Registratie: December 2002
  • Laatst online: 18:10
Sinds dat ik een nieuw device heb, krijg ik daar steeds foutmeldingen over in home assistant:
Afbeeldingslocatie: https://tweakers.net/i/4lMR8bD8dOmTaAwMBDGOjFEUaOc=/800x/filters:strip_exif()/f/image/tJpaUYwNbk4f2wJTsZjjSzGS.png?f=fotoalbum_large

Het device is eigenlijk prima te bereiken als ik er naar toe ping of naar de webinterface toe ga. Maar kennelijk gaat er iets mis en het kijkt erop bij de API key.
Maar wat dan? Ik snap er geen jota van. De foutmelding komt meerdere keren per dag voor.
De API key uit de YAML halen en opnieuw compilen is niet de oplossing, want dan kan home assistant het device niet meer vinden. Kennelijk verwacht HA daar nu eenmaal een key.

Dit is mijn yaml code:
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
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
substitutions:
  devicename: "vindriktning"

esphome:
  name: ${devicename}
  friendly_name: ${devicename}

esp32:
  board: esp32dev
  framework:
        type: arduino

wifi:
  ssid: "blergh"
  password: "blaah"
  min_auth_mode: WPA2

  ap:
    ssid: "Vindriktning Fallback"
    password: "XXXXX"

  manual_ip:
    static_ip: 192.168.53.106
    gateway: 192.168.53.1
    subnet: 255.255.255.0

captive_portal:

api:
  encryption:
    key: "hC3z0v3jcC2C0JcClPVpQ+F2c9O5Y5ZhV4yP6zF7eC8="

logger:

ota:
  platform: esphome

web_server:
  port: 80

# --- I2C bus voor BME280 ---
i2c:
  id: bus_a
  sda: GPIO21   
  scl: GPIO22     
  scan: true

sensor:

  # --- IKEA Vindriktning PM2.5 ---
  - platform: pulse_counter
    pin: GPIO5  
    name: "PM2.5"
    update_interval: 10s
    unit_of_measurement: "µg/m³"
    count_mode:
      rising_edge: DISABLE
      falling_edge: INCREMENT
    filters:
      - multiply: 0.170
    accuracy_decimals: 0

  # --- BME280 (temperatuur / luchtvochtigheid / luchtdruk) ---
  - platform: bme280_i2c
    i2c_id: bus_a
    address: 0x76  
    temperature:
      name: "BME280 Temperatuur"
    humidity:
      name: "BME280 Luchtvochtigheid"
    pressure:
      name: "BME280 Luchtdruk"
    update_interval: 10s

  • Bockelaar
  • Registratie: Juli 2001
  • Laatst online: 10-03 11:41
De foutmelding komt meerdere keren per dag voor.
voeg die even toe, dat maakt het makkelijker om mee te denken. Ikzelf gebruik trouwens liever dit block:
YAML:
1
2
3
4
# Enable Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key
zodat je keys uit de copy/paste op internet blijven en je typo's voorkomt in je key

Remember: A CRAY is the only computer that runs an endless loop in just 4 hours...


  • bloksnor
  • Registratie: Augustus 2012
  • Laatst online: 19:35
badkuip schreef op maandag 16 februari 2026 @ 13:25:
Sinds dat ik een nieuw device heb, krijg ik daar steeds foutmeldingen over in home assistant:
[Afbeelding]
YAML:
1
2
3
4
manual_ip:
    static_ip: 192.168.53.106
    gateway: 192.168.53.1
    subnet: 255.255.255.0
In de foutmelding staat IP 192.168.33.106, terwijl in de yaml 192.168.53.106 staat. Klopt dat?

  • badkuip
  • Registratie: December 2002
  • Laatst online: 18:10
Bockelaar schreef op maandag 16 februari 2026 @ 13:47:
[...]

voeg die even toe, dat maakt het makkelijker om mee te denken. Ikzelf gebruik trouwens liever dit block:
YAML:
1
2
3
4
# Enable Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key
zodat je keys uit de copy/paste op internet blijven en je typo's voorkomt in je key
Hierbij de foutmelding:
code:
1
2
3
4
5
6
7
Logger: aioesphomeapi.reconnect_logic
Bron: runner.py:289
Eerst voorgekomen: 13:18:04 (2 gebeurtenissen)
Laatst gelogd: 14:22:07

Can't connect to ESPHome API for vindriktning @ 192.168.33.106: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.33.106', port=6053))]: [Errno 111] Connect call failed ('192.168.33.106', 6053) (SocketAPIError)
Can't connect to ESPHome API for vindriktning @ 192.168.33.106: vindriktning @ 192.168.33.106: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (Home Assistant 2026.2.2) (EncryptionHelloAPIError)
bloksnor schreef op maandag 16 februari 2026 @ 14:57:
[...]


In de foutmelding staat IP 192.168.33.106, terwijl in de yaml 192.168.53.106 staat. Klopt dat?
Dit kwam door een typo van mij. Het adres is inderdaad 192.168.33.106

  • jj85
  • Registratie: Januari 2002
  • Laatst online: 22:09
@badkuip heb je device al eens uit HA verwijderd en dan weer opnieuw toegevoegd? Dan moet je ergens een keer die API key inkloppen.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@badkuip Ik maak er niets uit op over de api key. Puur dat HA de ESP niet kan bereiken.

En het feit dat je typo's kunt maken zegt mij dat je ESPHome config dus niet gewoon een copy-paste is. Waarom?

  • badkuip
  • Registratie: December 2002
  • Laatst online: 18:10
jj85 schreef op maandag 16 februari 2026 @ 15:37:
@badkuip heb je device al eens uit HA verwijderd en dan weer opnieuw toegevoegd? Dan moet je ergens een keer die API key inkloppen.
Dat had ik nog niet gedaan, ik wist niet dat je dat kan doen. Ik heb het een half uur geleden meteen gedaan en tot nu toe geen foutmeldingen gehad. Ik hoop dat het voorbij is.
Overigens werd me niet gevraagd om de API key opnieuw in te vullen. Misschien heeft ie het onthouden van de vorige keer.
Septillion schreef op maandag 16 februari 2026 @ 15:58:
@badkuip Ik maak er niets uit op over de api key. Puur dat HA de ESP niet kan bereiken.

En het feit dat je typo's kunt maken zegt mij dat je ESPHome config dus niet gewoon een copy-paste is. Waarom?
Fijn te horen dat het niet bij de API key gezocht moet worden. Dankjewel voor het in de goede richting wijzen.

  • badkuip
  • Registratie: December 2002
  • Laatst online: 18:10
Helaas zijn de problemen niet voorbij gegaan: Device is nog online maar de volgende errors worden gelogd:
code:
1
2
3
4
5
6
7
Logger: aioesphomeapi.reconnect_logic
Bron: runner.py:289
Eerst voorgekomen: 16 februari 2026 om 18:36:56 (14 gebeurtenissen)
Laatst gelogd: 07:43:49

1 Can't connect to ESPHome API for vindriktning @ 192.168.33.106: vindriktning @ 192.168.33.106: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (Home Assistant 2026.2.2) (EncryptionHelloAPIError)
2 Can't connect to ESPHome API for vindriktning @ 192.168.33.106: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.33.106', port=6053))]: [Errno 111] Connect call failed ('192.168.33.106', 6053) (SocketAPIError)
De encryptie op het device is aangegeven met Api - encyption - key. Zie eerdere yaml.

Als de tip gegeven wordt om de encryptie in home assistant uit te zetten, waar doe ik dat dan?

  • jvanderneut
  • Registratie: Augustus 2017
  • Laatst online: 22:51
badkuip schreef op dinsdag 17 februari 2026 @ 08:21:
Helaas zijn de problemen niet voorbij gegaan: Device is nog online maar de volgende errors worden gelogd:
code:
1
2
3
4
5
6
7
Logger: aioesphomeapi.reconnect_logic
Bron: runner.py:289
Eerst voorgekomen: 16 februari 2026 om 18:36:56 (14 gebeurtenissen)
Laatst gelogd: 07:43:49

1 Can't connect to ESPHome API for vindriktning @ 192.168.33.106: vindriktning @ 192.168.33.106: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (Home Assistant 2026.2.2) (EncryptionHelloAPIError)
2 Can't connect to ESPHome API for vindriktning @ 192.168.33.106: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.33.106', port=6053))]: [Errno 111] Connect call failed ('192.168.33.106', 6053) (SocketAPIError)
De encryptie op het device is aangegeven met Api - encyption - key. Zie eerdere yaml.

Als de tip gegeven wordt om de encryptie in home assistant uit te zetten, waar doe ik dat dan?
Dat zal niet de oplossing zijn. "Erro 111" lijkt er op te duiden dat de API service überhaupt niet draait. Dat kan gebeuren als je device in 'safe mode' draait, dan wordt de HA API service niet opgestart. Ik denk dat je via de seriële interface / usb moet kijken waarom dat gebeurt.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@badkuip Encryptie zet je niet uit in HA, die zet je uit door de ESP te voorzien van firmware waar je geen API key opgeeft.

Maar je zou dus ook eens de logger van dat device in ESPHome Builder open kunnen houden. Misschien dat je iets ziet tegelijk met de error in HA.

Hoe gebruik je eigenlijk de Vindriktning via pulsen?

  • GJzon
  • Registratie: Juni 2022
  • Laatst online: 22-03 22:57
badkuip schreef op maandag 16 februari 2026 @ 13:25:
Sinds dat ik een nieuw device heb, krijg ik daar steeds foutmeldingen over in home assistant:
[Afbeelding]

Het device is eigenlijk prima te bereiken als ik er naar toe ping of naar de webinterface toe ga. Maar kennelijk gaat er iets mis en het kijkt erop bij de API key.
Maar wat dan? Ik snap er geen jota van. De foutmelding komt meerdere keren per dag voor.
De API key uit de YAML halen en opnieuw compilen is niet de oplossing, want dan kan home assistant het device niet meer vinden. Kennelijk verwacht HA daar nu eenmaal een key.

Dit is mijn yaml code:
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
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
substitutions:
  devicename: "vindriktning"

esphome:
  name: ${devicename}
  friendly_name: ${devicename}

esp32:
  board: esp32dev
  framework:
        type: arduino

wifi:
  ssid: "blergh"
  password: "blaah"
  min_auth_mode: WPA2

  ap:
    ssid: "Vindriktning Fallback"
    password: "XXXXX"

  manual_ip:
    static_ip: 192.168.53.106
    gateway: 192.168.53.1
    subnet: 255.255.255.0

captive_portal:

api:
  encryption:
    key: "hC3z0v3jcC2C0JcClPVpQ+F2c9O5Y5ZhV4yP6zF7eC8="

logger:

ota:
  platform: esphome

web_server:
  port: 80

# --- I2C bus voor BME280 ---
i2c:
  id: bus_a
  sda: GPIO21   
  scl: GPIO22     
  scan: true

sensor:

  # --- IKEA Vindriktning PM2.5 ---
  - platform: pulse_counter
    pin: GPIO5  
    name: "PM2.5"
    update_interval: 10s
    unit_of_measurement: "µg/m³"
    count_mode:
      rising_edge: DISABLE
      falling_edge: INCREMENT
    filters:
      - multiply: 0.170
    accuracy_decimals: 0

  # --- BME280 (temperatuur / luchtvochtigheid / luchtdruk) ---
  - platform: bme280_i2c
    i2c_id: bus_a
    address: 0x76  
    temperature:
      name: "BME280 Temperatuur"
    humidity:
      name: "BME280 Luchtvochtigheid"
    pressure:
      name: "BME280 Luchtdruk"
    update_interval: 10s
Moet je geen UART declareren? https://esphome.io/components/sensor/pm1006/

Inspringing bij type: arduino is ook niet helemaal fijn.

Heb je al gekeken welk ip-adres er staat bij de integratie in HA?
Je zou de manual ip even uit kunnen zetten en kijken waar de log mee komt als ip-adres. Eventueel je router een keer uit/aan doen?

Je kunt eventueel dit er bij zetten als text_sensor. Ik gebruik trouwens webser v3.
Extra controle op je verbinding:
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
- platform: version
    name: ESPHome Version
    web_server:
      sorting_group_id: sorting_group_controls
      sorting_weight: 20

  - platform: wifi_info
    ssid:
      name: "WiFi"
      web_server:
        sorting_group_id: sorting_group_wifi
        sorting_weight: 10   

  - platform: wifi_info
    ip_address:
      name: "IP Adres"
      web_server:
        sorting_group_id: sorting_group_wifi
        sorting_weight: 20
    mac_address:
      name: "MAC Adres"
      web_server:
        sorting_group_id: sorting_group_wifi
        sorting_weight: 30
AI al eens geprobeerd? Foutmelding kopie in de google ai-modus gooien.

[ Voor 18% gewijzigd door GJzon op 18-02-2026 10:24 ]


  • Gondelier
  • Registratie: Maart 2014
  • Laatst online: 23-02 19:20

Gondelier

HP-ThinCient T630, HA OS

De update voor 3 stuks homeassistant Voice PE’s vandaag naar versie “ESPHome 2026.2.0” gaat niet lukken !! 2x geprobeerd maar lukt niet. Wachten op de 2026.2.1

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 23-03 15:41

Gizz

Dunder-Mifflin, Inc.

@Gondelier gaat hier prima:
======================== [SUCCESS] Took 210.94 seconds ========================
INFO Build Info: config_hash=0x501154cc build_time_str=2026-02-19 17:00:17 +0100
INFO Successfully compiled program.
INFO Connecting to 192.168.1.110 port 3232...
INFO Connected to 192.168.1.110
INFO Uploading /data/build/home-assistant-voice-095b37/.pioenvs/home-assistant-voice-095b37/firmware.bin (2846000 bytes)
Uploading: [============================================================] 100% Done...


INFO Upload took 7.78 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.110 using esphome API
INFO Successfully resolved home-assistant-voice-095b37 @ 192.168.1.110 in 0.000s
INFO Trying to connect to home-assistant-voice-095b37 @ 192.168.1.110 in the background
INFO Successfully connected to home-assistant-voice-095b37 @ 192.168.1.110 in 0.007s
INFO Successful handshake with home-assistant-voice-095b37 @ 192.168.1.110 in 0.082s
[17:04:17.883][I][app:215]: ESPHome version 2026.2.0 compiled on 2026-02-19 17:00:17 +0100
[17:04:17.883][I][app:222]: ESP32 Chip: ESP32-S3 rev0.2, 2 core(s)
Komt misschien door dingen die je zelf aan de yaml hebt veranderd, t.o.v. de standaard yaml?

Als je niks handmatig aan de yaml verandert hoef je die Voice PE's ook niet op te nemen binnen ESPHome Builder, die dingen krijgen een gerichte update als device wanneer dat nodig is. 25.12.4 is de laatste stable release voor de PE.

Ik heb per ongeluk wel één van mijn Voice PE's opgenomen in de ESPHome Builder, vandaar dat ik even kan kijken of het builden en uploaden lukt. Bij mij is alles stock dus.

Je deelt verder geen foutmeldingen, dus dan wordt het lastig meedenken voor mensen die je willen helpen :)

[ Voor 7% gewijzigd door Gizz op 19-02-2026 17:16 ]

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


  • Gondelier
  • Registratie: Maart 2014
  • Laatst online: 23-02 19:20

Gondelier

HP-ThinCient T630, HA OS

Gizz schreef op donderdag 19 februari 2026 @ 17:07:
@Gondelier gaat hier prima:

Komt misschien door dingen die je zelf aan de yaml hebt veranderd, t.o.v. de standaard yaml?

Ik heb per ongeluk wel één van mijn Voice PE's opgenomen in de ESPHome Builder, vandaar dat ik even kan kijken of het builden en uploaden lukt. Bij mij is alles stock dus.

Je deelt verder geen foutmeldingen, dus dan wordt het lastig meedenken voor mensen die je willen helpen :)
@Gizz
Dank voor je bericht.
Ik heb in mijn ESPHome Builder 6 Devices zitten t.w.
Bluetooth Proxy
M5 Stack Atom Echo
TT10Y Matrix
** Esp32 S3 Box3
** 2 maal Voice PE

** Deze drie zijn nu niet te updaten, de andere wel.
Ja ik kan de foutmelding wel weergeven Die ik krijg in/bij de ESPHome Builder, alleen denk ik dat we daar weinig mee kunnen.
"FOUT BIJ HET COMPILEREN HOME-ASSISTANT VOICE xxxx.yaml" probeer het opnieuw !!

Ik weet ook dat de Voice PE door HA/NABU wordt ondersteund dus daar wacht ik gewoon op.

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

Reptile-X schreef op zondag 8 februari 2026 @ 18:56:
Volgende stap is om een Misol regenmeter en regensensor toevogen aan dit installatie, ik moet het wel goed uitzoeken hoe ik dat allemaal ga doen, want regensensor heeft een output nodig die als voeding geschakeld wordt, of dit mogelijk is op WT32-ETH01 weet ik nog niet.
Dit wordt een lange post, voel ik nu al : :*)

Zoals in mijn eerdere post gezegd, ben ik verder gegaan met het uitbreiden van het weerstation. Ik loop vast op douane/PostNL taferelen helaas, want de Misol-regenmeter blijft hangen bij customs clearance (al 7 dagen).

Maar ik heb niet stilgestaan, ik heb een houder getekend en geprint, dit keer in ASA omdat het beter doet buiten met UV enz. Ik heb de huidige houders van de windsnelheid-richtingsmeters ook geprint in ASA het is nu van ABS.

Ik ben uit met welke GPIO's ik kan gebruiken. Bij regendetectiesensor ga ik alleen kijken of het regent of niet, omdat WT32-ETH01 beperkt is met GPIO's maar dit is al genoeg voor mij.
Ik heb ook een DS18B20 voor temperatuurmeting toegevoegd aan plannen, dit komt in een Stevenson-scherm, ook met ASA geprint, maar dan in het wit.

Hier een foto van de houder, komt gewoon op de paal onder de windsensoren:
Afbeeldingslocatie: https://tweakers.net/i/QUSX00zFEf5YeKxLPha-NoLbts4=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/7pjBEofmPqhKJsQEdbkm5lVX.jpg?f=user_large
Lege plek is voor de Misol regenmeter.

Onderste stuk van het Stevenson-scherm met M4-inserts, met witte ASA geprint:
Afbeeldingslocatie: https://tweakers.net/i/D0rSyZlaNlh83Safk-9N90noGTg=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/jR7lQc2XbqbVTHAeC2hAZbTo.jpg?f=user_large
Dit om makkelijk te kunnen vervangen als het ooit verkleurt. Andere lagen zijn pressfit met superlijm tussen. Alle lagen moeten met een kunststof hamer ingetikt worden.

Regendetectiesensor is ook klaar:
Afbeeldingslocatie: https://tweakers.net/i/1eM6Co7tHBMV0aQbx5UmRxAv7jI=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/TQPqDfTFmdUtee1unwnbGqcN.jpg?f=user_large
Met een keramische condensator om ruis te onderdrukken.

Nu is het wachten tot Misol de regenmeter geleverd wordt.
Yaml is ook klaar, maar ik kan nog niet testen.

Als iemand interesse heeft in 3D-bestanden, laat het me weten.


Ik heb wel de ESPHome virus te pakken. Eerst heb ik de Zigbee-versie van mijn ventilatiebesturing vervangen door de ESPHome-versie. Want het Zigbee-board dat ik had gebruikt is niet stabiel, ene keer werkt het, de andere keer weer niet.

En eergisteren heb ik de Bed occupancy sensor die ik begin 2022 had gebouwd ook maar ESPHome versie van gemaakt, Zigbee versie werkte wel met de omgebouwde Aqara-magnetensor, maar ook om de paar maanden repareren, daar had ik geen zin meer in.

Dit is hoe het was gebouwd, op de lat onder het bed monteren. Excuses, kon de originele foto's niet meer vinden, dus het is iets kleiner. Wel mijn print en foto:
Afbeeldingslocatie: https://tweakers.net/i/mc-es8v3yDRf7vIRAPJxbtBrzYU=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/BNZqoTSXcdhHAf7QghFsVcnv.jpg?f=user_large

Ik begon in Circit Desinger online te tekenen, makkelijk voor mij als ik het moet delen hier.

Zo is de sensor aangesloten. Ik heb ook een ledstrip bijgedaan voor onder de bed met een mooie yaml code in ESPHome:
Afbeeldingslocatie: https://tweakers.net/i/0-5IXc4g5o-9Xha4xJUOxpKXK_w=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/gF9nRapLoKbpD8g9dGBDj0nn.png?f=user_large
Extra componenten zijn voor ruisonderdrukking, pull-down en gate.

Als iemand yaml voor dit nodig heeft, laat het me weten.

Vanochtend zegt mijn zoon "Mijn verwarming gaat niet uit" en dat was omdat hij een virtuele thermostaat heeft en die stuurt weer een (je raad het al) een Zigbee-relayboard aan. Die bleef hangen en zijn kamer was al 24 graden.

Dus dan die ook maar met ESPHome laten draaien:
Afbeeldingslocatie: https://tweakers.net/i/rrwc3_Em0y2WX9aJ6Twqy_dP3u8=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/OgJm3gcg6Wuf8pBfZwLbn860.jpg?f=user_large
Zo is het geworden, wel in een enclosure natuurlijk.

Dit vind je wel op de web, denk ik, die ook maar getekend voor hier:
Afbeeldingslocatie: https://tweakers.net/i/Nwc8Wo_-Gb-nOA3dTXeKjMb_K1M=/800x/filters:strip_exif()/f/image/slenTGQ9FRhyX5pK6OIAfyaE.png?f=fotoalbum_large
Waarom 2 relais? omdat ik alleen 2-channel relais had. Ik heb ze wel beide meegenomen in ESPHome.
Kan later handig zijn voor iets anders.

Als er vragen/suggesties zijn, hoor ik ze graag.

  • marnie
  • Registratie: November 2016
  • Laatst online: 00:30
Ik heb een ESP32 die de warmtepomp modbus koppelt aan Homeassistent en er mooie entiteiten van maakt. Gemaakt met ESPhome binnen HA. Werkt uitstekend.

Nu wil ik de modbus registers ook uitlezen in Homey met de Homey app: https://homey.app/nl-nl/app/org.modbus/Modbus/. En daar loop ik tegen het probleem aan dat ik modbus binnen Homey niet gekoppeld krijg. Ik gebruik het ip van de ESP, poort 502 en ID1, ik heb ook ander configuraties geprobeerd. Ik heb met een modbus scanner mijn netwerk onderzocht op modbus entiteiten, deze worden niet gevonden.

Kan het zijn dat ik in de ESPhome code iets moet aanpassen/toevoegen? Bv de modbus_server? Kan iemand mij hierin vooruit helpen?

Hieronder de ingekorte versie (veel entiteiten verwijdert) van mijn Esphome yaml
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
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
esphome:
  name: esphome-web-ad49ec
  friendly_name: Adlar
  min_version: 2025.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: esp-idf
    advanced:
      minimum_chip_revision: "3.1"

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret esphome_encryption_key
    

# Allow Over-The-Air updates
ota:
- platform: esphome
  password: !secret esphome_ota_key

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  min_auth_mode: WPA2

time:
  - platform: homeassistant
    id: homeassistant_time

#captive_portal:
 
# Adlar modbus
uart:
  - id: uart_modbus
    tx_pin: GPIO17
    rx_pin: GPIO16
    baud_rate: 9600
    data_bits: 8
    stop_bits: 1
    parity: NONE

modbus:
  - uart_id: uart_modbus
    id: modbus_client

modbus_controller:
  - id: modbus_adlar
    modbus_id: modbus_client
    address: 0x01
    update_interval: 60s
    command_throttle: 20ms
    setup_priority: -10

globals: 
  - id: compressor_minuten
    type: int
    restore_value: true
    initial_value: "0"

number:
  - platform: template
    name: "Compressor uren offset"
    id: offset_uren
    min_value: -99999999
    max_value: 99999999
    step: 1
    mode: box
    optimistic: true
    restore_value: true
    initial_value: 0
    disabled_by_default: true

 
switch:

  - platform: modbus_controller
    modbus_controller_id: modbus_adlar
    name: "Main switch"
    register_type: holding
    address: 0x0305

select:

  - platform: modbus_controller
    name: "MODE"
    address: 0x0304
    value_type: U_WORD
    optionsmap: 
      "Cooling": 0
      "Heating": 1
      "Floor Heating": 3

 
binary_sensor:
  - platform: modbus_controller
    modbus_controller_id: modbus_adlar
    address: 0x0000    
    register_type: holding
    bitmask: 0x01
    name: "Refrigerant Recovery"
    disabled_by_default: true 
 
sensor:
  - platform: uptime
    name: Adlar Uptime
  - platform: wifi_signal
    name: Adlar WiFi Signal
    update_interval: 60s
    
  - platform: modbus_controller
    modbus_controller_id: modbus_adlar
    name: "Compressor Running Frequency"
    register_type: holding
    address: 0x0040
    device_class: frequency
    value_type: S_WORD
    accuracy_decimals: 0
    unit_of_measurement: Hz
    filters:
      - heartbeat:
          period: 60s
          optimistic: true
  - platform: modbus_controller
    modbus_controller_id: modbus_adlar
    name: "Fan Running Speed"
    register_type: holding
    address: 0x0041
    device_class: frequency
    value_type: S_WORD
    accuracy_decimals: 0
    unit_of_measurement: Hz
    filters:
      - heartbeat:
          period: 60s
          optimistic: true
  - platform: modbus_controller
    modbus_controller_id: modbus_adlar
    name: "Water Pump Speed PWM"
    register_type: holding
    address: 0x0057
    device_class: frequency
    value_type: S_WORD
    accuracy_decimals: 0
    unit_of_measurement: Hz
    disabled_by_default: true
  - platform: modbus_controller
    modbus_controller_id: modbus_adlar
    name: "Water Flow"
    id: flow
    register_type: holding
    address: 0x0058
    device_class: volume_flow_rate
    value_type: S_WORD
    accuracy_decimals: 0
    filters:
      - filter_out: NAN
    unit_of_measurement: L/min

  - platform: template
    name: "AC Input Power"
    id: power_in
    lambda: return id(voltage).state * id(current).state;
    accuracy_decimals: 0
    filters:
      - clamp:
          min_value: 0
          max_value: 2000
          ignore_out_of_range: true
      - filter_out: NAN
      - heartbeat:
          period: 60s
          optimistic: true
    unit_of_measurement: "W"
    device_class: power
  - platform: template
    name: "Thermal Output Power"
    id: power_out
    filters:
      - clamp:
          min_value: 0
          max_value: 10000
          ignore_out_of_range: true

    lambda: |-
      const float smw = 0.998;  // soortelijke massa water
      const float sww = 4186;   // soortelijke warmte water
      return (id(flow).state / 1000 / 60) * smw * sww * (id(temp_outlet).state - id(temp_inlet).state) * 1000;
    accuracy_decimals: 0
#    unit_of_measurement: "W"
#    device_class: power
    disabled_by_default: true
  - platform: template
    name: "COP"
    id: cop
    filters:
      - clamp:
          min_value: 0
          max_value: 10
          ignore_out_of_range: true
      - filter_out: NAN
    lambda: |-
      if (id(power_out).state > 0 && id(power_in).state > 0) {
        return id(power_out).state / id(power_in).state;
      } else {
        return 0;
      }
    accuracy_decimals: 1
    unit_of_measurement: ""
    state_class: measurement

text_sensor:
  - platform: version
    name: Adlar ESPHome Version
  - platform: wifi_info
    ip_address:
      name: Adlar IP
    ssid:
      name: Adlar SSID
    bssid:
      name: Adlar BSSID

  - platform: template
    name: "Online sensor"
    id: online_template
      
  - platform: template
    name: "Compressor uren"
    device_class: "" 
    icon: "mdi:timer-outline"
    update_interval: 60s
    disabled_by_default: true
    lambda: |-
      if (id(compressor_active).state) { (id(compressor_minuten) += 1) / 60 ;} 
      else { id(compressor_minuten) /60 ;} 
      int totaal_minuten = id(compressor_minuten);
      int uren = totaal_minuten / 60 + id(offset_uren).state ;
      int minuten = totaal_minuten % 60;
      char buffer[10];
      sprintf(buffer, "%02d:%02d", uren, minuten);
      return {buffer} ;

2/1-kap 1988 | Extra vloer en muurisolatie | HR++ glas | WTW: Duco Energie Comfort 325 2-zones | WP: Adlar II 6kW | CV wonen: Jaga Strada Hybrid DBH, slapen: traditionele radiatoren | Solar: Enphase oost/west/zuid 4.2kVA | Homeassistant


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@marnie Het modbus component zorgt alleen dat er via serial de modbus gelezen kan worden. Het maakt geen Modbus TCP/IP server.

Maar kan Homey niet ook gewoon verbinden met je ESPHome device?

  • marnie
  • Registratie: November 2016
  • Laatst online: 00:30
Septillion schreef op zaterdag 28 februari 2026 @ 16:39:
@marnie
Maar kan Homey niet ook gewoon verbinden met je ESPHome device?
Agh, daar had ik niet aan gedacht, ik ben deze week gestart met Homey Self Hosted Server en nog niet zo bekend met de apps. Ik zie er wel een paar in de zoeklijst die mogelijk voldoen. Dank!

2/1-kap 1988 | Extra vloer en muurisolatie | HR++ glas | WTW: Duco Energie Comfort 325 2-zones | WP: Adlar II 6kW | CV wonen: Jaga Strada Hybrid DBH, slapen: traditionele radiatoren | Solar: Enphase oost/west/zuid 4.2kVA | Homeassistant


  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

Mijn weerstation is klaar. Gisteren bijna de hele dag gesoldeerd en getest en bugs eruit gehaald. Er was maar een bug en dat vertel ik hieronder verder.
Misol rain gauge ligt nog steeds bij de douane, maar ik had geen geduld meer, dus een uit Amazon gekocht.

Vandaag opgehangen, zoals eerder gezegd alle adapters en houders met ASA geprint:
Afbeeldingslocatie: https://tweakers.net/i/olfq9GdbPGKiFOOsz7QuLRe85gA=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/xsAjSmXiFA3fkR1hTJQXAlAT.jpg?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/ygR_Bly-ac8NygPozNEEdjWdTQw=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/DxMY0A6NFnJFwMClJbub5ACd.jpg?f=user_large

Het is best uitgebreid geworden qua elektronica, dit om het zo stabiel mogelijk te bouwen. Het is een 300dpi tekening, als je het opent, kan je alles duidelijk zien:
Afbeeldingslocatie: https://tweakers.net/i/m9azSVp1y0B7tCn6ZFBqkSfGL2M=/800x/filters:strip_exif()/f/image/mBPvH4ueFvaipiQOjFNd6Ppq.png?f=fotoalbum_large

Hieronder een lijst van onderdelen en waarvoor ze gebruikt zijn, sommige dubbel vanuit mijn eerste post:
WT32-ETH01 (ESP32 + native Ethernet)
RS485 anemometer (windsnelheid, 12V, Modbus RTU)
RS485 windvaan (windrichting in graden, 12V, Modbus RTU)
RS485 → TTL module (MAX3485 type)
Bi-directionele level shifter 3.3V ↔ 5V (wegens opmerking van @Septillion bij de eerste opzet)
SM712 TVS diode op RS485 A/B lijnen is voor overspanningsbeveiliging
Misol tipping bucket rain gauge (0.3 mm per puls)
YL-83 regenplaat + LM393 comparator
IRLZ44N MOSFET (low-side switching regenplaat) kan met veel lichtere versie, ik had deze liggen
DS18B20 waterdichte temperatuursensor (1-Wire)
4.7kΩ weerstand pull-up voor 1-Wire
P6KE6.8A TVS op 5V voedingslijn, overspanningsbeveiliging.
100nF ontkoppelcondensatoren bij modules
100µF buffer elco op voeding
100Ω gate weerstand MOSFET
100kΩ gate pull-down MOSFET
10kΩ signaalweerstand stabilisatie
M8 Sensor Connector Waterproof (4pins)
Getwiste signaaldraden met kabelomhulsels naar buiten (uit een CAT5E kabel gehaald)

Geen links van de weerstanden en condensatoren opgegeven, alles is via Conrad te vinden (of Aliexpress)

Ik heb 3 kabels uit de behuizing die een halve meter lang zijn en ik heb M8-sensorkabels gebruikt om met sensoren te verbinden, windsensoren op een kabel, rain gauge en temperatuursensor op een kabel en regendruppel sensor op een kabel. Laatste moet je apart houden, omdat het als antenne kan fungeren en storingen kan veroorzaken.

Over de bug: toen ik alles had aangesloten op mijn bench heeft de regendruppel sensor niet gewerkt, ik liet het via GPIO14 voeden om de zoveel tijd om te controleren of het regent, dit was om corrosie tegen te gaan op de plaat wegens spanning op de plaat.
Dit heeft niet gewerkt, na metingen kwam ik achter dat voltage naar 2.7V en daardoor werkte het niet, was niet genoeg om LM393 goed te laten werken. Dus ik heb een mosfet toegevoegd die de GND schakelt via GPIO14.

Zo ziet het uit in HA:
Afbeeldingslocatie: https://tweakers.net/i/zI6gBF8DvZMhuQa-eauLnLByoi8=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/SGjjSuvijRQ7c2sbu41OAQUF.png?f=user_large

Als er interesse is, kan ik de Yaml delen.

  • 4maself
  • Registratie: November 2013
  • Laatst online: 19:46
Tijdje terug heb ik een paar ESP'tjes aan Somfy IO afstandsbedieningen gesoldeerd om screens wat slimmer aan te kunnen sturen.
Batterij is eruit gehaald en de ESP voorziet de afstandsbediening van stroom. Gat door de achterkant van de behuizing om de kabel er doorheen te halen en daarmee past het allemaal allemaal wel goed genoeg. De knoppen zijn nog in te drukken, maar niet zo goed als voorheen. Niet dat het uitmaakt, want door HA zit ik er eigenlijk nooit meer aan :+

Afbeeldingslocatie: https://tweakers.net/i/wQtZuNHQs9lqJphcLAPfwCML9qQ=/800x/filters:strip_icc():strip_exif()/f/image/QRkDjgAJN6fokirGDJLClPH1.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/WN-HwXCpnrw_sJ4ue2YSOc7shtU=/x800/filters:strip_icc():strip_exif()/f/image/kyLAXMKilxhWngGIxnqllytE.jpg?f=fotoalbum_large

De yaml:
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
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
substitutions:
  moving_time: 35s
  name: Screen

esphome:
  name: screen
  friendly_name: ${name}

esp32:
  board: esp32-s2-saola-1
  framework:
    type: arduino

# Enable logging
# logger:

# Enable Home Assistant API
api:
  encryption:
    key: "a_key"

ota:
  - platform: esphome
    password: "abcdefg"

wifi:
  networks:
    - ssid: !secret wifi_ssid
      password: !secret wifi_password
      hidden: false
      manual_ip: 
        static_ip: 1.2.3.4
        gateway: 1.2.3.4
        subnet: 255.255.255.0

captive_portal:

switch:
- platform: gpio
  pin: 1  #GPIO1 / connected to Somfy DOWN
  id: pin1
  restore_mode: ALWAYS_ON   # start HIGH
- platform: gpio
  pin: 2  #GPIO1 / connected to Somfy MY
  id: pin2
  restore_mode: ALWAYS_ON   # start HIGH
- platform: gpio
  pin: 3  #GPIO1 / connected to Somfy UP
  id: pin3
  restore_mode: ALWAYS_ON   # start HIGH

button:
  - platform: template
    name: Up
    id: s2_up
    icon: "mdi:menu-up"
    on_press:
      - logger.log: "Knop UP ingedrukt = output 3 even LOW = PRESS"
      - switch.turn_off: pin3   # negative: pin=off => output low
      - delay: 500ms 
      - switch.turn_on: pin3    # pin=on => output high
  - platform: template
    name: My
    id: s2_my
    icon: "mdi:gesture-tap-button"
    on_press:
      - logger.log: "Knop MY ingedrukt = output 2 even LOW = PRESS"
      - switch.turn_off: pin2   # negative: pin=off => output low
      - delay: 500ms 
      - switch.turn_on: pin2    # pin=on => output high
  - platform: template
    name: Down
    id: s2_down
    icon: "mdi:menu-down"
    on_press:
      - logger.log: "Knop DOWN ingedrukt = output 1 even LOW = PRESS"
      - switch.turn_off: pin1   # negative: pin=off => output low
      - delay: 500ms 
      - switch.turn_on: pin1    # pin=on => output high

cover:
  - platform: time_based
    name: Cover
    open_action:
      - button.press: s2_up
    open_duration: ${moving_time}
    close_duration: ${moving_time}
    close_action: 
      - button.press: s2_down
    stop_action: 
      - button.press: s2_my
    assumed_state: True
    has_built_in_endstop: True

  • -Casper
  • Registratie: Juni 2012
  • Laatst online: 22-03 20:25
Ik heb een D1 mini gekoppeld aan een relay shield.

Nu lukt het me maar niet om het relay te schakelen. Onderstaand mijn configuratie.
Ik heb het ook nog geprobeerd met pin nummers GPIO0, GPIO2, GPIO 4, D1

Iemand tips?
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
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
esphome:
  name: garage
  friendly_name: garage

esp8266:
  board: d1_mini


# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "KEY"
  services:
    - service: toggle_garage_deur
      then:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

ota:
  - platform: esphome
    password: "KEY"

switch:
  # Switch to restart the esp.
  - platform: restart
    name: Garage Restart

  # Switch for the garage door.
  - platform: gpio
    id: relay
    name: Garage deur switch
    pin:
      number: GPIO5
      mode: OUTPUT
      inverted: true

button:
  - platform: template
    name: Garage deur
    icon: "mdi:garage-variant"
    on_press:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage Fallback Hotspot"
    password: "PASS"

captive_portal:

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: Garage ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: Garage IP
    ssid:
      name: Garage SSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: Garage Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: Garage WiFi Signal
    update_interval: 60s

  • babbelbox
  • Registratie: Maart 2003
  • Laatst online: 21:24
Voor zover ik kan zien moet het GPIO5 zijn.
Kijkend naar de pinout van de D1 mini.
Dat relay bordje gebruik ik ook meermaals.
Rechts, de 3e pin van boven (D1) schakelt het relay.

[ Voor 64% gewijzigd door babbelbox op 03-03-2026 19:19 ]


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@-Casper Je voedt de Wemos wel met 5V? Want dat heeft het relais wel nodig.

En zou inderdaad GPIO5 hoog maken moeten zijn, niet inverted dus. Of nog makkelijker, de Wemos pinnummers gebruiken, D1.

En nog een tip, niet je component namen prefixen, dat doet HA al voor je. Dus freindly name van de module "Garage" en dan voor het component bijvoorbeeld "Uptime". En voor component met de naam van de module gebruik je "None".

In dit geval zou naar mijn idee logische naam voor de module dus zijn "friendly_name: Garage deur" en dan de button "name: None".

[ Voor 47% gewijzigd door Septillion op 03-03-2026 19:53 ]


  • -Casper
  • Registratie: Juni 2012
  • Laatst online: 22-03 20:25
Septillion schreef op dinsdag 3 maart 2026 @ 19:49:
@-Casper Je voedt de Wemos wel met 5V? Want dat heeft het relais wel nodig.

En zou inderdaad GPIO5 hoog maken moeten zijn, niet inverted dus. Of nog makkelijker, de Wemos pinnummers gebruiken, D1.

En nog een tip, niet je component namen prefixen, dat doet HA al voor je. Dus freindly name van de module "Garage" en dan voor het component bijvoorbeeld "Uptime". En voor component met de naam van de module gebruik je "None".

In dit geval zou naar mijn idee logische naam voor de module dus zijn "friendly_name: Garage deur" en dan de button "name: None".
De wemos zit gewoon op een oude telefoon lader (5 volt) met een micro usb kabel. Qua config zeg je dus dat ik inverted op false zou moeten zetten en het dan zou moeten kloppen?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@-Casper Ja, maar dat kan geen probleem zijn eigenlijk. Want als je inverted aan hebt is het enige dat aan = uit en uit = aan. Maar zou wel gewoon moeten werken. Of heb je dat nu ook?

Totaal zou ik dus doen:
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
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
esphome:
  name: garage
  friendly_name: Garage deur

esp8266:
  board: d1_mini


# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: key: !secret api_key

ota:
  - platform: esphome
    password: !secret ota_password
    
switch:
  # Switch to restart the esp.
  - platform: restart
    name: Restart

  # Switch for the garage door.
  - platform: gpio
    id: relay
    name: None
    internal: true
    pin:
      number: D1
      mode: OUTPUT

button:
  - platform: template
    name: None
    icon: "mdi:garage-variant"
    on_press:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage Fallback Hotspot"
    password: "PASS"

captive_portal:

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: IP
    ssid:
      name: SSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: WiFi Signal
    update_interval: 60s

  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
Ik zit al even te stoeien met dit verhaal. Er draaien hier een aantal ESP32c3 in mijn huis, via HA. Dat (ging!) gaat eigenlijk prima. Nu moest ik vandaag een kleine aanpassing maken (ik had na een klusje per abuis 2 sensoren omgedraaid...) dat wilde ik software matig oplossenen draaide de 2 namen om. Save en update... zou je zeggen. Echter dan krijg ik deze melding:
code:
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
INFO ESPHome 2026.2.4
INFO Reading configuration /config/esphome/cvtemp.yaml...
WARNING GPIO8 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq/#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 11 (registered: api=4, captive_portal=4, mdns=2, ota=1)
INFO Compiling app... Build path: /data/build/cvtemp
Processing cvtemp (board: esp32-c3-devkitm-1; framework: arduino, espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip)
--------------------------------------------------------------------------------
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
 - contrib-piohome @ 3.4.4 
 - framework-arduinoespressif32 @ 3.3.7 
 - framework-arduinoespressif32-libs @ 5.5.2 
 - framework-espidf @ 3.50502.0 (5.5.2) 
 - tool-cmake @ 4.0.3 
 - tool-esp-rom-elfs @ 2024.10.11 
 - tool-esptoolpy @ 5.1.2 
 - tool-ninja @ 1.13.1 
 - tool-scons @ 4.40801.0 (4.8.1) 
 - toolchain-riscv32-esp @ 14.2.0+20251107
Reading CMake configuration...
-- Found Git: /usr/bin/git (found version "2.39.5")
-- git rev-parse returned 'fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).'
-- Minimal build - OFF
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is GNU
-- Found assembler: /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc - broken
-- Configuring incomplete, errors occurred!

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler
    "/data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc"
  is not able to compile a simple test program.
  It fails with the following output:
    Change Dir: '/data/build/cvtemp/.pioenvs/cvtemp/CMakeFiles/CMakeScratch/TryCompile-6OKzRV'
    Run Build Command(s): /data/cache/platformio/packages/tool-ninja/ninja -v cmTC_5f7b0
    [1/2] /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc   -march=rv32imc_zicsr_zifencei -o CMakeFiles/cmTC_5f7b0.dir/testCCompiler.c.obj -c /data/build/cvtemp/.pioenvs/cvtemp/CMakeFiles/CMakeScratch/TryCompile-6OKzRV/testCCompiler.c
    FAILED: [hier stond "kode"=1] CMakeFiles/cmTC_5f7b0.dir/testCCompiler.c.obj 
    /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc   -march=rv32imc_zicsr_zifencei -o CMakeFiles/cmTC_5f7b0.dir/testCCompiler.c.obj -c /data/build/cvtemp/.pioenvs/cvtemp/CMakeFiles/CMakeScratch/TryCompile-6OKzRV/testCCompiler.c
    Assembler messages:
    Error: unknown architecture `rv32imc_zicsr_zifencei'
    
    Error: unrecognized option -march=rv32imc_zicsr_zifencei
    ninja: build stopped: subcommand failed.

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  /data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:589 (__project)
  CMakeLists.txt:3 (project)
========================= [FAILED] Took 12.08 seconds =========================
code:
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
esphome:
  name: cvtemp
  friendly_name: CVtemp

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino
    version: recommended

    #type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "3qLJyJpIZKmO+nzxgYyiC1UkuUx6/BKQODNL35Lk2bc="

ota:
  - platform: esphome
    password: "8bb76b3571edf563e099329ba6910c50"

wifi:
  #ssid: !secret wifi_ssid1
  #password: !secret wifi_password1
  ssid: !secret wifi_ssid2
  password: !secret wifi_password2


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Cvtemp Fallback Hotspot"
    password: "o5goI1p6YiEq"

captive_portal:

# OneWire bus op GPIO 4 (pas aan naar jouw pin)
one_wire:
  - platform: gpio
    pin: 8
 
sensor:
  - platform: dallas_temp
    address: 0x40000000b2b8dc28
    name: "Temperatuur aanvoer WP"
    update_interval: 1s

  - platform: dallas_temp
    address: 0x0b0621b49f52b728
    name: "Temperatuur retour voor buffer"
    update_interval: 1s
  
  - platform: dallas_temp
    address: 0xeb000000b3ae0c28  
    name: "Temperatuur retour WP"
    update_interval: 1s

  - platform: dallas_temp
    address: 0x70000000b2eac028 
    name: "Temperatuur aanvoer na buffer"
    update_interval: 1s
 
  - platform: dallas_temp
    address: 0x26000000b9eb3c28 
    name: "Temperatuur retour zolder"
    update_interval: 1s

    # 0x70000000b2eac028 (DS18B20) Temperatuur aanvoer na buffer
    # 0xeb000000b3ae0c28 (DS18B20)Temperatuur retour voor buffer
    # 0x40000000b2b8dc28 (DS18B20) Temperatuur aanvoer WP
    # 0x0b0621b49f52b728 (DS18B20) Temperatuur retour WP
    # 0x26000000b9eb3c28 (retour zolder)
Ik had al een poging gewaagd met dit stukje aanpassing:
code:
1
2
3
4
5
6
7
esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino
    version: recommended

    #type: esp-idf
Waarbij ik de IDF omgezet heb naar Arduino. Dat heeft niet geholpen, voor de volledigheid ook de foutmelding met "IDF":
code:
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
INFO ESPHome 2026.2.4
INFO Reading configuration /config/esphome/cvtemp.yaml...
WARNING GPIO8 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq/#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 11 (registered: api=4, captive_portal=4, mdns=2, ota=1)
INFO Compiling app... Build path: /data/build/cvtemp
Processing cvtemp (board: esp32-c3-devkitm-1; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip)
--------------------------------------------------------------------------------
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
 - contrib-piohome @ 3.4.4 
 - framework-espidf @ 3.50502.0 (5.5.2) 
 - tool-cmake @ 4.0.3 
 - tool-esp-rom-elfs @ 2024.10.11 
 - tool-esptoolpy @ 5.1.2 
 - tool-ninja @ 1.13.1 
 - tool-scons @ 4.40801.0 (4.8.1) 
 - toolchain-riscv32-esp @ 14.2.0+20251107
Reading CMake configuration...
-- Found Git: /usr/bin/git (found version "2.39.5")
-- git rev-parse returned 'fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).'
-- Minimal build - OFF
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is GNU
-- Found assembler: /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc - broken
-- Configuring incomplete, errors occurred!

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler

    "/data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/data/build/cvtemp/.pioenvs/cvtemp/CMakeFiles/CMakeScratch/TryCompile-zNX5Te'
    
    Run Build Command(s): /data/cache/platformio/packages/tool-ninja/ninja -v cmTC_2ca80
    [1/2] /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc   -march=rv32imc_zicsr_zifencei -o CMakeFiles/cmTC_2ca80.dir/testCCompiler.c.obj -c /data/build/cvtemp/.pioenvs/cvtemp/CMakeFiles/CMakeScratch/TryCompile-zNX5Te/testCCompiler.c
    FAILED: [hier stond "kode"=1] CMakeFiles/cmTC_2ca80.dir/testCCompiler.c.obj 
    /data/cache/platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc   -march=rv32imc_zicsr_zifencei -o CMakeFiles/cmTC_2ca80.dir/testCCompiler.c.obj -c /data/build/cvtemp/.pioenvs/cvtemp/CMakeFiles/CMakeScratch/TryCompile-zNX5Te/testCCompiler.c
    Assembler messages:
    Error: unknown architecture `rv32imc_zicsr_zifencei'
    
    Error: unrecognized option -march=rv32imc_zicsr_zifencei
    ninja: build stopped: subcommand failed.
    
    



  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  /data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:589 (__project)
  CMakeLists.txt:3 (project)



========================= [FAILED] Took 11.19 seconds =========================
De sensoren werken wel gewoon, ik kan ze zien in mijn grafiekjes.

Vandaag was een lange dag, ik ben eigenlijk bijna scheel aan het kijken, waarschijnlijk is het iets kleins en zie ik het gewoon niet... |:(

  • babbelbox
  • Registratie: Maart 2003
  • Laatst online: 21:24
Misschien helpt een clean voordat je een compile doet?

[ Voor 5% gewijzigd door babbelbox op 03-03-2026 21:50 ]


  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
babbelbox schreef op dinsdag 3 maart 2026 @ 21:50:
Misschien helpt een clean voordat je een compile doet?
Zal ik doen. Bedankt voor die tip.

Wat ik me dan wel een beetje afvraag, dit was inhoudelijk exact dezelfde YAML. Als dat voorheen werkte wat is er dan nu anders.

[ Voor 23% gewijzigd door tcw82 op 04-03-2026 07:36 ]


  • GJzon
  • Registratie: Juni 2022
  • Laatst online: 22-03 22:57
tcw82 schreef op woensdag 4 maart 2026 @ 04:49:
[...]

Zal ik doen. Bedankt. (Wat dan wel is, waarom komt nu de failed melding en voorheen niet?)
Je krijgt nu problemen door de laatste ESPHome updates. Bijna wekelijks komt er een nieuwe versie c.q. revisie. En in versie 2026.2 is er heel veel veranderd. Ik had e.e.a. ineens met versie 2026.2.2
Uiteindelijk na rebuild/clean en handmatig wat mappen schoongemaakt, ESPHome Builder verwijderd en opnieuw geïnstalleerd.
Wat hierbij wel heel belangrijk is, dat je je server waar HA op draait, echt hardwarematig uit en aan zet en niet alleen maar de soft herstart doet van HA. Dan schijnt HA echt alle caches en overbodige bestanden te wissen.
En ja, je bent er even zoet mee.

Ik zou trouwens GPIO8 veranderen naar een andere poort. 4 of 5 ofzo. Aangezien je die Dallas sensoren gebruikt met een weerstand van 4k7 aan de +, zet je die per definitie HOOG bij 't opstarten van je ESP. Ik zou de gok niet nemen met een strapping port....

.

  • GJzon
  • Registratie: Juni 2022
  • Laatst online: 22-03 22:57
-Casper schreef op dinsdag 3 maart 2026 @ 16:16:
Ik heb een D1 mini gekoppeld aan een relay shield.

Nu lukt het me maar niet om het relay te schakelen. Onderstaand mijn configuratie.
Ik heb het ook nog geprobeerd met pin nummers GPIO0, GPIO2, GPIO 4, D1

Iemand tips?
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
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
esphome:
  name: garage
  friendly_name: garage

esp8266:
  board: d1_mini


# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "KEY"
  services:
    - service: toggle_garage_deur
      then:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

ota:
  - platform: esphome
    password: "KEY"

switch:
  # Switch to restart the esp.
  - platform: restart
    name: Garage Restart

  # Switch for the garage door.
  - platform: gpio
    id: relay
    name: Garage deur switch
    pin:
      number: GPIO5
      mode: OUTPUT
      inverted: true

button:
  - platform: template
    name: Garage deur
    icon: "mdi:garage-variant"
    on_press:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage Fallback Hotspot"
    password: "PASS"

captive_portal:

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: Garage ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: Garage IP
    ssid:
      name: Garage SSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: Garage Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: Garage WiFi Signal
    update_interval: 60s
@-Casper
150 ms is wel heel kort om iets te testen...misschien eerst even op een paar seconden zetten?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
GPIO8 voor 1-wire vind ik nog niet zo spannend. Deze pin moet hoog zijn tijdens boot, daar zorgt juist de pull up al voor. En een 1-wire slave zal niet uit zichzelf de lijn laag trekken. Dus juist 1-wire is best een goede om GPIO8 te kunnen gebruiken :)

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@tcw82 Heeft het geholpen?

En ja, kan dus met zelfde yaml. Op de achtergrond wordt er eerst heel veel geïnstalleerd om een hele pipeline te maken. Dan pas wordt je yaml omgezet in C++ code, dan worden alle libraries gecompilet of geladen, dan pas je, nu in C++ zijnde, config gecompilet en dan alles gelinkt. Maar op de achtergrond wordt er dus nogal wat aangemaakt. Clean build files gooit dat allemaal weg zodat de hele boel vers opgebouwd moet worden.

  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
Septillion schreef op woensdag 4 maart 2026 @ 10:28:
@tcw82 Heeft het geholpen?

En ja, kan dus met zelfde yaml. Op de achtergrond wordt er eerst heel veel geïnstalleerd om een hele pipeline te maken. Dan pas wordt je yaml omgezet in C++ code, dan worden alle libraries gecompilet of geladen, dan pas je, nu in C++ zijnde, config gecompilet en dan alles gelinkt. Maar op de achtergrond wordt er dus nogal wat aangemaakt. Clean build files gooit dat allemaal weg zodat de hele boel vers opgebouwd moet worden.
Ik moest werken(5 uur van huis), ik kan niet bij ha vanuit het werk. Als ik uitgewerkt ben ga ik dit natuurlijk even testen.

  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
Septillion schreef op woensdag 4 maart 2026 @ 10:24:
GPIO8 voor 1-wire vind ik nog niet zo spannend. Deze pin moet hoog zijn tijdens boot, daar zorgt juist de pull up al voor. En een 1-wire slave zal niet uit zichzelf de lijn laag trekken. Dus juist 1-wire is best een goede om GPIO8 te kunnen gebruiken :)
De one wire op pin 8 is een ongelukkige (on-ervaringsdeskundige) keuze geweest uit het verleden.
Dat kan uiteraard makkelijk anders. het werkte verder goed, voor alle 7 ESP32 die op custom PCBtjes (met haradwired die one wire dingen op de pin 8 (DOH!) ) door het huis slingeren.

Ik ga vanmiddag beginnen met de clean en dan eens verder kijken.
inmiddels ook gelezen dat herinstaleren van ESPhome kan helpen.
De stekker is al uit de RPi geweest, een echte boot is daarmee volgens mij bewerkstelligt.

  • GJzon
  • Registratie: Juni 2022
  • Laatst online: 22-03 22:57
Septillion schreef op woensdag 4 maart 2026 @ 10:24:
GPIO8 voor 1-wire vind ik nog niet zo spannend. Deze pin moet hoog zijn tijdens boot, daar zorgt juist de pull up al voor. En een 1-wire slave zal niet uit zichzelf de lijn laag trekken. Dus juist 1-wire is best een goede om GPIO8 te kunnen gebruiken :)
Er is niets mis met je redenering. Maar je moet nooit de goden verzoeken als er ook gewone poorten beschikbaar zijn. Het was ook maar een advies.

  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
GJzon schreef op woensdag 4 maart 2026 @ 11:40:
[...]

Er is niets mis met je redenering. Maar je moet nooit de goden verzoeken als er ook gewone poorten beschikbaar zijn. Het was ook maar een advies.
Ik weet het, ik wist het toen niet. -O- een PCBtje gemaakt en laten komen, dan ga ik die niet weggooien en nieuwe laten komen.
PCBtjes waren gemaakt voor specifieke taken en hebben daarmee weerstandjes en Jst stekkertjes aanboord, nieuwe draadjes trekken is wel mogelijk maar niet heel praktisch. Een volgende iteratie heeft dit natuurlijk anders!
*O*

  • -Casper
  • Registratie: Juni 2012
  • Laatst online: 22-03 20:25
GJzon schreef op woensdag 4 maart 2026 @ 08:10:
[...]


@-Casper
150 ms is wel heel kort om iets te testen...misschien eerst even op een paar seconden zetten?
Ik heb een esp01 op mijn garagedeur werkend met deze delay en dat werkt naar behoren. Probeer nu eenzelfde opzet maar dan met d1 mini voor een vriend. Met de switch kan ik ook het relay schakelen zonder dat deze automatisch uit gaat.

Punt is dat ie op dit moment niets doet. Ik hoor m ook niet klikken.

Zal de config van septillion nog ff proberen en kijken of dat nog iets uitmaakt.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@tcw82 Ahj, okay. Door je reactie was ik een beetje aan het twijfelen of je het nu wel of niet al getest had.

@GJzon Eens hoor als je de keuze nog hebt. Maar zou er geen printen voor weg doen nu hij voor 1-wire in gebruik is. Geluk is met de dommen zullen we maar zeggen :+

  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
Septillion schreef op woensdag 4 maart 2026 @ 13:00:
@tcw82 Ahj, okay. Door je reactie was ik een beetje aan het twijfelen of je het nu wel of niet al getest had.

@GJzon Eens hoor als je de keuze nog hebt. Maar zou er geen printen voor weg doen nu hij voor 1-wire in gebruik is. Geluk is met de dommen zullen we maar zeggen :+
Dat is niet de bedoeling natuurlijk. Gisteren avond zat ik scheel kijkend achter de PC, de wekker gaat om 0450 en ik zat al voorbij de bedtijd. Straks ga ik er naar kijken.

  • fvhemert
  • Registratie: Juni 2013
  • Laatst online: 23-03 13:49
Ben erg benieuwd of iemand op dit forum ervaring heeft met een GMT020-02-7P 20TFTSPI display in combinatie met een ESP-32-WROOM-32D in ESPHOME.
Ik probeer het display aan de gang te krijgen in ESPHOME maar krijg alleen wat verstrooide pixels op een gedeelte van het scherm.

Development board:
- ESP32-WROOM-32D
- HW-395 v0.0.3 (36 pins)
Display:
- GMT020-02-7P
- 20TfTSPI
- Resolutie 240*320
- Driver ST7789

Momenteel ben ik aan het testen met de volgende config:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
spi:
  clk_pin: GPIO22
  mosi_pin: GPIO21
  
display:
  - platform: st7789v
    model: CUSTOM
    height: 240
    width: 320
    offset_height: 0
    offset_width: 0
    cs_pin: GPIO05
    dc_pin: GPIO19
    reset_pin: GPIO23
    rotation: 90
Ik heb al diverse varianten (bijv. veranderen fysieke aansluiting VSPI SCK-18 en VSPI MOSI-23, rotation, height en width aanpassen) maar niets helpt.

Ben benieuwd of er hier iemand is die het ding aan de gang heeft.

  • -Casper
  • Registratie: Juni 2012
  • Laatst online: 22-03 20:25
Septillion schreef op dinsdag 3 maart 2026 @ 20:30:
@-Casper Ja, maar dat kan geen probleem zijn eigenlijk. Want als je inverted aan hebt is het enige dat aan = uit en uit = aan. Maar zou wel gewoon moeten werken. Of heb je dat nu ook?

Totaal zou ik dus doen:
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
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
esphome:
  name: garage
  friendly_name: Garage deur

esp8266:
  board: d1_mini


# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: key: !secret api_key

ota:
  - platform: esphome
    password: !secret ota_password
    
switch:
  # Switch to restart the esp.
  - platform: restart
    name: Restart

  # Switch for the garage door.
  - platform: gpio
    id: relay
    name: None
    internal: true
    pin:
      number: D1
      mode: OUTPUT

button:
  - platform: template
    name: None
    icon: "mdi:garage-variant"
    on_press:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage Fallback Hotspot"
    password: "PASS"

captive_portal:

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: IP
    ssid:
      name: SSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: WiFi Signal
    update_interval: 60s
Deze config ook eens geprobeerd. Nog niet aan de garage motor gehangen maar in mijn test hoor ik geen klik van het relay, dus sterk vermoeden dat ie nog steeds niks doet.

Nog ideeën hoe ik dit verder kan troubleshooten?

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
fvhemert schreef op woensdag 4 maart 2026 @ 14:40:
Ben erg benieuwd of iemand op dit forum ervaring heeft met een GMT020-02-7P 20TFTSPI display in combinatie met een ESP-32-WROOM-32D in ESPHOME.
Ik probeer het display aan de gang te krijgen in ESPHOME maar krijg alleen wat verstrooide pixels op een gedeelte van het scherm.

Development board:
- ESP32-WROOM-32D
- HW-395 v0.0.3 (36 pins)
Display:
- GMT020-02-7P
- 20TfTSPI
- Resolutie 240*320
- Driver ST7789
.....
Heb je ook de mipi_spi driver geprobeerd? Bij mij werkte deze met:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
spi:
  mosi_pin: 23
  clk_pin: 18

display:
  - platform: mipi_spi
    id: my_display
    model: ST7789V
    color_order: bgr
    invert_colors: True
    rotation: 270
    cs_pin: 5
    dc_pin: 17
    reset_pin: 16
    spi_mode: MODE3
    data_rate: 20MHz
    buffer_size: 50%
    update_interval: 100ms
Andere pinnen, dus even aanpassen naar je eigen config.
Ik heb uiteindelijk toch een ander display gezocht, deze heeft namelijk geen pin voor backlight en ik wil hem wel kunnen dimmen.
Ook ben ik overgestapt naar een esp32-s2 met psram. Ik heb redelijk veel pages op het display met hier en daar wat plaatjes, en sensoren waar ik een max van de afgelopen minuut in wil bijhouden, en dat resulteerde in garbage doordat er te weinig geheugen vrij was.

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:53
Reptile-X schreef op zondag 1 maart 2026 @ 22:32:
Mijn weerstation is klaar.
[...]
Leuk project, ziet er goed uit!
Ben alleen bang dat die regensensor het snel zal begeven in de buitenlucht. Die koperen printsporen zullen gaan oxideren (groen uitslaan) waardoor de sensor stopt met (betrouwbaar) werken verwacht ik.

Als je wil weten 'regent het?' kun je beter kijken naar een optische regensensor zoals gebruikt in auto's. Die kijkt naar de breking van het licht die verandert als er regendruppels op de ruit vallen. Zijn alleen wel aan de prijs zie ik.

[ Voor 12% gewijzigd door ThinkPad op 04-03-2026 16:14 ]


  • tcw82
  • Registratie: Oktober 2020
  • Laatst online: 18:02
Septillion schreef op woensdag 4 maart 2026 @ 13:00:
@tcw82 Ahj, okay. Door je reactie was ik een beetje aan het twijfelen of je het nu wel of niet al getest had.

@GJzon Eens hoor als je de keuze nog hebt. Maar zou er geen printen voor weg doen nu hij voor 1-wire in gebruik is. Geluk is met de dommen zullen we maar zeggen :+
Het lijkt nu goed te gaan. Files gecleaned (alles) en daarna ging het goed. Moet wel wat geduld hebben, 980 seconden had ie nodig, en dat enkel voor een "naam" bij een sensor 8)7

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 22-03 11:35

Reptile-X

߀ åf®åîÐ!

ThinkPad schreef op woensdag 4 maart 2026 @ 16:11:
[...]

Leuk project, ziet er goed uit!
Bedankt, jij hebt gelijk over die plaat, daarom heb ik de voeding geschakeld gemaakt. Ik had er een met Zigbee die ik zelf had gebouwd met een omgebouwde Aqara-magnetensor met 2 AAA-batterijtjes, ongeveer 4 jaar geleden denk ik. Die zag er nog goed uit.
Ik heb het nu zo gebouwd in mijn weerstation, zodat ik het kan vervangen wanneer het slijt.

Ik heb ook naar zo'n optische sensor gekeken uit de ESPHome-documentatie. Een Hydreon RG-9 Rain Sensor, originele kost meer dan mijn hele setup. Misschien ooit een clone proberen als ze iets goedkoper worden. Tot die tijd zal deze wel volhouden, denk ik.

  • fvhemert
  • Registratie: Juni 2013
  • Laatst online: 23-03 13:49
u_nix_we_all schreef op woensdag 4 maart 2026 @ 15:45:
[...]

Heb je ook de mipi_spi driver geprobeerd? Bij mij werkte deze met:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
spi:
  mosi_pin: 23
  clk_pin: 18

display:
  - platform: mipi_spi
    id: my_display
    model: ST7789V
    color_order: bgr
    invert_colors: True
    rotation: 270
    cs_pin: 5
    dc_pin: 17
    reset_pin: 16
    spi_mode: MODE3
    data_rate: 20MHz
    buffer_size: 50%
    update_interval: 100ms
Andere pinnen, dus even aanpassen naar je eigen config.
Ik heb uiteindelijk toch een ander display gezocht, deze heeft namelijk geen pin voor backlight en ik wil hem wel kunnen dimmen.
Ook ben ik overgestapt naar een esp32-s2 met psram. Ik heb redelijk veel pages op het display met hier en daar wat plaatjes, en sensoren waar ik een max van de afgelopen minuut in wil bijhouden, en dat resulteerde in garbage doordat er te weinig geheugen vrij was.
Dank voor de suggestie! de mipi driver werkt inderdaad. Onderstaand de eerste simpele sketch die het gewenste resultaat geeft met deze display (voor het geval er iemand met een vergelijkbare vraag zit)
code:
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
spi:
  clk_pin: GPIO22
  mosi_pin: GPIO21

lvgl:
  widgets:
    - label:
        align: CENTER
        text: 'Hello World!'
        
display:
  - platform: mipi_spi
    model: CUSTOM
    init_sequence:
    #  - [ 0xD0, 0x07, 0x42, 0x18]
      - delay 10ms
    #  - [ 0xD1, 0x00, 0x07, 0x10]
    dimensions:
      height: 240
      width: 320
    cs_pin: GPIO05
    dc_pin: GPIO19
    reset_pin: GPIO23
    rotation: 90
    auto_clear_enabled: false
    update_interval: never
De display zal onderdeel worden van een barcode scanner en het aantal pagina's zal heel beperkt zijn, psram is dus niet zo belangrijk in mijn specifieke geval. Dat van die backlight kwam ik ook achter toen de display uit de verpakking kwam, de verkoper op Aliexpress was hier niet helemaal duidelijk over. Er blijkt ook een versie te zijn met een extra pin voor de backlight, ik denk dat er nog wel een andere versie gaat komen ....

Dank voor de snelle reactie!

  • -Casper
  • Registratie: Juni 2012
  • Laatst online: 22-03 20:25
Septillion schreef op dinsdag 3 maart 2026 @ 20:30:
@-Casper Ja, maar dat kan geen probleem zijn eigenlijk. Want als je inverted aan hebt is het enige dat aan = uit en uit = aan. Maar zou wel gewoon moeten werken. Of heb je dat nu ook?

Totaal zou ik dus doen:
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
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
esphome:
  name: garage
  friendly_name: Garage deur

esp8266:
  board: d1_mini


# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: key: !secret api_key

ota:
  - platform: esphome
    password: !secret ota_password
    
switch:
  # Switch to restart the esp.
  - platform: restart
    name: Restart

  # Switch for the garage door.
  - platform: gpio
    id: relay
    name: None
    internal: true
    pin:
      number: D1
      mode: OUTPUT

button:
  - platform: template
    name: None
    icon: "mdi:garage-variant"
    on_press:
      - switch.turn_on: relay
      - delay: 150ms
      - switch.turn_off: relay

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage Fallback Hotspot"
    password: "PASS"

captive_portal:

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: IP
    ssid:
      name: SSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: WiFi Signal
    update_interval: 60s
Bleek een kwestie van slecht soldeerwerk. Nog eens met de soldeerbout de verbindingen nagelopen en daarna deed ie t. Dank voor de optimalisatie van de code en t meedenken!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@-Casper Late reactie :+ Maar dat was eigenlijk wel het volgende wat ik wilde suggereerde. Eigenlijk wel 1e gebod van elektronica: Gij zal de spanningen meten :+

  • User9
  • Registratie: Februari 2026
  • Laatst online: 23-03 06:45
Ik ben bezig met een Lilygo T-can485 board om in ESPhome te installeren, maar het zit tegen.
Het prepare for first use via de web.esphome.io gaat goed, maar als het eenmaal is geïnstalleerd dan wil ik wifi toevoegen. Daar krijg ik de eerste error: Improv Wi-Fi Serial not detected. Als ik dan in de log device reset klik, dan kan ik wel een wifi toevoegen. Dan zie ik het device ook in HA. Als ik dan in HA adopt aanklik dan wordt er een install gestart, die duurt ongeveer 10 minuten. Als dat klaar is, kan ik nog steeds niks doen. Wifi lijkt het niet te doen op het boardje.

Ik heb de verbinding al een paar keer onderbroken via usb en opnieuw geïnstalleerd via esphome en dan prepare for first use. Maar dat helpt niks helaas.
Hoe kan ik lilygo weer helemaal resetten zodat er niks opstaat, ik denk dat er iets is fout gegaan omdat het LED ook niet meer aan wil, dat was bij de 1e connect wel zo. De verbinding naar de pc via usb doet het wel.

Marstek Venus E 2.0 5,12 kWh v153 | 9x Jinko 435 WP met Enphase iQ8+ | HW P1 6.0304 | Quatt | Vvw | Tibber


  • sipjan
  • Registratie: Juni 2013
  • Laatst online: 01:58
User9 schreef op zaterdag 14 maart 2026 @ 12:25:
Ik ben bezig met een Lilygo T-can485 board om in ESPhome te installeren, maar het zit tegen.
Het prepare for first use via de web.esphome.io gaat goed, maar als het eenmaal is geïnstalleerd dan wil ik wifi toevoegen. Daar krijg ik de eerste error: Improv Wi-Fi Serial not detected. Als ik dan in de log device reset klik, dan kan ik wel een wifi toevoegen. Dan zie ik het device ook in HA. Als ik dan in HA adopt aanklik dan wordt er een install gestart, die duurt ongeveer 10 minuten. Als dat klaar is, kan ik nog steeds niks doen. Wifi lijkt het niet te doen op het boardje.

Ik heb de verbinding al een paar keer onderbroken via usb en opnieuw geïnstalleerd via esphome en dan prepare for first use. Maar dat helpt niks helaas.
Hoe kan ik lilygo weer helemaal resetten zodat er niks opstaat, ik denk dat er iets is fout gegaan omdat het LED ook niet meer aan wil, dat was bij de 1e connect wel zo. De verbinding naar de pc via usb doet het wel.
Wifi signaal sterk genoeg ?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@User9 Flashen ervan is eigenlijk hele reset. Alleen wat Wifi credentials blijven staan.

Via de web flasher lukt wifi mij eigenlijk ook nooit. Doe ik dan via de hotspot die hij aanmaakt.

En voeg je hem daarna toe aan HA of aan ESPHome builder? Ik zou dus alleen laatste doen.

Of als alternatief, zelf als device in ESPHome maken, wat instellen zoals naam en dan manual download. Device flashen via web flasher en daarna naar het AP gaan. En dan ipv de wifi in te stellen kan je dan volgens mij ook een firmware upload doen.

  • User9
  • Registratie: Februari 2026
  • Laatst online: 23-03 06:45
sipjan schreef op zaterdag 14 maart 2026 @ 13:14:
[...]

Wifi signaal sterk genoeg ?
Ja sterk genoeg. Hij vindt het ook als ik in de log kijk.
Nu zag ik wel dat het wachtwoord in de secrets.yaml verkeerd was, deze heb ik nu goed gezet en het boardje opnieuw geïnstalleerd, maar werkt ook niet. Ook zonder wifi credentials in de secrets.yaml werk het niet.
Dan wil die wel op magische wijze via dezelfde wifi verbinding maken.
Septillion schreef op zaterdag 14 maart 2026 @ 14:25:
@User9 Flashen ervan is eigenlijk hele reset. Alleen wat Wifi credentials blijven staan.

Via de web flasher lukt wifi mij eigenlijk ook nooit. Doe ik dan via de hotspot die hij aanmaakt.

En voeg je hem daarna toe aan HA of aan ESPHome builder? Ik zou dus alleen laatste doen.

Of als alternatief, zelf als device in ESPHome maken, wat instellen zoals naam en dan manual download. Device flashen via web flasher en daarna naar het AP gaan. En dan ipv de wifi in te stellen kan je dan volgens mij ook een firmware upload doen.
In HA vindt die hetzelf, tenminste in ESPhome in HA. Soms staat die dan als connected en soms ook niet. Dus het is allemaal wel raar volgens mij. Wifi blijft een error geven ook met de juiste credentials in de secrets.yaml.

Kan ik ook manual iets van github toevoegen via ESPhome als die eenmaal geconnect is? En wat moet ik dan precies toevoegen uit github? Is dat een bepaalde file? Ik kom ook niet verder met google over hoe het precies werkt.

[ Voor 7% gewijzigd door User9 op 14-03-2026 16:36 ]

Marstek Venus E 2.0 5,12 kWh v153 | 9x Jinko 435 WP met Enphase iQ8+ | HW P1 6.0304 | Quatt | Vvw | Tibber


  • GJzon
  • Registratie: Juni 2022
  • Laatst online: 22-03 22:57
User9 schreef op zaterdag 14 maart 2026 @ 14:32:
[...]

Ja sterk genoeg. Hij vindt het ook als ik in de log kijk.
Nu zag ik wel dat het wachtwoord in de secrets.yaml verkeerd was, deze heb ik nu goed gezet en het boardje opnieuw geïnstalleerd, maar werkt ook niet. Ook zonder wifi credentials in de secrets.yaml werk het niet.
Dan wil die wel op magische wijze via dezelfde wifi verbinding maken.

[...]

In HA vindt die hetzelf, tenminste in ESPhome in HA. Soms staat die dan als connected en soms ook niet. Dus het is allemaal wel raar volgens mij. Wifi blijft een error geven ook met de juiste credentials in de secrets.yaml.

Kan ik ook manual iets van github toevoegen via ESPhome als die eenmaal geconnect is? En wat moet ik dan precies toevoegen uit github? Is dat een bepaalde file? Ik kom ook niet verder met google over hoe het precies werkt.
Wat ik doe is eerst een first use installatie bij een nieuw device. Via HA -> ESPHome Builder -> +nieuw device. Daarna in de log kijken welk ip adres is toegekend.
Dan in het uiteindelijke programma dit ip adres gebruiken, je wifi gegevens (SSID en password, ota:
- platform: esphome) etc. etc. invoeren en dan installeren via "instal -> plug into this computer. Wachten op de download, bewaren en dan met ESPHome Web aangesloten op een USB pport, dit bestand opzoeken en installeren.
Daarna kun je (althans ik) altijd met OTA verder. Nooit geen problemen.
Wordt gewoon gevonden in HA (d.w.z. ESPHome Builder). En anders middels 'apparaten en diensten -> ESPHome het device selecteren en toevoegen.

[ Voor 6% gewijzigd door GJzon op 15-03-2026 19:16 ]


  • User9
  • Registratie: Februari 2026
  • Laatst online: 23-03 06:45
Ik heb het werkend via deze tool: https://esphome.github.io/esp-web-tools/
Met alle andere dingen kreeg ik het niet voor elkaar. De wifi wou niet connecten en ik kreeg geen ip adres voor het device. Dus ik kon ook niet op visit klikken in ESPhome.
Via die webtool ging het in 1x goed, ook geen wifi errors meer.
Daarna in ESPhome een project voor de Marstek accu er op gezet en dat werkte ook.
Ook een vast ip adres gegeven in de editor anders ging ESPhome naar een .local adres en dat werkte ook niet.

Marstek Venus E 2.0 5,12 kWh v153 | 9x Jinko 435 WP met Enphase iQ8+ | HW P1 6.0304 | Quatt | Vvw | Tibber


  • GJzon
  • Registratie: Juni 2022
  • Laatst online: 22-03 22:57
User9 schreef op zondag 15 maart 2026 @ 18:51:
Ik heb het werkend via deze tool: https://esphome.github.io/esp-web-tools/
Met alle andere dingen kreeg ik het niet voor elkaar. De wifi wou niet connecten en ik kreeg geen ip adres voor het device. Dus ik kon ook niet op visit klikken in ESPhome.
Via die webtool ging het in 1x goed, ook geen wifi errors meer.
Daarna in ESPhome een project voor de Marstek accu er op gezet en dat werkte ook.
Ook een vast ip adres gegeven in de editor anders ging ESPhome naar een .local adres en dat werkte ook niet.
Volgens mij is het dezelfde tool. Via HA kom je op : https://web.esphome.io/?dashboard_install of zo je wilt direct via https://web.esphome.io/

  • DjB42
  • Registratie: Februari 2007
  • Laatst online: 18-03 00:21
Septillion schreef op dinsdag 19 maart 2024 @ 20:03:
@PerlinNoise Hierbij de yaml voor de LCS Smart Connect pluggen (3202087) maar dan bij de buren :) Ik heb er een general device yaml van gemaakt die ik dan importeer in elk device.

Devices\LSC_3202087.yaml
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
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
esphome:
  name: ${device_name}
  friendly_name: ${friendly_name}


bk72xx:
  board: generic-bk7231n-qfn32-tuya

logger:
  baud_rate: 0

web_server:

captive_portal:

mdns:

api:
  encryption:
    key: !secret api_key

ota:
  password: !secret ota_password

wifi:
  networks:
    - ssid: !secret wifi_ssid
      password: !secret wifi_password
  ap:

button:
  - platform: restart
    name: Restart

debug:
  update_interval: 30s

text_sensor:
  - platform: debug
    reset_reason:
      name: Reset Reason
  - platform: libretiny
    version:
      name: LibreTiny Version

sensor:
  - platform: uptime
    name: Uptime
  - platform: hlw8012
    model: BL0937
    update_interval: 500ms
    change_mode_every: 2
    cf_pin:
      number: P26
      inverted: true
    cf1_pin:
      number: P24
      inverted: true
    sel_pin:
      number: P11
      inverted: true
    current:
      name: Current
      id: current
      accuracy_decimals: 3
      on_value:
        component.update: apparent_power
      filters:
        - multiply: ${current_multiply}
        - sliding_window_moving_average:
            window_size: 4
            send_every: 2
    voltage:
      name: Voltage
      id: voltage
      on_value:
        component.update: apparent_power
      filters:
        - sliding_window_moving_average:
            window_size: 4
            send_every: 2
    power:
      name: Power
      id: power
      on_value:
        component.update: power_factor
      filters:
        - sliding_window_moving_average:
            window_size: 4
            send_every: 2
    energy:
      name: Energy
    voltage_divider: ${voltage_divider}
    current_resistor: ${current_resistor}
  - platform: template
    name: "Apparent power"
    id: apparent_power
    unit_of_measurement: VA
    device_class: apparent_power
    lambda: |-
      return id(voltage).state * id(current).state;
    update_interval: never
    on_value:
        component.update: power_factor
  - platform: template
    name: "Power factor"
    id: power_factor
    unit_of_measurement: ''
    device_class: power_factor
    lambda: |-
      return id(power).state / id(apparent_power).state;
    filters:
      - clamp:
          min_value: 0
          max_value: 1
    update_interval: never

binary_sensor:
  - platform: gpio
    id: binary_switch_1
    pin:
      number: P7
      inverted: true
      mode: INPUT_PULLUP
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - switch.toggle: switch_1

switch:
  - platform: gpio
    id: switch_1
    name: none
    pin: P8
    restore_mode: RESTORE_DEFAULT_OFF
    on_turn_on:
      script.execute: set_status_led
    on_turn_off:
      script.execute: set_status_led

light:
  - platform: status_led
    id: light_red
    name: "Red led"
    pin: P6
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    name: "Status led"
    id: blue_led
    output: output_blue_led
    restore_mode: RESTORE_DEFAULT_OFF
    internal: true

output:
  - platform: gpio
    id: output_blue_led
    pin: P10

select:
  - platform: template
    name: "Status led mode"
    id: status_led_mode
    optimistic: true
    restore_value: True
    entity_category: CONFIG
    update_interval: never
    options:
      - "Normal"
      - "Invert"
      - "Off"
    initial_option: "Normal"
    on_value:
      script.execute: set_status_led

script:
  - id: set_status_led
    then:
      - if:
          condition:
            lambda: |-
              return strcmp(id(status_led_mode).state.c_str(), "Normal") == 0;
          then:
            if:
              condition:
                switch.is_on: switch_1
              then:
                light.turn_on: blue_led
              else:
                light.turn_off: blue_led
      - if:
          condition:
            lambda: |-
              return strcmp(id(status_led_mode).state.c_str(), "Invert") == 0;
          then:
            if:
              condition:
                switch.is_on: switch_1
              then:
                light.turn_off: blue_led
              else:
                light.turn_on: blue_led
      - if:
          condition:
            lambda: |-
              return strcmp(id(status_led_mode).state.c_str(), "Off") == 0;
          then:
            light.turn_off: blue_led
En dan in het device:
YAML:
1
2
3
4
5
6
7
8
9
substitutions:
  device_name: foo-bar
  friendly_name: Foo Bar
  voltage_divider: '795'
  current_resistor: '0.001'
  current_multiply: '0.450' 

packages:
  device_base: !include Devices/LSC_3202087.yaml
Waar je dan de naam en exacte kalibratie opgeeft.
Er ligt een nieuwe versie/variant in de schappen bij de Action: de "3202087.1", een op BK7237 BK7238 ipv BK7231N gebaseerde plug met board opschrift T1-2S-NL. De pinout van de 7237 is identiek. Ik denk nog even na over een werkend template. Mocht iemand suggesties hebben of bovenstaande aanpassing behoeft dan houd ik me aanbevolen! De plug meld zich via Tuya ook met een nieuwe string: "LSC Power Plug EU incl. Power meter" ipv de gebruikelijke "LSC Smart Power Plug"

[ Voor 1% gewijzigd door DjB42 op 17-03-2026 13:09 . Reden: foutje in chipnummer ]

Gasloos A+ jaren 30 huis, HomeAssistant, Panasonic H 9KW, SolarEdge + 36 panelen, Hyundai Kona EV 48kW


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@User9 Ik zou hem dus eerst toevoegen aan ESPHome Builder. En pas aan HA als je een specifieke firmware hebt. ESPHome Builder en HA draaien los van elkaar inclusief dus de detectie.

En wil je firmware maken via ESPHome Builder zal je wifi correct in je secrest.yaml moeten staan.

Volgens mij is @GJzon ook correct dat web.esphome.io gewoon een implementatie van ESP Web Tools is dus zou niet uit moeten maken.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@DjB42 Oei, dat is jammer :/ De BK7237 zie ik namelijk niet in de support list van Libre Tiny staan.

Of heb jij hem al weten uit te lezen / programmeren?

  • DjB42
  • Registratie: Februari 2007
  • Laatst online: 18-03 00:21
Septillion schreef op maandag 16 maart 2026 @ 11:16:
@DjB42 Oei, dat is jammer :/ De BK7237 zie ik namelijk niet in de support list van Libre Tiny staan.

Of heb jij hem al weten uit te lezen / programmeren?
Uitlezen was geen probleem, programmeren moet ik nog even proberen...

Gasloos A+ jaren 30 huis, HomeAssistant, Panasonic H 9KW, SolarEdge + 36 panelen, Hyundai Kona EV 48kW


  • marcel3
  • Registratie: Oktober 2010
  • Laatst online: 22:38
DjB42 schreef op maandag 16 maart 2026 @ 10:11:
[...]


Er ligt een nieuwe versie/variant in de schappen bij de Action: de "3202087.1", een op BK7237 ipv BK7231N gebaseerde plug met board opschrift T1-2S-NL. De pinout van de 7237 is identiek. Ik denk nog even na over een werkend template. Mocht iemand suggesties hebben of bovenstaande aanpassing behoeft dan houd ik me aanbevolen! De plug meld zich via Tuya ook met een nieuwe string: "LSC Power Plug EU incl. Power meter" ipv de gebruikelijke "LSC Smart Power Plug"
Hier heb ik er in de loop van de tijd ook veel van in de lokale cloud binnengeharkt, en ze doen het nog allemaal. Maar toch, als ik nu nog een plug zou willen toevoegen dan ga ik voor matter, wel zo makkelijk. Of mis ik dan iets?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@DjB42 Gewoon met ltchiptool uitgelezen? En die detecteert correct?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@marcel3 Mijn eerste Matter (over Wifi) uitstapje was ik nog niet gelijk heel enthousiast over. Was dan wel iets "complexer" dan een plug, namelijk een screen/rolluik module. Daar is de kalibratie weer niet generiek Matter en heb je dus als nog de app van de fabrikant nodig.

Maar daarnaast geeft het je op een plug als dit ook gewoon meer opties die de meeste fabrikanten je niet geven. Ontkoppelen van de knop, of altijd aan, of een auto off timer etc etc. Met ESPHome kan je dat erin bakken en iets als Tasmota ondersteund complexere zaken ook al. Eigenlijk alleen Shelly (en een beetje Sonoff) snapt die behoefte.

  • marcel3
  • Registratie: Oktober 2010
  • Laatst online: 22:38
Septillion schreef op maandag 16 maart 2026 @ 19:58:
@marcel3 Mijn eerste Matter (over Wifi) uitstapje was ik nog niet gelijk heel enthousiast over. Was dan wel iets "complexer" dan een plug, namelijk een screen/rolluik module. Daar is de kalibratie weer niet generiek Matter en heb je dus als nog de app van de fabrikant nodig.

Maar daarnaast geeft het je op een plug als dit ook gewoon meer opties die de meeste fabrikanten je niet geven. Ontkoppelen van de knop, of altijd aan, of een auto off timer etc etc. Met ESPHome kan je dat erin bakken en iets als Tasmota ondersteund complexere zaken ook al. Eigenlijk alleen Shelly (en een beetje Sonoff) snapt die behoefte.
Ah ja dat zijn wel heel specifieke use cases, maar nu je het zegt: ik heb de led van een plug ook wel eens gebruikt als subtiele verklikker voor een geactiveerde alarminstallatie.

  • DjB42
  • Registratie: Februari 2007
  • Laatst online: 18-03 00:21
Septillion schreef op maandag 16 maart 2026 @ 19:54:
@DjB42 Gewoon met ltchiptool uitgelezen? En die detecteert correct?
Uitlezen met ltchiptool gaat goed, maar ik heb nog geen werkende image kunnen maken met esphome builder. Overigens werkt backup en flash met BK7231Easy wel en heb ik de plug nu wel werkend als OpenBK plug via MQTT.

Ik blijf nog even puzzelen op de ESPHome optie...

Gasloos A+ jaren 30 huis, HomeAssistant, Panasonic H 9KW, SolarEdge + 36 panelen, Hyundai Kona EV 48kW


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 21:11

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@DjB42 Dus ltchiptool ziet hem werkelijk als BK7237?

En van OpenBK gebruik je dan gewoon de BK7231N binary?

  • DjB42
  • Registratie: Februari 2007
  • Laatst online: 18-03 00:21
Septillion schreef op dinsdag 17 maart 2026 @ 07:30:
@DjB42 Dus ltchiptool ziet hem werkelijk als BK7237?

En van OpenBK gebruik je dan gewoon de BK7231N binary?
LTchiptool ziet een 7238 (ik schreef eerder per abuis BK7237, maar dat klopt niet) en kan wel een read doen op de chip. Een write lukt ook, maar bij gebrek aan ondersteuning in LibreTiny gaat de stekker daarna in storing. Ik zag een Feature Request bij LT voor support van de 7238, maar die is ongoing. Link naar LibreTiny issue 342

Flashen met OpenBk gaat prima, die heeft ook netjes ondersteuning voor de 7238 en de plug doet daarna prima mee. Alleen in HA hangen is wat omslachtiger dan met ESPHome, vond ik. Link naar BK7231GUIFlashTool waarmee het in 1x flashen werkt.

[ Voor 3% gewijzigd door DjB42 op 17-03-2026 13:10 . Reden: correctie chipnummer ]

Gasloos A+ jaren 30 huis, HomeAssistant, Panasonic H 9KW, SolarEdge + 36 panelen, Hyundai Kona EV 48kW

Pagina: 1 ... 14 15 Laatste

Let op:
Zet je code tussen [code=yaml] [/code] tags om het goed leesbaar te houden; ook makkelijker voor de eventuele foutopsporing.