Files
hassos_config/esphome/custom_component/nixie_display/example.yaml
2026-03-26 12:10:21 +01:00

112 lines
2.1 KiB
YAML

esphome:
name: nixie-clock
platform: esp32
board: esp32-c3-devkitm-1
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Nixie-Clock"
password: "12345678"
captive_portal:
logger:
level: INFO
api:
encryption:
key: !secret api_encryption_key
ota:
password: !secret ota_password
time:
- platform: sntp
id: sntp_time
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
spi:
id: nixie_spi
clk_pin: GPIO18
mosi_pin: GPIO23
miso_pin: GPIO19
frequency: 1MHz
display:
- platform: nixie_display
id: nixie_clock
spi_id: nixie_spi
anode0_pin: GPIO5
anode1_pin: GPIO13
anode2_pin: GPIO17
le_pin: GPIO22
# Update display with current time HH:MM:SS
lambda: |-
auto time_obj = id(sntp_time).now();
if (time_obj.is_valid()) {
char time_str[7];
snprintf(time_str, sizeof(time_str), "%02d%02d%02d",
time_obj.hour,
time_obj.minute,
time_obj.second);
it.printf(time_str);
} else {
it.printf("000000");
}
return;
# Buttons from defines.h
binary_sensor:
- platform: gpio
pin:
number: GPIO2
mode: INPUT_PULLUP
name: "Up Button"
on_press:
then:
- logger.log: "Up button pressed"
- platform: gpio
pin:
number: GPIO4
mode: INPUT_PULLUP
name: "Down Button"
on_press:
then:
- logger.log: "Down button pressed"
- platform: gpio
pin:
number: GPIO16
mode: INPUT_PULLUP
name: "Mode Button"
on_press:
then:
- logger.log: "Mode button pressed"
# Underglow LED (RGB) for tube illumination from defines.h
light:
- platform: rgb
name: "Tube Underglow"
red: underglow_led_r
green: underglow_led_g
blue: underglow_led_b
restore_mode: RESTORE_DEFAULT_ON
output:
- platform: gpio
pin: GPIO25
id: underglow_led_r
- platform: gpio
pin: GPIO26
id: underglow_led_g
- platform: gpio
pin: GPIO27
id: underglow_led_b