Software for the ESP2866 that sends P1 smart meter data to an mqtt broker (with OTA firmware updates)
I made this fork since i got a new-new electricity meter,
Landis+Gyr E360, from the power company with a newer firmware, so that the meter won't die every other day.
I added some strings to the MQTT file so that Home Assistant can use the data in the new Energy-tab.
Also there is a new wiring diagram connecting RTS with 5v to send data since i never got it working with 3.3v.
To get this working in Home Assitant.
- Solder together everything as shown below.
- Flash the D1 mini with the files from the folder "esp8266_p1meter".
- Put the "p1_sensors_sv.yaml" file in your Home Assistant file editor.
- Enjoy!
| P1 PIN | D1 Mini |
|---|---|
| 1 - GND | GND |
| 2 - RXD | RX |
| 3 - - | - |
| 4 - GND | GND |
| 5 - RTS | 5v |
| 6 - 5v | 5v |
This fork adds support for the Landys and Gyr E360 smartmeter in Sweden.
The P1 Port is called in nordic countries HAN-Port H1 which provides different values compared to the Dutch standard ESMR 5.0
The has issues with DSMR5.0 meters who like to send telegrams every 1 second at a high 115200 baud rate.
This causes the used SoftwareSerial to struggle to keep up and thus only receives corrupted messages. This fork switches to using the main Hardware serial port (RX) for communication with the meter.
This setup requires:
- An esp8266 (nodeMcu and Wemos d1 mini have been tested)
- A 10k ohm resistor
- A 4 pin RJ11 or 6 pin RJ12 cable Both cables work great, but a 6 pin cable can also power the esp8266 on most DSMR5+ meters.
Compiling up using Arduino IDE:
- Ensure you have selected the right board
- Using the Tools->Manage Libraries... install
PubSubClientandWifiManager - In the file
Settings.hchangeOTA_PASSWORDto a safe secret value - Flash the software
Compiling up using PlatformIO:
- Ensure the correct board type is selected in project configuration
- In the file
Settings.hchangeOTA_PASSWORDto a safe secret value - Upload the software.
Finishing off:
- You should now see a new wifi network
ESP******connect to this wifi network, a popup should appear, else manually navigate to192.168.4.1 - Configure your wifi and Mqtt settings
- To check if everything is up and running you can listen to the MQTT topic
hass/status, on startup a single message is sent.
Connect the esp8266 to an RJ11 cable/connector following the diagram.
| P1 pin | ESP8266 Pin |
|---|---|
| 2 - RTS | 3.3v |
| 3 - GND | GND |
| 4 - | |
| 5 - RXD (data) | RX (gpio3) |
On most Landys and Gyr models a 10K resistor should be used between the ESP's 3.3v and the p1's DATA (RXD) pin. Many howto's mention RTS requires 5V (VIN) to activate the P1 port, but for me 3V3 suffices.
Expand to see wiring description
When using a 6 pin cable you can use the power source provided by the meter.
| P1 pin | ESP8266 Pin |
|---|---|
| 1 - 5v out | 5v or Vin |
| 2 - RTS | 3.3v |
| 3 - GND | GND |
| 4 - | |
| 5 - RXD (data) | RX (gpio3) |
| 6 - GND | GND |
All metrics are send to their own MQTT topic. The software sends out to the following MQTT topics:
sensors/power/p1meter/consumption
Use the p1_sensors_sv.yaml for Home Assistant integration
The automatons are yours to create. And always remember that sending alerts in case of a power outtage only make sense when you own a UPS battery :)
This sketch is mostly copied and pasted from several other projects. Standing on the heads of giants, big thanks and great respect to the writers and/or creators of:
- https://github.com/jantenhove/P1-Meter-ESP8266
- https://github.com/neographikal/P1-Meter-ESP8266-MQTT
- http://gejanssen.com/howto/Slimme-meter-uitlezen/
- https://github.com/rroethof/p1reader/
- http://romix.macuser.nl/software.html
- http://blog.regout.info/category/slimmeter/
- http://domoticx.com/p1-poort-slimme-meter-hardware/
- https://github.com/psvanstrom/esphome-p1reader


