Het grote ESPhome topic

Pagina: 1 ... 14 15 Laatste
Acties:

  • Stef012
  • Registratie: September 2013
  • Laatst online: 28-02 15:07
@Reptile-X ik heb ook veel met temperatuur senoren gespeeld, tegenwoordig gebruik ik dallas senoren. Deze zijner in een soort 3p vorm en een "pt100" vorm. Ik meet bijvoorbeeld de cv aanvoer en retour. Als het verschil groter is dan 2 graden, schakelen mijn pompen in. Dit werkt al ruim 2 jaar prima.

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

RobertMe schreef op dinsdag 6 januari 2026 @ 06:45:

[...]

Dat ligt toch 100% aan wat je bouwt en waarmee?
@RobertMe, Klopt inderdaad, mechanische onderdelen zoals een schakelaar zal minder problemen opleveren. ESP-borden en ESPHome doen hun werk goed, het gaat meer om de sensoren. Temperatuur sensor heb ik ook op basis van een ESP8266 gebouwd. 

Ik heb ook 4 jaar terug twee bed presence sensoren gebouwd, op basis van een Aqara deur/raam sensor met een microswitch. Werkt ook heel goed.

LD2410C werkt goed voor de rest, als “still target” goed had gewerkt, was het perfect geweest. Daar bouw je een presence sensor voor, anders kan je net zo goed een PIR sensor nemen.

Ik ben benieuwd hoe LD2410C gaat werken, het is ook een ouder model sensor. Ik heb ook LD2420 besteld, en daar ga ik ook mee experimenteren. 

@Stef012, Ik ben ook van plan om dallas sensoren gebruiken voor in de enclosure van mijn 3D printer, omdat ik bijna alleen met ABS print, heb ik verwarming ingebouwd. Op dit moment zit er een Aqara sensor met een display in. Daar heb ik de sensor verlengd met een flat cable. Goed om te horen dat dallas sensoren werken.

Volgend project is een CO₂-sensor op basis van SCD41, ben benieuwd hoe dat gaat werken.

Ik heb ook een JSN-SR04T / AJ-SR04M ultrasoon sensor liggen om het waterniveau te meten in een waterton. Ik moet wel eerst een waterton kopen 8)7

  • paul-s83
  • Registratie: Juni 2010
  • Laatst online: 13:22
Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik wil even een discussie openen over ESPHome in combinatie met Home Assistant. Ik ben benieuwd naar de ervaringen van andere ESPHome i.c.m. HA medegebruikers.

Even voor de duidelijkheid; sensor heb ik nodig om virtuele thermostaat aan te sturen, daar was de Aqara-sensor te traag voor. Aqara werkt voor normale situaties goed, maar niet voor dit. Als de virtuele sensor op 20°C ingesteld wordt en Aqara stuurt de ketel uit dan is het te laat, temperatuur loopt op tot bijna 24°C uit, dit is wel verholpen met BME280.

Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
Heb hier nu een weekje de Diyless Thermostat draaien en werkt als een tierelier moet ik zeggen.

Afbeeldingslocatie: https://tweakers.net/i/TKxJu8o0dbpklg-JzN1lNuDdSoo=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/wD44eMbG4rGyUa0HjtQgnbqK.png?f=user_large

De aqara sensor stuurt als ik mij niet vergis elke 5 minuten de actuele temperatuur uit. Omdat de afstand tussen ketel en de aqara sensor te groot is publiceer ik elke x minuten de actuele waarde via MQTT naar mijn Opentherm gateway.

Dus om de paar minuten vind er wel verandering plaats, lijkt mij niet dat je daardoor van 20 naar 24 graden kan doorschieten?

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

paul-s83 schreef op dinsdag 6 januari 2026 @ 12:23:
[...]
Dus om de paar minuten vind er wel verandering plaats, lijkt mij niet dat je daardoor van 20 naar 24 graden kan doorschieten?
Aqara zigbee sensor die ik had gebruikt "zou" na elk 0,5 °C verschil moeten updaten, maar dat deed ie niet. Soms duurt het wel meer dan 30 minuten voordat het reageert, dit met een volle batterij, dus daardoor was het niet betrouwbaar. Kamer is 9m x 3m met een 500x1800 T22 - 3472 watt radiator, met een temperatuurupdate van 20 minuten (in de meeste gevallen) was het veel te laat.

Hieronder een voorbeeld van twee sensoren, de blauwe lijn is van ESPHome sensor en de gele lijn is van de Aqara zigbee sensor. Zie update verschillen en hoe mooi de ESP sensor reageert. Dit was een moment toen verwarming aangezet werd.
Afbeeldingslocatie: https://tweakers.net/i/kl8rTo3MhghkhhQjOjJ4unUqMkM=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/rAwwY7hVjfmaKoOkCPbIgww8.png?f=user_large

Moment dat ze elkaar kruisen, zie je dat zigbee sensor hele tijd hetzelfde blijft en dat is meer dan 30 minuten. Graad verschil bovenaan was 1 °C , lijkt niet veel maar dit komt door dat ESP sensor ketel heeft uitgezet, toen het andersom was geconfigureerd, dus zigbee sensor aansturing regelde, ESP sensor was al lang op 20 °C maar zigbee sensor had nog lang niet gereageerd, je ziet het wel langzaam omhoog gaan maar niet snel genoeg updates geeft.

  • jvanderneut
  • Registratie: Augustus 2017
  • Laatst online: 27-02 11:16
Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik wil even een discussie openen over ESPHome in combinatie met Home Assistant. Ik ben benieuwd naar de ervaringen van andere ESPHome i.c.m. HA medegebruikers.

Twee weken terug heb ik een ESPHome-temperatuursensor gebouwd en geïntegreerd in HA. Na veel lezen heb ik besloten om met een BME280 sensor te gaan.

Alles ging goed tot ik de sensor in gebruik nam in HA. Het viel gelijk op dat de meting te hoog was. Na even wat zoeken is het me duidelijk geworden BME280 “self-heating issues” heeft, Dus een behuizing ontworpen met zoveel mogelijk gaten erin, maar dat hielp niet. Er zijn verschillende manieren om dit te compenseren. Ik heb de makkelijkste weg gekozen door offset te gebruiken. Dit heb ik bepaald door twee sensoren te vergelijken, de andere sensor was de Aqara sensor die al jaren daar staat. Dit is wel de minste goede manier van calibreren, maar het gaf me wel een idee. Na paar dagen monitoren kwam ik op -3,6 graden uit.
Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.
Ik denk dat je ESPHome moet zien als een doos Lego. Om iets moois te maken moet je het ook slim in elkaar zetten en slim programmeren.

Zo'n BME280 zelf zal geen self-heating issues hebben, dat stroomverbruik meet je in µA. Een ESP met wifi aan verstookt 1000x zoveel. Een andere warmtebron zijn de spanningsregelaars, voor de ESP, en soms hebben BME280 modules ook een (overbodige) regelaar aan boord. Dingen die je kan doen:
- sensor zo ver mogelijk van je ESP
- deep sleep mode van de ESP gebruiken
- clock speed van de ESP naar beneden

Met een warmtebeeld camera is een BME280 niet zichtbaar:
Afbeeldingslocatie: https://tweakers.net/i/GDPDKXBjp6PCVhAlYItHn7slzvY=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/pZVoqYM4x4LbOtZSIra7cWX2.png?f=user_large

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@jvanderneut Bedankt voor de tips. Het was mijn eerste ESPHome project, ik heb na self heating probleem ook zelfde gelezen wat jij beschrijft. Ik heb oversampling lager gezet en het update-interval is op 60s. Ik heb de 3D print case aangepast met ventilatiegaten en de sensor verder geplaatst. Dit heeft wel een graad of anderhalf geholpen.

Ik kan even niet bij de sensor, maar hier is de tekening.
Afbeeldingslocatie: https://tweakers.net/i/9Vc5gr8opWidXehO26THbNjFtxI=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/dm4KBJEYKGBL5M7TF7eYOJDf.png?f=user_large

Ik laat het nu zoals het is, ik ben tevreden hoe het werkt, maar volgende keer ga ik daar zeker rekening mee houden.

Ik ben net klaar met een 3D tekening voor een SCD41 sensor i.c.m. C3 Supermini. Daar heb ik zelfs veel meer gaten in gemaakt. Ik ga het morgen in elkaar zetten.

  • jvanderneut
  • Registratie: Augustus 2017
  • Laatst online: 27-02 11:16
Reptile-X schreef op dinsdag 6 januari 2026 @ 19:09:
Ik ben net klaar met een 3D tekening voor een SCD41 sensor i.c.m. C3 Supermini. Daar heb ik zelfs veel meer gaten in gemaakt. Ik ga het morgen in elkaar zetten.
Je kan eventueel ook met wat schuim o.i.d. je sensor nog wat meer scheiden van de ESP.

De meeste ESP C3 Supermini's hebben trouwens een verkeerd uitgevoerde wifi-antenne, waardoor het wifi signaal zeer matig is en de chip extra opwarmt. Een kleine antenne modificatie los dat op. (Zie bijv. https://hackaday.com/2025...for-better-esp32-c3-wifi/)

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@jvanderneut Weer goeie tips, bedankt, Ik zat te denken om iets in de doorloop te proppen waar draden lopen, thermische overdracht van de draden helpt waarschijnlijk ook niet.

Die antenne is een goeie oplossing, C3 supermini die ik voor de presence sensor gebruik, wordt 55°C met uitschieters tot 60°C. Wifi verbinding lijk goed te gaan tot nu toe.

Ik heb exact hetzelfde model als die gemodificeerde C3. Ik heb er nog 10 van liggen, vorige maand ingeslagen voordat gedoe begint met NL/EU nvoerkosten. Voor het aankomende project heb ik al de behuizing geprint, maar de volgende ga ik wel met zo'n antenne proberen, denk ik. Moet nog wel de juiste draad bestellen daarvoor.

EDIT:
Ongeduldig dat ik ben, ik kon het niet laten om zo'n antenne op te solderen, ik had 0.8 mm draad of 1.5mm installatiedraad. In het artikel deed 0.8 niet zo goed als 1mm dus maar met 1.5mm draad gedaan. Ik ga het morgen vergelijken als ik tijd heb.

Zo is het geworden, koper gaat uiteindelijk oxideren, maar ik kan het altijd vervangen door een verzilverd koperdraad.
Afbeeldingslocatie: https://tweakers.net/i/UCasGeER_EZE4BkH_mfiLI-7Utc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/9OqhYqBCHHSAMrRMSjOcMjgW.png?f=user_large

Nu moet ik de behuizing aanpassen...
Afbeeldingslocatie: https://tweakers.net/i/b9GCfUmt_zBSuH8uL2MD4qqwJFo=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/YgfcCrnqHSPRQRg9CVKenhO0.png?f=user_large

[ Voor 38% gewijzigd door Reptile-X op 06-01-2026 22:55 ]


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Reptile-X schreef op dinsdag 6 januari 2026 @ 21:30:
Ik heb exact hetzelfde model als die gemodificeerde C3. Ik heb er nog 10 van liggen, vorige maand ingeslagen voordat gedoe begint met NL/EU nvoerkosten.
Echt exact dezelfde, tot op de millimeter? Want ik had het nog even nagekeken, en het verschil tussen goed en fout is letterlijk 1 millimeter. Er "hoort" ~3,5mm te zijn van het zichtbare randje tot waar het PCB "gebruikt" wordt (/de eerste/laatste pin) en bij de foute is dat ~2,5mm. Die "C3" bovenaan is de antenne en die hoort vrij geplaatst te zijn, en dat beetje verschil (door het 1mm korter zijnde PCB?) is al "voldoende" dat het bereik flink afneemt.

Plaatje van Reddit:
Afbeeldingslocatie: https://external-preview.redd.it/warning-some-c3-super-mini-boards-have-a-design-flaw-that-v0-wEo40lwkzzgAd4-AtkYX2MrQYk7PjVoSLPcLbJRradA.jpg?width=640&crop=smart&auto=webp&s=0ae991c34cbc537d36c2416beec54134dafa5eae

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@RobertMe, Ik heb hem toevallig in mijn hand, samen met een schuifmaat, om de behuizing aan te passen. Die van mij is 2.5mm versie.,,,

[ Voor 5% gewijzigd door Reptile-X op 06-01-2026 23:14 ]


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Reptile-X schreef op dinsdag 6 januari 2026 @ 23:13:
@RobertMe, Ik heb hem toevallig in mijn hand, samen met een schuifmaat, om de behuizing aan te passen. Die van mij is 2.5mm versie.,,,
Ik had zelf net ook eens gemeten, heb er een paar, ongebruikt, en die binnen handbereik was wel juist. Je zou het natuurlijk ook kunnen zien aan de afstand tussen C3 en de "(soldeer)lijnen" op het PCB, in dat plaatje van mijn vorige post zie je links duidelijk iets van afstand en rechts veel minder. Dat heb ikzelf "nu" niet nagekeken.

Maar wel crap dat je nu nieuwe hebt en ze niet goed zijn. Ik heb al maanden terug van dit probleem gelezen. Je zou dus verwachten dat "ze" allemaal hun proces hebben aangepast.

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@RobertMe Eerlijk gezegd maak ik me er niet zo druk om. Eerst heb ik al drie dagen draaien geen problemen met verbinding gehad, meerdere malen wireless updates uitgevoerd, anderhalf uur geleden nog gecontroleerd. Het is niet perfect, maar ziet er ook niet heel slecht uit:
Afbeeldingslocatie: https://tweakers.net/i/9WOcZfobzDBYbTPZaA4wjt8DsUo=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/7O7xyFx8nmu8Ia5NhyLEQo6U.png?f=user_large

Ben benieuwd of de antenneversie betere verbinding heeft.

  • Btje
  • Registratie: November 2002
  • Laatst online: 27-02 10:34
welke custom card is dit?
Reptile-X schreef op dinsdag 6 januari 2026 @ 01:06:
Ik wil even een discussie openen over ESPHome in combinatie met Home Assistant. Ik ben benieuwd naar de ervaringen van andere ESPHome i.c.m. HA medegebruikers.

Twee weken terug heb ik een ESPHome-temperatuursensor gebouwd en geïntegreerd in HA. Na veel lezen heb ik besloten om met een BME280 sensor te gaan.

Alles ging goed tot ik de sensor in gebruik nam in HA. Het viel gelijk op dat de meting te hoog was. Na even wat zoeken is het me duidelijk geworden BME280 “self-heating issues” heeft, Dus een behuizing ontworpen met zoveel mogelijk gaten erin, maar dat hielp niet. Er zijn verschillende manieren om dit te compenseren. Ik heb de makkelijkste weg gekozen door offset te gebruiken. Dit heb ik bepaald door twee sensoren te vergelijken, de andere sensor was de Aqara sensor die al jaren daar staat. Dit is wel de minste goede manier van calibreren, maar het gaf me wel een idee. Na paar dagen monitoren kwam ik op -3,6 graden uit.

Het draait nu redelijk goed, paar tiendes verschil is te verwaarlozen. De blauwe lijn is de NME280:
[Afbeelding]

Even voor de duidelijkheid; sensor heb ik nodig om virtuele thermostaat aan te sturen, daar was de Aqara-sensor te traag voor. Aqara werkt voor normale situaties goed, maar niet voor dit. Als de virtuele sensor op 20°C ingesteld wordt en Aqara stuurt de ketel uit dan is het te laat, temperatuur loopt op tot bijna 24°C uit, dit is wel verholpen met BME280.

Conclusie is dat je internet niet moet vertrouwen. Dit wist ik al, maar je moet toch ergens beginnen. De meeste deden alsof het een perfecte sensor was, maar heeft toch zijn nukken… 

Maar ik ben waarschijnlijk niet slim genoeg om daar les uit te trekken. Volgend project was een presence sensor bouwen. Na weer op internet te hebben gestruind, kwam ik op een LD2450-sensor uit. Het zou een geweldige sensor zijn.

Min of meer is het ook zo, maar stilstaand doel detecteren, ho maar, dat schijnt niet zijn sterkste kant te zijn, maar daar wil ik het juist voor. Na bijna alle kamers in huis te hebben geprobeerd, kwam ik erachter dat het weer te goed was voor het detecteren van dingen dwars door deuren en muren (gipsblokwanden). Uiteindelijk heb ik het in mijn hobbykamer geplaatst. Gelukkig is het mogelijk om zones in te stellen via Bluetooth en een app van HKL (merk van de sensor) of via HA.

Eerlijk is eerlijk, het is wel erg goedkoop om er een te bouwen. Totale kosten voor deze sensor samen met een ESP32 C3 super mini waren maar €5 (en een USB-voeding natuurlijk). Dit voor EU en NL invoerrechten en toeslaggedoe net voor 2026.

Het is ook mogelijk om radar in een dashboard toe te voegen via een custom card:
[Afbeelding]

Omdat ik toch graag stilstaande objecten wil detecteren, heb ik een andere sensor besteld, dit keer een LD2410C. Schijnt beter te zijn voor stilstaan target presence. 

Ben benieuwd of deze sensor weer andere problemen geeft, want je komt er pas achter als je er een in gebruik neemt. Dan pas ga je naar een specifiek probleem zoeken op interwebs…

Ik zou graag willen weten wat jullie bevindingen zijn met ESPHome en zelfgebouwde sensoren. Ik vind het leuk om ermee te experimenteren, nu ik even vrije tijd heb. Maar ik had iets meer solide “DIY” sensoren verwacht.

[mbr]Onder aan de streep meer een ESPHome discussie[/]

Xiaomi 13T Pro


  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!


  • Btje
  • Registratie: November 2002
  • Laatst online: 27-02 10:34

Xiaomi 13T Pro


  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@Btje Natuurlijk wil ik dat wel, maar het is best lastig uit te leggen wat je allemaal moet veranderen. Ik had zelf ook eerst moeite met kant-en-klare yaml's.

Deze jongen hier legt precies uit wat je moet doen om het werkend te krijgen, hij heeft ook yaml op zijn website.
Video start waar hij begint uit te leggen
Zijn website waar hij het over heeft met de yaml, ergens onderaan

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

CO₂-sensor bij elkaar gesoldeerd en toegevoegd in ESPHome en HA. Ik heb de ESP32-C3 Super Mini gebruikt met de antenne die ik gisteren opgezet had.

Ik heb de eerder gemaakte Presence Sensor met hetzelfde type ESP32-C3 en nieuwe 5cm naast elkaar gezet en het verschil in wifi-verbinding is duidelijk te zien. Temperaturen zijn ook behoorlijk uit elkaar. Natuurlijk hebben beide borden verschillende sensoren nu, maar als de presence sensor niet bezig is, dus geen mensen/dieren in de buurt, dan heeft 'ie weinig te verwerken.

Nieuwe CO₂-sensor:
Afbeeldingslocatie: https://tweakers.net/i/UWKvm_Os9HwAUOfnJvIfzsF_bkA=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/SckrL50nrB2PFqRW4ESxZdIl.png?f=user_large

Presence sensor:
Afbeeldingslocatie: https://tweakers.net/i/tH4QQt0Gt3PrY-lTD6tJJ5CG_z4=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/CcKCrjjbRHIxjqjHZLaJxBhn.png?f=user_large

Sensor ziet er zo uit:
Afbeeldingslocatie: https://tweakers.net/i/Ac-DpYf-mVtybO8Wc93g2A0t8UE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/OODegU3HQTFJaPqw74XgV6pV.jpg?f=user_large
ABS printen met veel gaten in de print in een koude hobbykamer, ondanks verwarmde behuizing, was best moeizaam.

@jvanderneut Nogmaals bedankt voor de antene tip, werkt heel goed!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 13:44

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@Reptile-X Heb je foto hoe je antennemod er nu bij jouw uitziet?

Moet ik hier misschien ook eens proberen :)

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Septillion schreef op woensdag 7 januari 2026 @ 17:41:
@Reptile-X Heb je foto hoe je antennemod er nu bij jouw uitziet?

Moet ik hier misschien ook eens proberen :)
Die staat hier: Reptile-X in "Het grote ESPhome topic"

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 13:44

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@RobertMe Ja, hé, edits nadat ik de post al gelezen had :+

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@Septillion Oeps, sorry ik dacht niemand heeft na mij gepost en het was maar anderhalve uur later :o

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
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?

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@RobertMe Ik ben te nieuw (n00b) in ESP spullen, maar bij mijn eerste project had ik ook moeite om te verbinden. Ik maak de eerste verbinding via USB op de NUC waar Home Assistant op staat met ESPHome Builder. Het was een oude ESP8266 met een micro usb, en ik had geen idee of mijn kabels data kon overdragen, uiteindelijk niet dus. Ik had nog zo'n USB-kabeltester liggen, daarmee heb ik een kabel kunnen vinden die werkt. Ik zou je kabels testen om bijvoorbeeld je telefoon op je PC te aansluiten en kijken of je foto's kan afhalen bijvoorbeeld.


Ik heb zelf ook een vraagje, de CO2 sensor draait al een tijdje. Fijn om te weten dat het bij ons iets te hoog is we kunnen er in ieder geval wat aan doen.

Echter, ESPHome laat de waarde zonder punten zien als het boven 1000 komt, maar HA laat 1.000 zien, ik heb juist een template sensor gemaakt om het visueel makkelijk leesbaar te maken.

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    - sensor:
      - unique_id: 2dfb8359123-1234-9909-123456789123
        name: "CO2 Meting WK"
        icon: mdi:molecule-co2
        state: >-
          {% set temp = states('sensor.wk_co2_sensor_woonkamer_co2') | float %}
          {% if temp <= 800 %}
            goed
          {% elif temp <= 1200 %}
            redelijk
          {% elif temp >= 1201 %}
            slecht
          {% else %}
            error
          {% endif %}


En ik voeg het toe aan het dashboard, zodat je alleen kleuren ziet:
YAML:
1
2
3
4
5
6
7
8
      - type: image
        entity: sensor.co2_meting_wk
        state_image:
          goed: local/images/groen.png
          redelijk: local/images/geel.png
          slecht: local/images/rood.png
          unavailable: local/images/nav.png
 


Dit werkte natuurlijk niet toen het net boven 1000 schoot, zoals ik had gezegd. Ik heb ESPHome nagekeken, daar is het 1032 en in HA verschijnt het als 1.032

Ik zocht een filter hiervoor, maar het is me niet duidelijk of er een bestaat. In HA Precisie weergeven heeft ook geen optie om een te kiezen zonder punt.

[ Voor 0% gewijzigd door Reptile-X op 07-01-2026 22:40 . Reden: Er zat een foutje in de code, dit hersteld. ]


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Reptile-X schreef op woensdag 7 januari 2026 @ 21:16:
@RobertMe Ik ben te nieuw (n00b) in ESP spullen, maar bij mijn eerste project had ik ook moeite om te verbinden. Ik maak de eerste verbinding via USB op de NUC waar Home Assistant op staat met ESPHome Builder. Het was een oude ESP8266 met een micro usb, en ik had geen idee of mijn kabels data kon overdragen, uiteindelijk niet dus. Ik had nog zo'n USB-kabeltester liggen, daarmee heb ik een kabel kunnen vinden die werkt. Ik zou je kabels testen om bijvoorbeeld je telefoon op je PC te aansluiten en kijken of je foto's kan afhalen bijvoorbeeld.
Als de kabel niet werkt kan esptool natuurlijk niet weergeven dat het om een ESP32-S3 gaat incl het mac adres ervan ;) Nog los van dat ik aangeef dat ik ook met de kabel van mijn (bedrade) toetsenbord heb getest en die kabel dus werkt omdat ik anders het bericht niet kon typen :p En "linux" plingeld dus ook voor nieuw aangesloten hardware. Als de kabel alleen stroom leverde kon die niet weten dat (/wat) iets was aangesloten. (Incl vermelding van of een "Chinese" seriële adapter of Espressif USB/JTAG afhankelijk van de gebruikte USB poort).

+ intussen heb ik nog een C3 over dezelfde (niet toetsenbord) kabel geflasht.

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@RobertMe zoals ik al had gezegd, het was een n00b suggestie 8)7

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

Om mijn eigen vraag hier te beantwoorden, ik heb het gevonden. Duizend wordt nu al 1000 weergegeven i.p.v. 1.000

Het zat in de gebruikersinstellingen van HA, getalnotatie zat op automatisch. Ik heb het nu op Geen gezet:
Afbeeldingslocatie: https://tweakers.net/i/oueqcghcxUdpJdGOnw89ONZEOYQ=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/JshCdmyWboJKjVefKYdNdCBE.png?f=user_large

[ Voor 9% gewijzigd door Reptile-X op 07-01-2026 22:21 ]


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Reptile-X schreef op woensdag 7 januari 2026 @ 22:20:
Om mijn eigen vraag hier te beantwoorden, ik heb het gevonden. Duizend wordt nu al 1000 weergegeven i.p.v. 1.000

Het zat in de gebruikersinstellingen van HA, getalnotatie zat op automatisch. Ik heb het nu op Geen gezet:
[Afbeelding]
Volgens mij maakt dat niks uit? De aanpassing die je nu hebt gedaan is puur voor het frontend. Ik zie bij mij ook "Number format: Automatic" met als voorbeeld "1,234,567.89". Maar als ik vervolgens bij DevTools => States kijk staan daar gewoon sensoren in de vorm van 1234567.89. En automations werken ook gewoon met de ruwe state en niet met de formatted state. Dus als de sensor 1000 is dan moet states(...) ook de string 1000 zijn en na de float filter dus 1000 als float. En de rest van het Jinja2 template moet dan ook gewoon werken. De getalnotatie die je hebt ingesteld heeft hier dus geen betrekking op.

Edit/aanvulling:
Ook dus omdat de getalnotatie een gebruiekrsspecifieke instelling is en automations natuurlijk niet gekoppeld aan een gebruiker zijn. Dus er is niet eens een "getalnotatie".

[ Voor 7% gewijzigd door RobertMe op 07-01-2026 22:41 ]


  • chaoscontrol
  • Registratie: Juli 2005
  • Laatst online: 11:05
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?
je moet de poort met COM gebruiken. Misschien moet je hem in boot mode zetten. BOOT ingedrukt houden, dan even resetten met de andere button (RST) en dan BOOT weer los laten.

Inventaris - Koop mijn meuk!


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
chaoscontrol schreef op woensdag 7 januari 2026 @ 22:52:
[...]

je moet de poort met COM gebruiken. Misschien moet je hem in boot mode zetten. BOOT ingedrukt houden, dan even resetten met de andere button (RST) en dan BOOT weer los laten.
Helaas had ik dat ook al geprobeerd (ook weer op beide poorten), maar vergeten te vermelden. Incl dus boot ingedrukt houden, reset "klikken" en boot los laten.

Ik vermoed dat er dus ergens een hardwarematig defect is waardoor die de boot mode niet activeert. Noch via de boot button noch via de serial interface / chip. Want normaliter zou die dus "automatisch" geactiveerd moeten worden door esptool, apart serial commando waarmee die de "juiste" GPIOs hoog/laag trekt om boot mode te activeren op de ESP.

Ik zou nog zelf een serial adapter er aan kunnen hangen (heb zo'n USB serial adapter met de 4 headers voor TX/RX/GND/(5V/3.3V)), maar ik verwacht daarvan hetzelfde resultaat. Ik vermoed dat ik dan sowieso boot zelf moet activeren (niet over serial kan) waarbij het dus niet uit zal maken of die aan USB of aan "GPIOs" hangt v.w.b. stroom en serial.

Of wat ik nog kan proberen is de GPIOs voor boot en reset. Boot is GPIO0 en die zit volgens mij ook gewoon op een "poort" (/header na solderen) en reset is mogelijk ook exposed. Misschien dat die wel werken. (En mogelijk kan ik de werking van de knoppen testen met een multimeter op de headers)

Edit/aanvulling:
Trouwens exposed de C3 (super mini) zich over USB als "Espressif USB/JTAG" of zoiets. En dat is identiek aan de USB poort op de S3. Eigenlijk verwacht ik dus dat beiden zouden moeten werken. [small]Maakt alleen het boot/reset verhaal over serial "raar". Want dan zit er geen losse serial adapter meer op die de GPIOs kan pullen. Zal dan wel weer een "software" feature in de ESP zelf zijn. Om bij bepaalde commando's boot mode te activeren (al dan niet door binnen de ESP zelf de GPIOs te pullen, of gewoon een software based "reboot" te doen).

[ Voor 16% gewijzigd door RobertMe op 07-01-2026 23:10 ]


  • DjoeC
  • Registratie: November 2018
  • Laatst online: 14:42
Ik heb alleen ervaring met de esp8266 en die heeft naar ik meen een verbinding tussen RST en GND nodig om via te kunnen flashen en rebooten. Kan dat hier ook het probleem zijn?

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@RobertMe Ik weet het niet, maar mijn template sensor heeft niet gewerkt, omdat er een punt in duizend zat. Toen ik het had gemaakt, was de waarde ergens net boven 800. Zodra deze boven 1200 ging, kreeg ik de error die ik zelf had ingezet. Ik heb die instelling veranderd, of het gebruikerafhankelijk is of niet, template sensor begon te werken na een restart. (Ik had eerst ook een restart gedaan natuurlijk.)

Ik hou het in de gaten, het blijft net boven 1200 hangen. Kijken of het allemaal goed werkt of ik toch iets fout gedaan heb. Dat zie ik pas als het weer lager dan 1200 wordt. Ik ga geen ramen openen met dit weer, terwijl ik hier zit :P

Morgenochtend gaat de ventilatie open.
Ik ben raamventilaties aan het automatiseren, vandaar deze sensor ook.

  • InjecTioN
  • Registratie: Juli 2005
  • Laatst online: 12:38

InjecTioN

¯\_(ツ)_/¯

RobertMe schreef op woensdag 7 januari 2026 @ 23:06:
[...]

Helaas had ik dat ook al geprobeerd (ook weer op beide poorten), maar vergeten te vermelden. Incl dus boot ingedrukt houden, reset "klikken" en boot los laten.

Ik vermoed dat er dus ergens een hardwarematig defect is waardoor die de boot mode niet activeert. Noch via de boot button noch via de serial interface / chip. Want normaliter zou die dus "automatisch" geactiveerd moeten worden door esptool, apart serial commando waarmee die de "juiste" GPIOs hoog/laag trekt om boot mode te activeren op de ESP.

Ik zou nog zelf een serial adapter er aan kunnen hangen (heb zo'n USB serial adapter met de 4 headers voor TX/RX/GND/(5V/3.3V)), maar ik verwacht daarvan hetzelfde resultaat. Ik vermoed dat ik dan sowieso boot zelf moet activeren (niet over serial kan) waarbij het dus niet uit zal maken of die aan USB of aan "GPIOs" hangt v.w.b. stroom en serial.

Of wat ik nog kan proberen is de GPIOs voor boot en reset. Boot is GPIO0 en die zit volgens mij ook gewoon op een "poort" (/header na solderen) en reset is mogelijk ook exposed. Misschien dat die wel werken. (En mogelijk kan ik de werking van de knoppen testen met een multimeter op de headers)

Edit/aanvulling:
Trouwens exposed de C3 (super mini) zich over USB als "Espressif USB/JTAG" of zoiets. En dat is identiek aan de USB poort op de S3. Eigenlijk verwacht ik dus dat beiden zouden moeten werken. [small]Maakt alleen het boot/reset verhaal over serial "raar". Want dan zit er geen losse serial adapter meer op die de GPIOs kan pullen. Zal dan wel weer een "software" feature in de ESP zelf zijn. Om bij bepaalde commando's boot mode te activeren (al dan niet door binnen de ESP zelf de GPIOs te pullen, of gewoon een software based "reboot" te doen).
Ik heb een tijd geleden een ESP32 uit China over laten komen die een configuratie erop had staan die op geen enkele manier in boot mode wilde gaan. Vervolgens heb ik een pin van GPIO0 naar GND verbonden, opnieuw via usb ingeprikt, waarna die direct naar boot mode ging. Vervolgens ESPhome erop gezet. Sindsdien ook geen issues meer met in boot mode starten.

Misschien dat het werkt? ¯\_(ツ)_/¯

Edit: zoek het vooral ook even op in de datasheet van jouw specifieke model.

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


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
InjecTioN schreef op donderdag 8 januari 2026 @ 08:31:
[...]

Ik heb een tijd geleden een ESP32 uit China over laten komen die een configuratie erop had staan die op geen enkele manier in boot mode wilde gaan. Vervolgens heb ik een pin van GPIO0 naar GND verbonden, opnieuw via usb ingeprikt, waarna die direct naar boot mode ging. Vervolgens ESPhome erop gezet. Sindsdien ook geen issues meer met in boot mode starten.

Misschien dat het werkt? ¯\_(ツ)_/¯

Edit: zoek het vooral ook even op in de datasheet van jouw specifieke model.
Thanks voor de suggestie, en in principe wat ik gisteren ook zelf al aangaf dat wellicht zou kunnen werken.

Net even geprobeerd, maar... ook dit werkt niet. Verschillende kabels geprobeerd in combinatie met 2 verschillende GND poorten (GPIO0 is er uiteraard maar 1). Op https://docs.espressif.co.../boot-mode-selection.html staat ook dat het om GPIO0 gaat bij de ESP32-S3, die met GND verbonden moet worden. Dus het is wel de correcte "procedure". Daarnaast staat daar ook dat vele bordjes een FLASH of BOOT knop hebben die hetzelfde doet tijdens reset / opstarten. En dat had ik gisteren ook al geprobeerd.

Wat jij impliciet wel aangeeft is dat USB aansluiten ook een RESET is (gelijk aan de knop en ook daarvoor is er een GPIO). Dus een defecte RESET knop/aansluiting is daarmee ook uitgesloten.

Ik ga er dan maar vanuit dat het een defect bord is. En later vandaag maar eens kijken wat de verkoper / Ali er van zegt. Het was in ieder geval wel een shop die al vele bordjes verkocht had incl. positieve reviews. Dus (dit keer eens :P) niet gewoon de goedkoopste shop met 5 verkocht en 0 reviews.

  • InjecTioN
  • Registratie: Juli 2005
  • Laatst online: 12:38

InjecTioN

¯\_(ツ)_/¯

RobertMe schreef op donderdag 8 januari 2026 @ 09:16:
[...]

Thanks voor de suggestie, en in principe wat ik gisteren ook zelf al aangaf dat wellicht zou kunnen werken.

Net even geprobeerd, maar... ook dit werkt niet. Verschillende kabels geprobeerd in combinatie met 2 verschillende GND poorten (GPIO0 is er uiteraard maar 1). Op https://docs.espressif.co.../boot-mode-selection.html staat ook dat het om GPIO0 gaat bij de ESP32-S3, die met GND verbonden moet worden. Dus het is wel de correcte "procedure". Daarnaast staat daar ook dat vele bordjes een FLASH of BOOT knop hebben die hetzelfde doet tijdens reset / opstarten. En dat had ik gisteren ook al geprobeerd.

Wat jij impliciet wel aangeeft is dat USB aansluiten ook een RESET is (gelijk aan de knop en ook daarvoor is er een GPIO). Dus een defecte RESET knop/aansluiting is daarmee ook uitgesloten.

Ik ga er dan maar vanuit dat het een defect bord is. En later vandaag maar eens kijken wat de verkoper / Ali er van zegt. Het was in ieder geval wel een shop die al vele bordjes verkocht had incl. positieve reviews. Dus (dit keer eens :P) niet gewoon de goedkoopste shop met 5 verkocht en 0 reviews.
Ik doelde met USB aansluiten meer op voeding (en direct serial connection) inschakelen. Dat is direct een reset. Maar je kan natuurlijk het apparaat gewoon verbinden met je PC en eerst eens zien of de serial port beschikbaar komt in `/dev/ttyUSB*` of onder Device Manager. Als dat zo is, even een console starten met bijvoorbeeld `screen` of putty onder Windows. Dan zie je of er überhaupt iets gebeurt. Dan kan je ook zien of de knoppen iets van feedback geven. (let wel even op de baud rate, wat kan verschillen per ESP model - ik heb uit mijn hoofd geen idee welke baud rate die gebruikt). :)

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


  • Ruimzicht
  • Registratie: Juni 2004
  • Laatst online: 19-02 11:12
@Reptile-X Nog een vraag over jouw antenne: heb jij de totale lengte wel op 31mm gehouden? Ik las wat verwarring over - en dat het nogal invloed heeft of alleen het opstaande deel 31mm is of de totale lengte van draad inclusief loop.

Hier ondertussen ook maar wat ESP32-C3's besteld om mee te klussen...

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@Ruimzicht Ik heb inderdaad 31mm aangehouden, eerst 10cm 1,5mm² installatiedraad gestript en 31mm ergens in het midden gemarkeerd, om een boor van 5mm gevouwen en dan op de markeringen geknipt.

Ik heb wel 1mm² verzilverd koperen draad besteld, 1,5mm² is net even te stug om goed mee te werken op zo'n printplaatje.

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
InjecTioN schreef op donderdag 8 januari 2026 @ 10:02:
Maar je kan natuurlijk het apparaat gewoon verbinden met je PC en eerst eens zien of de serial port beschikbaar komt in `/dev/ttyUSB*` of onder Device Manager. Als dat zo is, even een console starten met bijvoorbeeld `screen` of putty onder Windows. Dan zie je of er überhaupt iets gebeurt.
Serieel werkt, want esptool kan de hardware info opvragen (laat zien dat het om een ESP32-S3 gaat en geeft het MAC adres weer). Dat zou natuurlijk niet kunnen zonder werkende seriele verbinding.
Dan kan je ook zien of de knoppen iets van feedback geven.
Gezien die ook niet in de boot/flash mode komt bij het "kortsluiten" van GPIO0 en GND zal het niet heel veel uit maken of de knoppen enig teken van leven geven.
Effectief zouden er 3 manieren zijn om in boot/flash mode te komen. Via de seriële interface in combinatie met een specifiek commando; Via de boot knop (gecombineerd met reset / stroom aansluiten); Door GPIO0 op GND aan te sluiten (gecombineerd met reset / stroom aansluiten).
Dat één methode defect is en de rest werkt lijkt ne onwaarschijnlijk. Dat 2 of 3 methode defect zijn maar er nog een derde/vierde methode is die wel werkt lijkt me onwaarschijnlijk. Het meest voordehand liggende zal zijn dat de ESP zelf of een defecte GPIO0 of iets dergelijks heeft of dat op het bord deze drie methode dan alle drie op GPIO0 zijn aangesloten met een gecombineerde trace die ergens eerder stuk is.
Ik zou dus de multimeter op GPIO0 en GND kunnen zetten en ik vermoed dan te zien dat die "open" / "dicht" staat afhankelijk van of de boot knop is ingedrukt. En theoretisch zou je dat lijkt mij ook behoren te zien als je over USB een flash start en de seriële chip dus een boot triggert over de GPIO (alleen zal die zo kort triggeren dat je het op een multimeter waarschijnlijk niet ziet).

  • Driek
  • Registratie: Maart 2002
  • Laatst online: 13:45
Voor mijn onthadingszoutvoorraad uit te lezen wil graag een hc-sr04 op een esp32 c3 aansluiten.
Ik dien dan de trigger en de echo pin (naast de 5v en ggnd) aan te sluiten.
Ik zou alleen niet weten welke pinnen er geschikt zijn.

YAML:
1
2
3
4
5
sensor:
  - platform: ultrasonic
    trigger_pin: D1
    echo_pin: D2
    name: "Ultrasonic Sensor"

https://esphome.io/components/sensor/ultrasonic/

iemand een idee welke pinnen ik voor de trigger en echo van de c3 kan gebruiken?

Tijd van werken, tijd van rusten


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 13:44

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@Driek Heb je geen specifieke pin voor nodig dus elke die je anders ook zou gebruiken. Mooie uiteenzetting van de pinnen hier.

Let wel op, de echo pin stuurt 5V uit en de ESP kan daar officieel niet tegen. Dus die voorzien van een spanningsdeler.

  • Driek
  • Registratie: Maart 2002
  • Laatst online: 13:45
Septillion schreef op donderdag 8 januari 2026 @ 16:01:
@Driek Heb je geen specifieke pin voor nodig dus elke die je anders ook zou gebruiken. Mooie uiteenzetting van de pinnen hier.

Let wel op, de echo pin stuurt 5V uit en de ESP kan daar officieel niet tegen. Dus die voorzien van een spanningsdeler.
Thanks,
ik heb nog een nodemcu ESP8266 liggen, dan kan ik de spanningsdeler skippen en deze layout volgen.
https://randomnerdtutoria...-sr04-ultrasonic-arduino/

Tijd van werken, tijd van rusten


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 13:44

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@Driek Nee, die kan er ook niet tegen. Nu zeggen veel dat hun ESP het overleeft maar officieel zijn alle ESP's niet 5V compatible.

  • Reptile-X
  • Registratie: Oktober 2001
  • Laatst online: 13:16

Reptile-X

߀ åf®åîÐ!

@RobertMe Ik kreeg vandaag 5 super mini's binnen. Omdat wij over de afstand van de antenne op de printplaat hadden besproken, viel me bij de nieuwe gelijk op dat deze meer ruimte had.

Toen dacht ik, ik ga even de andere borden controleren die ik heb, want ik heb de laatste tijd bij verschillende Aliexpress winkels besteld.

Ik heb het even nagemeten, het kan zelfs nog erger dan 2,5mm zijn, ik heb paar tussen zitten met 1.8mm afstand.

Afbeeldingslocatie: https://tweakers.net/i/XmjZuS4NSY0gSCr-y6o8QR9zE7E=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/y77iRfvJD45EbitouRx11SrS.png?f=user_large

Linker heb ik vandaag binnengekregen, met merk Tenstar op, ik had het 3 januari besteld en het heeft maar 5 dagen geduurd voordat het geleverd werd, er is ook geen EU/NL toeslag opgelegd, ik weet niet wanneer ze daarmee beginnen.

Ik heb €1,69 p.s. voor betaald met zo'n choice-optie na €10 gratis verzenden.
Het is nu iets duurder, maar als mensen willen bestellen:
https://nl.aliexpress.com/item/1005006599545782.html

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Reptile-X schreef op donderdag 8 januari 2026 @ 16:05:
Linker heb ik vandaag binnengekregen, met merk Tenstar op
Daar kwamen de mijne zo te zien ook vandaan. Zo te zien besteld op 12 januari, 2024, en nog niks mee gedaan :+. Zo te zien nu wel nog iets goedkoper (paar cent).

En mijn bestelling "van kerst" (letterlijk tijdens het kerstdiner mail krijgen dat "vliegtuig is geland") zit een H2 van bij hun bij. En daar heb ik nu net even een compleet lege ESPHome firmware op gezet. Ding doet "dus" geen wifi, dus de wifi, network, ota, integraties er allemaal uit gegooid. Gewoon even lekker compacte firmware (scheelt compilatie tijd op mijn N5105 servertje) en die flashte vanaf de CLI gewoon prima (vanuit Chromium leek die het niet te doen, geen idee).

En de S3, van andere store, net maar eens een bericht gestuurd....

  • Driek
  • Registratie: Maart 2002
  • Laatst online: 13:45
Septillion schreef op donderdag 8 januari 2026 @ 16:05:
@Driek Nee, die kan er ook niet tegen. Nu zeggen veel dat hun ESP het overleeft maar officieel zijn alle ESP's niet 5V compatible.
Oh, dat leek de link wel te suggeren.
Dan moet ik me toch even verdiepen in een spanningsdeler.

Tijd van werken, tijd van rusten


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Je kunt ook een level-shifter ertussen zetten voor de trigger en echo. Dan weet je in ieder geval dat ook de trigger 5v krijgt ipv de 3,3 volt die de esp levert.

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


  • Der Rudi
  • Registratie: Mei 2002
  • Laatst online: 14:49
Idd level shifter is beter. Bv deze https://nl.aliexpress.com/item/1005006255186878.html
Maar er zijn op andere plaatsen ook te vinden Tinytronics bv https://www.tinytronics.n...level-converter-4-kanaals

[ Voor 50% gewijzigd door Der Rudi op 08-01-2026 18:59 ]


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 13:44

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
Levelshifter kan ook. Maar van 3v3 is boven de threshold van meeste 5V TTL devices. En bijvoorbeeld Mouser zegt dat het prima is. En dan zou ik ook niet moeilijker doen dan nodig voor signaal terug. 10k en 15k en gaan. Zelfs 2x 10k zal al wel prima werken.

Ik zie overigens ook dat er specifiek 3V3 modellen van de HC-SR04 verkrijgbaar zijn.

  • Driek
  • Registratie: Maart 2002
  • Laatst online: 13:45
Ik zie dat het de 3,3v versie zou moeten zijn. Komt als het goed is morgen binnen. Maakt het een stuk makkelijker

Tijd van werken, tijd van rusten


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
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: 25-02 16:33

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: 12:19
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: 13:44

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: 27-02 13:53
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: 12:19
@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: 13:44

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: 12:19
@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
  • Nu online
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: 12:19
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
  • Nu online
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: 12:04

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: 25-02 16:33

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: 13:16

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: 25-02 16:33

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: 25-02 16:33

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: 14:45

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
  • Nu online
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: 14:45

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
  • Nu online
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: 11:05
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
  • Nu online
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: 13:16

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: 12:38

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: 11:48
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: 13:16

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: 08:36
@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: 13:16

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: 13:44

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: 14:46

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: 13:16

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: 14:51
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: 11:48
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: 13:56
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: 14:51
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
  • Nu online
@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: 13:44

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: 14:51
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: 14:51
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: 27-02 11:16
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: 13:44

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: 28-02 10:53
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: 14:46

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: 13:16

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: 09:35
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: 13:44

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: 09:35
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

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.