[Article] Ecran tactile Nextion avec ESPHome : déporter vos commandes

Bonjour a tous
Quelques photos de ma réalisation.

Un esp32 gère mon linky et l’afficheur

Les infos gaz et eau proviennent respectivement:

  • pour le gaz: d’un poussoir zigbee ikea relié au gazpar
  • pour l’eau: d’une sonde inductive sur le compteur qui capte la rotation de l’index et l’envoi vers un autre poussoir zigbee ikea.

L’écran principal donne les valeurs absolues des 3 compteurs (6 valeurs pour le linky car je suis en tempo)
Les autres écrans donnent le détail temps réel des compteurs
Philippe




5 « J'aime »

Magnifique !!!
Merci pour le partage :blush:

Merci
C’est juste dommage d’être incapable d’upgrader le nextion depuis HA.
Phil

Salut,

Harff je n’avais pas vus ce post!
Je suis sur un Nextion 3.5 depuis un moment pour un affichage météo. J’avais partager mon projet il y as quelques année, je vient de m’y remettre pour le compléter. Du coup je vous partage mes avancer, malgré un code pas du tout optimiser, et en cour de modification.

Qui donne:

J’avais « finalisé » mon projet avec une limitation d’envois de donnée, j’espère avoir au moins en partie résolu mon problème en augmentant le buffer size:

  baud_rate: 115200
  rx_buffer_size: 1024

Je verrai ca quand je ferais les autres pages, sachant que je vais pouvoir m’inspirer de vos code :).
(je fais les MAJ tft par une carte sd, le code étant (malheureusement) sur HA).

2 « J'aime »

Excellent
Tiens nous au courant
J’ai encore essayé hier duploader une nouvelle version de tft en mettant le fichier dans un serveur web séparé de HA sans succès . Ça commence à 83 % et …. Ça reste coincé à 83 % jusqu’à ce que ça dise erreur avec obligation d’utiliser la carte SD.
Le pire est qu’avec un succès mitigé ça fonctionnait 2 fois sur 3 au début

J’ai le nspanel ou avec les maj tft se font OTA. Depuis la semaine dernière j’ai un wemos D1 et/ou esp32 avec un 28"Nextion, baud=115200 mais en essayant une maj OTA, le processus se plante à 6% ou au plus tard avant 22%. Je ne comprends pas pourquoi et les site avec des devs ESP ne réponds pas aussi sur mes questions. Si tu trouve la solution, je suis preneur (et tant d’autres d’utilisateurs) :slight_smile:

1 « J'aime »

Bienvenue au club; Je croyais être le seul zombie au monde avec ce problème !
J’ai encore essayé hier avec un serveur de fichier dédié (pas celui de HA): meme resultat !
ca coince ver 82 % et puis plus rien; après un long moment le pourcentage augmente doucement mais l’écran est planté
La seule solution qui fonctionne est la carte SD
ou (d’apres les forum sur le nspanel) Tasmota
Phil

Ou par ft232…mais c’est encore moins facile que le SD

Bonjour

Permettez moi de mettre mon grain de sel concernant le transfert des firmwares sur les nextions

j’ai un sonoff panel qui a été flashé avec beaucoup de difficulté sous ESPHOME

j’ai pas tout lu votre sujet mais effectivement d’apres ce que je vois la problematique que vous rencontrez semble etre la meme que celle que j’ai rencontré
a chaque changement de FW nextion, je passais par un FW leger
un reboot complet de l’esp et du nextion
et transfert du FW du nextion
et la ça passait vraiement mieux
si ça peux aider

Mon NSPanel flashé marche parfait avec les maj FW esp et(!) tft…mes 2 autres solution, non…et je ne comprends pas ces différences entre l’un et l’autre

J’ai commencé une nouvelle demande ici… the ‹ Unofficial Nextion User… ›

Je n’ai de mon côté aucun soucis tant pour les mises a jour du firmeware en OTA que du TFT.
J’imagine que vous n’avez pas de différences avec le branchement et la config que je propose ici.

Nous avions échangé pas mal avec @Pbranly a ce propos, y compris sur la taille des fichiers, qui aurait pu expliquer.
Un timeout ferait planter toujours au même endroit.

Je pencherai alors plus pour un problème de qualité sur la liaison série entre l’esp et le nextion, un problème hardware sur un des composants, voir un pb de qualité de l’alimentation qui parasiterait.

Merci, selon le lien l 'uart est à baud 9600, ça prend des heures et aussi ça plantait chez moi. J’ai changé l’écran vers 115200, au de début ça va vite, de temps en temps vers 20%+ mais aussi que vers env. 6% avant le grand ‹ rien ›. Je ne suis pas sûre si c’est cause du esp32 ou esp8266 ou autre.
Mon nspanel fait 115200 et jamais planté pendant le transfert (sauf cause réseau)

hello
j’ai recodé l’ensemble de ton template avec la nouvelle procédure home assistant
donc
dans configuration.yaml:

##############################################################
template:
  - binary_sensor: !include_dir_merge_list template_binary_sensors
  - sensor: !include_dir_merge_list template_sensors
#############################################################

un repertoire "template_sensors"
et autant de fichiers xxx.yaml a l'interieur de ce repertoire dont: "meteo_nextion.yaml"

       

# ------------------------------------------------------------------------------------------------ Partie a ajouter apres remplacement des capteurs de vos villes et region------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------ alerte meteo----------------------------------------------------------------



# texte prevision de la prochaine pluie
 
    
- name: Pluie_proch
  state: >-
             {% set pluie = states('sensor.villeneuve_d_ascq_next_rain') %}
              {% if is_state("sensor.villeneuve_d_ascq_next_rain", 'unknown') %}
                0
              {% else %}
                {%- set ts_event = as_timestamp(states.sensor.villeneuve_d_ascq_next_rain.state) %}
                {%- set ts_now = as_timestamp(now())|round(0) %}
                {%- set ts_delta = ((ts_event - ts_now)/60) -120  %}
                {{ ts_delta }}
              {% endif %}


 
    
- name: alert_vent
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Vent violent') == 'Vert' %}
            47
          {% elif state_attr('sensor.59_weather_alert', 'Vent violent') == 'Jaune' %}
            48
          {% elif state_attr('sensor.59_weather_alert', 'Vent violent') == 'Orange' %}
            49
          {% elif state_attr('sensor.59_weather_alert', 'Vent violent') == 'Rouge' %}
            50
          {% else %}
            47
          {% endif %}

 
    
- name: alert_inondation
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Inondation') == 'Vert' %}
            55
          {% elif state_attr('sensor.59_weather_alert', 'Inondation') == 'Jaune' %}
            56
          {% elif state_attr('sensor.59_weather_alert', 'Inondation') == 'Orange' %}
            57
          {% elif state_attr('sensor.59_weather_alert', 'Inondation') == 'Rouge' %}
            58
          {% else %}
            55
          {% endif %}

 
    
- name: alert_orages
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Orages') == 'Vert' %}
            59
          {% elif state_attr('sensor.59_weather_alert', 'Orages') == 'Jaune' %}
            60
          {% elif state_attr('sensor.59_weather_alert', 'Orages') == 'Orange' %}
            61
          {% elif state_attr('sensor.59_weather_alert', 'Orages') == 'Rouge' %}
            62
          {% else %}
            59
          {% endif %}

 
    
- name: alert_pluie_inondation
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Pluie-inondation') == 'Vert' %}
            71
          {% elif state_attr('sensor.59_weather_alert', 'Pluie-inondation') == 'Jaune' %}
            72
          {% elif state_attr('sensor.59_weather_alert', 'Pluie-inondation') == 'Orange' %}
            73
          {% elif state_attr('sensor.59_weather_alert', 'Pluie-inondation') == 'Rouge' %}
            74
          {% else %}
            71
          {% endif %}

 
    
- name: alert_neige_verglas
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Neige-verglas') == 'Vert' %}
            67
          {% elif state_attr('sensor.59_weather_alert', 'Neige-verglas') == 'Jaune' %}
            68
          {% elif state_attr('sensor.59_weather_alert', 'Neige-verglas') == 'Orange' %}
            69
          {% elif state_attr('sensor.59_weather_alert', 'Neige-verglas') == 'Rouge' %}
            70
          {% else %}
            67
          {% endif %}

 
    
- name: alert_grand_froid
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Grand-froid') == 'Vert' %}
            51
          {% elif state_attr('sensor.59_weather_alert', 'Grand-froid') == 'Jaune' %}
            52
          {% elif state_attr('sensor.59_weather_alert', 'Grand-froid') == 'Orange' %}
            53
          {% elif state_attr('sensor.59_weather_alert', 'Grand-froid') == 'Rouge' %}
            54
          {% else %}
            51
          {% endif %}

 
    
- name: alert_vagues_submersion
  state: >-
          {% if  state_attr('sensor.59_weather_alert', 'Vagues-submersion') == 'Vert' %}
            63
          {% elif state_attr('sensor.59_weather_alert', 'Vagues-submersion') == 'Jaune' %}
            64
          {% elif state_attr('sensor.59_weather_alert', 'Vagues-submersion') == 'Orange' %}
            65
          {% elif state_attr('sensor.59_weather_alert', 'Vagues-submersion') == 'Rouge' %}
            66
          {% else %}
            63
          {% endif %}

#-------------------------------------------------------------------------------------------------------------------------- Iconnes pour la pluie sur 1h  -----------------------------------------------
 
    
- name: pluie_0mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['0 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['0 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['0 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['0 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_5mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['5 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['5 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['5 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['5 min'] == 'Pluie trés forte' %}
          '5 min'
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_10mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['10 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['10 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['10 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['10 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_15mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['15 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['15 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['15 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['15 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_20mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['20 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['20 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['20 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['20 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}
 

- name: pluie_25mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_30mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['25 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_35mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_40mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['35 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_45mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_50mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['45 min'] == 'Pluie trés forte' %}
          46
          {% else %}
          42
          {% endif %}

 
    
- name: pluie_55mn
  state: >-
          {% if state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['55 min'] == 'Pluie faible' %}
          43
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['55 min'] == 'Pluie modérée' %}
          44
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['55 min'] == 'Pluie forte' %}
          45
          {% elif state_attr("sensor.villeneuve_d_ascq_next_rain","1_hour_forecast")['55 min'] == 'Pluie trés forte' %}
          46
          {% else %}42
          {% endif %}
          
          
# -------------------------------------------------------------------------------Icone des heures, vérifié que les iconnes correspondent au temps qu il fait, et que tout les termes soit les bons.
#---------------------------Icone 1h meteo france -----------------
 
    
- name: heure_icon_1
  state: >-
          {% if state_attr("weather.lesquin","forecast")[1].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[1].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
    
- name: heure_temp_1
  state: >-
             {% set heure_temp_1 = state_attr("weather.lesquin","forecast")[1].temperature | float %}
                {{ heure_temp_1 }}
#---------------------------Icone 2h meteo france -----------------
 
    
- name: heure_icon_2
  state: >-
          {% if state_attr("weather.lesquin","forecast")[2].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[2].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_2    
  state: >-
             {% set heure_temp_2 = state_attr("weather.lesquin","forecast")[2].temperature | float %}
                {{ heure_temp_2 }}
#---------------------------Icone du 3h meteo france -----------------
 
    
- name: heure_icon_3
  state: >-
          {% if state_attr("weather.lesquin","forecast")[3].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[3].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_3    
  state: >-
             {% set heure_temp_3 = state_attr("weather.lesquin","forecast")[3].temperature | float %}
                {{ heure_temp_3 }}
#---------------------------Icone du 4h meteo france -----------------
 
    
- name: heure_icon_4
  state: >-
          {% if state_attr("weather.lesquin","forecast")[4].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[4].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: heure_temp_4
  state: >-
             {% set heure_temp_4 = state_attr("weather.lesquin","forecast")[4].temperature | float %}
                {{ heure_temp_4 }}
#---------------------------Icone 5h meteo france -----------------
 
    
- name: heure_icon_5
  state: >-
          {% if state_attr("weather.lesquin","forecast")[5].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[5].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_5    
  state: >-
             {% set heure_temp_5 = state_attr("weather.lesquin","forecast")[5].temperature | float %}
                {{ heure_temp_5 }}
#---------------------------Icone du 6h meteo france -----------------
 
    
- name: heure_icon_6
  state: >-
          {% if state_attr("weather.lesquin","forecast")[6].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[6].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_6    
  state: >-
             {% set heure_temp_6 = state_attr("weather.lesquin","forecast")[6].temperature | float %}
                {{ heure_temp_6 }}
#---------------------------Icone du 7h meteo france -----------------
 
    
- name: heure_icon_7
  state: >-
          {% if state_attr("weather.lesquin","forecast")[7].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[7].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_7    
  state: >-
             {% set heure_temp_7 = state_attr("weather.lesquin","forecast")[7].temperature | float %}
                {{ heure_temp_7 }}
#---------------------------Icone 8h meteo france -----------------
 
    
- name: heure_icon_8
  state: >-
          {% if state_attr("weather.lesquin","forecast")[8].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[8].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_8
  state: >-
             {% set heure_temp_8 = state_attr("weather.lesquin","forecast")[8].temperature | float %}
                {{ heure_temp_8 }}
#---------------------------Icone du 3h meteo france -----------------
 
    
- name: heure_icon_9
  state: >-
          {% if state_attr("weather.lesquin","forecast")[9].condition == 'Clear' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'sunny' %}
            22
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'fog' %}
            23
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'hail' %}
            28
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'lightning' %}
            31
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'rainy' %}
            26
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'pouring' %}
            27
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'snowy' %}
            29
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.lesquin","forecast")[9].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 

- name: heure_temp_9 
  state: >-
        {% set heure_temp_9 = state_attr("weather.lesquin","forecast")[9].temperature | float %}
        {{ heure_temp_9 }}
        
# Pour l affichage du jour et de l'heure 
## - platform: time_date
##   display_options:
##     - 'time'
##     - 'date'

- name: date_simple
  icon: mdi:calendar-today
  state: >
        {% set months = ["Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Decembre"] %}
        {% set days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]  %}
        {{ days[now().weekday()] + ' ' + now().day | string + ' ' + months[now().month-1] }}

- name: "Date court"
  icon: mdi:calendar-today
  state: >
        {% set months = ["Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Juil", "Août", "Sep", "Oct", "Nov", "Dec"] %}
        {{ now().day | string + ' ' + months[now().month-1] }}
#------------------------------exemple de formatage de la date-------
 
    

- name: Date_fr
  icon: mdi:calendar-today
  state: >
         {{ now().day }}{{ ' ' }}{{ now().month }}{{ ' ' }}{{ now().year }}
#exemple de formatage de la date, pour formaté en 1 ligne plusieurs donné (ici ca donnerai: 04 - 05 - 2050, 05:03)
 
    

- name: date_fr_final
  icon: mdi:calendar-today
  state: >
         {{ '{:02} - {:02} - {:04}, {:02}:{:02}'.format( now().day, now().month, now().year, now().hour, now().minute) }}
#exemple de formatage sur sun.sun avec remplacement de caracteres 
 
    

- name: nextsunrise
  state: >
          {{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom('(%H/%M)') | replace("(0", "") | replace("(", "") | replace("/", ":") | replace (")", "") }}
  icon: mdi:weather-sunset-up


- name: nextset
  state: >
          {{ as_timestamp(states.sun.sun.attributes.next_setting) | timestamp_custom('(%H/%M)') | replace("(0", "") | replace("(", "") | replace("/", ":") | replace (")", "") }}
  icon: mdi:weather-sunset-down
  
  
#************************************************* test ****************************************************************************************
# Icone du jours meteo france
 
- name: meteo france   
  state: >-
          {% if is_state("weather.villeneuve_d_ascq", 'clear-night') %}
            10
          {% elif is_state("weather.villeneuve_d_ascq", 'cloudy') %}
            4
          {% elif is_state("weather.villeneuve_d_ascq", 'fog') %}
            8
          {% elif is_state("weather.villeneuve_d_ascq", 'hail') %}
            13
          {% elif is_state("weather.villeneuve_d_ascq", 'lightning') %}
            16
          {% elif is_state("weather.villeneuve_d_ascq", 'lightning-rainy') %}
            9
          {% elif is_state("weather.villeneuve_d_ascq", 'Clear') %}
            7
          {% elif is_state("weather.villeneuve_d_ascq", 'pouring') %}
            12
          {% elif is_state("weather.villeneuve_d_ascq", 'partlycloudy') %}
            5
          {% elif is_state("weather.villeneuve_d_ascq", 'rainy') %}
            11
          {% elif is_state("weather.villeneuve_d_ascq", 'snowy') %}
            14
          {% elif is_state("weather.villeneuve_d_ascq", 'windy') %}
            17
          {% elif is_state("weather.villeneuve_d_ascq", 'snowy-rainy') %}
            15
          {% elif is_state("weather.villeneuve_d_ascq", 'sunny') %}
            7
          {% else %}
            2
          {% endif %}

 
- name: temp_ext    
  state: "{{ state_attr('weather.villeneuve_d_ascq', 'temperature') }}"
 
- name: humi_ext    
  state: "{{ state_attr('weather.villeneuve_d_ascq', 'humidity') }}"
#---------------------------Icone du demain meteo france -----------------
 
    
- name: Jour
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[0].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: jour_tmin    
  state: >-
             {% set jour_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[0]. templow | float %}
                {{ jour_tmin }}
 
- name: Jour_tmax    
  state: >-
             {% set jour_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[0].temperature | float %}
                {{ jour_tmax }}
# Icone des trois jours suivant, vérifié que les iconnes correspondent au temps qu il fait, et que tout les termes soit les bons.
#---------------------------Icone du jour1 meteo france -----------------
 
    
- name: temps 1 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[1].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: dem_tmin    
  state: >-
             {% set dem_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[1]. templow | float %}
                {{ dem_tmin }}
 
- name: dem_tmax    
  state: >-
             {% set dem_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[1].temperature | float %}
                {{ dem_tmax }}
 
- name: dem_pluie    
  state: >-
             {% set dem_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[1].precipitation | float %}
                {{ dem_pluie }}
#---------------------------Icone du jour2 meteo france -----------------
 
    
- name: temps 2 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[2].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j2_tmin    
  state: >-
             {% set j2_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[2]. templow | float %}
                {{ j2_tmin }}
 
- name: j2_tmax    
  state: >-
             {% set j2_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[2].temperature | float %}
                {{ j2_tmax }}
 
- name: j2_pluie    
  state: >-
             {% set j2_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[2].precipitation | float %}
                {{ j2_pluie }}
#---------------------------Icone du jour3 meteo france -----------------
 
    
- name: temps 3 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[3].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j3_tmin
  state: >-
             {% set j3_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[3]. templow | float %}
                {{ j3_tmin }}
 
- name: j3_tmax    
  state: >-
             {% set j3_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[3].temperature | float %}
                {{ j3_tmax }}
 
- name: j3_pluie    
  state: >-
             {% set j3_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[3].precipitation | float %}
                {{ j3_pluie }}
#---------------------------Icone du jour4 meteo france -----------------
 
    
- name: temps 4 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[4].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j4_tmin
  state: >-
             {% set j4_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[4]. templow | float %}
                {{ j4_tmin }}
 
    
- name: j4_tmax
  state: >-
             {% set j4_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[4].temperature | float %}
                {{ j4_tmax }}
 
    
- name: j4_pluie
  state: >-
             {% set j4_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[4].precipitation | float %}
                {{ j4_pluie }}
#---------------------------Icone du jour5 meteo france -----------------
 
    
- name: temps 5 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[5].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j5_tmin
  state: >-
             {% set j5_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[5]. templow | float %}
                {{ j5_tmin }}
 
    
- name: j5_tmax
  state: >-
             {% set j5_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[5].temperature | float %}
                {{ j5_tmax }}
 
    
- name: j5_pluie
  state: >-
             {% set j5_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[5].precipitation | float %}
                {{ j5_pluie }}
#---------------------------Icone du jour6 meteo france -----------------
 
    
- name: temps 6 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[6].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j6_tmin
  state: >-
             {% set j6_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[6]. templow | float %}
                {{ j6_tmin }}
 
    
- name: j6_tmax
  state: >-
             {% set j6_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[6].temperature | float %}
                {{ j6_tmax }}
 
    
- name: j6_pluie
  state: >-
             {% set j6_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[6].precipitation | float %}
                {{ j6_pluie }}
#---------------------------Icone du jour7 meteo france -----------------
 
    
- name: temps 7 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[7].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j7_tmin
  state: >-
             {% set j7_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[7]. templow | float %}
                {{ j7_tmin }}
 
    
- name: j7_tmax
  state: >-
             {% set j7_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[7].temperature | float %}
                {{ j7_tmax }}
 
    
- name: j7_pluie
  state: >-
             {% set j7_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[7].precipitation | float %}
                {{ j7_pluie }}
#---------------------------Icone du jour8 meteo france -----------------
 
    
- name: temps 8 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[8].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j8_tmin
  state: >-
             {% set j8_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[8]. templow | float %}
                {{ j8_tmin }}
 
    
- name: j8_tmax
  state: >-
             {% set j8_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[8].temperature | float %}
                {{ j8_tmax }}
 
    
- name: j8_pluie
  state: >-
             {% set j8_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[8].precipitation | float %}
                {{ j8_pluie }}
#---------------------------Icone du jour9 meteo france -----------------
 
    
- name: temps 9 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[9].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j9_tmin
  state: >-
             {% set j9_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[9]. templow | float %}
                {{ j9_tmin }}
 
    
- name: j9_tmax
  state: >-
             {% set j9_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[9].temperature | float %}
                {{ j9_tmax }}
 
    
- name: j9_pluie
  state: >-
             {% set j9_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[9].precipitation | float %}
                {{ j9_pluie }}
#---------------------------Icone du jour10 meteo france -----------------
 
    
- name: temps 10 jours
  state: >-
          {% if state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'Clear' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'sunny' %}
            22
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'clear-night' %}
            25
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'cloudy' %}
            19
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'fog' %}
            23
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'hail' %}
            28
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'lightning' %}
            31
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'lightning-rainy' %}
            24
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'partlycloudy' %}
            20
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'rainy' %}
            26
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'pouring' %}
            27
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'snowy' %}
            29
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'snowy-rainy' %}
            30
          {% elif state_attr("weather.villeneuve_d_ascq","forecast")[10].condition == 'windy' %}
            32
          {% else %}
            3
          {% endif %}

 
- name: j10_tmin
  state: >-
             {% set j10_tmin = state_attr("weather.villeneuve_d_ascq","forecast")[10]. templow | float %}
                {{ j10_tmin }}
 
    
- name: j10_tmax
  state: >-
             {% set j10_tmax = state_attr("weather.villeneuve_d_ascq","forecast")[10].temperature | float %}
                {{ j10_tmax }}
 
    
- name: j10_pluie
  state: >-
             {% set j10_pluie = state_attr("weather.villeneuve_d_ascq","forecast")[10].precipitation | float %}
                {{ j10_pluie }}
#---------------------------# # Alerte meteo
 
    
- name: Alerte Meteo France
  state: >-
          {% if is_state("sensor.59_weather_alert", 'Vert') %}
            35
          {% elif is_state("sensor.59_weather_alert", 'Jaune') %}
            36
          {% elif is_state("sensor.59_weather_alert", 'Orange') %}
            37
          {% elif is_state("sensor.59_weather_alert", 'Rouge') %}
            38
          {% else %}
            34
          {% endif %}

 
- name: alerte_gel
  state: >-
         {% set alert = states('sensor.villeneuve_d_ascq_freeze_chance') | float  %}
              {%- if alert > 10 -%}
                1
              {% else %}
                0
                {%- endif -%}
 
    
- name: alerte_neige
  state: >-
         {% set alert = states('sensor.villeneuve_d_ascq_snow_chance') | float  %}
              {%- if alert > 10 -%}
                1
              {% else %}
                0
                {%- endif -%}
 
    
- name: alerte_rain
  state: >-
         {% set alert = states('sensor.villeneuve_d_ascq_rain_chance') | float  %}
               {%- if alert < 9 -%}
                80
               {% elif alert < 40 %}
                79
               {% elif alert < 70 %}
                78
               {% elif alert < 101 %}
                77
               {% else %}
                80
                {%- endif -%}
 
- name: uv_prob
  state: >-
         {% set alert = states('sensor.villeneuve_d_ascq_uv') | float  %}
               {%- if alert < 2 -%}
                85
               {% elif alert < 5 %}
                84
               {% elif alert < 7 %}
                83
               {% elif alert < 9 %}
                82
               {% else %}
                81
                {%- endif -%}
  
le reste concerne le nextion et j'ai un enorme travail de reconfiguratin car je suis en 4.8" vertical !
Phil
1 « J'aime »

Yop,

Génial, je ne peu pas regarder aujourd’hui, je bosse cette aprem, mais vraiment excellent de déporter le code dans un autre fichiers vus le boxon.

Tu as normalement de quoi faire la transformation avec le fichier JIMP et hmi dans outils (mais oui, cela demande vite énormément de temp les rectification esthétique et de positionnements).
Je regarderai demain pour le convertir, dit moi pour quel écrans (2.8 type basic?).

PS_1:Tu as un fichier de test pour du 2.8 basic, je l’est fais à l’arrache sans le tester, je ne pense pas que cela passe avec le code actuel, il vas certainement trop chercher de champs non présent…

PS_2: Oups c’est pour 4.8 (4.3?) vertical (chouette, c’est certainement mon prochain achat), je le refais dimanche ^^. (En intelligeant du coup? Donne moi la ref stp).

Faudra faire des choix sur ce que tu veut garder sur la page 1 et ce qu il faudra déporter sur une autre page, mais on devrait pouvoir compléter avec de nouvelles pages (j’ai pu faire la page sur 8 jours et celle sur 8h00 sur le 3.5, encore quelques modifs graphiques à faire pour les rendre présentable).

Sinon j’ai testé la maj tft sans fil, mon 3.5 me répond qu’il ne peu pas à cause de ca version… Faudra que je teste sur l’intelligeant.

1 « J'aime »

Oui j’ai commencé doucement la transformation;
il faut ajouter une page et modifier quelques images. Mais ca va prendre du temps !
Mon ecran est le NX3224K028 enhanced
phil

Ok, n’hésite pas si tu as besoin, je vais peut être créer un autres post par contre.

J’ai la plupart des icones en grand et transparent, certaines en vectoriel si tu veut moins de perte sur les redimensionnés ou des fond différents.

Ok merci
Je vais être absent une quinzaine de jours
A mon retour ….
Phil

Merci pour le partage.

Je me lance je viens de commander mon écran.

A+ Philippe

1 « J'aime »

Bonjour à tous,

Bon mon projet est bien avancé en repompant une grosse partie de ton travail, merci beaucoup.

Par contre je suis vraiment nul en recherche de documentation et je n’arrive pas à trouver les infos basiques dont j’ai besoin pour aller plus loin.

Je souhaite réveiller mon Nextion sur un capteur PIR pour ne pas avoir à cliquer dessus.

J’avais trouvé cet exemple mais il ne fonctionne pas.

          then:
            - lambda: 'id(esp_nextion).send_command_no_ack("sleep=0");'

Cela me renvoie une erreur à la compilation comme quoi « send_command_no_ack » n’est pas une commande valide.

Par contre où peut on trouver un listing de toutes les commandes valides ?

J’ai trouvé cela :

https://esphome.io/api/classesphome_1_1nextion_1_1_nextion.html

Je ne trouves pas et c’est quand même limitant de devoir recopier des bouts de codes trouvés sur le net sans savoir si d’autre solutions ne seraient pas meilleures.

Si c’est la bonne doc pour Sleep on trouve ça :

J’ai essayé ce code :

script:

  - id: motionscript
    then:
       - lambda: 'id(esp_nextion).sleep("false");'

Ca compile mais ne semble pas marcher … le Nextion reste noir , pourtant le log indique bien qu’il reçoit l’info du PIR.

Bref encore un mystère pour moi.

Merci d’avance, Philippe