Integratie met Home Assistant
Om in Home Assistant de gegevens uit de DSMR-logger (met de DSMRloggerAPI firmware) te gebruiken heb ik het configuration.yaml bestand als volgt aangepast:
1
#################################
2
# uitbreiding configuratie.yaml #
3
#################################
4
# koppeling met de DSMR-logger #
5
#################################
6
​
7
sensor:
8
- platform: mqtt
9
name: "Gebruik"
10
state_topic: "DSMR-API/power_delivered"
11
unit_of_measurement: "kWh"
12
value_template: '{{ value_json.power_delivered[0].value | round(3) }}'
13
​
14
- platform: mqtt
15
name: "Laatste Update mqtt"
16
state_topic: "DSMR-API/timestamp"
17
# value_template: '{{ value_json.timestamp[0].value }}'
18
value_template: >
19
{{ value_json.timestamp[0].value[4:6] + "-" +
20
value_json.timestamp[0].value[2:4] + "-" +
21
"20"+value_json.timestamp[0].value[0:2] + " " +
22
value_json.timestamp[0].value[6:8] + ":" +
23
value_json.timestamp[0].value[8:10] + ":" +
24
value_json.timestamp[0].value[10:13] }}
25
​
26
- platform: mqtt
27
name: "Gebruik l1"
28
state_topic: "DSMR-API/power_delivered_l1"
29
unit_of_measurement: 'Watt'
30
value_template: "{{ (value_json.power_delivered_l1[0].value | float * 1000.0) | round(1) }}"
31
​
32
- platform: mqtt
33
name: "Gebruik l2"
34
state_topic: "DSMR-API/power_delivered_l2"
35
unit_of_measurement: 'Watt'
36
value_template: "{{ (value_json.power_delivered_l2[0].value | float * 1000.0) | round(1) }}"
37
​
38
- platform: mqtt
39
name: "Gebruik l3"
40
state_topic: "DSMR-API/power_delivered_l3"
41
unit_of_measurement: 'Watt'
42
value_template: "{{ (value_json.power_delivered_l3[0].value | float * 1000.0) | round(1) }}"
43
​
44
​
45
- platform: rest
46
name: "Levering"
47
resource: http://192.168.2.106/api/v1/sm/fields/power_returned
48
unit_of_measurement: "kWh"
49
value_template: '{{ value_json.fields[1].value | round(3) }}'
50
​
51
- platform: rest
52
name: "Laatste Update restAPI"
53
resource: http://192.168.2.106/api/v1/sm/fields/timestamp
54
# value_template: '{{ value_json.fields[0].value }}'
55
value_template: >
56
{{ value_json.fields[0].value[4:6] + "-" +
57
value_json.fields[0].value[2:4] + "-" +
58
"20"+value_json.fields[0].value[0:2] + " " +
59
value_json.fields[0].value[6:8] + ":" +
60
value_json.fields[0].value[8:10] + ":" +
61
value_json.fields[0].value[10:13] }}
62
​
63
- platform: rest
64
name: "Levering l1"
65
resource: http://192.168.2.106/api/v1/sm/fields/power_returned_l1
66
unit_of_measurement: "Watt"
67
value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
68
​
69
- platform: rest
70
name: "Levering l2"
71
resource: http://192.168.2.106/api/v1/sm/fields/power_returned_l2
72
unit_of_measurement: 'Watt'
73
value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
74
​
75
- platform: rest
76
name: "Levering l3"
77
resource: http://192.168.2.106/api/v1/sm/fields/power_returned_l3
78
unit_of_measurement: 'Watt'
79
value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
Copied!
Optioneel: Gas gebruik toevoegen (let op: is totaal gebruik):
1
- platform: mqtt
2
name: "Gas gebruik"
3
state_topic: "DSMR-API/gas_delivered"
4
unit_of_measurement: 'm3'
5
value_template: "{{ (value_json.gas_delivered[0].value | float * 1000.0) | round(1) }}"
Copied!
in deze voorbeelden worden de power_delivered en gas_delivered velden via MQTT uitgelezen en de power_returned via de restAPI's. Uiteraard kun je voor alle velden de manier van uitlezen gebruiken die voor jou het prettigste werkt.
Dit is het resultaat:
Merk op dat ik voor de resource bij de restAPI's het IP adres van de DSMR-logger gebruik. Ik krijg het in mijn opzet niet voor elkaar hier de hostname (dsmr-api.local) te gebruiken. Controleer ook of het MQTT topic juist is.
Last modified 5mo ago
Export as PDF
Copy link