scripts/watchwip

161 lines
4.1 KiB
Plaintext

esphome:
name: esphome-web-ad0671
friendly_name: WATCH
min_version: 2024.11.0
name_add_mac_suffix: false
esp8266:
board: esp01_1m
# Enable logging with debug level
logger:
level: DEBUG # Explicitly set logging level to DEBUG
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
platform: esphome
wifi:
ssid: "DNTD"
password: "wifipassword"
ap:
ssid: "Mini-Display-Tv--Yellow"
password: "wifipassword"
font:
- file: "gfonts://Roboto"
id: font1
size: 12
light:
# WS2812B LED strip configuration
- platform: neopixelbus
name: "WS2812B LED"
id: ws2812b
pin: GPIO15 # Keeping WS2812B on GPIO15
num_leds: 1 # Adjust the number of LEDs as per your setup
type: GRB # Set the color order if needed (e.g., GRB for WS2812B)
variant: WS2812 # Specify the variant (WS2812 for WS2812B)
effects:
- pulse:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
min_brightness: 0%
max_brightness: 100%
- pulse:
name: "Slow Pulse"
transition_length: 500ms
update_interval: 2s
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
- random:
name: Random Effect With Custom Values
transition_length: 5s
update_interval: 7s
- strobe:
name: Strobe Effect With Custom Values
colors:
- state: true
brightness: 100%
red: 100%
green: 90%
blue: 0%
duration: 500ms
- state: false
duration: 250ms
- state: true
brightness: 100%
red: 0%
green: 100%
blue: 0%
duration: 500ms
- flicker:
name: Flicker Effect With Custom Values
alpha: 95%
intensity: 3.3%
i2c:
sda: GPIO5 # D1
scl: GPIO4 # D2
scan: true
# Define a sensor to grab the temperature from Home Assistant weather entity
sensor:
- platform: homeassistant
id: temperature
entity_id: weather.home
attribute: temperature
internal: true
# Text sensors for weather and location information
text_sensor:
# Current weather condition from Home Assistant
- platform: homeassistant
id: weather_condition
entity_id: weather.home # The entity_id for weather condition
internal: true
# Display configuration to show the weather condition and location
display:
- platform: ssd1306_i2c
model: "SH1106 128x64"
id: sh1106_display
update_interval: 1s
address: 0x3C # Default I2C address for SH1106
lambda: |-
// Display current weather condition
it.print(0, 10, id(font1), id(weather_condition).state.c_str());
// Display current temperature under the weather condition
String temp_str = "Temp: " + String(static_cast<int>(id(temperature).state)) + " °F"; // Truncate decimal
it.print(0, 20, id(font1), temp_str.c_str()); // Convert the String to a const char* and display it
# Define pull-up buttons for GPIOs
binary_sensor:
- platform: gpio
pin:
number: GPIO12
mode: INPUT_PULLUPesphome:
name: esphome-web-ad0671
friendly_name: WATCH
min_version: 2024.11.0
name_add_mac_suffix: false
esp8266:
board: esp01_1m
# Enable logging with debug level
… name: "Button GPIO14"
- platform: gpio
pin:
number: GPIO0 # Boot button on most ESP32 boards
mode: INPUT_PULLUP
inverted: true # Inverted because it's typically pulled low when pressed
name: "Boot Button"
name: "Button GPIO12"
- platform: gpio
pin:
number: GPIO13
mode: INPUT_PULLUP
name: "Button GPIO13"
- platform: gpio
pin:
number: GPIO14
mode: INPUT_PULLUP
name: "Button GPIO14"
- platform: gpio
pin:
number: GPIO0 # Boot button on most ESP32 boards
mode: INPUT_PULLUP
inverted: true # Inverted because it's typically pulled low when pressed
name: "Boot Button"