An interface for the Eastron SDM/Modbus smart meter series.
GoSDM 0.7 is focused on improving the structure of the codebase. With the ongoing refactoring GoSDM will in future support even more meter types!
New features:
New features:
This minor release adds support for the DVH4013 smart meter of "Deutsche Zählergesellschaft" (DZG). The device is rather quirky and does not support the full range of measurements available from other smart meters. I don't recommend this meter, but partial support is now implemented.
Starting with version 0.5.0, we support not only the full range of Eastron SDM devices, but also Janitza's B23 meters. The web API remains the same, but we needed to change the -d
commandline parameter to incorporate the type of smart meter. From the help:
--device_list value, -d value MODBUS device type and ID to query, separated by comma.
Valid types are:
"SDM" for Eastron SDM meters
"JANITZA" for Janitza B-Series DIN-Rail meters
Example: -d JANITZA:1,SDM:22,SDM:23 (default: "SDM:1")
This was quite a bit of work, but from now on, it should be rather simple to integrate new MODBUS/RTU-based smart meters.
The second big change is the error behavior. If a smart meter fails to respond, older versions just terminated. Now, you can retrieve the status of all configured meters via the /status
API:
$ curl http://localhost/status
{
"Starttime": "2017-07-28T15:38:45.54489724+02:00",
"UptimeSeconds": 57.938761499,
"Goroutines": 18,
"Memory": {
"Alloc": 4127168,
"HeapAlloc": 4127168
},
"Modbus": {
"TotalModbusRequests": 1523,
"ModbusRequestRatePerMinute": 1577.1824877819865,
"TotalModbusErrors": 0,
"ModbusErrorRatePerMinute": 0
},
"ConfiguredMeters": [
{
"Id": 26,
"Type": "JANITZA",
"Status": "available"
},
{
"Id": 21,
"Type": "SDM",
"Status": "available"
}
]
}
Previously, we used the all
category for meter updates in the firehose streaming API. This changes with this release to meterupdates
, because we now propagate the status of the smart meters once per seconds on the statusupdates
category of the firehose.
In addition to these features, we incorporated lots of bugfixes and small changes.
We now have a shiny web interface that updates itself as soon as a value is read from the smart meter: This is helpful for debugging and initial installation. Everything is included in the binaries: the installation remains as easy as downloading the binary and starting it.
sdm_detect
utility that allows you to search for Eastron SDM meters.log.db
, use something like this:$ ./bin/sdm630_logger -v record -f log.db
We also log voltage total harmonic distortion (THD). Please note that these values seem to fluctuate - you need to judge the data quality for yourself.
The aggregated import and export kWh values are now queried correctly from the smaller SDM devices.
We added realtime monitoring to the software. Now, if a value is read from a measurement device, you can get a push notification using HTTP long poll. This occurs without a significant delay, so this should make realtime applications possible. We intend to optimize this further in future releases by creating special schedules. In essence: you can subscribe to the firehose, or you can use the new sdm630_monitor
command to subscribe to power readings.
In addition we tested the software with more devices, see the README file. We will probably rename the software in the next release because we now support all EASTRON smart meters available to us.
Version 0.2.0 includes: