Jestli někomu postačí prosté vyčítání dat ze SDS v HA tak tady je jeden ze způsobů:
rest:
- authentication: basic
username: "admin"
password: "password"
scan_interval: 60
resource: http://192.168.2.250/xml.xml
sensor:
- name: "SDS"
json_attributes_path: "$.sds.snmp"
value_template: "OK"
json_attributes:
- uptime
- ntptime
- relay_1
- relay_2
- temp_1
- temp_2
- temp_3
- temp_4
- temp_5
- temp_6
- temp_7
- temp_8
- temp_9
- temp_10
- temp_11
- temp_12
- temp_13
- temp_14
- temp_15
- temp_16
- name: "SDS_S1"
json_attributes_path: "$.sds.snmp.s0_1"
value_template: "OK"
json_attributes:
- impT0
- imdiff
- cT0
- cT1
- text
- act
- name: "SDS_S2"
json_attributes_path: "$.sds.snmp.s0_2"
value_template: "OK"
json_attributes:
- impT0
- imdiff
- cT0
- cT1
- text
- act
#######################################################
- platform: template
sensors:
sds_temp1:
friendly_name: "SDS_venkovni"
unit_of_measurement: "°C"
value_template: '{{ state_attr("sensor.sds","temp_1")|float }}'
sds_temp2:
friendly_name: "SDS_obyvak"
unit_of_measurement: "°C"
value_template: '{{ state_attr("sensor.sds","temp_2")|float }}'
...
sds_temp16:
friendly_name: "SDS_ESBE"
unit_of_measurement: "°C"
value_template: '{{ state_attr("sensor.sds","temp_16")|float }}'
sds_s1_imp0:
friendly_name: "SDS_S1_impt0f"
unit_of_measurement: "imp"
value_template: '{{ state_attr("sensor.sds_S1","impT0")|float }}'
sds_s1_imdiff:
friendly_name: "SDS_S1_imdiff"
unit_of_measurement: "imp"
value_template: '{{ state_attr("sensor.sds_S1","imdiff")|float }}'
sds_s1_celk_spotreba:
friendly_name: "SDS_S1_celk_spotreba"
unit_of_measurement: "kWh"
value_template: '{{ state_attr("sensor.sds_S1","text").split(" ")[0]|float }}'
sds_s1_akt_spotreba:
friendly_name: "SDS_S1_akt_spotreba"
unit_of_measurement: "kWh"
value_template: '{{ state_attr("sensor.sds_S1","act").split(" ")[0]|float }}'
###########################
Ta první část vytváří tři entity SDS, SDS_S1 SDS_S2 se stavem OK kde jsou ostatní data přiřazena jako atributy těchto proměnných. Další část převádí ty atributy na skutečné entity kde stav entity už odpovídá hodnotě - je provedena příslušná konverze. Je několik dalších způsobů jak to vyčítat, tento bere všechna data pomocí jednoho požadavku na SDS.