Thermal Comfort - Grafische Umsetzung

Wer es nicht kennt, es geht um die Integration Thermal Comfort

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 sieht’s bei mir aus.

3 „Gefällt mir“

So in etwa habe ich es mir auch vorgestellt. :+1:

“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 ?

Ich hab es relativ einfach gehalten :wink:
image

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: {}

Ich verwende GitHub - argaar/comfortable-environment-card: A card to display the Heat Index and Discomfort Index (aka Thom Index)

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.
grafik
grafik
grafik

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“

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

Das freut mich. Die Erklärung in diesem Beitrag.

Kannst du hierzu mal deine yaml zur Verfügung stellen?

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“