esphome:
name: display
friendly_name: Display
comment: Testing st7735 color display
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
<<: !include common/comset.yaml
captive_portal:
time:
- platform: homeassistant
id: esptime
sensor:
- platform: homeassistant
id: u_temp
entity_id: sensor.ute_temperatur
internal: true
- platform: homeassistant
id: i_temp
entity_id: sensor.kontor_temperatur
internal: true
- platform: homeassistant
id: baro
entity_id: sensor.barometer
internal: true
binary_sensor:
- platform: homeassistant
id: g_door
entity_id: binary_sensor.garage_door
internal: true
# Display stuff
spi:
clk_pin: 3
mosi_pin: 4
display:
- platform: ili9xxx
model: ST7735
invert_colors: false
reset_pin: 5
cs_pin: 2
dc_pin: 0
rotation: 0
color_order: bgr
dimensions:
height: 128
width: 128
offset_width: 2
offset_height: 1
update_interval: 1s
lambda: |-
// Klokke med sekunder - align center
it.strftime(64, 16, id(my_font30), id(c_red), TextAlign::CENTER, "%H:%M:%S", id(esptime).now());
// Dato - align center
it.strftime(64, 40, id(my_font20), id(c_blue), TextAlign::CENTER, "%d-%m-%Y", id(esptime).now());
// Ute temperatur - align left (normal) med 8 px buffer - vises kun om data er tilgjenglig
if (id(u_temp).has_state()) {
it.printf(8, 50, id(my_font20), id(c_green), "U: %.1f°", id(u_temp).state);
}
// Kontor temp ... align right med 8px buffer
if (id(i_temp).has_state()) {
it.printf(120, 50, id(my_font20), id(c_green), TextAlign::RIGHT, "I: %.1f°", id(i_temp).state);
}
it.printf(64, 75, id(my_font20), id(c_green), TextAlign::CENTER, "B: %.1f", id(baro).state); // Barometer
// eksperiment: viser open/closed basert på binær sensor
//if ( id(g_door).state ) { it.print( 0, 90, my_font20, id(c_red), "Open" ); }
//else { it.print( 0, 90, my_font20, id(c_green), "Closed" ); };
// samme som ovenfor bare med ikon i stedet
if ( !id(g_door).state ) {
//it.print( 98, 98, icons_50, id(c_green), "\U0000e714" );
it.image(0, 88, id(i_garage), id(c_green));
}
else {
//it.print( 98, 98, icons_50, id(c_red), "\U0000e714" );
it.image(0, 88, id(i_garage_o) , id(c_red));
}
// MDI Testing
//it.image(0, 88, id(c_green), id(i_garage));
image:
- file: mdi:garage
id: i_garage
resize: 40x40
- file: mdi:garage-open
id: i_garage_o
resize: 40x40
font:
- file: "gfonts://Roboto"
id: my_font20
size: 16
- file: "gfonts://Roboto"
id: my_font30
size: 31
glyphs: [ 1,2,3,4,5,6,7,8,9,0,"\u003a", ]
- file: "gfonts://Material+Symbols+Outlined"
id: icons_50
size: 30
glyphs: ["\U0000e714"] # Garage door
color:
- id: c_red
red: 100%
green: 0%
blue: 0%
white: 0%
- id: c_blue
red: 0%
green: 0%
blue: 100%
white: 0%
- id: c_green
red: 0%
green: 100%
blue: 0%
white: 0%
Comments
0 B
|👍
/👎
0 B
|👍
/👎