Weather.get_forecasts - condition auf Deutsch

Hi!

Ich würde gerne in meinem template sensor in der configuration.yaml die Wetter condition auf deutsch haben. Mit dem api call kommt diese aber auf englisch daher (cloudy,…)

      - trigger:
      - platform: time
        at: "06:01:00"
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
        data:
            type: hourly
        response_variable: stundenvorhersage2
    sensor:
     - name: Vorhersage um 1500
       unique_id: forecast_1500
       state: "{{ now().isoformat() }}"
       icon: mdi:hours-24
       attributes:
          condition: "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].condition }}"

Wenn ich mir unter Zustände dann die condition ansehe bekomme ich “cloudy” statt “bewölkt” und es gibt da sicher einen besseren Weg als alle zustände händisch per IF zu übersetzen.

:crayon:by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)

Ich hatte das gleiche Problem find ich ehrlich gesagt auch ein wenig ein Rückschritt mit dem neuen Service, weil das gleiche Problem hast du auch mit den icons…

Ich habe es mit ct_translated versucht,

z.B.
state: "{{ ct_translated('component.weather.entity_component._.state.' + hourlyvorhersage['weather.openweathermap'].forecast[1].condition, 'de') }}"

Jedoch habe ich keine attribute sondern, habe für die condition einen eigenen Sensor.

Wenn andere noch das Problem haben:

a) Man benötigt von HACS das custom templates addon
b) in configuration.yaml brauch man:

custom_templates:
  preload_translations:
    - en
    - de

c) unter Entwicklerwerkzeuge/ Template kann man mal folgendes ausführen:

{{ ct_all_translations("en") }}

das spammt einem dann den Bildschirm voll, aber man bekommt dann den ersten Teil, den man für die translation braucht. Ich verwende ja met.no .

d) mein funktionierender code sieht nun so aus:

  - trigger:
#      - platform: time
#        at: "06:01:00"
      - platform: time_pattern
        minutes: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
        data:
            type: hourly
        response_variable: stundenvorhersage2
    sensor:
     - name: Vorhersage um 1500
       unique_id: forecast_1500
       state: "{{ now().isoformat() }}"
       icon: mdi:hours-24
       attributes:
          condition: "{{ ct_translated('component.weather.entity_component._.state.' + stundenvorhersage2['weather.forecast_home_2'].forecast[8].condition, 'de') }}"
          cloud_coverage: "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].cloud_coverage }}"
          temperature: "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].temperature }}"
          precipitation:  "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].precipitation }}"
          wind_speed:  "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].wind_speed }}"
          wind_bearing:  "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].wind_bearing }}"
          humidity:  "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].humidity }}"
          timestamp:  "{{ stundenvorhersage2['weather.forecast_home_2'].forecast[8].datetime }}"

Danke für die Lösung!