Wochentage in Deutsch

Das kannst du überall hin schreiben, wo ein Template stehen kann. Du setzt ein array (bzw dict), wo die Tage drin stehen und benutzt das mit days[wochentagnummer]
Oder im variables Bereich einer Automatisierung. Ausgabe Datum:
YAML:
variables:
  answer: >
    {% set weekdays = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"] %}
    {% set months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"] %}
    {{weekdays[now().weekday()]}} der {{ now().day }}.
 
Ok, das hilft mir nicht wirklich weiter... dafür bin ich wohl noch zu neu in der Materie....

Ich habe folgenden Code in einer yaml-Datei für ein TFT-Display, welches ich über einen ESP8266 betreibe:
Code:
captive_portal:
time:
  - platform: homeassistant
    id: homeassistant_time
# Display stuff
spi:
  clk_pin: GPIO14
  mosi_pin: GPIO13
display:
  - platform: st7735
    model: "INITR_BLACKTAB"
    id: tft1
    reset_pin: GPIO2
    cs_pin: GPIO15
    dc_pin: GPIO4
    rotation: 90
    device_width: 128
    device_height: 160
    col_start: 0
    row_start: 0
    eight_bit_color: true
    update_interval: 5s
    pages:
      - id: page1
        lambda: |-
          it.strftime(0, 0, id(font2), id(my_red), TextAlign::TOP_LEFT, "%H:%M Uhr", id(homeassistant_time).now());
          it.strftime(0, 60, id(font2), id(my_green), TextAlign::BASELINE_LEFT, "%A", id(homeassistant_time).now());
          it.strftime(0, 120, id(font2), id(my_yellow), TextAlign::BASELINE_LEFT, "%d.%m.%Y", id(homeassistant_time).now());
          
font:
  - file: 'fonts/BebasNeue-Regular.ttf'
    id: font2
    size: 36
color:
  - id: my_green
    red: 0%
    green: 100%
    blue: 0%
  - id: my_red
    red: 100%
    green: 0%
    blue: 0%
  - id: my_yellow
    red: 100%
    green: 100%
    blue: 0%
  - id: my_purple
    red: 100%
    green: 0%
    blue: 100%
  - id: my_blue
    red: 0%
    green: 0%
    blue: 100%
  - id: my_gray
    red: 50%
    green: 50%
    blue: 50%
    
button:
  - platform: restart
    name: "Restart"

Ich möchte nun in der Zeile
Code:
it.strftime(0, 60, id(font2), id(my_green), TextAlign::BASELINE_LEFT, "%A", id(homeassistant_time).now());
den englischen Wochentag durch den deutschen ersetzen....
Wo muss ich jetzt welchen Code einfügen ?

Greetz
Günni
 
Unter template lässt sich das lösen

YAML:
# tamplate

# Formatierte Zeit und Datum "Montag 13 März 2023"
  - sensor:
    - name: "Datum Uhrzeit"
      unique_id: datum_uhrzeit
      state: >
        {% set wochentag = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"] %}
        {% set monat = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"] %}
        {% set wochentag = wochentag[now().weekday()] %}
        {% set monat = monat[now().month - 1] %} {{ wochentag }}, der {{ now().day }} {{ monat }} {{now().year}}, {{now().timestamp() | timestamp_custom('%-X')}} Uhr
      icon: "mdi:calendar-clock"

Oder im Kurzform

YAML:
# Formatierte Zeit "Mo, 13 Mär 2023"
  - sensor:
    - name: "Formatierte Zeit"
      unique_id: formatierte_uhrzeit
      state: >
          {% set wochentag = ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"] %}
          {% set monat = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"] %}
          {% set wochentag = wochentag[now().weekday()] %}
          {% set monat = monat[now().month - 1] %}
          {{ wochentag }}, {{ now().day }} {{ monat }} {{now().year}}, {{ now().timestamp() | timestamp_custom('%H:%M') }}
      icon: "mdi:calendar-clock"
#        icon_template: mdi:calendar-clock
 
Ich bin anscheinend zu blöd, ich krieg es nicht hin...

Nochmal langsam:
In meiner configuration.yaml habe ich folgendes:
Code:
sensor:
- platform: template
    sensors:
      date2:
        friendly_name: Datum
        value_template: >
          {% set days = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'] %}
          {{ now().timestamp() | timestamp_custom(days[now().weekday()] ~ ' %d.%m.') }}
Das scheint ja auch soweit richtig zu sein, da mir HA bei der Überprüfung vor einem Neustart keinen Fehler ausgibt...

In der entsprechenden yaml-Datei vom ESP8266 in ESPHome habe ich folgendes drin:
Code:
- id: page1_1
        lambda: |-
          it.printf(64, 0, id(font3), TextAlign::TOP_CENTER, "- Tag -");
          it.strftime(0, 60, id(font4), TextAlign::BASELINE_LEFT, "%A", id(homeassistant_time).now());
Dies gibt mir für %A den Wochentag auf Englisch aus... was muss ich nun wo einfügen, damit ich den deutschen Wochentag bekomme ???

Greetz
Günni
 
Du müsstest dann auch den template sensor angeben und nicht den originalen von homeassistant
"%A", id(homeassistant_time).now())

Hier müsste dein template rein

"%A", id(sensor.datum))
 

Letzte Anleitungen

Statistik des Forums

Themen
4.673
Beiträge
47.702
Mitglieder
4.318
Neuestes Mitglied
brockau
Zurück
Oben