#meter #mqtt #power

app slimmemeter

DSMR5 serial TTY to MQTT exporter for your smart meter

2 releases

0.2.1 Nov 23, 2022
0.2.0 Nov 23, 2022

#25 in #meter

MIT license

11KB
69 lines

slimmemeter

Quick and dirty DSMR5 serial TTY to MQTT exporter for your smart meter.

Will emit readings for high and low tariffs, current usage, voltage, gas usage from slave meter and number of incidents to the slimmemeter topic as JSON.

How to run

Install the slimmemeter by running cargo install slimmemeter. Then run using slimmemeter /dev/ttyUSB0, or whatever you are using as a serial interface.

DSMR5 smart meters invert the TX-pin, thus you might need to configure your serial interface (like FTDI) to adapt to this. You can also invert the signal yourself using a transistor, but that is a bit fiddly.

Example data

{
    "datetime": {
        "year": 22,
        "month": 11,
        "day": 23,
        "hour": 19,
        "minute": 19,
        "second": 52,
        "dst": false
    },
    "meterreadings": [
        {
            "to": 6514.304,
            "by": 0.0
        },
        {
            "to": 7076.58,
            "by": 0.0
        }
    ],
    "tariff_indicator": [
        0,
        2
    ],
    "power_delivered": 0.352,
    "power_received": 0.0,
    "power_failures": 3,
    "long_power_failures": 4,
    "lines": [
        {
            "voltage_sags": 2,
            "voltage_swells": 0,
            "voltage": null,
            "current": 1,
            "active_power_plus": 0.353,
            "active_power_neg": 0.0
        },
        {
            "voltage_sags": 0,
            "voltage_swells": 0,
            "voltage": null,
            "current": 0,
            "active_power_plus": 0.0,
            "active_power_neg": 0.0
        },
        {
            "voltage_sags": 0,
            "voltage_swells": 0,
            "voltage": null,
            "current": 0,
            "active_power_plus": 0.0,
            "active_power_neg": 0.0
        }
    ],
    "slaves": [
        {
            "device_type": 3,
            "meter_reading": [
                {
                    "year": 22,
                    "month": 11,
                    "day": 23,
                    "hour": 19,
                    "minute": 0,
                    "second": 0,
                    "dst": false
                },
                4877.691
            ]
        },
        {
            "device_type": null,
            "meter_reading": null
        },
        {
            "device_type": null,
            "meter_reading": null
        },
        {
            "device_type": null,
            "meter_reading": null
        }
    ]
}

Dependencies

~11–22MB
~288K SLoC