Wiznet makers

jaden

Published July 30, 2026 ©

141 UCC

18 WCC

60 VAR

0 Contests

0 Followers

0 Following

Original Link

esphome-p1

esphome-p1

COMPONENTS
PROJECT DESCRIPTION

What Is This Repository?

 

The mhendriks/esphome-p1 repository is not a firmware source code project, but a collection of ESPHome configuration files (YAML) for P1 smart meter devices.

Rather than implementing networking or application logic in C++, this repository provides the YAML configurations that ESPHome uses to generate firmware for ESP32-based P1 Dongles.

These configuration files define how the device should:

Connect to a DSMR (Dutch Smart Meter Requirements) smart meter

Communicate with Home Assistant

Configure Ethernet or Wi-Fi networking

Support OTA firmware updates

Enable MQTT or the native Home Assistant API

Configure UART parameters for reading DSMR telegrams

In other words, this repository serves as an ESPHome configuration repository, not an embedded networking stack implementation.


Which Product Does It Configure?

The repository is intended for the Smart-Stuff P1 Dongle family, including:

P1 Dongle

P1 Dongle Pro

Ethernet Dongle Pro

These products are ESP32-based gateways that connect to the P1 (DSMR) port of Dutch smart electricity meters and forward energy data to Home Assistant.

The repository supplies the ESPHome YAML files that are compiled into firmware for these devices.


What Does the Repository Contain?

Instead of application source code, the repository primarily contains configuration files such as:

ESPHome project configuration

ESP32 board definitions

UART settings for DSMR/P1 communication

Ethernet or Wi-Fi network configuration

Home Assistant API configuration

MQTT configuration (optional)

OTA update settings

Product-specific YAML files

The ESPHome build system converts these YAML files into executable firmware.


Does This Repository Use lwIP?

Yes.

However, the repository does not implement lwIP directly.

The networking architecture is:

YAML Configuration
        │
        ▼
    ESPHome
        │
        ▼
    ESP-IDF
        │
        ▼
      lwIP
        │
        ▼
 Ethernet Driver

The YAML files only describe the network configuration.

The actual TCP/IP stack is provided automatically by ESP-IDF, which uses lwIP as its networking stack.


Why Can We Conclude That It Uses lwIP?

ESPHome's Ethernet component includes lwIP headers such as:

#include <lwip/dns.h>

This demonstrates that the Ethernet implementation is built on top of the lwIP networking stack.

Additionally, when ESPHome is built using the ESP-IDF framework, the build system generates lwIP configuration options such as:

CONFIG_LWIP_MAX_SOCKETS

These configuration parameters are part of the ESP-IDF networking subsystem, further confirming that ESPHome relies on lwIP for TCP/IP networking.


Does This Repository Use W5500?

Based on the publicly available repository contents, there is no evidence that this project specifically uses the WIZnet W5500 Ethernet controller.

The repository clearly supports Ethernet-based devices, but the available YAML configurations do not explicitly identify the Ethernet hardware as:

W5500

LAN8720

ENC28J60

another Ethernet controller

Therefore, it is accurate to state:

The repository supports Ethernet networking, but it does not provide sufficient evidence to conclude that it is specifically designed for the W5500.


How Would a W5500-Based ESPHome System Differ?

If an ESPHome device were built around the W5500, the software architecture would typically be:

Application
      │
      ▼
   ESPHome
      │
      ▼
   ESP-IDF
      │
      ▼
     lwIP
      │
      ▼
 W5500 Ethernet Driver
      │
      ▼
      SPI
      │
      ▼
    W5500

An important distinction is that ESPHome does not use the WIZnet ioLibrary's hardware TCP/IP offload engine. Instead, it treats the W5500 as an Ethernet network interface while lwIP continues to provide the TCP/IP stack.

Therefore:

Standard ESP32 Ethernet → lwIP + Ethernet MAC/PHY driver

ESP32 + W5500 (ESPHome) → lwIP + W5500 Ethernet driver

In both cases, lwIP remains responsible for TCP/IP processing.


Comparison of Similar Projects on maker.wiznet.io

Featuremhendriks/esphome-p1Ethernet P1 Dongel Pro+DSMR P1 → AstraMeter CT002ESPHome SensoStarESPHome W5500 on ESP32 Boards
Primary PurposeESPHome configuration repository for P1 smart metersEthernet gateway for P1, water meters, S0 pulse, and Modbus devicesConverts DSMR P1 data into CT002-compatible data for battery energy storage systemsConnects heat meters to Home AssistantReference project for integrating W5500 with ESPHome
Target DeviceDSMR/P1 smart metersDSMR/P1 smart meters, water meters, S0 pulse counters, RS485/Modbus devicesDSMR 5 smart metersEngelmann SensoStar heat metersGeneric ESP32 Ethernet boards
PlatformESP32 familyESP32-C3 / ESP32-S3ESP32-S3ESP32-S3 / ESP32-C6ESP32-C3
WIZnet HardwareNot explicitly specifiedW5500W5500W5500 (Ethernet version)W5500
Configuration MethodESPHome YAMLESPHome YAMLESPHome YAML with custom automationESPHome YAML with custom componentsESPHome YAML
Meter InterfaceUART (DSMR/P1)P1, S0, RS485/ModbusUART (DSMR/P1)M-BusNot meter-specific
Network ConnectivityHome Assistant API, MQTT, OTAHome Assistant, MQTT, REST API, DSMR-APIMQTT, Home Assistant, UDPHome Assistant API, MQTTHome Assistant API
Ethernet PurposeTransfers smart meter data over EthernetMulti-protocol energy gateway with wired EthernetReliable Ethernet connection for energy storage controlWired networking for heat meter monitoringDemonstrates W5500 Ethernet integration with ESPHome
Wi-Fi SupportYes (depending on configuration)Yes (model dependent)YesYesOptional
Uses lwIPYesYesYesYesYes
Uses W5500 Hardware TCP/IP Offload (ioLibrary)NoNoNoNoNo
Similarity to esphome-p1BaselineVery HighHighMediumHigh (network architecture only)

 


WIZnet Perspective

From a WIZnet standpoint, this repository should be viewed as an ESPHome configuration project rather than a WIZnet networking project.

Even if the Ethernet Dongle Pro hardware were to use a W5500 internally, the networking model would still be based on ESPHome → ESP-IDF → lwIP, rather than the WIZnet ioLibrary with hardware TCP/IP offloading commonly used in MCU-based W5500 reference designs.

As a result, this repository is better categorized as an ESPHome/lwIP Ethernet configuration project than as a native W5500 hardware TCP/IP offload implementation.

Documents
Comments Write