Aktuelle Uhrzeit in Worten

petjek68

New member
Hallo zusammen,
kennt jemand eine Möglichkeit, wie ich die aktuelle Uhrzeit als String in eine Entität geschoben bekomme? Also aus 16:40 Uhr soll z.B. "Zwanzig vor Fünf" werden. Die soll dann jede Minute aktualisiert werden.
Ich suche mir die Finger wund, finde aber keinen Ansatz. Ich habe mal ein Template gefunden, womit ich die "Zeit seit X" in Jahren, Monaten usw. ausgeben kann. Das geht schon irgendwie in diese Richtung.
 
muss nur vom Niederländischen ins Deutsche übersetzen …

Code:
  - sensor:
      - name: klok_in_letters
        unique_id: 'klok_in_letters'
        state: >-
          {% set nu = now() %}
          {% set hr_txt = ["twaalf", "één", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen", "tien", "elf"] %}
          {% set min_txt = ['', 'vijf over ', 'tien over ', 'kwart over ', 'tien voor half ', 'vijf voor half ', 'half ', 'vijf over half ', 'tien over half ', 'kwart voor ', 'tien voor ', 'vijf voor ', ''] %}
          {% set min = nu.minute %}
          {% set rounded_min = (min / 5) | round * 5 %}
          {% set hr_txt = hr_txt[(nu.hour + (0 if min <= 17 else 1)) % 12] %}
          {% set min_txt = min_txt[(rounded_min / 5)|int] %}
          {% set diff = min - rounded_min %}
          het is {{ 'bijna ' if diff < 0 }}{{ min_txt }}{{ hr_txt }}{{ ' uur' if rounded_min in [0, 60] }}{{ ' geweest' if diff > 0 }}


ScreenHunter 272.jpg
 
YAML:
    {%- set hour = now().strftime("%H")|int -%}  
    {%- set minute = now().strftime("%M")|int -%}  
    {%- set hour = hour if minute < 8 else hour + 1 if hour + 1 < 24 else 0 -%}  
    {%- set hour = hour if hour < 13 and hour > 0 else hour - 12 if hour > 0 else 12 -%}  
    {% set i = minute // 15 - 1 -%}  
    {% set quarters = ['viertel', 'halb', 'dreiviertel' ] -%}  
    {% set quarter = quarters[i] if i >= 0 else '' -%}  
    {% set remainder = minute % 15 -%}  
    {% set end = 'Uhr' if i == -1 and remainder in [0,1] or i == 2 and remainder == 14 else '' -%}  
    {% set shortly = 'kurz' if remainder not in [14,0,1] else '' -%}  
    {% if remainder == 14 -%}
      {% set quarter = quarters[i+1] if i + 1 < quarters | length else '' -%}
    {% endif -%}  
    {% set beforeafter = '' -%}  
    {% if shortly -%}
      {% set beforeafter = 'nach' if remainder in range(2,8) else 'vor' -%}
      {% if beforeafter == 'vor' -%}
        {% set quarter = quarters[i+1] if i + 1 < quarters | length else '' -%}
      {% endif -%}
    {% endif -%}  
    {% set items = ['Es ist', shortly, beforeafter, quarter, hour
    | string , end] -%}  
    {{ items | reject('eq','') | list | join(' ') }}

Es ist kurz nach halb 1 - als Sprachansage für Rhasspy
Könnte man sicher nach obigem Beispiel verkürzen. Ich wollte keine minutengenauen Ansagen, sondern sinnvolle relativ passende ungenaue :).
 
muss nur vom Niederländischen ins Deutsche übersetzen …

Code:
  - sensor:
      - name: klok_in_letters
        unique_id: 'klok_in_letters'
        state: >-
          {% set nu = now() %}
          {% set hr_txt = ["twaalf", "één", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen", "tien", "elf"] %}
          {% set min_txt = ['', 'vijf over ', 'tien over ', 'kwart over ', 'tien voor half ', 'vijf voor half ', 'half ', 'vijf over half ', 'tien over half ', 'kwart voor ', 'tien voor ', 'vijf voor ', ''] %}
          {% set min = nu.minute %}
          {% set rounded_min = (min / 5) | round * 5 %}
          {% set hr_txt = hr_txt[(nu.hour + (0 if min <= 17 else 1)) % 12] %}
          {% set min_txt = min_txt[(rounded_min / 5)|int] %}
          {% set diff = min - rounded_min %}
          het is {{ 'bijna ' if diff < 0 }}{{ min_txt }}{{ hr_txt }}{{ ' uur' if rounded_min in [0, 60] }}{{ ' geweest' if diff > 0 }}


Anhang anzeigen 9980
Funktioniert bestens, danke dir!

awtrix.gif
 
Moinsen,
OT: schön, dass es geklappt hat...aber wer behandelt mich jetzt mit meinem Epileptischen Anfall, nachdem ich 5 Sekunden auf deine Anzeige geblickt habe...? 🤪
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.307
Beiträge
60.904
Mitglieder
6.425
Neuestes Mitglied
Luckson
Zurück
Oben