- id: karotz_dev_horloge_parlante_automation alias: Karotz dev - Annonce de l'heure description: Fait annoncer l'heure par le Karotz dev toutes les heures trigger: - trigger: time_pattern minutes: '0' condition: - condition: time after: 07:00:00 before: '20:00:00' action: - action: rest_command.karotz_dev_clock - alias: karotz_dev - Courrier retirée description: '' triggers: - entity_id: binary_sensor.eth01_status_lettre to: 'off' trigger: state actions: - data: entity_id: input_number.karotz_dev_ear_left value: '{{ states(''input_number.karotz_dev_saved_ear_left'') | int }}' action: input_number.set_value - data: entity_id: input_number.karotz_dev_ear_right value: '{{ states(''input_number.karotz_dev_saved_ear_right'') | int }}' action: input_number.set_value - data: entity_id: input_text.karotz_dev_color_1 value: '{{ states(''input_text.karotz_dev_saved_color_1'') }}' action: input_text.set_value - data: entity_id: input_text.karotz_dev_color_2 value: '{{ states(''input_text.karotz_dev_saved_color_2'') }}' action: input_text.set_value - data: entity_id: input_number.karotz_dev_light_speed value: '{{ states(''input_number.karotz_dev_saved_light_speed'') | int }}' action: input_number.set_value - action: rest_command.karotz_dev_light data: {} - action: rest_command.karotz_dev_ears data: {} - alias: karotz_dev - Il y a du courrier description: '' triggers: - minutes: '45' trigger: time_pattern conditions: - condition: time after: 07:00:00 before: '20:00:00' enabled: true - condition: state entity_id: binary_sensor.eth01_status_lettre state: 'on' actions: - data: entity_id: input_text.karotz_dev_saved_color_1 value: '{{ states(''input_text.karotz_dev_color_1'') }}' action: input_text.set_value - data: entity_id: input_text.karotz_dev_saved_color_2 value: '{{ states(''input_text.karotz_dev_color_2'') }}' action: input_text.set_value - data: entity_id: input_number.karotz_dev_saved_light_speed value: '{{ states(''input_number.karotz_dev_light_speed'') | int }}' action: input_number.set_value - data: entity_id: input_number.karotz_dev_saved_ear_left value: '{{ states(''input_number.karotz_dev_ear_left'') | int }}' action: input_number.set_value - data: entity_id: input_number.karotz_dev_saved_ear_right value: '{{ states(''input_number.karotz_dev_ear_right'') | int }}' action: input_number.set_value - data: text: "{% set phrases = [\n \"Une lettre cosmique vient d'atterrir.\",\n \"\ Le courrier est arrivé, capitaine.\",\n \"Message en provenance d'une autre\ \ galaxie détecté.\",\n \"Il y a du courrier dans la boîte aux lettres.\"\ ,\n \"Le facteur stellaire a fait sa livraison.\"\n] %} {{ phrases | random\ \ }}\n" action: rest_command.karotz_dev_say - data: entity_id: input_text.karotz_dev_color_1 value: 00FF00 action: input_text.set_value - action: input_boolean.turn_on target: entity_id: input_boolean.karotz_dev_light_fixed_mode data: {} - delay: hours: 0 minutes: 0 seconds: 1 milliseconds: 0 - action: rest_command.karotz_dev_light_fixed metadata: {} data: {} - alias: karotz_dev - Cuisine description: karotz_dev réagit à l'allumage de la cuisine, puis reprend son état triggers: - type: turned_on device_id: 26e2c20e7bdc25f3ee9e158db8a7ada9 entity_id: 4047c432f33eacd0d26280b195f15772 domain: switch trigger: device conditions: [] actions: - delay: hours: 0 minutes: 0 seconds: 10 milliseconds: 0 - variables: ear_left_prev: '{{ states(''input_number.karotz_dev_ear_left'') | int }}' ear_right_prev: '{{ states(''input_number.karotz_dev_ear_right'') | int }}' color1_prev: '{{ states(''input_text.karotz_dev_color_1'') }}' color2_prev: '{{ states(''input_text.karotz_dev_color_2'') }}' speed_prev: '{{ states(''input_number.karotz_dev_light_speed'') | int }}' - action: rest_command.karotz_dev_ears_random data: {} - data: text: "{% set phrases = [\n \"Huuuuuummm, ça sent bon la carotte ici !\",\n\ \ \"Tu cuisines ou tu fais une potion magique ?\",\n \"Attention à ne pas\ \ brûler les poêles, c’est pas un barbekiou !\",\n \"Le chef karotz dev est\ \ impressionné !\",\n \"J’espère que c’est pour moi ce festin !\"\n] %} {{\ \ phrases | random }}\n" action: rest_command.karotz_dev_say - data: value: '{{ ear_left_prev }}' target: entity_id: input_number.karotz_dev_ear_left action: input_number.set_value - data: value: '{{ ear_right_prev }}' target: entity_id: input_number.karotz_dev_ear_right action: input_number.set_value - data: entity_id: input_text.karotz_dev_color_1 value: '{{ color1_prev }}' action: input_text.set_value - data: entity_id: input_text.karotz_dev_color_2 value: '{{ color2_prev }}' action: input_text.set_value - data: entity_id: input_number.karotz_dev_light_speed value: '{{ speed_prev }}' action: input_number.set_value - action: rest_command.karotz_dev_light data: {} - action: rest_command.karotz_dev_ears data: {} - delay: hours: 0 minutes: 5 seconds: 0 milliseconds: 0 mode: single - alias: karotz_dev - test tag description: '' triggers: - webhook_id: tag-lapin-test allowed_methods: - GET local_only: true trigger: webhook conditions: [] actions: - data: text: Bonjour, je m'appel karotz ! action: rest_command.karotz_dev_say mode: single - alias: karotz_dev - Son sur ouverture porte garage description: Joue le son 'bling' quand la porte du garage s'ouvre triggers: - entity_id: binary_sensor.porte_garage to: 'on' trigger: state conditions: [] actions: - data: sound: jet1 action: rest_command.karotz_dev_sound - data: text: "{% set phrases = [\n \"La porte du hangar spatial est ouverte.\",\n\ \ \"Le sas du garage est désormais déverrouillé.\",\n \"Ouverture du portail\ \ galactique confirmée.\",\n \"Le garage s'ouvre sur l'infini et au-delà.\"\ ,\n \"Accès au vaisseau terrestre autorisé.\"\n] %} {{ phrases | random }}\n" action: rest_command.karotz_dev_say mode: single - alias: Karotz - Réveil à 8h trigger: - platform: time at: 08:00:00 action: - service: rest_command.karotz_dev_wakeup - delay: 00:00:05 - service: script.karotz_daily_loop - alias: Karotz - Rappel déjeuner (12h30) trigger: - platform: time at: '12:30:00' action: - service: script.karotz_intro_effect - delay: 00:00:01 - service: rest_command.karotz_dev_say data: text: '{{ state_attr(''input_select.karotz_meal_phrases'',''options'') | random }}' - alias: Karotz - Rappel départ (16h30) trigger: - platform: time at: '16:30:00' action: - service: script.karotz_intro_effect - delay: 00:00:01 - service: rest_command.karotz_dev_say data: text: '{{ state_attr(''input_select.karotz_departure_phrases'',''options'') | random }}' - alias: Karotz - Sommeil à 17h trigger: - platform: time at: '17:00:00' action: - service: rest_command.karotz_dev_sleep - id: karotz_dev_on_automation alias: karotz_dev On trigger: - trigger: state entity_id: sensor.karotz_dev_status attribute: sleep to: '0' action: - action: input_boolean.turn_on target: entity_id: input_boolean.karotz_dev_awake - id: karotz_dev_off_automation alias: karotz_dev Off trigger: - trigger: state entity_id: sensor.karotz_dev_status attribute: sleep to: '1' action: - action: input_boolean.turn_off target: entity_id: input_boolean.karotz_dev_awake - id: karotz_dev_color_automation alias: karotz_dev Update Color trigger: - trigger: state entity_id: - input_text.karotz_dev_color_1 - input_text.karotz_dev_color_2 - input_number.karotz_dev_light_speed action: - action: rest_command.karotz_dev_light - id: karotz_dev_ear_automation alias: karotz_dev Update Ears trigger: - trigger: state entity_id: - input_number.karotz_dev_ear_left - input_number.karotz_dev_ear_right action: - action: rest_command.karotz_dev_ears - id: karotz_dev_light_mode_automation alias: karotz_dev Light Mode Automation trigger: - trigger: state entity_id: input_boolean.karotz_dev_light_fixed_mode action: - choose: - conditions: - condition: state entity_id: input_boolean.karotz_dev_light_fixed_mode state: 'on' sequence: - action: rest_command.karotz_dev_light_fixed - conditions: - condition: state entity_id: input_boolean.karotz_dev_light_fixed_mode state: 'off' sequence: - action: rest_command.karotz_dev_light - id: karotz_dev_volume_automation alias: karotz_dev Update Volume trigger: - trigger: state entity_id: input_number.karotz_dev_volume action: - action: rest_command.karotz_dev_volume data: level: '{{ states(''input_number.karotz_dev_volume'') | int }}' - id: karotz_dev_clear_cache_auto alias: karotz_dev - Clear cache si mémoire > 80% trigger: - trigger: numeric_state entity_id: sensor.karotz_dev_status above: 80 action: - action: rest_command.karotz_dev_clear_cache - id: karotz_dev_meteo_automation alias: karotz_dev - Réaction météo h/30 description: Adapte les oreilles, la LED et le clignotement selon les conditions météo trigger: - trigger: time_pattern minutes: '30' condition: - condition: time after: 07:00:00 before: '19:00:00' actions: - action: rest_command.karotz_dev_say data: text: Voici la météo. - action: rest_command.karotz_dev_ears_reset - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_left value: "{% set rain_str = states('sensor.[ville]_rain_chance') %} {% set rain\ \ = rain_str if rain_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 0 %} {% set rain = rain | float %} {% if rain < 5 %}\n {{ 15 }}\n{% elif\ \ rain > 60 %}\n {{ 4 }}\n{% else %}\n {{ (15 - ((rain - 5) // 5)) | int\ \ }}\n{% endif %}\n" - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_right value: "{% set rain_str = states('sensor.[ville]_rain_chance') %} {% set rain\ \ = rain_str if rain_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 0 %} {% set rain = rain | float %} {% if rain < 5 %}\n {{ 15 }}\n{% elif\ \ rain > 60 %}\n {{ 4 }}\n{% else %}\n {{ (15 - ((rain - 5) // 5)) | int\ \ }}\n{% endif %}\n" - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_1 value: '{% set temp = states(''sensor.pac_atom_temp_ext'') | default(20) | float %} {% if temp <= -10 %}ADD8E6 {% elif temp <= -5 %}87CEFA {% elif temp <= 0 %}00CED1 {% elif temp <= 5 %}40E0D0 {% elif temp <= 10 %}90EE90 {% elif temp <= 15 %}ADFF2F {% elif temp <= 20 %}FFD700 {% elif temp <= 25 %}FFA500 {% elif temp <= 30 %}FF4500 {% else %}FF0000{% endif %} ' - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_2 value: '000000' - action: input_number.set_value data: entity_id: input_number.karotz_dev_light_speed value: '{% set wind = states(''sensor.weather_station_vitesse_moyenne_du_vent_km_h'') | default(0) | float %} {% set base = 2000 %} {% set min_speed = 100 %} {% set decrement = ((wind // 5) * 150) %} {% set result = base - decrement %} {% if result < min_speed %}{{ min_speed }}{% elif result > base %}{{ base }}{% else %}{{ result | int }}{% endif %} ' - action: rest_command.karotz_dev_light - action: rest_command.karotz_dev_ears - action: rest_command.karotz_dev_say data: text: "{% set temp_str = states('sensor.pac_atom_temp_ext') %} {% set temp =\ \ temp_str if temp_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 20 %} {% set temp = temp | float %}\n{% set wind_str = states('sensor.weather_station_vitesse_moyenne_du_vent_km_h')\ \ %} {% set wind = wind_str if wind_str not in ['unavailable', 'unknown',\ \ 'none', ''] else 0 %} {% set wind = wind | float %}\n{% set rain_str = states('sensor.[ville]_rain_chance')\ \ %} {% set rain = rain_str if rain_str not in ['unavailable', 'unknown',\ \ 'none', ''] else 0 %} {% set rain = rain | float %}\n{% set alerte = states('sensor.44_weather_alert')\ \ | default('') | lower %}\nLa température est de {{ temp | round(0) }} degrés.\ \ Le vent souffle à {{ wind | round(0) }} kilomètres par heure. Le risque\ \ de pluie est de {{ rain | round(0) }} pourcents. {% if 'orange' in alerte\ \ %}\n Attention, une alerte météo orange est en cours.\n{% elif 'rouge'\ \ in alerte %}\n Attention, une alerte météo rouge est en cours. Restez vigilant.\n\ {% endif %}" mode: single - id: karotz_dev_meteo_jour alias: karotz_dev - Météo du jour 7h15 description: Annonce la météo du jour via Karotz_dev triggers: - trigger: time at: 07:15:00 conditions: [] actions: - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_left value: "{% set rain_str = states('sensor.[ville]_rain_chance') %} {% set rain\ \ = rain_str if rain_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 0 %} {% set rain = rain | float %} {% if rain < 5 %}\n {{ 15 }}\n{% elif\ \ rain > 60 %}\n {{ 4 }}\n{% else %}\n {{ (15 - ((rain - 5) // 5)) | int\ \ }}\n{% endif %}\n" - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_right value: "{% set rain_str = states('sensor.[ville]_rain_chance') %} {% set rain\ \ = rain_str if rain_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 0 %} {% set rain = rain | float %} {% if rain < 5 %}\n {{ 15 }}\n{% elif\ \ rain > 60 %}\n {{ 4 }}\n{% else %}\n {{ (15 - ((rain - 5) // 5)) | int\ \ }}\n{% endif %}\n" - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_1 value: '{% set temp = state_attr(''sensor.prevision_meteo_aujourd_hui'', ''temperature'') | default(20) | float %} {% if temp <= -10 %}ADD8E6 {% elif temp <= -5 %}87CEFA {% elif temp <= 0 %}00CED1 {% elif temp <= 5 %}40E0D0 {% elif temp <= 10 %}90EE90 {% elif temp <= 15 %}ADFF2F {% elif temp <= 20 %}FFD700 {% elif temp <= 25 %}FFA500 {% elif temp <= 30 %}FF4500 {% else %}FF0000{% endif %} ' - action: input_number.set_value data: entity_id: input_number.karotz_dev_light_speed value: '{% set wind = state_attr(''sensor.prevision_meteo_aujourd_hui'', ''wind_speed'') | default(0) | float %} {% set base = 2000 %} {% set min_speed = 100 %} {% set decrement = ((wind // 5) * 150) %} {% set result = base - decrement %} {% if result < min_speed %}{{ min_speed }}{% elif result > base %}{{ base }}{% else %}{{ result | int }}{% endif %} ' - action: rest_command.karotz_dev_light - action: rest_command.karotz_dev_ears - action: rest_command.karotz_dev_say metadata: {} data: text: "{% set conditions = {\n 'sunny': 'ensoleillé',\n 'clear-night': 'nuit\ \ dégagée',\n 'cloudy': 'nuageux',\n 'partlycloudy': 'partiellement nuageux',\n\ \ 'fog': 'brouillard',\n 'windy': 'venteux',\n 'windy-variant': 'variablement\ \ venteux',\n 'hail': 'grêle',\n 'lightning': 'orages',\n 'lightning-rainy':\ \ 'orages avec pluie',\n 'pouring': 'fortes pluies',\n 'rainy': 'pluvieux',\n\ \ 'snowy': 'enneigé',\n 'snowy-rainy': 'neige et pluie',\n 'exceptional':\ \ 'conditions exceptionnelles'\n} %} {% set condition = states('sensor.prevision_meteo_aujourd_hui')\ \ %} {% set condition_fr = conditions.get(condition, condition) %}\nVoici\ \ la météo prévue pour aujourd'hui. Le temps sera {{ condition_fr }}. Température\ \ maximale : {{\n state_attr('sensor.prevision_meteo_aujourd_hui', 'temperature')\ \ | default(0) | float | round(0)\n}} degrés. Température minimale : {{\n\ \ state_attr('sensor.prevision_meteo_aujourd_hui', 'templow') | default(0)\ \ | float | round(0)\n}} degrés. {% set pluie = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'precipitation_probability') %} {% if pluie != 'n/a' and pluie is not none\ \ %}\n Risque de pluie : {{ pluie }} pourcents.\n{% endif %} {% set nuages\ \ = state_attr('sensor.prevision_meteo_aujourd_hui', 'cloud_coverage') %}\ \ {% if nuages != 'n/a' and nuages is not none %}\n Couverture nuageuse :\ \ {{ nuages }} pourcents.\n{% endif %} Vent : {{\n state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'wind_speed') | default(0) | float | round(0)\n}} kilomètres par heure.\ \ {% set uv =\n state_attr('sensor.prevision_meteo_aujourd_hui', 'uv_index')\ \ |\n default(0) %} Indice UV : {{ uv }} sur 10." mode: single - id: karotz_dev_meteo_demain alias: Karotz_dev - Météo de demain à 19h05 description: Annonce la météo de demain via Karotz_dev triggers: - trigger: time at: '19:05:00' conditions: [] actions: - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_left value: "{% set rain_str = states('sensor.[ville]_rain_chance') %} {% set rain\ \ = rain_str if rain_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 0 %} {% set rain = rain | float %} {% if rain < 5 %}\n {{ 15 }}\n{% elif\ \ rain > 60 %}\n {{ 4 }}\n{% else %}\n {{ (15 - ((rain - 5) // 5)) | int\ \ }}\n{% endif %}\n" - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_right value: "{% set rain_str = states('sensor.[ville]_rain_chance') %} {% set rain\ \ = rain_str if rain_str not in ['unavailable', 'unknown', 'none', ''] else\ \ 0 %} {% set rain = rain | float %} {% if rain < 5 %}\n {{ 15 }}\n{% elif\ \ rain > 60 %}\n {{ 4 }}\n{% else %}\n {{ (15 - ((rain - 5) // 5)) | int\ \ }}\n{% endif %}\n" - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_1 value: '{% set temp = state_attr(''sensor.prevision_meteo_aujourd_hui'', ''temperature'') | default(20) | float %} {% if temp <= -10 %}ADD8E6 {% elif temp <= -5 %}87CEFA {% elif temp <= 0 %}00CED1 {% elif temp <= 5 %}40E0D0 {% elif temp <= 10 %}90EE90 {% elif temp <= 15 %}ADFF2F {% elif temp <= 20 %}FFD700 {% elif temp <= 25 %}FFA500 {% elif temp <= 30 %}FF4500 {% else %}FF0000{% endif %} ' - action: input_number.set_value data: entity_id: input_number.karotz_dev_light_speed value: '{% set wind = state_attr(''sensor.prevision_meteo_aujourd_hui'', ''wind_speed'') | default(0) | float %} {% set base = 2000 %} {% set min_speed = 100 %} {% set decrement = ((wind // 5) * 150) %} {% set result = base - decrement %} {% if result < min_speed %}{{ min_speed }}{% elif result > base %}{{ base }}{% else %}{{ result | int }}{% endif %} ' - action: rest_command.karotz_dev_light - action: rest_command.karotz_dev_ears - action: rest_command.karotz_dev_say metadata: {} data: text: "{% set conditions = {\n 'sunny': 'ensoleillé',\n 'clear-night': 'nuit\ \ dégagée',\n 'cloudy': 'nuageux',\n 'partlycloudy': 'partiellement nuageux',\n\ \ 'fog': 'brouillard',\n 'windy': 'venteux',\n 'windy-variant': 'variablement\ \ venteux',\n 'hail': 'grêle',\n 'lightning': 'orages',\n 'lightning-rainy':\ \ 'orages avec pluie',\n 'pouring': 'fortes pluies',\n 'rainy': 'pluvieux',\n\ \ 'snowy': 'enneigé',\n 'snowy-rainy': 'neige et pluie',\n 'exceptional':\ \ 'conditions exceptionnelles'\n} %} {% set condition = states('sensor.prevision_meteo_demain')\ \ %} {% set condition_fr = conditions.get(condition, condition) %}\nVoici\ \ la météo prévue pour demain. Le temps sera {{ condition_fr }}. Température\ \ maximale : {{ state_attr('sensor.prevision_meteo_demain', 'temperature')\ \ | default(0) | float | round(0) }} degrés. Température minimale : {{ state_attr('sensor.prevision_meteo_demain',\ \ 'templow') | default(0) | float | round(0) }} degrés. {% set pluie = state_attr('sensor.prevision_meteo_demain',\ \ 'precipitation_probability') %} {% if pluie != 'n/a' %}\n Risque de pluie\ \ : {{ pluie }} pourcents. \n{% endif %} {% set nuages = state_attr('sensor.prevision_meteo_demain',\ \ 'cloud_coverage') %} {% if nuages != 'n/a' %} \n Couverture nuageuse :\ \ {{ nuages }} pourcents. \n{% endif %} Vent : {{ state_attr('sensor.prevision_meteo_demain',\ \ 'wind_speed') | default(0) | float | round(0) }} kilomètres par heure. \ \ Indice UV : {{ state_attr('sensor.prevision_meteo_demain', 'uv_index') }}\ \ sur 10." mode: single - id: karotz_dev_meteo_automation alias: karotz_dev - Réaction météo description: Adapte les oreilles, la LED et le clignotement selon les conditions météo trigger: - trigger: time_pattern minutes: '15' condition: - condition: time after: 07:00:00 before: '19:00:00' actions: - action: rest_command.karotz_dev_say data: text: Voici la météo. - action: rest_command.karotz_dev_ears_reset - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_left value: "{% set rain = states('sensor.[ville]_rain_chance') | default(0) | float\ \ %} {% if rain < 5 %}\n {{ 15 }}\n{% elif rain > 60 %}\n {{ 4 }}\n{% else\ \ %}\n {{ (15 - ((rain - 5) // 5)) | int }}\n{% endif %}\n" - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_right value: "{% set rain = states('sensor.[ville]_rain_chance') | default(0) | float\ \ %} {% if rain < 5 %}\n {{ 15 }}\n{% elif rain > 60 %}\n {{ 4 }}\n{% else\ \ %}\n {{ (15 - ((rain - 5) // 5)) | int }}\n{% endif %}\n" - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_1 value: '{% set temp = states(''sensor.[temperature]'') | default(20) | float %} {% if temp <= -10 %}ADD8E6 {% elif temp <= -5 %}87CEFA {% elif temp <= 0 %}00CED1 {% elif temp <= 5 %}40E0D0 {% elif temp <= 10 %}90EE90 {% elif temp <= 15 %}ADFF2F {% elif temp <= 20 %}FFD700 {% elif temp <= 25 %}FFA500 {% elif temp <= 30 %}FF4500 {% else %}FF0000{% endif %} ' - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_2 value: '000000' - action: input_number.set_value data: entity_id: input_number.karotz_dev_light_speed value: '{% set wind = states(''sensor.[vitesse du vent]'') | default(0) | float %} {% set base = 2000 %} {% set min_speed = 100 %} {% set decrement = ((wind // 5) * 150) %} {% set result = base - decrement %} {% if result < min_speed %}{{ min_speed }}{% elif result > base %}{{ base }}{% else %}{{ result | int }}{% endif %} ' - action: rest_command.karotz_dev_light - action: rest_command.karotz_dev_ears - action: rest_command.karotz_dev_say data: text: "La température est de {{ states('sensor.[temperature]') | default(20)\ \ | float | round(0) }} degrés. Le vent souffle à {{ states('sensor.[vitesse\ \ du vent]') | default(0) | float | round(0) }} kilomètres par heure. Le risque\ \ de pluie est de {{ states('sensor.[ville]_rain_chance') | default(0) | float\ \ | round(0) }} pourcents. {% set alerte = states('sensor.44_weather_alert')\ \ | default('') | lower %} {% if 'orange' in alerte %}\n Attention, une alerte\ \ météo **orange** est en cours.\n{% elif 'rouge' in alerte %}\n Attention,\ \ une alerte météo **rouge** est en cours. Restez vigilant.\n{% endif %}" mode: single - alias: Karotz_dev - Météo de demain à 19h05 description: Annonce la météo de demain via Karotz_dev triggers: - trigger: time at: '19:05:00' conditions: [] actions: - action: rest_command.karotz_dev_say metadata: {} data: text: "{% set conditions = {\n 'sunny': 'ensoleillé',\n 'clear-night': 'nuit\ \ dégagée',\n 'cloudy': 'nuageux',\n 'partlycloudy': 'partiellement nuageux',\n\ \ 'fog': 'brouillard',\n 'windy': 'venteux',\n 'windy-variant': 'variablement\ \ venteux',\n 'hail': 'grêle',\n 'lightning': 'orages',\n 'lightning-rainy':\ \ 'orages avec pluie',\n 'pouring': 'fortes pluies',\n 'rainy': 'pluvieux',\n\ \ 'snowy': 'enneigé',\n 'snowy-rainy': 'neige et pluie',\n 'exceptional':\ \ 'conditions exceptionnelles'\n} %} {% set condition = states('sensor.prevision_meteo_demain')\ \ %} {% set condition_fr = conditions.get(condition, condition) %}\nVoici\ \ la météo prévue pour demain. Le temps sera {{ condition_fr }}. Température\ \ maximale : {{ state_attr('sensor.prevision_meteo_demain', 'temperature')\ \ | default(0) | float | round(0) }} degrés. Température minimale : {{ state_attr('sensor.prevision_meteo_demain',\ \ 'templow') | default(0) | float | round(0) }} degrés. {% set pluie = state_attr('sensor.prevision_meteo_demain',\ \ 'precipitation_probability') %} {% if pluie != 'n/a' %}\n Risque de pluie\ \ : {{ pluie }} pourcents. \n{% endif %} {% set nuages = state_attr('sensor.prevision_meteo_demain',\ \ 'cloud_coverage') %} {% if nuages != 'n/a' %} \n Couverture nuageuse :\ \ {{ nuages }} pourcents. \n{% endif %} Vent : {{ state_attr('sensor.prevision_meteo_demain',\ \ 'wind_speed') | default(0) | float | round(0) }} kilomètres par heure. \ \ Indice UV : {{ state_attr('sensor.prevision_meteo_demain', 'uv_index') }}\ \ sur 10." mode: single - id: karotz_dev_meteo_jour alias: karotz_dev - Météo du jour 7h15 description: Annonce la météo du jour via Karotz_dev triggers: - trigger: time at: 07:15:00 conditions: [] actions: - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_left value: "{% set pluie_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'precipitation_probability') %} {% set pluie = pluie_str if pluie_str not\ \ in ['unavailable', 'unknown', 'none', '', 'n/a'] else 0 %} {% set pluie\ \ = pluie | float %} {% if pluie < 5 %}\n {{ 15 }}\n{% elif pluie > 60 %}\n\ \ {{ 4 }}\n{% else %}\n {{ (15 - ((pluie - 5) // 5)) | int }}\n{% endif\ \ %}\n" - action: input_number.set_value data: entity_id: input_number.karotz_dev_ear_right value: "{% set pluie_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'precipitation_probability') %} {% set pluie = pluie_str if pluie_str not\ \ in ['unavailable', 'unknown', 'none', '', 'n/a'] else 0 %} {% set pluie\ \ = pluie | float %} {% if pluie < 5 %}\n {{ 15 }}\n{% elif pluie > 60 %}\n\ \ {{ 4 }}\n{% else %}\n {{ (15 - ((pluie - 5) // 5)) | int }}\n{% endif\ \ %}\n" - action: input_text.set_value data: entity_id: input_text.karotz_dev_color_1 value: '{% set temp_str = state_attr(''sensor.prevision_meteo_aujourd_hui'', ''temperature'') %} {% set temp = temp_str if temp_str not in [''unavailable'', ''unknown'', ''none'', '''', ''n/a''] else 20 %} {% set temp = temp | float %} {% if temp <= -10 %}ADD8E6 {% elif temp <= -5 %}87CEFA {% elif temp <= 0 %}00CED1 {% elif temp <= 5 %}40E0D0 {% elif temp <= 10 %}90EE90 {% elif temp <= 15 %}ADFF2F {% elif temp <= 20 %}FFD700 {% elif temp <= 25 %}FFA500 {% elif temp <= 30 %}FF4500 {% else %}FF0000{% endif %} ' - action: input_number.set_value data: entity_id: input_number.karotz_dev_light_speed value: '{% set wind_str = state_attr(''sensor.prevision_meteo_aujourd_hui'', ''wind_speed'') %} {% set wind = wind_str if wind_str not in [''unavailable'', ''unknown'', ''none'', '''', ''n/a''] else 0 %} {% set wind = wind | float %} {% set base = 2000 %} {% set min_speed = 100 %} {% set decrement = ((wind // 5) * 150) %} {% set result = base - decrement %} {% if result < min_speed %}{{ min_speed }}{% elif result > base %}{{ base }}{% else %}{{ result | int }}{% endif %} ' - action: rest_command.karotz_dev_light - action: rest_command.karotz_dev_ears - action: rest_command.karotz_dev_say metadata: {} data: text: "{% set conditions = {\n 'sunny': 'ensoleillé',\n 'clear-night': 'nuit\ \ dégagée',\n 'cloudy': 'nuageux',\n 'partlycloudy': 'partiellement nuageux',\n\ \ 'fog': 'brouillard',\n 'windy': 'venteux',\n 'windy-variant': 'variablement\ \ venteux',\n 'hail': 'grêle',\n 'lightning': 'orages',\n 'lightning-rainy':\ \ 'orages avec pluie',\n 'pouring': 'fortes pluies',\n 'rainy': 'pluvieux',\n\ \ 'snowy': 'enneigé',\n 'snowy-rainy': 'neige et pluie',\n 'exceptional':\ \ 'conditions exceptionnelles'\n} %} {% set condition = states('sensor.prevision_meteo_aujourd_hui')\ \ %} {% set condition_fr = conditions.get(condition, condition) %}\nVoici\ \ la météo prévue pour aujourd'hui. Le temps sera {{ condition_fr }}. \n{%\ \ set temp_str = state_attr('sensor.prevision_meteo_aujourd_hui', 'temperature')\ \ %} {% if temp_str not in ['unavailable', 'unknown', 'none', '', 'n/a'] %}\n\ \ Température maximale : {{ temp_str | float | round(0) }} degrés.\n{% endif\ \ %}\n{% set temp_min_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'templow') %} {% if temp_min_str not in ['unavailable', 'unknown', 'none',\ \ '', 'n/a'] %}\n Température minimale : {{ temp_min_str | float | round(0)\ \ }} degrés.\n{% endif %}\n{% set pluie_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'precipitation_probability') %} {% if pluie_str not in ['unavailable', 'unknown',\ \ 'none', '', 'n/a'] %}\n Risque de pluie : {{ pluie_str }} pourcents.\n\ {% endif %}\n{% set nuages_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'cloud_coverage') %} {% if nuages_str not in ['unavailable', 'unknown',\ \ 'none', '', 'n/a'] %}\n Couverture nuageuse : {{ nuages_str }} pourcents.\n\ {% endif %}\n{% set vent_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'wind_speed') %} {% if vent_str not in ['unavailable', 'unknown', 'none',\ \ '', 'n/a'] %}\n Vent : {{ vent_str | float | round(0) }} kilomètres par\ \ heure.\n{% endif %}\n{% set uv_str = state_attr('sensor.prevision_meteo_aujourd_hui',\ \ 'uv_index') %} {% if uv_str not in ['unavailable', 'unknown', 'none', '',\ \ 'n/a'] %}\n Indice UV : {{ uv_str }} sur 10.\n{% endif %}\n{% set source\ \ = state_attr('sensor.prevision_meteo_aujourd_hui', 'source') | default('Météo-France')\ \ %} {% if source == 'Sauvegarde de la veille' %}\n Données basées sur les\ \ prévisions de la veille.\n{% endif %}" mode: single