Thermal Comfort Mehrfachkonfiguration?

Fortsetzung der Diskussion von Kann man einen Template Sensor einem Gerät zuordnen?:

Hallo zusammen,

ich wollte u.a. die absolute Luftfeuchtigkeit berechnen nach dem “Schimmelbildungs-Video” von Simon.
In den Kommentaren dort wird auf Thermal Comfort verwiesen, was dies wohl macht.
Fein, muss man nicht alles manuell machen, dachte ich.
Ich habe die Integration dann installiert und konfiguriert mit dem “Außensensor”, den ich vom DWD nutze, da ich keinen eigenen Sensor habe.
Nun habe ich also alle Sensoren bezüglich draußen.

Ich möchte nun für jeden Temp/Feuchtigkeitssensor (4x Aqara) gegen die relative Luftfeuchte von draußen prüfen, um dann eine Aktion auszuführen.

Sehe ich es richtig, dass ich nun für jeden einzelnen Aqara-Sensor eine neue Thermal Comfort Integration anlegen muss?
Oder sollte ich für jeden Aqara-Sensor ein Template anlegen nach der Vorlage von Simon:

template:
    # Errechnet aus der relativen Luftfeuchtigkeit und Temperatur im Innenraum die absolute Luftfreuchtigkeit in Gramm pro Kubikmeter
      - name: "Absolute Luftfeuchtigkeit SZ"
        unique_id: "AbsoluteHumiditySZ"
        unit_of_measurement: "g/m^3"
        state_class: "measurement"
        state: > 
            {{ ( 1000*e**(19.016-(4064.95/(float(states('sensor.aqara_tvoc_air_quality_monitor_temperature'))+236.25)))*100/(461.66*(float(states('sensor.aqara_tvoc_air_quality_monitor_temperature'))+273.15)) * float(states('sensor.aqara_tvoc_air_quality_monitor_humidity'))/100 | float) | round (2) }}
    # Errechnet aus der relativen Luftfeuchtigkeit und Temperatur außen die absolute Luftfreuchtigkeit in Gramm pro Kubikmeter
      - name: "Absolute Luftfeuchtigkeit außen"
        unique_id: "AbsoluteHumidityOutside"
        unit_of_measurement: "g/m^3"
        state_class: "measurement"
        state: >
            {{ ( 1000*e**(19.016-(4064.95/(float(states('sensor.tuya_temperature_humidity_sensor_temperature'))+236.25)))*100/(461.66*(float(states('sensor.tuya_temperature_humidity_sensor_temperature'))+273.15)) * float(states('sensor.tuya_temperature_humidity_sensor_humidity'))/100 | float) | round (2) }}
    # Errechnet den Untschied der Luftfeuchte von innen und außen in Gramm pro Kubikmeter
      - name: "Absolute Luftfeuchtigkeit Unterschied"
        unique_id: "AbsoluteHumidityDifference"
        unit_of_measurement: "g/m^3"
        state_class: "measurement"
        state: >
            {{ ( float(states('sensor.absolute_luftfeuchtigkeit_sz')) - float(states('sensor.absolute_luftfeuchtigkeit_aussen')) ) | float | round (2) }}

Wenn per weiterer Integration, dann kann ich mir im Template die oberen beiden Berechnungen sparen,
da dies die Integration ja übernimmt. Demnach würde ich nur noch das Template für die Berechnung der Differenz benötigen, um dann auf die Different reagieren zu können.
Verstehe ich das richtig?

Eine weitere Frage: Ich habe irgendwo gelesen (meine ich zumindest, ich lese z.Zt. viel…), dass man das ganze (also die Benennung der Sensoren) auch auf deutsch haben kann? Ich kann mir das zwar alles selber übersetzen,
aber wenn es da eine Möglichkeit gibt, die Integration auf deutsch zu haben, wäre das nett.
@harryp Hast Du manuell übersetzt?

Hallo,

So habe ich es auch gemacht.

Das ist korrekt :slight_smile:

1 „Gefällt mir“

Ich habe es nun hinbekommen. Ich beschreibe mal etwas ausführlicher, weil das sicherlich dem ein oder anderen Anfänger, wie ich es bin, behilflich sein kann.

Wie von @Flens bestätigt habe ich:
Für jeden Aqara Temp./Feuchtigkeits-Sensor plus Außenwerte eine Thermal Comfort Integration angelegt und entsprechend konfiguriert. Für draußen hab ich erstmal alles genommen:
(Übersetzt manuell, weil ich nix mehr gefunden hatte. Wahrscheinlich war ich einfach etwas “überlesen” :wink:)

Für die Aqaras hab ich nur die absolute Luftfeuchtigkeit genommen, reicht.

Dann fehlte noch das Template für die Berechnung der Differenz der absoluten Luftfeuchtigkeit der Zimmer zu außen.
Hierzu wollte ich mich an die neue Template-Struktur halten und gleichzeitig aus der configurations.yaml auslagern.
Also Datei templates.yaml angelegt und in configurations.yaml mit
template: !include templates.yaml
eingebunden.
Dann das Template von oben mit angepassten Sensoren hineinkopiert.
Das hat nicht funktioniert, weil ganz oben noch template: stand.
Also raus damit, war auch logisch, ich hab nur gepennt. :roll_eyes:
Allerdings bekam ich dann einen Fehler nach dem anderen und konnte nicht speichern.

Ich habe dann hier nochmal nachgesehen und in den Kommentaren herausgefunden,
dass in Simons Beispiel der Eintrag - sensor: fehlt.
Das habe ich dann noch ergänzt, die Einrückungen angepasst, dann war auch alles i.O.
Hier der Code meiner templates.yaml:

# ---------- Sensoren ----------
  - sensor:
# Unterschied der Luftfeuchte von innen und außen in g/m³ --- Bad ---  
    - name: "Luftf. abs. Diff. Bad"
      unique_id: "AbsoluteHumidityDifferenceBad"
      unit_of_measurement: "g/m³"
      state_class: "measurement"
      state: >
            {{ ( float(states('sensor.tc_bad_absolute_humidity')) - float(states('sensor.outside_absolute_humidity')) ) | float | round (2) }}
# Unterschied der Luftfeuchte von innen und außen in g/m³ --- Wohnzimmer ---
    - name: "Luftf. abs. Diff. Wohnzimmer"
      unique_id: "AbsoluteHumidityDifferenceWohnzimmer"
      unit_of_measurement: "g/m³"
      state_class: "measurement"
      state: >
            {{ ( float(states('sensor.tc_wohnzimmer_absolute_humidity')) - float(states('sensor.outside_absolute_humidity')) ) | float | round (2) }}
# Unterschied der Luftfeuchte von innen und außen in g/m³ --- Schlafzimmer ---
    - name: "Luftf. abs. Diff. Schlafzimmer"
      unique_id: "AbsoluteHumidityDifferenceSchlafzimmer"
      unit_of_measurement: "g/m³"
      state_class: "measurement"
      state: >
            {{ ( float(states('sensor.tc_schlafzimmer_absolute_humidity')) - float(states('sensor.outside_absolute_humidity')) ) | float | round (2) }}
# Unterschied der Luftfeuchte von innen und außen in g/m³ --- Kinderzimmer ---
    - name: "Luftf. abs. Diff. Kinderzimmer"
      unique_id: "AbsoluteHumidityDifferenceKinderzimmer"
      unit_of_measurement: "g/m³"
      state_class: "measurement"
      state: >
            {{ ( float(states('sensor.tc_kinderzimmer_absolute_humidity')) - float(states('sensor.outside_absolute_humidity')) ) | float | round (2) }} 

Funktioniert.
Für den Sensor im Bad sieht das dann z.B. so aus:
image

Nun geht’s an die Automation.
Weiß noch nicht, was ich mache. Entweder wenn erforderlich eine Info dazu “Bitte lüften” oder eine Benachrichtigung aufs SmartPhone, vielleicht auch beides.

1 „Gefällt mir“

Hallo und Guten Morgen,

mir ist aufgefallen, dass du deine Raumlüftung von der absoluten Luftfeuchtigkeit abhängig machst. Das sollte m.M.n. aber abhängig vom Taupunkt sein. Deshalb nutzen wir ja auch die Thermal Comfort Integration, die berechnet ja aus der Temperatur und der Luftfeuchte den aktuellen Taupunkt.
Ich beschäftige mich gerade mit meiner Kellerlüftung, da hat mir der Tipp mit dem o.a. Template sehr geholfen, vielen Dank dafür :+1:
Oder habe ich gerade in Bezug auf Taupunkt und absolute Feuchte einen Denkfehler ?

Grüße

Die Betrachtung der absoluten Luftfeuchtigkeiten bzw. deren Differenz, die ich nutze,
kommt dem Taupunkt recht nah und ist ebenso ein Indiz, dahingehend zu lüften.
Mir persönlich reicht das so.
Ich habe draußen auch keinen Sensor, sondern nutze die Werte vom DWD.
Also auch nicht perfekt, für mich aber ok.
Direkt mit dem Taupunkt zu arbeiten ist natürlich auch nich verkehrt.

Ich verwende auch die Differenz innen/außen (die Luftfeuchtigkeit und die Temperatur jeweils über Shelly H/T erfasst).
Mache das Ganze aber über Node-Red, was mir den Template-Sensor erspart:

[{"id":"3301cc5d92b6ac73","type":"api-current-state","z":"ee39372d6d31698e","name":"Schlafzimmer Temperaturdifferenz","server":"a1aba8eb.bfd618","version":3,"outputs":2,"halt_if":"-0.5","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.temperaturunterschied_schlafzimmer_aussen","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":782,"y":1276,"wires":[["c710971677230407","f775a77f1044554a"],["0ccd5013e44bc2a6"]]},{"id":"9d0835943fed4045","type":"api-current-state","z":"ee39372d6d31698e","name":"Schlafzimmer >20,5°C","server":"a1aba8eb.bfd618","version":3,"outputs":2,"halt_if":"20.5","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.schlafraum_temperature","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":476,"y":1282,"wires":[["3301cc5d92b6ac73"],[]]},{"id":"c710971677230407","type":"api-current-state","z":"ee39372d6d31698e","name":"Feuchte Schlafen","server":"a1aba8eb.bfd618","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"sensor.schlafzimmerluft_absolute_luftfeuchtigkeit","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1058,"y":1226,"wires":[["20accdf3733f46c1"]]},{"id":"f775a77f1044554a","type":"api-current-state","z":"ee39372d6d31698e","name":"Feuchte  außen","server":"a1aba8eb.bfd618","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"sensor.aussenluft_absolute_luftfeuchtigkeit","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1078,"y":1276,"wires":[["20accdf3733f46c1"]]},{"id":"20accdf3733f46c1","type":"join","z":"ee39372d6d31698e","name":"Join","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1254,"y":1226,"wires":[["03c9a5c47dac3615"]]},{"id":"03c9a5c47dac3615","type":"switch","z":"ee39372d6d31698e","name":"Lüften?","property":"payload[0]","propertyType":"msg","rules":[{"t":"lt","v":"payload[1]","vt":"msg"},{"t":"gte","v":"payload[1]","vt":"msg"}],"checkall":"true","repair":false,"outputs":2,"x":1370,"y":1286,"wires":[["c717e76c9b3e3bd8"],["0ccd5013e44bc2a6"]]},{"id":"a1aba8eb.bfd618","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Danke für die schnelle Rückmeldung.

Meine PLS 1000 (Taupunktsteuerung) arbeitet auch mit dem Taupunkt, rechnerisch ergibt sich da schon eine kleine Ablage zur absoluten Feuchte. Klappt aber natürlich trotzdem.
Möchte meine Steuerung (PLS 1000) gerne ersetzen, da sie mir nicht smart genug ist…
Zur Zeit nutze ich einen Sensor im Innen- u. Außenbereich, verglichen mit den Daten vom DWD weicht das aber nur gering ab.
Mit Node Red hab ich mich leider noch nicht beschäftigt.

Grüße