Bonjour,
faut utiliser ce conposant:
puis ecrire ton lambda
sensor:
- platform: homeassistant
id: temp_1
entity_id: sensor.atc_20a2_temperature
display:
- platform: tdisplays3
id: disp
rotation: 90
update_interval: 1s
lambda: |-
it.printf(191, 40, id(roboto), Color(0, 255, 0), "%.1f°C", id(temp_1).state);
exemple de config:
esphome:
name: s3-display
friendly_name: ESP32-S3 T-Display
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: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ota:
password: "6ada2xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.60
gateway: !secret wifi_gtw
subnet: !secret wifi_sub
dns1: !secret wifi_dns1
web_server:
time:
- platform: homeassistant
id: ha_time
sensor:
- platform: homeassistant
id: temp_1
entity_id: sensor.atc_20a2_temperature
- platform: homeassistant
id: temp_2
entity_id: sensor.atc_67c6_temperature
- platform: homeassistant
id: power
entity_id: sensor.0xa4c1383a5eeb5542_power
- platform: wifi_signal
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
internal: true
- platform: copy
source_id: wifi_signal_db
name: "WiFi Signal Percent"
id: wifi_signal_pct
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
entity_category: "diagnostic"
- platform: uptime
id: uptime_sec
update_interval: 60s
internal: true
binary_sensor:
- platform: gpio
pin:
number: GPIO0
inverted: true
name: "Button 1"
on_press:
then:
- light.toggle: light_s3
- platform: gpio
pin:
number: GPIO14
inverted: true
mode:
input: true
name: "Button 2"
- platform: status
name: "Statut"
id: system_status
entity_category: "diagnostic"
- platform: homeassistant
entity_id: binary_sensor.0x00158d0009439ec9_contact
id: door_frigo
switch:
- platform: restart
name: "Restart"
entity_category: config
text_sensor:
- platform: template
id: s3_uptime
name: "Uptime"
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s ").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s ").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s ").c_str() };
} else {
return { (String(seconds) +"s ").c_str() };
}
icon: mdi:clock-start
update_interval: 60s
entity_category: "diagnostic"
- platform: ld2410
version:
name: "ld2410 firmware version"
output:
- platform: ledc
pin: GPIO38
id: gpio38
frequency: 2000
light:
- platform: monochromatic
output: gpio38
name: "Backlight"
id: light_s3
restore_mode: RESTORE_DEFAULT_ON
font:
- file: "gfonts://Roboto"
id: roboto
size: 30
- file: 'fonts/materialdesignicons-webfont.ttf'
id: icon_font
size: 58
glyphs: [
"\U000F081B", # mdi-door-closed
"\U000F081C", # mdi-door-open
]
- file: 'fonts/materialdesignicons-webfont.ttf'
id: icon_font_po
size: 55
glyphs: [
"\U000F0241", # mdi-flash
"\U000F0243", # mdi-flash-off
]
display:
- platform: tdisplays3
id: disp
rotation: 90
update_interval: 1s
lambda: |-
it.printf(40, 1, id(roboto), Color(0, 0, 255), id(ha_time).now().strftime("%H:%M:%S %d/%m/%y").c_str());
it.print(1, 40, id(roboto), Color(255, 255, 255), TextAlign::LEFT, "Congelateur:");
it.print(1, 80, id(roboto), Color(255, 255, 255), TextAlign::LEFT, "Refrigerateur:");
it.printf(191, 40, id(roboto), Color(0, 255, 0), "%.1f°C", id(temp_1).state);
it.printf(216, 80, id(roboto), Color(0, 255, 0), "%.1f°C", id(temp_2).state);
it.print(1, 122, id(roboto), Color(255, 255, 255), TextAlign::LEFT, "Porte:");
if (id(door_frigo).state == false) {
it.print(88, 122, id(roboto), Color(0, 255, 0), TextAlign::LEFT, "Fermer");
} else {
it.print(88, 122, id(roboto), Color(255, 0, 0), TextAlign::LEFT, "Ouverte");
}
if (id(door_frigo).state == false) {
it.printf(200, 112, id(icon_font), Color(0, 255, 0), TextAlign::LEFT, "\U000F081B");
} else {
it.printf(200, 112, id(icon_font), Color(255, 0, 0), TextAlign::LEFT, "\U000F081C");
}
if (id(power).state >= 1) {
it.printf(260, 115, id(icon_font_po), Color(255, 0, 0), TextAlign::LEFT, "\U000F0241");
} else {
it.printf(260, 115, id(icon_font_po), Color(0, 255, 0), TextAlign::LEFT, "\U000F0243");
}