Météo et voix

Bonjour,

je me met à voice assistant, doucement mais sans magic word.

voici mon texte de prévision météo (meteofrance)

  alias: Voice - Météo
  description: ""
  trigger:
    - platform: conversation
      command:
        - prévision météo
  condition: []
  action:
    - set_conversation_response:
        La météo d'aujourd'hui est temps {{states('weather.boulogne_billancourt')}}, température {{state_attr('weather.boulogne_billancourt','temperature')|round(1)}} ° avec {{state_attr('weather.boulogne_billancourt','humidity')|round(0)}} % d'hygrométrie.
        demain temps {{state_attr('weather.boulogne_billancourt','forecast')[1].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[1].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[1].temperature|round(0)}} ° avec {{state_attr('weather.boulogne_billancourt','forecast')[1].humidity}} % d'hygrométrie.
        apres demain temps {{state_attr('weather.boulogne_billancourt','forecast')[2].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[2].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[2].temperature|round(0)}} ° avec {{state_attr('weather.boulogne_billancourt','forecast')[2].humidity}} % d'hygrométrie.
        Lundi 22 temps {{state_attr('weather.boulogne_billancourt','forecast')[3].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[3].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[3].temperature|round(0)}} °.
        Mardi 23 temps {{state_attr('weather.boulogne_billancourt','forecast')[4].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[4].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[4].temperature|round(0)}} °.
        Mercredi 24 temps {{state_attr('weather.boulogne_billancourt','forecast')[5].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[5].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[5].temperature|round(0)}} °.
        {% set time = now().hour %}
        {% if  (time >= 22) %} Bonne nuit.
        {% elif (time >= 18) %} Bonne soirée.
        {% elif (time >= 12) %} Bon après-midi.
        {% elif (time >= 5) %} Bonne journée.
        {% else %} Va donc te coucher au lieu de dire des bêtises ! {% endif %}
  mode: single

mais je ne sais pas comment je pourrai mettre la date …
demain, c’est bon, après demain aussi !!!
mais ensuite, il va falloir mettre le jour et la date…

comment mettre le nom du jour et le quantieme qui sera dans 3, 4 et 5 jours ??? pour remplacer mon Lundi 22, Mardi 23 et Mercredi 24 ???

Hello,

Pour obtenir le jour de demain, tu peux faire ça :

{{ (now() + timedelta(days=1)).strftime("%d") }}

now() => date du jour
+timedelta(days=1) => ajouter 1 jour (remplace le 1 par ce qui t’arrange)
.strftime(« %d ») => extrait le numéro du jour de la date calculée

Impeccable !!!

{{(now()+timedelta(days=3)).strftime(« %A %d »)}} me donne le 3eme jour.

Monday 26 temps rainy, il fera entre 9 et 12 °.

mais ca m’amène au second problème
comment traduire ces temps et ces jours de la semaine en Français ???

        {% set weather_condition = {
          'clear': 'et le temps est clair',
          'clear-night': 'et la nuit est claire',
          'cloudy': 'et le temps est nuageux',
          'exceptional': 'et les conditions météos sont exceptionnelles',
          'fog': 'avec du brouillard',
          'hail': 'avec de la grêle',
          'lightning': 'avec de l\'orage',
          'lightning-rainy': 'avec de l\'orage et de la pluie',
          'partlycloudy': 'et un temps partiellement nuageux',
          'pouring': 'et une pluie battante',
          'rainy': 'et de la pluie',
          'snowy': 'et de la neige',
          'snowy-rainy': 'avec pluie et neige mêlées',
          'sunny': 'et un temps ensoleillé',
          'windy': 'avec un temps venteux',
          'windy-variant': 'et un temps variable et venteux'
        } %}
        {% set weatherstate = states('weather.xxxxx') %}
        il fait {{ state_attr('weather.xxxxxx', 'temperature') }} {{ "degrés" }} {{ weather_condition[weatherstate] }}

Une solution de @Krull56 Year of the voice - Chapitre 5, c'est ce mercredi - #20 par Krull56

Ce n’est malheureusement pas possible « nativement »…

Faut faire un truc de cochon…

{{ ["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"][now().weekday()] }}

Quel duo !!!

bon, pour les trucs de cochons, ca ira avec mon avatar !!!

je teste !!!

@WarC0zes « Institution de solution »… plutôt « Voleur de solution » :rofl: :rofl: :rofl:

Sans rancune

Corrigé. J’ai oublier ca arrive :crazy_face:

  alias: Voice - Météo
  description: ""
  trigger:
    - platform: conversation
      command:
        - quelle est la météo
  condition: []
  action:
    - set_conversation_response:
        
        demain temps {{state_attr('weather.boulogne_billancourt','forecast')[1].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[1].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[1].temperature|round(0)}} ° avec {{state_attr('weather.boulogne_billancourt','forecast')[1].humidity}} % d'hygrométrie.
        apres demain temps {{state_attr('weather.boulogne_billancourt','forecast')[2].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[2].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[2].temperature|round(0)}} ° avec {{state_attr('weather.boulogne_billancourt','forecast')[2].humidity}} % d'hygrométrie.
        {{ ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'][now().weekday()+3] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+2] }} temps {{state_attr('weather.boulogne_billancourt','forecast')[3].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[3].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[3].temperature|round(0)}} °.
        {{ ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'][now().weekday()+4] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+3] }} temps {{state_attr('weather.boulogne_billancourt','forecast')[4].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[4].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[4].temperature|round(0)}} °.
        {{ ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'][now().weekday()+5] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+4] }} temps {{state_attr('weather.boulogne_billancourt','forecast')[5].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[5].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[5].temperature|round(0)}} °.
        {% set time = now().hour %}
        {% if  (time >= 22) %} Bonne nuit.
        {% elif (time >= 18) %} Bonne soirée.
        {% elif (time >= 12) %} Bon après-midi.
        {% elif (time >= 5) %} Bonne journée.
        {% else %} Va donc te coucher au lieu de dire des bétises ! {% endif %}

j’ai réussi à mettre le jour de la semaine en Français sur une ligne, mais pour aller chercher le {{state_attr('weather.boulogne_billancourt','forecast')[1].condition}} ca ma parait plus « hardcore »…jusqu’à ou ???

ça ne répond pas à ta question, mais peut-être un chouille plus propre pour tes jours de semaine :wink: (à appliquer ensuite à tes autres variables) :

  alias: Voice - Météo
  description: ""
  trigger:
    - platform: conversation
      command:
        - quelle est la météo
  condition: []
  action:
    - set_conversation_response:
        {% set jourssemaine = ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'] %}
        demain temps {{state_attr('weather.boulogne_billancourt','forecast')[1].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[1].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[1].temperature|round(0)}} ° avec {{state_attr('weather.boulogne_billancourt','forecast')[1].humidity}} % d'hygrométrie.
        apres demain temps {{state_attr('weather.boulogne_billancourt','forecast')[2].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[2].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[2].temperature|round(0)}} ° avec {{state_attr('weather.boulogne_billancourt','forecast')[2].humidity}} % d'hygrométrie.
        {{ jourssemaine[now().weekday()+3] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+2] }} temps {{state_attr('weather.boulogne_billancourt','forecast')[3].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[3].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[3].temperature|round(0)}} °.
        {{ jourssemaine[now().weekday()+4] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+3] }} temps {{state_attr('weather.boulogne_billancourt','forecast')[4].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[4].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[4].temperature|round(0)}} °.
        {{ jourssemaine[now().weekday()+5] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+4] }} temps {{state_attr('weather.boulogne_billancourt','forecast')[5].condition}}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[5].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[5].temperature|round(0)}} °.
        {% set time = now().hour %}
        {% if  (time >= 22) %} Bonne nuit.
        {% elif (time >= 18) %} Bonne soirée.
        {% elif (time >= 12) %} Bon après-midi.
        {% elif (time >= 5) %} Bonne journée.
        {% else %} Va donc te coucher au lieu de dire des bétises ! {% endif %}

Ah carrément…

comment çà, en pleine paix, un bourre-pif ???

j’étais plutôt content de moi, mais c’était du cochon²
t’as raison c’est plus propre. et de loin…

Et ça, c’est juste pour me la péter :wink:

{% set jourssemaine = ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'] %}
{{ jourssemaine[(now().weekday()+3) % 7] }}

ca devrait marcher, sauf que …

- id: "1708716117740"
  alias: Voice - météo
  description: ""
  trigger:
    - platform: conversation
      command:
        - prévision météo
  condition: []
  action:
    - set_conversation_response: >
        {% set jourssemaine = ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'] %}
        {% set weather_condition = {
          'clear': 'temps clair',
          'clear-night': 'nuit claire',
          'cloudy': 'temps nuageux',
          'exceptional': 'conditions météos exceptionnelles',
          'fog': 'brouillard',
          'hail': 'grêle',
          'lightning': 'temps orageux',
          'lightning-rainy': 'temps orageux et pluvieux',
          'partlycloudy': 'temps partiellement nuageux',
          'pouring': 'pluie battante',
          'rainy': 'pluie',
          'snowy': 'neige',
          'snowy-rainy': 'pluie et neige mêlées',
          'sunny': 'temps ensoleillé',
          'windy': 'temps venteux',
          'windy-variant': 'temps variable et venteux'
        } %}
        La météo d'aujourd'hui est {{ weather_condition[states('weather.boulogne_billancourt')] }}, il fait {{state_attr('weather.boulogne_billancourt','temperature')|round(1)}} ° avec {{state_attr('weather.boulogne_billancourt','humidity')|round(0)}} % d'hygrométrie.
        demain {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[3].condition] }}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[1].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[1].temperature|round(0)}} ° avec une hygrométrie de {{state_attr('weather.boulogne_billancourt','forecast')[1].humidity|round(0)}} %.
        apres demain {{ jourssemaine[now().weekday()+2] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+1] }} {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[4].condition] }}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[2].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[2].temperature|round(0)}} ° avec une hygrométrie de {{state_attr('weather.boulogne_billancourt','forecast')[2].humidity|round(0)}} %.
        {{ jourssemaine[now().weekday()+3] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+2] }} {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[3].condition] }}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[3].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[3].temperature|round(0)}} °.
        {{ jourssemaine[now().weekday()+4] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+3] }} {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[4].condition] }}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[4].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[4].temperature|round(0)}} °.
        {{ jourssemaine[now().weekday()+5] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+4] }} {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[5].condition] }}, il fera entre {{state_attr('weather.boulogne_billancourt','forecast')[5].templow|round(0)}} et {{state_attr('weather.boulogne_billancourt','forecast')[5].temperature|round(0)}} °.
        {{ jourssemaine[now().weekday()+6] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+5] }} {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[6].condition] }}, il fera {{state_attr('weather.boulogne_billancourt','forecast')[6].temperature|round(0)}} °.
        {{ jourssemaine[now().weekday()+7] }} {{ ['1er','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'][ now().day+6] }} {{ weather_condition[state_attr('weather.boulogne_billancourt','forecast')[7].condition] }}, il fera {{state_attr('weather.boulogne_billancourt','forecast')[7].temperature|round(0)}} °.
        {% set time = now().hour %}
        {% if  (time >= 22) %} Bonne nuit.
        {% elif (time >= 18) %} Bonne soirée.
        {% elif (time >= 12) %} Bon après-midi.
        {% elif (time >= 5) %} Bonne journée.
        {% else %} Va donc te coucher au lieu de dire des bêtises ! {% endif %}
  mode: single

ca c’est le code que j’ai en fin de mon fichier automations.yaml

ca me donne dans les outils de développement:

        demain pluie, il fera entre 4 et 8 ° avec une hygrométrie de 85 %.
        apres demain Dimanche 25 temps nuageux, il fera entre 5 et 10 ° avec une hygrométrie de 95 %.
        Lundi 26 pluie, il fera entre 9 et 12 °.
        Mardi 27 temps nuageux, il fera entre 6 et 12 °.
        Mercredi 28 temps partiellement nuageux, il fera entre 6 et 12 °.
        Jeudi 29 pluie, il fera 13 °.
        Vendredi 30 pluie, il fera 13 °.
        
         Bonne soirée.

ca c’est outils de développement

avec assist en mode texte:

prévision météo
La météo d'aujourd'hui est temps nuageux, il fait 6.0 ° avec 80 % d'hygrométrie. demain pluie, il fera entre 4 et 8 ° avec une hygrométrie de 85 %. apres demain Dimanche 25 temps nuageux, il fera entre 5 et 10 ° avec une hygrométrie de 95 %. Lundi 26 pluie, il fera entre 9 et 12 °. Mardi 27 temps nuageux, il fera entre 6 et 12 °. Mercredi 28 temps partiellement nuageux, il fera entre 6 et 12 °. Jeudi 29 pluie, il fera 13 °. Vendredi 30 pluie, il fera 13 °. Bonne soirée.

ca c’est assist

mais à la voix, rien - nada - nothing

|21:24:29|[D]|[voice_assistant:412]|State changed from STOP_MICROPHONE to STOPPING_MICROPHONE|
| --- | --- | --- | --- |
|21:24:29|[D]|[voice_assistant:412]|State changed from STOPPING_MICROPHONE to IDLE|
|21:24:29|[D]|[voice_assistant:519]|Event Type: 4|
|21:24:29|[D]|[voice_assistant:547]|Speech recognised as: "Prévisions météo."|
|21:24:29|[D]|[voice_assistant:519]|Event Type: 5|
|21:24:29|[D]|[voice_assistant:552]|Intent started|
|21:24:30|[D]|[voice_assistant:519]|Event Type: 6|
|21:24:30|[D]|[voice_assistant:519]|Event Type: 7|
|21:24:30|[D]|[voice_assistant:575]|Response: "Désolé, je n'ai pas compris"|
|21:24:30|[D]|[voice_assistant:575]|Response: "Désolé, je n'ai pas compris"|
|21:24:30|[D]|[light:036]|'Voice-01' Setting:|
|21:24:30|[D]|[light:051]|Brightness: 100%|
|21:24:30|[D]|[light:055]|Color brightness: 100%|
|21:24:30|[D]|[light:055]|Color brightness: 100%|
|21:24:30|[D]|[light:059]|Red: 0%, Green: 100%, Blue: 0%|
|21:24:30|[D]|[voice_assistant:519]|Event Type: 8|
|21:24:30|[D]|[voice_assistant:595]|Response URL: "http://192.168.92.25:8123/api/tts_proxy/393247aa3dd2cd24b4ee2f8550489431d86f0c02_fr-fr_324d0e6abb_tts.home_assistant_cloud.mp3"|
|21:24:30|[D]|[voice_assistant:412]|State changed from IDLE to STREAMING_RESPONSE|
|21:24:30|[D]|[voice_assistant:418]|Desired state set to STREAMING_RESPONSE|
|21:24:30|[D]|[media_player:059]|'media_player_voice' - Setting|
|21:24:30|[D]|[media_player:066]|Media URL: http://192.168.92.25:8123/api/tts_proxy/393247aa3dd2cd24b4ee2f8550489431d86f0c02_fr-fr_324d0e6abb_tts.home_assistant_cloud.mp3|
|21:24:30|[D]|[light:036]|'Voice-01' Setting:|
|21:24:30|[D]|[light:051]|Brightness: 100%|
|21:24:30|[D]|[light:055]|Color brightness: 100%|
|21:24:30|[D]|[light:055]|Color brightness: 100%|
|21:24:30|[D]|[light:059]|Red: 0%, Green: 100%, Blue: 0%|
|21:24:30|[D]|[voice_assistant:519]|Event Type: 2|
|21:24:30|[D]|[voice_assistant:609]|Assist Pipeline ended|
|21:24:30|[W]|[component:214]||

et ca c’est les logs esphome…

alors que d’autres commandes marchent à la voix… je commence à m’arracher les cheveux…

Hello

Le STT reconnait PrévisionS météo, et le trigger de ton auto est prévision ( sans S) météo.
Peut-être une piste …

@+

1 « J'aime »

tu as mis dans le mille !!!

avec un s à prévisions ca marche !!!

Je commence à maîtriser la bête depuis le temps :grin:

le temps, c’est le cas !!!

mais faire des fautes d’orthographe en parlant, c’est pas banal !!!

reste un souci, vendredi c’est le premier…, pas le 30 !!!

Dans ton code, pour le nom du jour tu fais un +7,mais un +6 seulement pour le numéro :wink:

ca devrait le faire pareil partout, année bissextile ou pas…

Par ailleurs, tu vas avoir un problème avec tes [ now().day+6] en fin de mois…
Si on est le 30, ça va te renvoyer 36

Il vaudrait mieux faire ça :

{{ (now() + timedelta(days=7)).day }}