Afficheur déporté Lyligo S3 / esphome / Home assistant
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
Après quelques galère sur la version afficheur déporté sous arduino, 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 meme.
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 a jour suivant vos sensors.
aucune invention, simplement une autre façon d'utiliser un lyligo S3 display via ESPHOME
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_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(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 == 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(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 == 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(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);
// 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.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
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- jpferreira1973
- Hors Ligne
- Membre junior
- Messages : 22
- Remerciements reçus 1
Je vais mettre à jour mon afficheur afin de retrouver les couleurs TEMPO.
Cdt
José
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
L’afficheur est peut être un peu moins « joli » que sous Arduino avec la version de Baroudeur.
Par contre pour ma part c’est plus facile de l’intégrer dans home assistant.
Avec les prévisions solaires et Tempo ma femme est contente.
Bonne intégration
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre premium
- Messages : 102
- Remerciements reçus 7
je suis en train d en préparer un second pr le garage juste dédier au solaire et batteries .
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
c'est toi Patmtp35 qui m'a décidé a basculer mon écran de Arduino sous ESP home.
j'ai voulu réutiliser l'esp32 S3 display (lyligo) que j'avais sans racheter un WT32 et je suis très satisfait du résultat.
Merci pour ton partage
ps: je regardais ton github sur le compteur d'eau, j'ai un Itron ou j'avais réussi à remonter les données avec un esp8266 + CC1101.
Cela tournait encore sous Arduino (je suis pas fan, je préfère du full HA) sauf que la compagnie des eaux a détecté que le compteur avait trop d'incrémentation d'envoie de données et m'a changé la tête émettrice.
du coup j'ai stoppé cette remontée d'info.
J'ai n'ai pas encore trouvé comment le faire directement depuis ESP Home.
Connexion ou Créer un compte pour participer à la conversation.
- samourai47
- Absent
- Membre junior
- Messages : 34
- Remerciements reçus 0
Ça a l air super sympa
Tu as un lien sur le matériel nécessaire et comment le câbler?
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
si tu parle du Lyligo S3 c'est ce matériel :
lilygo.cc/products/t-display-s3?variant=42585826590901
j'ai pris perso le modèle K204 qui a le boitier origine LYLIGO
niveau câblage c'est simplement un cordon USB C qu'il te faut pour l'alimenter via un adaptateur USB type téléphone.
ensuite tu intègre la carte dans ESP home sous HA. tu recopie ou t'inspire du code posté plus haut (en mettant a jour tes passwords et le nom des sensors)
Tu peux aussi supprimer les affichages que tu ne souhaite pas suivant tes capteurs HA.
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre premium
- Messages : 102
- Remerciements reçus 7
pour le compteur j ai pas mal echangé avec le gars de ce git github.com/zibous/ha-watermeter/issues/46
je ne connais pas ton compteur le notre envoie les infos ttes les N seconde les gars passent devant et les recoltent. du coup c'est plu simple
tu as ca que tu as deja vu sans doute :
haade.fr/fr/blog/domotiser-compteur-eau-itron-everblu-cyble
si tuas besoin pour pas poluer ce fil mp
Connexion ou Créer un compte pour participer à la conversation.
- samourai47
- Absent
- Membre junior
- Messages : 34
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- samourai47
- Absent
- Membre junior
- Messages : 34
- Remerciements reçus 0
J'ai installé une fois un Human sensor, mais je serai bien incapable de refaire
J'ai esphome installe dans HA en en module complementaire
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
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
Connexion ou Créer un compte pour participer à la conversation.
- M@tt
- Hors Ligne
- Membre junior
- Messages : 28
- Remerciements reçus 1
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
Tu peux mettre ton code en pj pour voir stp
Connexion ou Créer un compte pour participer à la conversation.
- M@tt
- Hors Ligne
- Membre junior
- Messages : 28
- Remerciements reçus 1
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
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 136
- Remerciements reçus 29
tu as attendu un peux de temps car au début il faut que l'ecran capte les informations donc c'est normal l'affichage comme tu as.
si dans les 5 minutes tu n'as rien effectivement c'est que cela ne fonctionne pas.
tu es bien dans la portée de ton wifi ?
Connexion ou Créer un compte pour participer à la conversation.