55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
# DSMR 2 MQTT bridge
|
|
|
|
## Introduction
|
|
|
|
This bridigng component reads Dutch Smart Meter Requirements (DSMR) telegrams and sends them to a MQTT broker using the [Homie convention](https://homieiot.github.io/). The component is written in Python and is based on the execelent work of others:
|
|
|
|
* [DSMR Parser](https://github.com/ndokter/dsmr_parser)
|
|
* [Homie4](https://github.com/mjcumming/homie4)
|
|
|
|
## Configuring the bridge
|
|
|
|
Create some environment variables (e.g. with a .env file) to specify the required settings:
|
|
|
|
```bash
|
|
PYTHONPATH="."
|
|
MQTT_HOST=<mqtt-broker-hostname>
|
|
DSMR_PORT=/dev/ttyUSB0
|
|
DSMR_PROTOCOL=V5
|
|
```
|
|
|
|
If you have forwared the raw serial signal through ser2net, you should use `DSMR_PORT=tcp://<hostname>:<port>`, e.g.:
|
|
|
|
```bash
|
|
DSMR_PORT=tcp://forwarding-pi.local:3334
|
|
```
|
|
|
|
If you use credentials to access the MQTT broker, then alsp specify:
|
|
|
|
```bash
|
|
MQTT_USERNAME=<mqtt-user>
|
|
MQTT_PASSWORD=<mqtt-password>
|
|
```
|
|
|
|
Inspect the source [`app_settings.py`](app_settings.py) to find out about the other less frequently used settings.
|
|
|
|
## Configuring ser2net
|
|
|
|
On the forwarding computer (e.g a Raspberry Pi) you need to install ser2net:
|
|
|
|
```bash
|
|
sudo apt upgrade && sudo apt install ser2net
|
|
```
|
|
|
|
Then edit the configurion file `/etc/ser2net.yaml` and add
|
|
|
|
```yaml
|
|
connection: &Dsmr
|
|
accepter: tcp,3334
|
|
connector: serialdev,
|
|
/dev/ttyUSB0,
|
|
115200n81, local
|
|
```
|
|
|
|

|