ESPHome Thermostat BME280 SSD1306 timer ecran off

Bonjour,
Mon programme fonctionne parfaitement suite à la vidéo YouTube de 3ATIVE VFX Studio que j’ai suivi : Home Assistant and ESPHome Digital OLED Thermostat v3.
Je voudrais juste ajouter une temporisation qui eteint l’ecran au bout de 1 minute et qui la rallume quand on appuie sur le bouton rotatif. Mais bien sûr, je veux que le programme continue de fonctionner :
=> Comment fait on une minuterie tout en continuant à dérouler le programme?

Pour éteindre l’afficheur ssd1306 en I2c la fonction est la suivante : id(Mon_Afficheur).turn_off();

Salut,

Une possibilité c’est de se baser sur le sensor uptime qui mesure le nombre de secondes depuis depuis le dernier boot de l’esp.
En enregistrant dans une variable la valeur de « uptime » au moment où tu allumes l’écran. Tu peux ajouter dans la lamba qui gère le display un calcul de différence entre le uptime enregistré et le uptime actuel.
Si supérieur ou égal à 60, alors tu éteins.
Possible aussi après de mettre à jour le uptime enregistré à chaque interaction d’un utilisateur pour ne pas éteindre si quelqu’un manipule le thermostat.

Merci, dès que je peux je teste.

Je suis vraiment très mauvais je declare bien uptime :

sensor:
  - platform: uptime
    name: "${friendly_name} uptime"
    id: uptime_sensor

Mais je ne sais pas comment l’incorporer ci-dessous pour qu’au bout de 60 secondes l’affichage s’eteigne ! :

display:
  - platform: ssd1306_i2c
    id: oled1
    update_interval: 1.0s
    contrast: 0.4
    model: "SSD1306 128x64"
    rotation: 180
    address: 0x3C 
    lambda: |-
      if (id(fire).state) {id(ani_fire).next_frame(); it.image(0, 0, id(ani_fire));}
      else if (id(cool).state) {id(ani_fan).next_frame(); it.image(0, 0, id(ani_fan));}
      else {it.image(0, 0, id(home_thermometer));}
      it.print(64, 0,  id(font1), TextAlign::TOP_CENTER, "${room}");
      it.printf(128, 0,  id(font4), TextAlign::TOP_RIGHT, " %.1f%% ", id(internal_humidity).state);
      it.printf(64, 4, id(font2), TextAlign::TOP_CENTER, " %.1f°", id(internal_temperature).state);
      it.printf(0, 64, id(font3), TextAlign::BASELINE_LEFT, "L:%.1f°", id(this_thermostat).target_temperature_low);
      it.printf(128, 64, id(font3), TextAlign::BASELINE_RIGHT, "H:%.1f°", id(this_thermostat).target_temperature_high);
      if (id(brightness).state) {it.image(56, 51, id(bulb));} 
      else if (id(heat_cool).state) {it.image(56, 51, id(arrow_right));}
      else {it.image(56, 51, id(arrow_left));}

un petit coup de main, svp ?

Salut

regarde ce tuto

Merci beaucoup pour ce lien, même si ça va me permettre d’apprendre beaucoup d’autre chose, mon probleme reste entier :
1/Je veux vraiment allumer l’ecran quand jappuie sur le curseur.
=> ça je sais faire.
2/ je veux qu’il reste allumer tant que je le manipule et aussi 10 secondes apres ne plus intervenir.
3/ je veux qu’il s’eteigne au bout de 10 secondes d’inaction, tout en continuant a fonctionner dans home assistant.
cordialement