chrbhm
12. April 2026 um 18:47
1
Hallo zusammen,
ich möchte gerne über HA einen Hinweis haben, ob sich anhand der absoluten Luftfeuchte außen das Lüften in der Waschküche im Keller lohnt.
Für die Außentemperatur und relative Luftfeuchte würde ich Sensoren vom Deutschen Wetterdienst nehmen, für innen habe ich im ersten Schritt einen oder zwei von Sonoff.
Mit diesen beiden Wertepaaren könnte ich die absolute Feuchte für innen und außen berechnen und wenn die absolute Feuchte draußen geringer ist, dann würde sich das Lüften zunächst lohnen.
Dann müsste irgendwo in HA ein Statusfeld grün aufleuchten.
(Im ersten Schritt vernachlässige ich die kühleren Außenwände, hier müsste eine zusätzliche Info kommen, ob hier mit Tauwasserausfall zu rechnen ist. Aber wie gesagt, das kommt später).
Ich wüsste wohl, wie ich z.B. in Python die Berechnung und den Vergleich der absoluten Feuchte erfassen kann, ich weiß aber überhaupt nicht, wie ich das in HA umsetzen soll.
Kann mir jemand auf die Sprünge helfen?
VG
Christian
So oder ähnlich würde die Berechnung/Vergleich in Python aussehen:
def absolute_humidity(T, rh_percent):
es = 6.112 * math.exp((17.67 * T) / (T + 243.5))
phi = rh_percent / 100.0
return (es * phi * 216.7) / (T + 273.15) # g/m³
T_aussen, rh_aussen = 10, 70
T_keller, rh_keller = 18, 75
ah_aussen = absolute_humidity(T_aussen, rh_aussen)
ah_keller = absolute_humidity(T_keller, rh_keller)
lueften = ah_aussen < ah_keller
Sowas ähnliches habe ich mal hier zusammen gestellt:
Template zur Berechnung der Taupunkt Temperatur und der absoluten Luftfeuchtigkeit. Die Sensoren für Temperatur und Luftfeuchtigkeit, müssen natürlich gegen eure eigne ersetzt werden. {% set t = states('sensor.temperature') | float(0) %} {##...
Lesezeit: 1 mins 🕑
„Gefällt mir“: 1 ❤
Gruß Osorkon
1 „Gefällt mir“
Linos
12. April 2026 um 19:39
3
Hi,
der „Standard Weg“ wäre über die configuration.yaml oder unter Helfer einen template Sensor („eigene Entity“) erstellen.
Das könnte dann so aussehen mit einem template Sensor (Jinja2)
e ist in HA definiert
Sensor-Namen musst du anpassen!
template:
- sensor:
- name: "Absolute Feuchte Außen"
unit_of_measurement: "g/m³"
state: >
{% set T = states('sensor.aussentemperatur') | float %}
{% set rh = states('sensor.aussenfeuchte') | float %}
{% set es = 6.112 * e ** ((17.67 * T) / (T + 243.5)) %}
{% set phi = rh / 100 %}
{{ ((es * phi * 216.7) / (T + 273.15)) | round(2) }}
- name: "Absolute Feuchte Keller"
unit_of_measurement: "g/m³"
state: >
{% set T = states('sensor.keller_temperatur') | float %}
{% set rh = states('sensor.keller_feuchte') | float %}
{% set es = 6.112 * e ** ((17.67 * T) / (T + 243.5)) %}
{% set phi = rh / 100 %}
{{ ((es * phi * 216.7) / (T + 273.15)) | round(2) }}
Als Nächstes könntest du mit einem weiteren Template Sensor die beiden Werte vergleichen und unterschiedlich reagieren.
- name: "Lüften Keller sinnvoll"
state: >
{% set aussen = states('sensor.absolute_feuchte_aussen') | float %}
{% set innen = states('sensor.absolute_feuchte_keller') | float %}
{{ aussen < innen }}
Ergebnis: true = Lüften empfohlen
Das machen wir zum Schluss im Dashboard → wenn true, dann state „grün“
Frage:
configuration.yaml ist bekannt → FileEditor?
1 „Gefällt mir“
Ich meine ich hätte meine Funktion damals im Thread mit der Dashboardvorstellung gepostet. Nun finde ich den Thread aber auf die Schnelle nicht…
1 „Gefällt mir“
chrbhm
13. April 2026 um 05:38
6
Hallo,
configuration.yaml ist mir ein Begriff, der File Editor ist installiert.
Der Code würde dann so mit den angepassten Namen in die configuration.yaml geschrieben?
Frage zum zweiten Teil des Codes:
Wo werden die Namen der Sensoren definiert? z.B. ('sensor.absolute_feuchte_aussen')
in meinem Fall sähe das so aus:
template:
- sensor:
- name: "Absolute Feuchte Außen"
unit_of_measurement: "g/m³"
state: >
{% set T = states(sensor.sm3b_aussentemperatur) | float %}
{% set rh = states(sensor.buchholz_i_d_nordh_relative_humidity) | float %}
{% set es = 6.112 * e ** ((17.67 * T) / (T + 243.5)) %}
{% set phi = rh / 100 %}
{{ ((es * phi * 216.7) / (T + 273.15)) | round(2) }}
- name: "Absolute Feuchte Keller"
unit_of_measurement: "g/m³"
state: >
{% set T = states(sensor.temphumi_sonoff_01_temperature) | float %}
{% set rh = states(sensor.temphumi_sonoff_01_humidity) | float %}
{% set es = 6.112 * e ** ((17.67 * T) / (T + 243.5)) %}
{% set phi = rh / 100 %}
{{ ((es * phi * 216.7) / (T + 273.15)) | round(2) }}
- name: "Lüften Keller sinnvoll"
state: >
{% set aussen = states('sensor.absolute_feuchte_aussen') | float %}
{% set innen = states('sensor.absolute_feuchte_keller') | float %}
{{ aussen < innen }}
chrbhm
13. April 2026 um 05:46
7
Hier ist er:
Da ist nur die Anwesendheits Anzeige links, die registriert über eine Kombi Smartphone-Ping und die Eingangstür.
Mit dem Knopf in der Mitte kann man Übersteuern, falls man Gäste ohne hinterlegtes Smartphone hat. dann geht die Anlage nicht auf Abwesend.
Rechts ist testweise eine Anzeige, wann die letzte Abwesendheit war. das ist aber nur, solange ich an der Funktion noch am Basteln bin, um die Funktion im Auge zu haben.
Mag es eher einfach. Es gibt noch extra Karten für zum Beispiel Klima log …
Genau so habe ich es mir im Ergebnis auf dem Dashboard vorgestellt.
Alternativ kann man auch die Custom-Integration “Thermal Comfort” benutzen: GitHub - dolezsa/thermal_comfort: Thermal Comfort sensor for HA (absolute humidity, heat index, dew point, thermal perception) · GitHub
Die berechnet einem u.A. auch die absolute Luftfeuchte (und noch viele andere Werte wenn man möchte). Das spart einem die Template-Sensoren und ist wirklich schnell eingerichtet. Die nutze ich schon seit über einem Jahr für “Lüftungsunterstützung”.
5 „Gefällt mir“
Davon würde ich abraten und einen eigenen Sensor empfehlen. Lokal kann es zu erheblichen Abweichungen gegenüber eines errechneten Wert kommen.
2 „Gefällt mir“
chrbhm
13. April 2026 um 07:39
10
Stimme dir zu. Für den Anfang würde ich aber diese Werte nehmen bis dann ein lokaler Outdoor Sensor ins Spiel kommt.
chrbhm
13. April 2026 um 10:18
11
Hat folgendermaßen geklappt:
Über die configurations.yaml habe ich mit ‘include’ eine ventilations.yaml eingebunden. Deren Inhalt sieht folgendermaßen aus:
sensor:
- unique_id: "absolute_humidity_outside"
name: "Absolute Feuchte Außen"
unit_of_measurement: "g/m³"
state: >
{% set T = states('sensor.sm3b_aussentemperatur') | float %}
{% set rh = states('sensor.buchholz_i_d_nordh_relative_humidity') | float %}
{% set es = 6.112 * e ** ((17.67 * T) / (T + 243.5)) %}
{% set phi = rh / 100 %}
{{ ((es * phi * 216.7) / (T + 273.15)) | round(2) }}
- unique_id: "absolute_humidity_basement"
name: "Absolute Feuchte Keller"
unit_of_measurement: "g/m³"
state: >
{% set T = states('sensor.temphumi_sonoff_01_temperature') | float %}
{% set rh = states('sensor.temphumi_sonoff_01_humidity') | float %}
{% set es = 6.112 * e ** ((17.67 * T) / (T + 243.5)) %}
{% set phi = rh / 100 %}
{{ ((es * phi * 216.7) / (T + 273.15)) | round(2) }}
- unique_id: "ventilate_basement"
name: "Lüften Keller sinnvoll"
state: >
{% set aussen = states('sensor.absolute_feuchte_aussen') | float %}
{% set innen = states('sensor.absolute_feuchte_keller') | float %}
{{ aussen < innen }}
(Das mit unique_id hätte ich mir sparen können.)
Mit drei Mushroom Entity Karten sehe ich nun folgendes:
Noch nicht perfekt. Aber der Weg ist mir nun klar. Nächster Schritt wird sein:
Die Gefahr des Tauwasserausfalls auf den Wänden zu ermitteln
Ein besserer Außensensor
Die Karten gefälliger gestalten
Eine automatische Zuluftsteuerung mit Ventilatoren und Lüftungsrohren entwerfen…
2 „Gefällt mir“
Linos
13. April 2026 um 20:29
12
Vielleicht wäre das interessant für dich.
Du kannst dir für die Übersichtlichkeit zusätzliche Order/file.yaml erstellen. Du musst dann nur in der configuration.yaml darauf verweisen
In dem Beispiel wäre das auf den Ordner „0_UserData“
1 „Gefällt mir“
chrbhm
16. April 2026 um 18:23
15
Moin Osorkon,
kurze Rückfrage:
Du hast in Deinem Makro aus dem verlinkten Beitrag ja bereits die Formel für den Taupunkt in Zeile 25 berücksichtigt mit:
{% set td = ((b*v) / (a-v)) | round(2) %} {## Taupunkttemperatur (°C) ##}
Wie muss ich das Makro bzw. die Datei ‘klima.jinja’ anpassen, um den Taupunkt als Rückgabewert zu erhalten?
VG
Christian
Das template berechnet ja beides.
Taupunkt = td
absolute Feuchte = af
Für Taupunkt, verwendest Du diese Zeile:
{{td}}
Und für die absolute Feuchte diese:
{{af}}
Gruß Osorkon
1 „Gefällt mir“
chrbhm
17. April 2026 um 05:36
17
Hab es so gelöst:
{% macro klima_entity(temperature, humidity, output='absf') %}
{## alles wie gehabt ##}
{% if output == 'taup' %}
{{ td }}
{% else %}
{{ af }}
{%- endif %}
Die Abfrage dann so:
{% from 'klima.jinja' import klima_entity %} {{
klima_entity('sensor.buchholz_i_d_nordh_temperature',
'sensor.buchholz_i_d_nordh_relative_humidity',output='taup' ) }}
Ich habe das ähnlich gelöst, auch mit abfrage der Sensoren und ob die Luftfeuchtigkeit draußen höher ist als drinnen.
alias: Lüften – intelligente Empfehlung
triggers:
trigger: numeric_state
entity_id:
sensor.bad_display_luftfeuchtigkeit
sensor.temperatur_schlafzimmer_humidity
sensor.temp_kuche_luftfeuchtigkeit
sensor.temp_ankleidezimmer_luftfeuchtigkeit
sensor.wohnzimmer_display_luftfeuchtigkeit
above: 65
for: “00:05:00”
trigger: numeric_state
entity_id: sensor.innenmodul_kohlendioxid
above: 1200
for: “00:05:00”
trigger: numeric_state
entity_id:
sensor.vindstyrka_pm25
sensor.vindstyrka_2_pm25
above: 25
for: “00:05:00”
trigger: numeric_state
entity_id:
sensor.vindstyrka_voc_index
sensor.vindstyrka_2_voc_index
above: 200
for: “00:05:00”
conditions:
condition: time
after: “08:00:00”
before: “23:00:00”
condition: state
entity_id: input_boolean.luften_erinnerung_aktiv
state: “off”
condition: template
value_template: |
{{ states(‘sensor.aussenmodul_luftfeuchtigkeit’) | float(0)
+ 5 <
states(trigger.entity_id) | float(0) }}
condition: template
value_template: >
{{ states(‘sensor.regenmesser_niederschlagsmenge_heute’) | float(0) == 0
}}
actions:
variables:
raum: >
{% if trigger.entity_id == ‘sensor.bad_display_luftfeuchtigkeit’ %}
Badezimmer
{% elif trigger.entity_id == ‘sensor.temperatur_schlafzimmer_humidity’
%}
Schlafzimmer
{% elif trigger.entity_id == ‘sensor.temp_kuche_luftfeuchtigkeit’ %}
Küche
{% elif trigger.entity_id ==
‘sensor.temp_ankleidezimmer_luftfeuchtigkeit’ %}
Ankleidezimmer
{% else %}
Wohnzimmer
{% endif %}
data:
chat_id: 5800968189
message: >
🌬 Lüften empfohlen im {{ raum }}. Innen: {{ states(trigger.entity_id)
}} Außen: {{ states(‘sensor.aussenmodul_luftfeuchtigkeit’) }}
action: telegram_bot.send_message
data:
message: |
Die Luft im {{ raum }} ist schlecht. Lüften ist jetzt sinnvoll.
action: notify.alexa_media_andreas_echo_show
target:
entity_id: input_boolean.luften_erinnerung_aktiv
action: input_boolean.turn_on
mode: single
mager
19. April 2026 um 22:33
19
Ich empfehle auch GitHub - dolezsa/thermal_comfort: Thermal Comfort sensor for HA (absolute humidity, heat index, dew point, thermal perception) · GitHub und sehe keinen Grund das selber fehlerträchtig zu implementieren.
Bei der Entscheidung Lüften ja/nein sollte man auch die Aussentemperatur berücksichtigen; ich schalte meine Taupunkt-Kellerlüftung nur bei zweistelligen Temperaturen ein um nicht alles auszukühlen.
1 „Gefällt mir“