DSMRloggerWS
  • Documentatie DSMRloggerWS
  • Introductie
  • Voorbereiding
    • Installatie Arduino IDE
    • Installatie ESP8266 core
    • Installatie Data Upload Tool
    • Installeren Bibliotheken
  • Firmware
    • Benodigd Bibliotheken
    • Clonen Firmware
    • Firmware Flashen DSMR-logger v4
    • upload Data map naar DSMR-logger V4
    • Firmware Flashen DSMR-logger v3
    • upload Data map naar DSMR-logger v3
  • Overzicht te selecteren functies
    • #define IS_ESP12
    • #define USE_UPDATE_SERVER
    • #define HAS_OLED_SSD1306
    • #define HAS_OLED_SH1106
    • #define USE_PRE40_PROTOCOL
    • #define USE_NTP_TIME
    • #define SM_HAS_NO_FASE_INFO
    • #define USE_MQTT
    • #define USE_MINDERGAS
    • #define SHOW_PASSWRDS
    • #define HAS_NO_METER
  • Hardware
    • DSMR-logger v4.5
    • Programmer DSMR-logger v4
    • DSMR-logger Versie 4 bouwen
    • DSMR-logger v3
    • Programmer voor de ESP-01
  • Overigen
    • (eerste keer) Opstarten
    • restAPI
    • Verschillen ESP8266 modules
    • PUYA Flash Chip (ESP-01)
    • Vragen en Antwoorden
  • Integratie met andere systemen
    • Integratie met Mindergas.nl
    • Integratie met Homey
    • Integratie Home Assistant
    • Integratie met Domoticz
  • telnet
  • MIT License
Powered by GitBook
On this page

Was this helpful?

  1. Integratie met andere systemen

Integratie Home Assistant

De data uit de DSMR-logger kan op verschillende manieren met Home Assistant gedeeld worden. Verreweg het makkelijkste is dat door gebruik te maken van een MQTT Broker. De DSMR-logger publiceert de gegevens uit de Slimme Meter in een bepaald topic. Home Assistant moet dan een subscription op dat zelfde topic hebben om zo de gegevens in te lezen en te presenteren.

Vaak draait Home Assistant thuis op een server (Raspberry Pi of anderszins) en is het eenvoudig om op die server ook een (Mosquitto) MQTT broker te installeren (veel installaties van Home Assistant hebben dat al standaard gedaan).

Om de intergratie voor elkaar te krijgen moet in het configuratie.yaml bestand van Home Assistant onder andere deze instellingen komen te staan:

group:  !include_dir_merge_named groups/
script: !include scripts.yaml
sensor: !include_dir_merge_list sensors/
switch: !include_dir_merge_list switches/
light:  !include_dir_merge_list lights/
camera: !include_dir_merge_list cameras/

mqtt:
  broker: <ip-adres-MQTT-broker>
  port: 1883
  client_id: HassIO
  keepalive: 60
  username: <user name>
  password: <password>

Hierdoor zal Home Assistant alle (yaml) bestanden die in de sub-map groups/ staan inlezen. Hetzelfde geldt voor de sub-mappen sensors/, switches/, lights/ en cameras/.

Voor de koppeling met de DSMR-logger zijn alleen de sub-mappen groups/ en sensors/ van belang en natuurlijk de settings voor de MQTT broker!

In de sub-map groups/ komt een bestand DSMR-Actueel.yaml met de volgende inhoud:

###group: ###
###VIEWS###

Energie:
  name: Energie
  view: yes
  entities:
    - group.Energie_Verbruik
    - group.Energie_Teruglevering
    - group.DSMR_Last_Update
    - group.Energy_Graph1
    - group.LastUpdate

###CARDS###
DSMR_Last_Update:
  name: DSMR Last Update
  entities:
    - sensor.LastUpdate

Energie_Verbruik:
  name: Energie Verbruik (actueel)
  entities:
    - sensor.Energy_Delivered_T1
    - sensor.Energy_Delivered_T2
    - sensor.Power_Delivered
    - sensor.Power_Delivered_l1
    - sensor.Power_Delivered_l2
    - sensor.Power_Delivered_l3
    - sensor.Gas_Delivered

Energie_Teruglevering:
  name: Energie Teruglevering (actueel)
  entities:
    - sensor.Energy_Returned_T1
    - sensor.Energy_Returned_T2
    - sensor.Power_Returned
    - sensor.Power_Returned_l3

Energy_Graph1:
  name: Energy Graph 1
  entities:
    - history.energyGraph1

en in de sub-map sensors/ komt een bestand DSMR-Actueel.yaml met deze inhoud:

### sensor: ###
### DSMR-WS ###

- platform: mqtt
  name: "LastUpdate"
  friendly_name: "Last update"
  state_topic: "DSMR-WS/JSON/timestamp"
  unit_of_measurement: ""
  #value_template: "[[ value_json.timestamp[0].value ]]"
  # met dank aan Jan Willem Maas voor onderstaande template
  value_template: >
      [[ "20"+value_json.timestamp[0].value[0:2] + "-" + 
              value_json.timestamp[0].value[2:4] + "-" + 
              value_json.timestamp[0].value[4:6] + "---" + 
              value_json.timestamp[0].value[6:8] + ":" + 
              value_json.timestamp[0].value[8:10] + ":" + 
              value_json.timestamp[0].value[10:13] ]]

- platform: mqtt
  name: "Energy Delivered T1"
  state_topic: "DSMR-WS/JSON/energy_delivered_tariff1" 
  unit_of_measurement: "kWh"
  value_template: '[[ value_json.energy_delivered_tariff1[0].value | round(3) ]]'

- platform: mqtt
  name: "Energy Delivered T2"
  state_topic: "DSMR-WS/JSON/energy_delivered_tariff2" 
  unit_of_measurement: "kWh"
  value_template: '[[ value_json.energy_delivered_tariff2[0].value | round(3) ]]'

- platform: mqtt
  name: "Energy Returned T1"
  state_topic: "DSMR-WS/JSON/energy_returned_tariff1" 
  unit_of_measurement: "kWh"
  value_template: '[[ value_json.energy_returned_tariff1[0].value | round(3) ]]'

- platform: mqtt
  name: "Energy Returned T2"
  state_topic: "DSMR-WS/JSON/energy_returned_tariff2" 
  unit_of_measurement: "kWh"
  value_template: '[[ value_json.energy_returned_tariff2[0].value | round(3) ]]'

- platform: mqtt
  name: "Power Delivered"
  state_topic: "DSMR-WS/JSON/power_delivered" 
  unit_of_measurement: "kW"
  value_template: '[[ value_json.power_delivered[0].value | round(3) ]]'

- platform: mqtt
  name: "Power Returned"
  state_topic: "DSMR-WS/JSON/power_returned"
  unit_of_measurement: "kW"
  value_template: "[[ value_json.power_returned[0].value | round(3) ]]"

- platform: mqtt
  name: "Power Delivered l1"
  state_topic: "DSMR-WS/JSON/power_delivered_l1" 
  unit_of_measurement: "Watt"
  value_template: '[[ (value_json.power_delivered_l1[0].value | float * 1000.0) | round(1) ]]'

- platform: mqtt
  name: "Power Delivered l2"
  state_topic: "DSMR-WS/JSON/power_delivered_l2" 
  unit_of_measurement: "Watt"
  value_template: '[[ (value_json.power_delivered_l2[0].value | float * 1000.0)| round(1) ]]'

- platform: mqtt
  name: "Power Delivered l3"
  state_topic: "DSMR-WS/JSON/power_delivered_l3" 
  unit_of_measurement: "Watt"
  value_template: '[[ (value_json.power_delivered_l3[0].value | float * 1000.0) | round(1) ]]'

- platform: mqtt
  name: "Power Returned l1"
  state_topic: "DSMR-WS/JSON/power_returned_l1"
  unit_of_measurement: "Watt"
  value_template: '[[ (value_json.power_returned_l1[0].value | float * 1000.0) | round(1) ]]'

- platform: mqtt
  name: "Power Returned l2"
  state_topic: "DSMR-WS/JSON/power_returned_l2"
  unit_of_measurement: "Watt"
  value_template: '[[ (value_json.power_returned_l2[0].value | float * 1000.0) | round(1) ]]'

- platform: mqtt
  name: "Power Returned l3"
  state_topic: "DSMR-WS/JSON/power_returned_l3"
  unit_of_measurement: "Watt"
  value_template: '[[ (value_json.power_returned_l3[0].value | float * 1000.0) | round(1) ]]'

- platform: mqtt
  name: "Gas_Delivered"
  state_topic: "DSMR-WS/JSON/gas_delivered"
  unit_of_measurement: "m3"
  value_template: '[[ value_json.gas_delivered[0].value | round(2) ]]'

Let op!github pages kan niet tegen dubbele '{' tekens omdat hij dan denkt dat er een variabele moet worden gesubstitueerd. Daarom heb ik in bovenstaande source bij de value_template's dubbele '[' en ']' gezet waar dit dus dubbele '{' en '}' moeten zijn!!!

PreviousIntegratie met HomeyNextIntegratie met Domoticz

Last updated 5 years ago

Was this helpful?