Files
tclac/packages/screen.yaml
2024-06-12 15:55:48 +03:00

78 lines
2.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
time:
- platform: homeassistant
id: my_time
sensor:
- platform: wifi_signal
id: wifi_strenght
internal: true
update_interval: 20s
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
font:
- file: "gfonts://Press Start 2P"
id: font1
size: 16
bpp: 1
glyphs: '!"%()+=,-_.:°/?0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЬЭЮЯЫабвгдежзиклмнопрстуфхцчшщъыьэюя'
- file: "gfonts://Press Start 2P"
id: font2
size: 8
bpp: 1
glyphs: '!"%()+=,-_.:°/?0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЬЭЮЯЫабвгдежзиклмнопрстуфхцчшщъыьэюя'
i2c:
sda: GPIO0
scl: GPIO2
frequency: 400kHz
display:
- platform: ssd1306_i2c
model: "SSD1306 128x32"
address: 0x3C
rotation: 0
id: oled_disp
lambda: |-
if (id(${device_name}_wifi).is_connected()){
auto time = id(my_time).now();
id(oled_disp).strftime(0, 0, id(font2), "%H:%M", time);
id(oled_disp).line(0, 11, 127, 11);
if (id(${device_name}climate).mode == CLIMATE_MODE_OFF){
id(oled_disp).print(0, 14, id(font1), "Выключен");
} else if (id(${device_name}climate).mode == CLIMATE_MODE_AUTO){
id(oled_disp).print(0, 14, id(font1), "Авто");
} else if (id(${device_name}climate).mode == CLIMATE_MODE_COOL){
id(oled_disp).print(0, 14, id(font1), "Мороз");
} else if (id(${device_name}climate).mode == CLIMATE_MODE_HEAT){
id(oled_disp).print(0, 14, id(font1), "Жара");
} else if (id(${device_name}climate).mode == CLIMATE_MODE_DRY){
id(oled_disp).print(0, 14, id(font1), "Пустыня");
} else if (id(${device_name}climate).mode == CLIMATE_MODE_FAN_ONLY){
id(oled_disp).print(0, 14, id(font1), "Ветер");
}
if (id(beep_mode).state){
id(oled_disp).print(60, 0, id(font2), "П");
}
if (id(display_mode).state){
id(oled_disp).print(80, 0, id(font2), "Д");
}
if (id(wifi_strenght).state > 20){
id(oled_disp).filled_rectangle(109, 6, 3, 2);
}
if (id(wifi_strenght).state > 50){
id(oled_disp).filled_rectangle(114, 4, 3, 4);
}
if (id(wifi_strenght).state > 70){
id(oled_disp).filled_rectangle(119, 2, 3, 6);
}
if (id(wifi_strenght).state > 85){
id(oled_disp).filled_rectangle(124, 0, 3, 8);
}
}
else {
id(oled_disp).print(0, 0, id(font1), "Готов!");
}