1

Téma: SDS Mikro - integrace s Home Assistant

Dobrý den, má prosím někdo vyřešeno zasílání (aktualizace) senzoru v Home Assistant tj. zaslání např. 1-wire teploty (ne periodické čtení xml ze SDS) a jeho zobrazení? Verze SDS Mikro LM bohužel nemá MQTT klienta, kde by se toto dalo elegantně řešit. Děkuji.

2

Re: SDS Mikro - integrace s Home Assistant

Tohle nebude právé ta očekávaná odpovéď - ale jedno z řešení je vyměnit micro-LM za micro-ST, které už MQTT má.

Jinak na HA by se to asi řešilo přes entitu https://developers.home-assistant.io/docs/core/entity/sensor takže by to snad na SDS napasovat jít mělo. Osobně jsem to ale ještě nedělal takže dále moc neporadím.

XML v SDS je přesně dané, nicméně teploty lze číst i přes jiné M2M stránky např. tempXX.htm nebo tempXX.txt atd.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3

Re: SDS Mikro - integrace s Home Assistant

Díky za odpověď. A není možné nějak v SDS=C http_post doplnit headers nepř. jak lze s curl viz. https://funprojects.blog/2020/12/12/home-assistant-rest-api/:
curl -X POST \
-H "Authorization: Bearer eyJ0eXAiOi....zLjc" \
-H "Content-Type: application/json" \
-d '{"state":"88.6", "attributes": {"unit_of_measurement": "%", "friendly_name": "Remote Input 1"}}' \
http://192.168.0.103:8123/api/states/sensor.myinput1

4

Re: SDS Mikro - integrace s Home Assistant

Headery ve starém FW přidat nejdou, ale nový FW pro SDS (zatím jen v rámci Druhé Produktové Řady) to umí.

Prakticky jak se na to dívám tak by byla potřeba jen to Authorization: xxx, což je otázka jestli by to nešlo nastavit na straně serveru aby to bylo ignorováno.

Teoreticky si lze na serveru udělat proxy, tzn. vlastní http server, který by to z micro-lm převzat a poslal do toho HA.
Pár řádku v pythonu... ale tady už moc neporadím (nicméně píšu protože jsem zaznamenal že to lidé tak používají).

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

5

Re: SDS Mikro - integrace s Home Assistant

Na tu proxy jsem také někde narazil, zkusím a nebo prohlásím moje SDS za zastaralé a vyřadím ho smile Díky

6

Re: SDS Mikro - integrace s Home Assistant

Právě proto jsou v prodeji aktualizované SDS které mají MQTT, aby se to nemuselo složitě řešit cestami okolo.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

7

Re: SDS Mikro - integrace s Home Assistant

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.

8

Re: SDS Mikro - integrace s Home Assistant

Doplněk do configuration.yml v HomeAssistant hlásí chybu konfigurace. Nemáte někdo novější verzi? Díky.

9 Naposledy upravil: jarin (2022-11-27 23:24:09)

Re: SDS Mikro - integrace s Home Assistant

Ahoj... priklad pro mereni ze sds1 (klimatizace) a sds3 (dvoutarifni elektromer):

configuration.yaml

# SDS implementation
rest:
  - authentication: basic
    username: "admin"
    password: "lpassword"
    scan_interval: 10
    resource: http://192.168.1.xxx/xml.xml
    sensor:
      - name: "SDS_S1"
        json_attributes_path: "$.sds.snmp.s0_1"
        value_template: "OK"
        json_attributes:
         - name
         - imdiff
         - text
         - act
      - name: "SDS_S3"
        json_attributes_path: "$.sds.snmp.s0_3"
        value_template: "OK"
        json_attributes:
         - name
         - imdiff
         - text_T0
         - text_T1
         - act

template:
  - sensor:
     - name: klima1_power
       unique_id: '6e30c334-a38d-491f-a152-87800b170f05'
       unit_of_measurement: W
       state_class: measurement
       device_class: power
       state: >
         {{ state_attr("sensor.sds_s1","act").split(" ")[0]|float*1000 }}
  - sensor:
     - name: klima1_energy_today
       unique_id: '1381b948-2a9e-4846-acca-0367a98cda46'
       unit_of_measurement: kWh
       state_class: total_increasing
       device_class: energy
       state: >
         {{ state_attr("sensor.sds_s1","text").split(" ")[0]|float }}
  - sensor:
     - name: elektormer_power
       unique_id: 'a68bbdec-6347-4e1b-8510-e038bf68f957'
       unit_of_measurement: W
       state_class: measurement
       device_class: power
       state: >
         {{ state_attr("sensor.sds_s3","act").split(" ")[0]|float*1000 }}
  - sensor:
     - name: elektromer_energy_today
       unique_id: '1d494069-fcbd-466c-b9b4-e2e016d9e85e'
       unit_of_measurement: kWh
       state_class: total_increasing
       device_class: energy
       state: >
         {{ state_attr("sensor.sds_s3","text_T0").split(" ")[0]|float +
         state_attr("sensor.sds_s3","text_T1").split(" ")[0]|float }}