Recherche avancée

Résultats de recherche (Recherche de : 16mb)

  • Joebart81
12 Jui 2025 11:55

TUTO CARTE WIFI WEMOS D1 PRO et Carte SD (avec ou sans Horloge)

Catégorie : Support technique

J'essaierai mais j'ai acheté la carte avant que tu fasses le tuto, ça fait un petit moment que je dois faire ce changement car de gros problème de perte wifi depuis le début (au mois de mars).
Je ne sais pas si la compilation est la même pour la version 4 et la 16MB, j'en doute, peut-être ça le soucis.
IL faut que je trouve le temps d'essayer cette mise a jour.
  • Rob_27
12 Jui 2025 10:16

TUTO CARTE WIFI WEMOS D1 PRO et Carte SD (avec ou sans Horloge)

Catégorie : Support technique

Bonjour,

Dans le tuto j'indiquais:

Pour info, j’avais fait un premier essai avec une autre carte WEMOS 16Mb, mais impossible de me connecter
au routeur ; mauvaise série , les 16Mb???


Et sur un autre post:
ard-tek.com/index.php/forum/recherche?qu...atrick&childforums=1

Mais puisque tu as la carte, essaie si cela fonctionne, tu seras vite fixé avec l'outil MsunPV USB Tool.

Peut être que j'ai pas eu de chance avec une carte HS.

Et si ça marche pas.....ben c'est pas très cher non plus.

Tiens nous au courant.

Cdlt.
  • Joebart81
12 Jui 2025 10:04

TUTO CARTE WIFI WEMOS D1 PRO et Carte SD (avec ou sans Horloge)

Catégorie : Support technique

Bonjour,

J'ai fait l'erreur d'acheter une carte WEMOS D1 PRO mais en version 16MB, suis-je obliger de racheter une autre carte de 4MB ou je peux utiliser ma carte 16MB ?

Merci
  • patrick
  • Portrait de patrick
16 Mai 2025 18:11
Réponse de patrick sur le sujet Mise à jour 105b

Mise à jour 105b

Catégorie : News

Bonsoir Robin, Michel,

Soit ma carte précédente, pourtant neuve, était HS, soit parce qu'elle avait 16Mb de mémoire. J'y crois pas mais dans le doute celle que j'ai achetée ne dispose que de 4Mb.

Pas testé mais pratiquement sûr que les mémoires 16Mb ne sont pas compatibles avec les firmwares compilés pour les mémoires 4Mb.
  • Rob_27
16 Mai 2025 16:31
Réponse de Rob_27 sur le sujet Mise à jour 105b

Mise à jour 105b

Catégorie : News

Bonjour,

Pour donner suite à la MAJ 105b sur WEMOS D1 PRO.

Je n'ai pas pu acheter la carte testée par Patrick, du coup je me suis rabattu sur une autre.

Mise à jour réussie du premier coup, identifiants rentrés par l'interface WEb lors de la connexion au réseau Msunpv.

Soit ma carte précédente, pourtant neuve, était HS, soit parce qu'elle avait 16Mb de mémoire. J'y crois pas mais dans le doute celle que j'ai achetée ne dispose que de 4Mb.

Reste plus qu'à l'installer ce soir avec sa carte SD+horloge et faire les tests.

Selon les résultats, un tuto sera mis en ligne.

Cdlt.
  • M@tt
01 Déc 2024 13:51

Afficheur déporté Lyligo S3 / esphome / Home assistant

Catégorie : News

Voilà mon code
esphome:
  name: lilygo-s3
  friendly_name: Lilygo_S3
  platformio_options:
    board_build.f_flash: 80000000L
    board_build.partitions: default_16MB.csv
    board_build.arduino.memory_type: qio_opi

external_components:
  - source: github://landonr/lilygo-tdisplays3-esphome
    components: [tdisplays3]

esp32:
  board: esp32-s3-devkitc-1
  variant: esp32s3
  framework:
    type: arduino
  flash_size: 16MB

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: ************************

ota:
  - platform: esphome
    password: ***********************

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Lilygo-S3 Fallback Hotspot"
    password: ****************

captive_portal:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      inverted: true
    name: "Button 1"
    on_press:
      then:
        - light.turn_on: backlight
  - platform: gpio
    pin:
      number: GPIO14
      inverted: true
    name: "Button 2"
    on_press:
      then:
        - light.turn_on: backlight

output:
  - platform: ledc
    pin: GPIO38
    id: gpio38
    frequency: 2000

light:
  - platform: monochromatic
    output: gpio38
    id: backlight
    name: "Backlight"
    restore_mode: RESTORE_DEFAULT_ON

interval:
  - interval: 60s
    then:
      - if:
          condition:
            lambda: 'return id(calcul_enpv_instant_positif).state < 10;'
          then:
            - light.turn_off: backlight
      - if:
          condition:
            lambda: 'return id(calcul_enpv_instant_positif).state > 11;'
          then:
            - light.turn_on: backlight

display:
  - platform: tdisplays3
    id: disp
    update_interval: 10s
    rotation: 90
    lambda: |-
      // Dessiner les cadres en blanc pour les données
      it.rectangle(10, 5, 240, 55, Color(255, 255, 255));   // Rectangle 1
      it.rectangle(10, 60, 240, 55, Color(255, 255, 255));  // Rectangle 2
      it.rectangle(10, 115, 240, 55, Color(255, 255, 255)); // Rectangle 3

      // Dessiner le cadre pour l'heure et la date
      it.rectangle(248, 5, 66, 55, Color(255, 255, 255));  // Rectangle pour l'heure et la date combinées

      // Colorier le rond de la température du cumulus selon les conditions
      if (id(shelly_temperature).has_state()) {
        if (id(shelly_temperature).state < 20) {
          it.circle(40, 88, 23, Color(255, 255, 255)); // Blanc si température inférieure à 20°
        } else if (id(shelly_temperature).state >= 20.1 && id(shelly_temperature).state <= 44.9) {
          it.circle(40, 88, 23, Color(0, 0, 255)); // Bleu si température entre 20.1° et 44.9°
        } else if (id(shelly_temperature).state >= 45 && id(shelly_temperature).state <= 65) {
          it.circle(40, 88, 23, Color(0, 255, 0)); // Vert si température entre 45° et 65°
        } else if (id(shelly_temperature).state >= 65.1) {
          it.circle(40, 88, 23, Color(255, 0, 0)); // Rouge si température supérieure à 65°
        }
      }

      // Afficher la valeur de la température du cumulus dans le rond
      it.printf(23, 80, id(roboto_smaller), Color(255, 255, 255), "%.1f °", id(shelly_temperature).state);

      // Colorer le rectangle du milieu en fonction du capteur rte_tempo_couleur_actuelle
      if (id(rte_tempo_couleur_actuelle).has_state()) {
        if (id(rte_tempo_couleur_actuelle).state == 1) {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(0, 0, 255));   // Bleu
        } else if (id(rte_tempo_couleur_actuelle).state == 2) {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(255, 255, 255));  // Blanc
        } else if (id(rte_tempo_couleur_actuelle).state == 3) {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(255, 0, 0));  // Rouge
        } else if (id(rte_tempo_couleur_actuelle).state == 4) {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(255, 255, 0));  // Jaune si couleur inconnue
        }
      } else {
        it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
        it.filled_rectangle(250, 62, 62, 51, Color(255, 255, 0));  // Jaune si aucune donnée
      }

      // Afficher la valeur de la prévision Solcast jour dans le rectangle du milieu
      it.printf(275, 62, id(roboto_smaller), Color(255, 255, 255), "J");
      it.printf(265, 85, id(roboto_large), Color(255, 255, 255), "%.1f", id(solcast_pv_forecast_previsions_pour_aujourd_hui).state); 

      // Colorer le rectangle du bas en fonction du capteur rte_tempo_prochaine_couleur
      if (id(rte_tempo_prochaine_couleur).has_state()) {
        if (id(rte_tempo_prochaine_couleur).state == 1) {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(0, 0, 255));   // Bleu
        } else if (id(rte_tempo_prochaine_couleur).state == 2) {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(255, 255, 255));  // Blanc
        } else if (id(rte_tempo_prochaine_couleur).state == 3) {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(255, 0, 0));  // Rouge
        } else if (id(rte_tempo_prochaine_couleur).state == 4) {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(255, 255, 0));  // Jaune si couleur inconnue
        }
      } else {
        it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
        it.filled_rectangle(250, 117, 62, 51, Color(255, 255, 0));  // Jaune si aucune donnée
      }

      // Afficher la valeur de la prévision Solcast demain dans le rectangle du bas
      it.printf(270, 120, id(roboto_smaller), Color(255, 255, 255), "J+1");
      it.printf(265, 140, id(roboto_large), Color(255, 255, 255), "%.1f", id(solcast_pv_forecast_previsions_pour_demain).state);

      // Centrer les titres et les valeurs
      // Afficher les Panneaux PV
      it.printf(85, 10, id(roboto_smaller), Color(0, 255, 0), "PANNEAUX PV:");
      it.printf(110, 28, id(roboto_large), Color(0, 255, 0), "%.1f W", id(calcul_enpv_instant_positif).state);

      // Afficher le Cumulus
      it.printf(105, 65, id(roboto_smaller), Color(255, 165, 0), "CUMULUS:");
      it.printf(110, 83, id(roboto_large), Color(255, 165, 0), "%.1f W", id(msunpv_outbal).state);

      // Centrer le titre et la valeur pour la Consommation EDF
      it.printf(55, 120, id(roboto_smaller), Color(128, 128, 128), "CONSOMMATION EDF:");
      it.printf(95, 138, id(roboto_large), Color(128, 128, 128), "%.1f W", id(msunpv_powreso).state);

      // Afficher l'heure et la date dans le même rectangle en blanc
      it.strftime(252, 8, id(roboto_medium), Color(255, 255, 255), "%H:%M", id(ha_time).now());
      it.strftime(258, 40, id(roboto_smaller), Color(255, 255, 255), "%d %b", id(ha_time).now());

font:
  - file: "gfonts://Roboto"
    id: roboto
    size: 30
  - file: "gfonts://Roboto"
    id: roboto_small
    size: 20
  - file: "gfonts://Roboto"
    id: roboto_smaller
    size: 15
  - file: "gfonts://Roboto"
    id: roboto_medium
    size: 23
  - file: "gfonts://Roboto"
    id: roboto_large
    size: 25

time:
  - platform: homeassistant
    id: ha_time

sensor:
  - platform: homeassistant
    entity_id: sensor.msunpv_powpv
    id: calcul_enpv_instant_positif
  - platform: homeassistant
    entity_id: sensor.msunpv_powbal
    id: msunpv_outbal
  - platform: homeassistant
    entity_id: sensor.msunpv_powreso
    id: msunpv_powreso
  - platform: homeassistant
    entity_id: sensor.msunpv_t_sdb
    id: shelly_temperature
  - platform: homeassistant
    entity_id: sensor.rte_tempo_couleur_actuelle
    id: rte_tempo_couleur_actuelle
  - platform: homeassistant
    entity_id: sensor.solcast_pv_forecast_forecast_today
    id: solcast_pv_forecast_previsions_pour_aujourd_hui
  - platform: homeassistant
    entity_id: sensor.rte_tempo_prochaine_couleur
    id: rte_tempo_prochaine_couleur
  - platform: homeassistant
    entity_id: sensor.solcast_pv_forecast_forecast_tomorrow
    id: solcast_pv_forecast_previsions_pour_demain
  • Paps42
28 Nov 2024 12:13

Afficheur déporté Lyligo S3 / esphome / Home assistant

Catégorie : News

pour utiliser cet afficheur dans ESP home avec le code donné plus haut, il faut respecter quelques étapes :

1 / intégrer ton esp32 display s3 (Lyligo) dans esphome (une fois fait et connecté normalement l'écran n'affiche rien mais la carte est indiqué Online)
il y a des tonnes de tuto sur ca et maintenant avec les mises a jour c'est plutot intuitif.

2/ Editer le code de ton ESP et recopier le code donné en début de post en faisant attention de conserver :
esphome:
  name: lilygo-s3
  friendly_name: Lilygo_S3
+
esp32:
  board: esp32-s3-devkitc-1
  variant: esp32s3
  framework:
    type: arduino
  flash_size: 16MB

logger:

api:
  encryption:
    key: "gcJyhpMWcWhK5am0SqVwad6DFn2nkE2ELD6ukcWBAC0="

ota:
  platform: esphome
  password: "xxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Lilygo-S3 Fallback Hotspot"
    password: "xxxxxxxxxxxxxxxxxxxxxx"

ensuite tout est dans la suite du code pour le paramétrage selon vos données HA.
il y a des commentaires sur chaque lignes donc c'est assez facile de s'y retrouver et de savoir ce a quoi les codes servent.
si tu n'as pas besoin de la fonction, il suffit de mettre # devant la ligne et elle ne sera pas lu.

il faudra aussi mettre a jour la partie sensor en fonction des sensors de ton HA.
modifie que la partie ID comme ca les liens dans les lignes supérieurs ne seront pas cassé, sinon il faudra faire le lien.

exemple si ton sensor température chauffe eau dans HA s'appelle sensor.toto
tu remplace dans entity_id: sensor.shelly_1_temperature par entity_id: sensor.toto

et idem pour les autres
sensor:
  - platform: homeassistant
    entity_id: sensor.calcul_enpv_instant_positif
    id: calcul_enpv_instant_positif
  - platform: homeassistant
    entity_id: sensor.msunpv_outbal
    id: msunpv_outbal
  - platform: homeassistant
    entity_id: sensor.msunpv_powreso
    id: msunpv_powreso
  - platform: homeassistant
    entity_id: sensor.shelly_1_temperature
    id: shelly_temperature
  - platform: homeassistant
    entity_id: sensor.tempo_couleur_numerique_jour
    id: rte_tempo_couleur_actuelle
  - platform: homeassistant
    entity_id: sensor.solcast_pv_forecast_previsions_pour_aujourd_hui
    id: solcast_pv_forecast_previsions_pour_aujourd_hui
  - platform: homeassistant
    entity_id: sensor.tempo_couleur_numerique_demain
    id: rte_tempo_prochaine_couleur
  - platform: homeassistant
    entity_id: sensor.solcast_pv_forecast_previsions_pour_demain
    id: solcast_pv_forecast_previsions_pour_demain
  - platform: homeassistant
    entity_id: sensor.temperature_max_cumulus_shelly_12heures
    id: temperature_max_cumulus_shelly_12heures

espérant t'avoir aider a comprendre le principe.

bonne intégration
  • Paps42
24 Nov 2024 18:49 - 02 Jan 2025 10:17

Afficheur déporté Lyligo S3 / esphome / Home assistant

Catégorie : News

Bonjour,

Après quelques galères sur la version afficheur déporté sous Arduino IDE, pb de bibliothèque ... ,
j'ai copié le type d'affichage de Baroudeur en la passant sur Esphome et récupération des données direct dans home assistant.

je partage ainsi ma version si d'autres personnes décident de faire de même.

cette version intègre la récupération des couleurs tempo RTE du jour et du lendemain.
également les prévisions solaires en J et J 1.
ceci effectivement en fonction de la config HA, ici récupération des prévisions solaire via Solcast: www.solcast.com/
récupération des couleurs tempo via HACS : RTE TEMPO

il faudra remplacer les passwords par les votre ainsi que mettre à jour suivant vos sensors.
par simplicité vous pouvez ne changer que les "entity_id" dans la partie sensor, cela vous evite de changer les id aussi dans le code.

Aucune invention, simplement une autre façon d'utiliser un lyligo S3 display via ESPHOME



je met ma config ci dessous.
esphome:
  name: lilygo-s3
  friendly_name: Lilygo_S3
  platformio_options:
    board_build.f_flash: 80000000L
    board_build.partitions: default_16MB.csv
    board_build.arduino.memory_type: qio_opi

external_components:
  - source: github://landonr/lilygo-tdisplays3-esphome
    components: [tdisplays3]

esp32:
  board: esp32-s3-devkitc-1
  variant: esp32s3
  framework:
    type: arduino
  flash_size: 16MB

logger:

api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  platform: esphome
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Lilygo-S3 Fallback Hotspot"
    password: "xxxxxxxxxxxxxxxxxxxxxxxxx"

captive_portal:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      inverted: true
    name: "Button 1"
    on_press:
      then:
        - light.turn_off: backlight

  - platform: gpio
    pin:
      number: GPIO14
      inverted: true
    name: "Button 2"
    on_press:
      then:
        - light.turn_on:
            id: backlight
            brightness: 1.0  # 100% de luminosité


output:
  - platform: ledc
    pin: GPIO38
    id: gpio38
    frequency: 2000

light:
  - platform: monochromatic
    output: gpio38
    id: backlight
    name: "Backlight"
    restore_mode: ALWAYS_ON

interval:
  - interval: 60s
    then:
      - if:
          condition:
            lambda: 'return id(calcul_enpv_instant_positif).state < 10;'
          then:
            - light.turn_off: backlight
      - if:
          condition:
            lambda: 'return id(calcul_enpv_instant_positif).state > 11;'
          then:
            - light.turn_on:
                id: backlight
                brightness: 1.0  # 100% de luminosité

display:
  - platform: tdisplays3
    id: disp
    update_interval: 10s
    rotation: 90
    lambda: |-
      // Dessiner les cadres en blanc pour les données
      it.rectangle(10, 5, 240, 55, Color(255, 255, 255));   // Rectangle 1
      it.rectangle(10, 60, 240, 55, Color(255, 255, 255));  // Rectangle 2
      it.rectangle(10, 115, 240, 55, Color(255, 255, 255)); // Rectangle 3

      // Dessiner le cadre pour l'heure et la date
      it.rectangle(248, 5, 66, 55, Color(255, 255, 255));  // Rectangle pour l'heure et la date combinées

      // Colorier le rond de la température du cumulus selon les conditions
      if (id(temperature_max_cumulus_shelly_12heures).has_state()) {
        if (id(temperature_max_cumulus_shelly_12heures).state < 20) {
          it.circle(40, 88, 23, Color(255, 255, 255)); // Blanc si température inférieure à 20°
        } else if (id(temperature_max_cumulus_shelly_12heures).state >= 20.1 && id(temperature_max_cumulus_shelly_12heures).state <= 44.9) {
          it.circle(40, 88, 23, Color(0, 0, 255)); // Bleu si température entre 20.1° et 44.9°
        } else if (id(temperature_max_cumulus_shelly_12heures).state >= 45 && id(temperature_max_cumulus_shelly_12heures).state <= 65) {
          it.circle(40, 88, 23, Color(0, 255, 0)); // Vert si température entre 45° et 65°
        } else if (id(temperature_max_cumulus_shelly_12heures).state >= 65.1) {
          it.circle(40, 88, 23, Color(255, 0, 0)); // Rouge si température supérieure à 65°
        }
      }

      // Afficher la valeur de la température du cumulus dans le rond
      it.printf(23, 80, id(roboto_smaller), Color(255, 255, 255), "%.1f °", id(shelly_temperature).state);

      // Colorer le rectangle du milieu en fonction du capteur rte_tempo_couleur_actuelle
      if (id(rte_tempo_couleur_actuelle).has_state()) {
        if (id(rte_tempo_couleur_actuelle).state == "Bleu") {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(0, 0, 255));   // Bleu
        } else if (id(rte_tempo_couleur_actuelle).state == "Blanc") {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(255, 255, 255));  // Blanc
        } else if (id(rte_tempo_couleur_actuelle).state == "Rouge") {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(255, 0, 0));  // Rouge
        } else if (id(rte_tempo_couleur_actuelle).state == "inconnu") {
            it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 62, 62, 51, Color(255, 255, 0));  // Jaune si couleur inconnue
        }
      } else {
        it.rectangle(248, 60, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
        it.filled_rectangle(250, 62, 62, 51, Color(255, 255, 0));  // Jaune si aucune donnée
      }

      // Afficher la valeur de la prévision Solcast jour dans le rectangle du milieu
      it.printf(275, 62, id(roboto_smaller), Color(0, 0, 0), "J");
      it.printf(265, 85, id(roboto_large), Color(0, 0, 0), "%.1f", id(solcast_pv_forecast_previsions_pour_aujourd_hui).state); 

      // Afficher la valeur max de la température du cumulus à droite du rectangle gauche du milieu
      it.printf(200, 78, id(roboto_smaller), Color(255, 255, 255), "Max");
      it.printf(200, 95, id(roboto_smaller), Color(255, 255, 255), "%.1f °", id(temperature_max_cumulus_shelly_12heures).state);

      // Colorer le rectangle du bas en fonction du capteur rte_tempo_prochaine_couleur
      if (id(rte_tempo_prochaine_couleur).has_state()) {
        if (id(rte_tempo_prochaine_couleur).state == "Bleu") {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(0, 0, 255));   // Bleu
        } else if (id(rte_tempo_prochaine_couleur).state == "Blanc") {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(255, 255, 255));  // Blanc
        } else if (id(rte_tempo_prochaine_couleur).state == "Rouge") {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(255, 0, 0));  // Rouge
        } else if (id(rte_tempo_prochaine_couleur).state == "inconnu") {
            it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
            it.filled_rectangle(250, 117, 62, 51, Color(255, 255, 0));  // Jaune si couleur inconnue
        }
      } else {
        it.rectangle(248, 115, 66, 55, Color(255, 255, 255)); // Ajouter un cadre blanc
        it.filled_rectangle(250, 117, 62, 51, Color(255, 255, 0));  // Jaune si aucune donnée
      }

      // Afficher la valeur de la prévision Solcast demain dans le rectangle du bas
      it.printf(270, 120, id(roboto_smaller), Color(0, 0, 0), "J+1");
      it.printf(265, 140, id(roboto_large), Color(0, 0, 0), "%.1f", id(solcast_pv_forecast_previsions_pour_demain).state);

      // Afficher les Panneaux PV
      it.printf(85, 10, id(roboto_smaller), Color(0, 255, 0), "PANNEAUX PV:");
      it.printf(110, 28, id(roboto_large), Color(0, 255, 0), "%.0f W", id(calcul_enpv_instant_positif).state);

      // Afficher le Cumulus
      it.printf(105, 65, id(roboto_smaller), Color(255, 165, 0), "CUMULUS:");
      it.printf(110, 83, id(roboto_large), Color(255, 165, 0), "%.0f W", id(msunpv_outbal).state);

      // Centrer le titre et la valeur pour la Consommation EDF
      it.printf(55, 120, id(roboto_smaller), Color(128, 128, 128), "CONSOMMATION EDF:");
      it.printf(110, 138, id(roboto_large), Color(128, 128, 128), "%.0f W", id(msunpv_powreso).state);

      // Afficher l'heure et la date dans le même rectangle en blanc
      it.strftime(252, 8, id(roboto_medium), Color(255, 255, 255), "%H:%M", id(ha_time).now());
      it.strftime(258, 40, id(roboto_smaller), Color(255, 255, 255), "%d %b", id(ha_time).now());

font:
  - file: "gfonts://Roboto"
    id: roboto
    size: 30
  - file: "gfonts://Roboto"
    id: roboto_small
    size: 20
  - file: "gfonts://Roboto"
    id: roboto_smaller
    size: 15
  - file: "gfonts://Roboto"
    id: roboto_medium
    size: 23
  - file: "gfonts://Roboto"
    id: roboto_large
    size: 25

time:
  - platform: homeassistant
    id: ha_time

sensor:
  - platform: homeassistant
    entity_id: sensor.calcul_enpv_instant_positif
    id: calcul_enpv_instant_positif
  - platform: homeassistant
    entity_id: sensor.msunpv_outbal
    id: msunpv_outbal
  - platform: homeassistant
    entity_id: sensor.msunpv_powreso
    id: msunpv_powreso
  - platform: homeassistant
    entity_id: sensor.shelly_1_temperature
    id: shelly_temperature
  - platform: homeassistant
    entity_id: sensor.solcast_pv_forecast_previsions_pour_aujourd_hui
    id: solcast_pv_forecast_previsions_pour_aujourd_hui
  - platform: homeassistant
    entity_id: sensor.solcast_pv_forecast_previsions_pour_demain
    id: solcast_pv_forecast_previsions_pour_demain
  - platform: homeassistant
    entity_id: sensor.temperature_max_cumulus_shelly_12heures
    id: temperature_max_cumulus_shelly_12heures

text_sensor:
 - platform: homeassistant
   entity_id: sensor.rte_tempo_couleur_actuelle
   id: rte_tempo_couleur_actuelle
 - platform: homeassistant
   entity_id: sensor.rte_tempo_prochaine_couleur
   id: rte_tempo_prochaine_couleur

web_server:
  port: 80

Edit du 21/12/2024 : J'ai mis a jour le code pour que l'écran se rallume a 100% de luminosité + bouton 1, allume l'écran et bouton 2 éteint l'écran.(bouton a droite de l'écran)
Edit du 01/01/2024: maj restore_mode: ALWAYS_ON (pb écran qui ne se rallume pas a la luminosité max le matin) + a la demande de Samourai47 affichage des puissances en nombre entier + maj de la photo
Affichage 1 - 8 de 8 résultats.
Propulsé par Kunena