Wer es nicht kennt, es geht um die Integration Thermal Comfort
Thermal Comfort sensor for HA (absolute humidity, heat index, dew point, thermal perception)
Hier bin ich auf der Suche nach Input, wie man es am besten grafisch umsetzen kann.
Momentan habe ich es so geregelt
Mit einer Analoganzeige Karte
Die Prozentwerte kommen aus einem Template Sensor
{{((float(states.sensor.thermal_comfort_bad_absolute_luftfeuchtigkeit.state) - float(states.sensor.thermal_comfort_balkon_absolute_luftfeuchtigkeit.state))
* 100.00 / float(states.sensor.thermal_comfort_bad_absolute_luftfeuchtigkeit.state)) | round(1) }}
welcher auf diesem Video von einem Simon seiner “Kollegen” beruht
Wie habt ihr es grafisch gelöst ?
1 „Gefällt mir“
So in etwa habe ich es mir auch vorgestellt.
“Wohnzimmer lüften entfeuchten”
Hier liegt wohl ein Wert der Absoluten Luftfeuchtigkeit dahinter.
Ist das die einfache Differenz zwischen außen und innen Luftfeuchte ?
Oder berechnest Du da noch was weiteres ?
“Wohnzimmer lüften abkühlen”
Ist dass die einfache Differenz zwischen Außen- und Innentemperatur ?
Könntest Du bitte auch einen Screenshot (oder yaml) der Kartenconfig posten ?
maxe
15. November 2024 um 07:35
4
Ich hab es relativ einfach gehalten
rstuck
15. November 2024 um 12:58
5
Richtig, das sind einfach die Differenzen berechnet mit einem Sensor-Template.
Hier der yaml-code vom Dashboard
views:
- type: sections
sections:
- type: grid
cards:
- type: heading
heading: Lüften
heading_style: title
icon: mdi:window-closed-variant
- type: tile
entity: sensor.thermal_comfort_aussen_absolute_luftfeuchtigkeit
name: Aussen
layout_options:
grid_columns: 4
grid_rows: 1
icon: mdi:cloud-outline
hide_state: false
vertical: false
state_content:
- temperature
- humidity
- state
- last-updated
- type: tile
entity: sensor.thermal_comfort_oben_absolute_luftfeuchtigkeit
name: 'Oben '
layout_options:
grid_columns: 4
grid_rows: 1
icon: mdi:home-roof
hide_state: false
vertical: false
state_content:
- temperature
- humidity
- state
- last-updated
- type: tile
entity: sensor.thermal_comfort_badezimmer_absolute_luftfeuchtigkeit
name: 'Badezimmer '
layout_options:
grid_columns: 4
grid_rows: 1
icon: mdi:shower-head
hide_state: false
vertical: false
state_content:
- temperature
- humidity
- state
- last-updated
- type: tile
entity: sensor.thermal_comfort_wohnzimmer_absolute_luftfeuchtigkeit
name: 'Wohnzimmer '
layout_options:
grid_columns: 4
grid_rows: 1
icon: mdi:sofa-outline
hide_state: false
vertical: false
state_content:
- temperature
- humidity
- state
- last-updated
- type: gauge
entity: sensor.temp_aussen_vorne_temperature
severity:
green: 18
yellow: 25
red: 30
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
max: 50
- type: gauge
entity: sensor.wohnzimmer_luften_entfeuchten
min: -5
max: 5
severity:
green: 1
yellow: -1
red: -5
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
- type: gauge
entity: sensor.badezimmer_luften_entfeuchten
min: -5
max: 5
severity:
green: 1
yellow: -1
red: -5
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
- type: gauge
entity: sensor.oben_luften_entfeuchten
min: -5
max: 5
severity:
green: 1
yellow: -1
red: -5
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
- type: gauge
entity: sensor.temp_aussen_hinten_temperature
severity:
green: 18
yellow: 25
red: 30
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
max: 50
- type: gauge
entity: sensor.wohnzimmer_luften_abkuhlen
min: -5
max: 5
severity:
green: 0.2
yellow: -1
red: -5
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
- type: gauge
entity: sensor.badezimmer_luften_abkuhlen
min: -5
max: 5
severity:
green: 0.2
yellow: -1
red: -5
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
- type: gauge
entity: sensor.oben_luften_abkuhlen
min: -5
max: 5
severity:
green: 0.2
yellow: -1
red: -5
needle: true
layout_options:
grid_columns: 2
grid_rows: auto
column_span: 2
- type: grid
cards:
- type: heading
heading: Relative Luftfeuchte
- graph: line
type: sensor
entity: sensor.beckumer_berg_luftfeuchtigkeit
detail: 2
name: 'Aussen '
layout_options:
grid_columns: 2
grid_rows: 2
- graph: line
type: sensor
entity: sensor.wt_bad_humidity
detail: 2
name: 'Badezimmer '
layout_options:
grid_columns: 2
grid_rows: 2
- graph: line
type: sensor
entity: sensor.wt_wohnzimmer_humidity_2
detail: 2
name: 'Wohnzimmer '
layout_options:
grid_columns: 2
grid_rows: 2
- graph: line
type: sensor
entity: sensor.wt_jolina_humidity
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: Oben
- type: grid
cards:
- type: heading
heading: Absolute Luftfeuchte
- graph: line
type: sensor
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Aussen '
entity: sensor.thermal_comfort_aussen_absolute_luftfeuchtigkeit
- graph: line
type: sensor
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Badezimmer '
entity: sensor.thermal_comfort_badezimmer_absolute_luftfeuchtigkeit
- graph: line
type: sensor
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Wohnzimmer '
entity: sensor.thermal_comfort_wohnzimmer_absolute_luftfeuchtigkeit
- graph: line
type: sensor
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Oben '
entity: sensor.thermal_comfort_oben_absolute_luftfeuchtigkeit
- type: grid
cards:
- type: heading
heading: 'Temperatur '
- graph: line
type: sensor
entity: sensor.beckumer_berg_temperatur
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: Aussen
- graph: line
type: sensor
entity: sensor.wt_bad_actual_temperature
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Badezimmer '
- graph: line
type: sensor
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Wohnzimmer '
entity: sensor.wt_wohnzimmer_actual_temperature_2
- graph: line
type: sensor
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Oben '
entity: sensor.wt_jolina_actual_temperature
- type: grid
cards:
- type: heading
heading: Taupunkt
- graph: line
type: sensor
entity: sensor.thermal_comfort_aussen_taupunkt
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: Aussen
- graph: line
type: sensor
entity: sensor.thermal_comfort_badezimmer_taupunkt
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Badezimmer '
- graph: line
type: sensor
entity: sensor.thermal_comfort_wohnzimmer_taupunkt
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Wohnzimmer '
- graph: line
type: sensor
entity: sensor.thermal_comfort_oben_taupunkt
detail: 2
layout_options:
grid_columns: 2
grid_rows: 2
name: 'Oben '
- cards:
- type: heading
heading: Aussentemperatur
- title: Verlauf
type: history-graph
hours_to_show: 38
entities:
- entity: sensor.temp_aussen_vorne_temperature
- entity: sensor.temp_aussen_hinten_temperature
- entity: sensor.beckumer_berg_temperatur
- entity: sensor.ebusd_bai_outdoorstempsensor_temp
logarithmic_scale: false
layout_options:
grid_columns: full
column_span: 2
- type: grid
cards:
- type: heading
heading: 'Fenster und Türen '
- type: tile
entity: binary_sensor.tfk_bad_state
- type: tile
entity: binary_sensor.tfk_haustur_state_2
show_entity_picture: true
icon: mdi:door
- type: tile
entity: binary_sensor.tfk_schlafzimmer_contact
- type: custom:layout-break
layout_options:
grid_columns: 2
grid_rows: 1
- type: tile
entity: binary_sensor.tfk_terrassentur_state
icon: mdi:door
- type: tile
entity: binary_sensor.tfk_jolina_contact
- type: tile
entity: binary_sensor.tfk_wc_state
column_span: 2
max_columns: 2
cards: []
title: Klima
icon: mdi:home-thermometer-outline
background: {}
Alex
15. November 2024 um 15:27
6
Erst einmal danke für die bisherigen Antworten.
Dies ist mein aktueller Stand
Die beiden oberen Karten geben an - ob gelüftet werden muss.
Die beiden Karten in der Mitte geben an - ob gelüftet werden darf.
Die beiden unteren Karten sind nur als zusätzliche Info gedacht z.b. ob es draußen kälter ist als Drinnen
Der Status oben passt sich dem Wert an.
Momentan nur an der relativen Luftfeuchte.
Werde das noch kombinieren sobald das Layout fertig ist.
Auch bin ich mir nicht sicher ob ich die Legende mit anzeigen möchte.
1 „Gefällt mir“
mpausb
5. März 2025 um 12:41
8
Das gefällt mir wirklich mega, würde ich gern so nachbauen.
Kannst Du mir sagen wie du das mit dem “Differenzen berechnet mit einem Sensor-Template” gemacht hast und welche Karten du für die Anzeige zB. Relative Luftfeuchte genutzt hast. Ich bekomme da immer nur endlos lange Dezimalzahlen nach dem Komma angezeigt. Vielen Dank schon mal im Voraus
rstuck
5. März 2025 um 13:11
9
Das freut mich. Die Erklärung in diesem Beitrag .
Kannst du hierzu mal deine yaml zur Verfügung stellen?
ShawnR
17. Oktober 2025 um 08:59
11
Würde mich auch interessieren. Auch wenn es schon lange her ist
Ups, hatte den Code damals per PN verschickt.
YAML Code für die Karte
type: custom:vertical-stack-in-card
cards:
- type: markdown
content: >
<font size="+2"><b>Arbeitszimmer</b></font>
{% set value = states('sensor.t_h_sensor_az_luftfeuchtigkeit') | float %}
{% if value > 65 %} <ha-alert alert-type="error">Die Luftfeuchtigkeit ist
sehr hoch. (> 65%)
Bitte sofort lüften, sofern möglich.
</ha-alert> {% elif value > 60 %} <ha-alert alert-type="warning">Die
Luftfeuchtigkeit ist schlecht. (60-65%)
Bitte lüften, sofern möglich.
</ha-alert> {% elif value > 40 %} <ha-alert alert-type="success">Die
Luftfeuchtigkeit ist optimal. (40-60%)
</ha-alert> {% else %} <ha-alert alert-type="info">Die Luftfeuchtigkeit
ist sehr gering. (< 40%)
Lüften oder Luftbefeuchter benutzen.
</ha-alert> {% endif %}
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.t_h_sensor_az_luftfeuchtigkeit
name: Relative Luftfeuchtigkeit
needle: true
severity:
green: 40
yellow: 60
red: 65
min: 20
max: 80
- type: gauge
entity: sensor.thermal_comfort_az_absolute_luftfeuchtigkeit
name: Absolute Luftfeuchtigkeit
needle: true
severity:
green: 6
yellow: 11.7
red: 12.2
max: 20
- type: markdown
content: >
{% set value = states('sensor.luften_absolutefeuchtediff_aussen_az') |
float %} {% if value > 3 %} <ha-alert alert-type="success">Die Differenz
ist optimal. (> 3 g/m³)
Es kann jederzeit gelüftet werden.</ha-alert> {% elif value > 2 %}
<ha-alert alert-type="warning">Die Differenz ist schlecht. (2-3 g/m³)
Lüften möglich, aber nicht optimal.</ha-alert> {% elif value > -100 %}
<ha-alert alert-type="error">Die Differenz ist zu gering. (< 2 g/m³)
Es wird nicht empfohlen zu lüften.</ha-alert> {% else %} <ha-alert
alert-type="info">Die Differenz ist außerhalb vom normalen Bereich. (> 100
g/m³)</ha-alert> {% endif %}
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.luften_absolutefeuchtediff_aussen_az
name: Diff. Abs. Luftfeuchtigk.
needle: true
severity:
green: 3
yellow: 2
red: -10
max: 16
min: -10
- type: gauge
entity: sensor.luften_abweichung_aussen_az
name: Diff. Abs. Luftfeuchtigk.
severity:
green: 20
yellow: 5
red: -100
min: -100
needle: true
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.t_h_sensor_az_temperatur
needle: true
severity:
green: 20
yellow: 24
red: 30
max: 40
- type: gauge
entity: sensor.luften_tempdiff_aussen_az
needle: false
severity:
green: 5
yellow: -5
red: -26
min: -50
max: 30
name: Diff. - Außentemperatur
3 Template Sensoren
sensor.luften_absolutefeuchtediff_aussen_az
sensor.luften_absolutefeuchtediff_aussen_az
{{(float(states.sensor.thermal_comfort_az_absolute_luftfeuchtigkeit.state) - float(states.sensor.thermal_comfort_balkon_absolute_luftfeuchtigkeit.state))
| round(1) }}
sensor.luften_abweichung_aussen_az
sensor.luften_abweichung_aussen_az
{{((float(states.sensor.thermal_comfort_az_absolute_luftfeuchtigkeit.state) - float(states.sensor.thermal_comfort_balkon_absolute_luftfeuchtigkeit.state))
* 100.00 / float(states.sensor.thermal_comfort_az_absolute_luftfeuchtigkeit.state)) | round(1) }}
sensor.luften_tempdiff_aussen_az
sensor.luften_tempdiff_aussen_az
{{(float(states.sensor.temp_und_feuchte_sensor_balkon_temperatur.state) - float(states.sensor.t_h_sensor_az_temperatur.state))
| round(1) }}
1 „Gefällt mir“