Werte aus einem MQTT Ereignis mit mehreren Werten extrahieren und weiter verarbeiten

Hallo in die Runde,

ich habe ein Problem mit dem extrahieren von Werten die ich per MQTT von meiner Heizung erhalte.

Ich habe heute für meine Daikin Altherma Wärmepumpe erfolgreich das Projekt ESPAltherma von raomin nachgebaut → siehe ESPAltherma | Monitor your Daikin Altherma / ROTEX heat pump with ESP32 .

Ich bekomme über MQTT einen riesig langen String unter dem Topic espaltherma/ATTR mit diesem Inhalt ausgeliefert:

{“Aktuelle Betriebsart”:“Heating”,“Thermostat EIN/AUS”:“OFF”,“Wiederanlaufverzögerung”:“OFF”,“Anlaufregelung”:“OFF”,“Abtauung”:“OFF”,“Druckausgleichvorgang”:“OFF”,“Betrieb / Störung”:“Normal”,“Störcode”:" 0",“Zielverdampfung in °C”:16.9922,“Zielverflüssigung in °C”:0,“Außenlufttemp.”:5.5,“O/U Wärmetauscher Temp.”:0,“Ablassleitungstemp.”:41.5,“Ansaugleitungstemperatur”:0,“O/U Wärmetauscher Mitteltemp.”:2,“Flüssigkeitsleitungstemp.”:0,“Druck”:0,“Druck(T)”:“Conv 405 not avail.”,“INV Primärstrom (A)”:1.8,“Stromaufnahme INV-Verdichter (A)”:5.8,“Spannung (V)”:230,“Kühltemp. Verdampfer Ein”:0,“Kühltemp. Verdampfer Aus”:0,“Drehzahl Verdichter (U/Sek)”:16,“Ventilator 1 (10 rpm)”:67,“I/U betriebsart”:“Heating”,“Thermostat EIN/AUS”:“ON”,“Sollwert Brauchwasser”:36,“Sollwert Heizungsvorlauf”:28.1,“BSH”:“OFF”,“Heizstab Stufe 1”:“OFF”,“Heizstab Stufe 2”:“OFF”,“BPH”:“OFF”,“Auslass Wasser BUH Temp. (R2T)”:29,“R3T-Kältemittel Flüssigkeitstemperatur”:27.3,“R4T-Wasser Rücklauftemp. vor dem Plattenwärmetauscher”:26,“R5T-Brauchwassertemperatur im Speicher”:52.7,“Außen Umgebungs- oder Ext-Sensor”:0,“Speicher Eco ein/aus”:“OFF”,“Hochleistungs-DHW-Betrieb. EIN/AUS”:“OFF”,“Raumheizbetrieb EIN/AUS”:“OFF”,“Haupt-RT-Kühlung”:“OFF”,“Haupt-RT-Heizung”:“OFF”,“Umwälzpumpenbetrieb”:“OFF”,“Durchflussmenge (l/min)”:10.2,“Wasserdruck”:0,“Pumpengeschwindigkeit (0: max-100: Stopp)”:49,“Boiler Betrieb Anforderung”:“OFF”,“Boiler DHW Anforderung”:“OFF”,“BE_COP”:0,“Hybrid Heizung Solltemp.”:0,“Boiler Heizung Solltemp.”:28.1,“Mischwassertemperatur”:0,“WifiRSSI”:“-80dBm”,“FreeMem”:“192676”}

Auf der Webseite beschreibt er zwar auch wie man die Werte in Sensoren mittels Template verarbeiten kann, nur stelle ich mich entweder zu dumm an, sehe den Wald vor laute Bäumen nicht oder es hat sich etwas in der Syntax geändert.

Meine Templates habe ich in der template.yaml ausgelagert.

Kann mir jemand “Kollegensicher” erklären wie ich das anstelle, damit ich die Werte auch entsprechend auswerten und weiter verarbeiten kann?

Wäre bestimmt auch mal ein gutes Thema für den Simon wenn er mal wieder nicht weiß was er so machen soll :slight_smile:

Vielen lieben dank schon mal.

Viele Grüße Jens

Servus Jens,

Soweit ich das sehe, musst du in deiner template.yaml das hier eintragen:

template:
  - unique_id: "espaltherma"  # will be prefixed to all unique IDs
    sensor:
    - name: "Operation mode"
      unique_id: "operation"
      state: ""
    - name: "Indoor Operation mode"
      unique_id: "iuoperation"
      state: ""
    - name: "DHW Temp"
      unique_id: "dhw"
      state: ""
      unit_of_measurement: '°C'
    - name: "Inverter primary current"
      unique_id: "inv_primary_current"
      state: ""
      unit_of_measurement: 'A'
      device_class: current

Allerdings fehlen hier die states.

Diese solltest du wie folgt abrufen können:

{{ state_attr("sensor.althermasensors", "Operation Mode") }}

Zusammengesetzt also:

template:
  - unique_id: "espaltherma"  # will be prefixed to all unique IDs
    sensor:
    - name: "Operation mode"
      unique_id: "operation"
      state: "{{ state_attr('sensor.althermasensors','Operation Mode') }}"
    - name: "Indoor Operation mode"
      unique_id: "iuoperation"
      state: "{{ state_attr('sensor.althermasensors','I/U operation mode') }}"
    - name: "DHW Temp"
      unique_id: "dhw"
      state: "{{ state_attr('sensor.althermasensors','DHW tank temp. (R5T)') }}"
      unit_of_measurement: '°C'
    - name: "Inverter primary current"
      unique_id: "inv_primary_current"
      state: "{{ state_attr('sensor.althermasensors','INV primary current (A)') }}"
      unit_of_measurement: 'A'
      device_class: current

Die Werte hab ich in der Readme gefunden:

In der Docs Seite fehlen sie leider. Aber nach dem Schema kannst du beliebige Attribute als Entitäten erstellen.

Ich hoffe das klappt!

Hallo Florian,

recht vielen dank, ich werde es am Wochenende Probieren und dann berichten.

Gruß Jens

Hallo Florian,

ich wollte noch einmal kurz Rückmeldung geben.
Der Tipp hat Funktioniert und ich habe Sensoren so einbinden können.

Vielen lieben Dank dafür nochmals.

Viele Grüße

Jens

Servus Jens,

Freut mich, dass ich helfen konnte!

Viele Grüße,
Florian