Ondanks dat we in het tijdperk van de wifi leven is er veel behoefte aan fysieke internet koppelingen (ethernet). Ook zijn er inmiddels diverse vragen binnen gekomen of het niet mogelijk is om een ethernet P1 dongle te maken waarmee de slimme meter gegevens via het ethernet beschikbaar komen.
Weer een leuk onderzoeksprojectje 🙂 Ben direct eens gaan zoeken naar de mogelijkheden. Enkele mogelijkheden die te onderzoeken zijn:
- TTL (serieel) naar Ethernet adapter (Eport E10 – E20 etc)
- ESP32 met ethernet aansluiting (WT32-ETH of WT32-S1)
- W5500 lite adapter op een ESP32C3 (zelf onderzoeken)
De eerste twee zijn beschikbaar de ESP32C3 W5500 oplossing zal uit losse onderdelen gebouwd dienen te worden.
Eerste onderzoek: WT32-ETH
De WT32-ETH of S1 is al een tijdje op de markt beschikbaar en voor ca 15 euro kan je deze in Nederland op de kop tikken. Het bordje ziet er zo uit:
Wat er nog mist is:
- 5V voeding
- Seriele adapter om de WT32 te programmeren (flashen)
- klein beetje logica voor de P1 aansluiting
5V Voeding en seriele adapter
5V voeding en seriele adapter kunnen worden gecombineerd met een FTDI adapter, zie hieronder. TIP: wel de adapter op 5Volt zetten:-)
Aansluitingen op de WT32:
GND – GND
5V – 5V
RX – RX0 (niet RXD)
RX – TX0 (niet RXD)
GND en IO0 op de WT32 dienen doorverbonden te worden voor het flashen. Daarna niet vergeten deze weg te halen (anders blijft de download modus actief).
P1 logica
Alles wat je nodig hebt voor om de P1 aan te sluiten is:
- RJ11 (6P6C) male connector
- 6 aderige kabel (liefst plat)
- 4k7 ohm weerstand
Pinout RJ11
Hieronder de P1 = RJ11 pinout voor een SMR 4 / 5 slimme meter. De SMR 2 en 3 versies hebben geen voeding op pin 1 en 6 staan.
Wat dient er te gebeuren om de P1 en WT32 te verbinden?
- RJ11 pin 2 dient aan 5V (pin 1) gekoppeld te worden. SMR 2/3 dient de 5V van extern te komen
- RJ11 pin 5 dient op IO4 van de WT32 aangesloten te worden
- RJ11 pin 3 (en evt 6) op GND van de WT32
- op de WT32 dient de 4k7 ohm weerstand tussen 3.3Volt en io4 gesoldeerd te worden
- eventueel kan de 5V (pin 1) op de WT32 5V worden aangesloten voor de voeding. In mijn testopstelling laat ik de FTDI via USB de WT32 voeden.
Als dit allemaal is aangesloten dan kan de firmware er opgezet worden.
Firmware
Keuze is gevallen op ESPHome omdat dit zo lekker snel en makkelijk aanpasbaar is. Hieronder de configuratie.
esphome:
name: wt32
platform: ESP32
board: esp-wrover-kit
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO16
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
web_server:
port: 80
uart:
rx_pin:
number: 4
inverted: true
baud_rate: 115200
rx_buffer_size: 1700
dsmr:
id: dsmr_instance
receive_timeout: 200ms
max_telegram_length: 1700
button:
- platform: restart
name: "Reboot device"
id: reboot
sensor:
- platform: dsmr
# energy_delivered_lux:
# name: "Energy Consumed Luxembourg"
# state_class: total_increasing
energy_delivered_tariff1:
name: "Energy Consumed Tariff 1"
state_class: total_increasing
energy_delivered_tariff2:
name: "Energy Consumed Tariff 2"
state_class: total_increasing
# energy_returned_lux:
# name: "Energy Produced Luxembourg"
# state_class: total_increasing
energy_returned_tariff1:
name: "Energy Produced Tariff 1"
state_class: total_increasing
energy_returned_tariff2:
name: "Energy Produced Tariff 2"
state_class: total_increasing
power_delivered:
name: "Power Consumed"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned:
name: "Power Produced"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
electricity_failures:
name: "Electricity Failures"
icon: mdi:alert
electricity_long_failures:
name: "Long Electricity Failures"
icon: mdi:alert
voltage_l1:
name: "Voltage Phase 1"
voltage_l2:
name: "Voltage Phase 2"
voltage_l3:
name: "Voltage Phase 3"
current_l1:
name: "Current Phase 1"
current_l2:
name: "Current Phase 2"
current_l3:
name: "Current Phase 3"
power_delivered_l1:
name: "Power Consumed Phase 1"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_delivered_l2:
name: "Power Consumed Phase 2"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_delivered_l3:
name: "Power Consumed Phase 3"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned_l1:
name: "Power Produced Phase 1"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned_l2:
name: "Power Produced Phase 2"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned_l3:
name: "Power Produced Phase 3"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
gas_delivered:
name: "Gas Consumed"
state_class: total_increasing
gas_delivered_be:
name: "Gas Consumed Belgium"
state_class: total_increasing
- platform: uptime
name: "Uptime"
text_sensor:
- platform: dsmr
identification:
name: "DSMR Identification"
p1_version:
name: "DSMR Version"
p1_version_be:
name: "DSMR Version Belgium"
- platform: version
name: "ESPHome Version"
hide_timestamp: true
Na het flashen van de WT32 kan de webinterface gevonden worden via http://wt32.local
In HomeAssistant zal de WT32 snel gevonden kunnen worden en toegevoegd aan de devices. De gegevens rollen dan snel vanzelf binnen.
Ik zal later ook de andere onderzoeken in de blog publiceren.
Voor- en nadelen
De WT32 oplossing heeft enkele voor en nadelen, namelijk:
+ goedkope hardware
+ snel up and running
+ Home Assistant koppeling fluitje van een cent (net zo makkelijk als met andere oplossingen)
– FTDI of andere Seriele – TTL converter nodig
– soldeerwerk om de weerstand te verbinden
– RJ11 aansluiting kan gedoe zijn als je de juiste tools niet hebt
Ben je handig en heb je een TTL – Seriele adapter liggen dan is bovenstaande snel voor elkaar. De FTDI adapter is niet meer nodig na flashen. De 5V voeding kan dan uit de slimme meter gehaald worden (bij een SMR 4 en 5 versie).
Conclusie
Slimme meter via ethernet uitlezen is goed te doen met redelijk betaalbare componenten. De WT32-ETH oplossing is leuke en snel voor de hobbyist die weet wat hij/zij doet. Mis wel een geïntegreerde TTL – Seriele adapter waardoor er nu nog een FTDI adapter nodig is. De ESP32C3 oplossing heeft op dit moment op papier mijn voorkeur 😉