HowTo: Wetterdashboard für Anfänger

Barometer

Gemacht ist das “Barometer“ mit Hilfe der folgende Karte:

So sieht die Karte fertig aus:

Die Karte zeigt mehrere Ringe (Gauges) an.

  1. Der äußere Ring zeigt in Segmenten je nach Veränderung des Wertes - blau = niedrige Werte bis orange = höhere Werte. Die Range geht von 950hPa bis 1030 hPa. Beim Barometer geht es ja eher nicht um einen bestimmten Wert von einem bestimmtem Wert, sondern einem erreichten Wert auf einer Skala, daher bleibt…
  2. … der mittlere Ring immer voll gefüllt, egal wie der Wert ist.
  3. der innerste Ring dient nur der Abgrenzung, ohne Funktion, kann auch einfach entfernt werden.

Es gibt mehrere Werte zum Anzeigen:

  1. Ganz oben erscheint das Icon, allerdings nicht das Icon des Druck-Wertes, sondern ein Icon je nach Wettertrend. Also entweder - Sonnig- , - Teilweise / sonnig / bewölkt - oder regnerisch
  2. Darunter kommt der Trend des Luftdrucks. Entweder - Steigend - , - Gleichbleibend - oder Fallend
  3. In der Mitte folgt der Status des eingestellten Segmentringes außen. Hier dann sonnig - freundlich - veränderlich, oder regnerisch
  4. Abschließend der tatsächliche Status des Relativen Luftdrucks.

Das ist der Inhalt der Karte:

Zusammenfassung
type: custom:modern-circular-gauge
entity: sensor.gw1100a_relative_pressure
name: Barometer
needle: true
decimals: 0
start_from_zero: false
adaptive_state_color: true
smooth_segments: true
adaptive_icon_color: true
show_unit: false
state_font_size: 12
state-size: big
show_header: true
header_font_size: 29
header_position: bottom
header_offset: -13
icon: |-
  {% if is_state('binary_sensor.rel_luftruck_steigt','on') %}
    mdi:weather-sunny
  {% elif is_state('binary_sensor.rel_luftdruck_fallt','on') %}
    mdi:weather-pouring
  {% elif is_state('binary_sensor.rel_luftdruck_fallt','off'),
        is_state('binary_sensor.rel_luftdruck_steigt','off')
  %}
    mdi:weather-partly-cloudy
  {% else %}
  {% endif %}
icon_size: 14
icon_vertical_position: 80
tap_action:
  action: none
gauge_background_style:
  width: 4
  opacity: 1
gauge_foreground_style:
  width: 6
  color: "#048bd8"
min: 950
segments:
  - from: 950
    label: regnerisch
    color:
      - 15
      - 138
      - 215
  - from: 995
    color:
      - 255
      - 247
      - 0
    label: veränderlich
  - from: 1014
    color:
      - 115
      - 255
      - 0
    label: freundlich
  - from: 1020
    color:
      - 234
      - 157
      - 14
    label: sonnig
max: 1050
secondary:
  entity: sensor.gw1100a_relative_pressure
  show_gauge: inner
  state_size: small
  state_font_size: 8
  show_unit: true
  adaptive_state_color: false
  segments:
    - from: 0
      color:
        - 15
        - 138
        - 215
  gauge_radius: 42
  gauge_foreground_style:
    width: 2
    color: "#048bd8"
tertiary:
  entity: sensor.rel_luftdruck_trend
  state_size: small
  state_font_size: 6
  show_state: true
  show_unit: false
  adaptive_state_color: false
  show_gauge: inner
  gauge_radius: 40
  gauge_foreground_style:
    width: 1
    color: "#95d1f2"
grid_options:
  columns: 12
  rows: 4.5

Für das wechselnde Icon ist dann das hier verantwortlich:

{% if is_state('binary_sensor.rel_luftruck_steigt','on') %}
  mdi:weather-sunny
{% elif is_state('binary_sensor.rel_luftdruck_fallt','on') %}
  mdi:weather-pouring
{% elif is_state('binary_sensor.rel_luftdruck_fallt','off'),
        is_state('binary_sensor.rel_luftdruck_steigt','off')
%}
  mdi:weather-partly-cloudy
{% else %}
{% endif %}

Dazu benötigt ihr neben der oben erwähnten Karte auch noch das Folgende:

Integration: Trend

sowie insgesamt 3 Helfer:

  1. und da bin ich mir noch nicht gfanz sicher ob ich die Trendhelfer korrekt eingerichtet habe. Folgende Einstellungen habe ich da vorgenommen:
    1. ein Trendhelfer der den steigenden Druck verfolgt.

Interessant ist hier wohl die Mindestrate für die Veränderung. Die habe ich mal auf 0,5 hPa / 1h (Steigerung) eingestellt. Laut Doku wäre das dann ein Wert von 0,000138889 weil WERT / Zeit (0,5) / (60x60).

Die Speicherdauer dann eben auf 3600 da ich der Meinung bin dass das zusammen passen muss/sollte (3600 = ebenfalls 1h)

Hier nehme ich gerne Verbesserungen / Korrekturen) entgegen.

  1. der zweite Helfer ist dann ebenfalls ein Trend Helfer. Dieser verfolgt die fallenden Werte. Anlage erfolgt analog wie beschrieben, aber der Wert für die Mindestrate der Veränderungen muss dann logischerweise negativ sein, also -0,000138889
  2. der dritte Helfer liest die beiden Trendhelfer aus und ist vom Typ Template / Sensor. Dieser hat den folgenden Inhalt:
{% if is_state('binary_sensor.rel_luftruck_steigt','on') %}
  Steigend
{% elif is_state('binary_sensor.rel_luftdruck_fallt','on') %}
  Fallend
{% elif is_state('binary_sensor.rel_luftdruck_fallt','off'),
is_state('binary_sensor.rel_luftdruck_steigt','off')
%}
  Gleichbleibend
{% else %}
{% endif %}
  • Wenn der Steigende Trend-Helfer an ist, dann Steigend ausgeben
  • Wenn der Fallende Trend-Helfer an ist, dann Fallend ausgeben
  • Wenn beide Trend-Helfer aus sind, dann Gleichbleibend ausgeben (“An” können nicht gleichzeitig beide sein)
  • Das else darf laut Doku leer sein

Ist hier der Syntax so richtig??? Ich hatte in der JINJA2 Doku als Operator für eine UND-Verknüfung eigentlich and gefunden. das funktionierte aber nicht.

11 „Gefällt mir“