Add clock.yaml/clocklightRBGtextcolor
This commit is contained in:
parent
01796ed010
commit
9baa3c3009
|
|
@ -0,0 +1,150 @@
|
|||
esphome:
|
||||
name: mini-display-tv-yellow
|
||||
friendly_name: Mini Display TV - Yellow
|
||||
|
||||
esp8266:
|
||||
board: esp01_1m
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: git
|
||||
url: https://github.com/rletendu/esphome.git
|
||||
ref: st7789_nobuffer_202312
|
||||
components: [st7789v]
|
||||
|
||||
logger:
|
||||
|
||||
api:
|
||||
|
||||
ota:
|
||||
platform: esphome
|
||||
|
||||
wifi:
|
||||
ssid: "DNTD"
|
||||
password: "wifipassword"
|
||||
ap:
|
||||
ssid: "Mini-Display-Tv--Yellow"
|
||||
password: "wifipassword"
|
||||
|
||||
spi:
|
||||
clk_pin: GPIO14
|
||||
mosi_pin: GPIO13
|
||||
interface: hardware
|
||||
id: spihwd
|
||||
|
||||
output:
|
||||
- platform: esp8266_pwm
|
||||
pin: GPIO05
|
||||
frequency: 1000 Hz
|
||||
id: pwm_output
|
||||
inverted: true
|
||||
|
||||
# Dummy RGB outputs (not connected to physical pins)
|
||||
- platform: esp8266_pwm
|
||||
id: output_red
|
||||
pin: GPIO4 # Dummy pin
|
||||
inverted: false
|
||||
|
||||
- platform: esp8266_pwm
|
||||
id: output_green
|
||||
pin: GPIO12 # Dummy pin
|
||||
inverted: false
|
||||
|
||||
- platform: esp8266_pwm
|
||||
id: output_blue
|
||||
pin: GPIO15 # Dummy pin
|
||||
inverted: false
|
||||
|
||||
light:
|
||||
- platform: monochromatic
|
||||
name: "Backlight"
|
||||
output: pwm_output
|
||||
id: backlight
|
||||
restore_mode: RESTORE_AND_ON
|
||||
|
||||
# Virtual RGB light for text color control
|
||||
- platform: rgb
|
||||
name: "Text Color"
|
||||
red: output_red
|
||||
green: output_green
|
||||
blue: output_blue
|
||||
id: text_color
|
||||
restore_mode: ALWAYS_ON
|
||||
|
||||
font:
|
||||
- file: "gfonts://Orbitron"
|
||||
id: dspfont
|
||||
size: 75
|
||||
|
||||
- file: "gfonts://Orbitron"
|
||||
id: dspfont_small
|
||||
size: 26
|
||||
|
||||
- file: "gfonts://Orbitron"
|
||||
id: dspfont_medium
|
||||
size: 38
|
||||
|
||||
time:
|
||||
- platform: homeassistant
|
||||
id: esptime
|
||||
|
||||
switch:
|
||||
- platform: homeassistant
|
||||
id: air_purifier_outlet1
|
||||
entity_id: switch.air_purifier_outlet1
|
||||
|
||||
sensor:
|
||||
- platform: homeassistant
|
||||
id: temperature
|
||||
entity_id: weather.home
|
||||
attribute: temperature
|
||||
internal: true
|
||||
|
||||
# Text sensors for weather and location information
|
||||
text_sensor:
|
||||
- platform: homeassistant
|
||||
id: weather_condition
|
||||
entity_id: weather.home
|
||||
internal: true
|
||||
|
||||
display:
|
||||
- platform: st7789v
|
||||
model: "Custom"
|
||||
spi_id: spihwd
|
||||
height: 240
|
||||
width: 240
|
||||
offset_height: 0
|
||||
offset_width: 0
|
||||
dc_pin: GPIO00
|
||||
reset_pin: GPIO02
|
||||
eightbitcolor: true
|
||||
update_interval: 30s
|
||||
id: disp
|
||||
spi_mode: mode3
|
||||
lambda: |-
|
||||
// Read RGB values from the virtual light entity
|
||||
float r = id(text_color).current_values.get_red() * 255;
|
||||
float g = id(text_color).current_values.get_green() * 255;
|
||||
float b = id(text_color).current_values.get_blue() * 255;
|
||||
|
||||
Color text_color = Color(r, g, b);
|
||||
|
||||
// Display the time in 12-hour format
|
||||
it.strftime(0, 80, id(dspfont), text_color, TextAlign::BASELINE_LEFT, "%l:%M", id(esptime).now());
|
||||
|
||||
// Display the date in abbreviated weekday, MM/DD format (no year)
|
||||
it.strftime(0, 130, id(dspfont_medium), text_color, TextAlign::BASELINE, "%a %m/%d", id(esptime).now());
|
||||
|
||||
// Display current weather condition with text_color
|
||||
it.print(0, 140, id(dspfont_small), text_color, id(weather_condition).state.c_str());
|
||||
|
||||
// Display current temperature under the weather condition with text_color
|
||||
String temp_str = "Temp: " + String(id(temperature).state) + " °F";
|
||||
it.print(0, 170, id(dspfont_small), text_color, temp_str.c_str());
|
||||
|
||||
// Display "Party mode: ON" or "No fun allowed" with text_color
|
||||
if (id(air_purifier_outlet1).state) {
|
||||
it.printf(0, 230, id(dspfont_small), text_color, TextAlign::BASELINE_LEFT, "Party mode: ON");
|
||||
} else {
|
||||
it.printf(0, 230, id(dspfont_small), text_color, TextAlign::BASELINE_LEFT, "No fun allowed");
|
||||
}
|
||||
Loading…
Reference in New Issue