A make.opendata.ch, Energy Hackdays 2020 (#EnergyHack2020) project.
Work in progress, so far we have a rough concept only.
Read your own smart meter and unleash its consumer information interface (CII).
Hermann and @tamberg.
Provide a "universal" adapter from smart meters to home automation / IoT platforms.
- Physical adapter
- Minimal configuration, Web UI
- Allows a range of smart meter models
- Allows a range of home automation IoT platforms
- Keeps (personal) smart meter data in the local network
- Connected device with Web UI
- Simple information model
- Serial or Ethernet input
- MQTT or HTTP based
- Template mechanism
Proof of Concept (PoC) prototypes, sketched out below as step-by-step instructions with TODOs to be filled in.
- PoC 0 to get an idea about how the smart meter interface works at all.
- PoC 1 to get an idea about the complexity of smart meter / IoT platform interfaces.
- PoC 2 to show what a simple information model and templating mechanism could look like.
- Can any (custom) library implementing DLMS (https://www.dlms.com/) be licensed as open source?
- Can a "universal" adapter be simpler than using home automation IoT platform specific plugins?
- Smart Meter (available at Hackday, see challenge #466)
- TODO: Connect your computer to the smart meter via Serial
- TODO: Get data on a serial console, e.g. screen or PuTTY
- https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
- https://thepihut.com/products/modmypi-serial-hat-rs232 (if no USB Serial)
- Smart Meter (available at Hackday, see challenge #466)
- On your computer, install https://www.openhab.org/
- On the Pi, install https://nodered.org/
- TODO: https://LOCAL_IP/ Node-RED instance, e.g. via https://yaler.net/
- TODO: e.g. https://flows.nodered.org/node/node-red-contrib-smartmeter
- TODO: or a custom node based on https://icube.ch/demo_projects.html
- e.g. https://store.arduino.cc/arduino-mkr-wifi-1010
- and https://store.arduino.cc/arduino-mkr-485-shield
- TODO: implement firmware .ino
- TODO: define simple information model
- TODO: develop moustache-like templating mechanism
- TODO: On your computer, e.g. mqtts://test.mosquitto.org/
- TODO: https://LOCAL_IP/
- TODO: learn relevant parts of DLMS
- TODO: read variable values from smart meter
- e.g. https://www.arduino.cc/en/ArduinoModbus/ArduinoModbus
- TODO: insert variable values into topic / payload tempate
- e.g. https://www.arduino.cc/reference/en/libraries/mqtt-client/
- http://www.tamberg.org/fhnw/2019/hs/IoT07MessagingProtocols.pdf
- http://www.tamberg.org/fhnw/2019/hs/IoT10RuleBasedIntegration.pdf
- https://www.openhab.org/docs/
- https://www.openhab.org/addons/
- https://www.openhab.org/addons/bindings/mqtt/
- https://www.openhab.org/docs/developer/bindings/
- https://www.openhab.org/docs/configuration/restdocs.html
- https://github.com/openhab/openhab-addons
- https://github.com/openhab/openhab-addons/tree/2.5.x/bundles/org.openhab.binding.mqtt.generic
- https://github.com/openhab/openhab-addons/tree/2.5.x/bundles/org.openhab.binding.smartmeter (Serial)
- https://www.landisgyr.com/webfoo/wp-content/uploads/2012/09/D000028191_E450_f_en.pdf
- https://www.netbeheernederland.nl/_upload/Files/Slimme_meter_15_a727fce1f1.pdf
- https://github.com/aselviar/cii_read_your_sm
- https://volkszaehler.org/
- https://github.com/volkszaehler
- https://www.netzburgenland.at/kundenservice/smart-metering/smart-metering/kundenschnittstelle.html
- https://icube.ch/DLMSSurvivalKit/dsk1.html
- https://icube.ch/demo_projects.html
- https://icube.ch/demo_projects/java/dlms_java_demo.zip (includes proprietary DLMS Library)
- https://www.dlms.com/
- https://www.dlms.com/news-new-blue-book-and-green-book
- https://www.dlms.com/files/Blue_Book_Edition_13-Excerpt.pdf (COSEM Interface Classes and OBIS Object Identification System)
- https://www.dlms.com/files/Green_Book_Edition_9-Excerpt.pdf (DLMS/OSEM Architecture and Protocols)
- https://github.com/Gurux/Gurux.DLMS.cpp (licensed under GPL v2.0)
- https://github.com/roarfred/AmsToMqttBridge
- https://github.com/roarfred/AmsToMqttBridge/tree/master/Electrical/HAN_ESP_TSS721
- https://zeta-eng.ch/produkte/interfaces/zeta-usb-interfaces/m-bus-slave/
- https://zeta-eng.ch/fileadmin/zeta/images/PDF%20Dateien/ZETA_USB_Interfaces_-_Treiberinstallation.pdf (Serial via USB)
- https://m-bus.com/documentation-wired/04-physical-layer
- https://www.openmuc.org/m-bus/user-guide/
- https://github.com/turbokongen/hass-AMS
- https://www.hjemmeautomasjon.no/forums/topic/1982-lesing-av-ams-data-amshan-iot/?&page=77#comments
- https://forum.arduino.cc/index.php?topic=119247.0
- https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
- Conceptual work is licensed under CC BY-SA.
- Source code is licensed under the MIT license.