Add initial ESPHome configuration files and .gitignore

This commit is contained in:
ZareMate 2025-02-02 12:08:41 +01:00
commit 074c0d3fda
Signed by: zaremate
GPG Key ID: 369A0E45E03A81C3
22 changed files with 1136 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
# Gitignore settings for ESPHome
# This is an example and may include too much for your use-case.
# You can modify this file to suit your needs.
/.esphome/
/secrets.yaml

51
camera.yaml Normal file
View File

@ -0,0 +1,51 @@
esphome:
name: esp32-cam
friendly_name: ESP32 Cam
esp32:
board: esp-wrover-kit
framework:
type: arduino
version: recommended
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "bk9FKXwQuFxsnHq8e6xhTqagOCF1IiHXlPtn+F5VhC8="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Camera Fallback Hotspot"
password: "wI8KxJ2mpeN1"
esp32_camera:
external_clock:
pin: GPIO21
frequency: 20MHz
i2c_pins:
sda: GPIO26
scl: GPIO27
data_pins: [GPIO4, GPIO5, GPIO18, GPIO19, GPIO36, GPIO39, GPIO34, GPIO35]
vsync_pin: GPIO25
href_pin: GPIO23
pixel_clock_pin: GPIO22
# Image settings
name: Wrover Camera
max_framerate: 15 fps
idle_framerate: 1.0 fps
resolution: 800x600
horizontal_mirror: false
vertical_flip: false

53
desk-lamp.yaml Normal file
View File

@ -0,0 +1,53 @@
esphome:
name: desk-lamp
friendly_name: Desk Lamp
bk72xx:
board: generic-bk7231t-qfn32-tuya
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "6+mIYZv8QSpHXcH9FOJ2lLrFA2nO3XlPjycnon5PWi8="
ota:
platform: esphome
password: !secret ota
web_server:
captive_portal:
mdns:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
output:
- platform: libretiny_pwm
id: output_cold
pin: P26
max_power: 80% # Limit the cold white channel to 80%
- platform: libretiny_pwm
id: output_warm
pin: P24
max_power: 80% # Limit the warm white channel to 80%
light:
- platform: cwww
id: light_cwww
name: Light
cold_white_color_temperature: 6500 K
warm_white_color_temperature: 2700 K
cold_white: output_cold
warm_white: output_warm

210
display.yaml Normal file
View File

@ -0,0 +1,210 @@
esphome:
name: display
friendly_name: DISPLAY
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
level: WARN
# Enable Home Assistant API
api:
encryption:
key: "S9zpaMdXsTbjQE5QTWJ2SN3sdSlTEnSomw/PnbwyMZc="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Display Fallback Hotspot"
password: "ajRx8MZPIszl"
spi:
clk_pin: 18
mosi_pin: 23
miso_pin: 19
# Display configuration
display:
- platform: ili9xxx
model: st7789v
dimensions:
height: 320
width: 240
offset_height: 0
offset_width: 0
rotation: 0
color_order: bgr
invert_colors: false
data_rate: 80MHz
cs_pin: 5
dc_pin: 16
reset_pin: 4
lambda: |-
// Define row positions
int icon_row = 5;
int row_y = icon_row + 25;
int y_step = 30;
int col_start = 5;
int col_offset = col_start + 25;
int icon_size = y_step * 0.75;
// Calculate column and row positions
int col_array[] = {col_start, col_offset + y_step, col_offset + y_step * 2, col_offset + y_step * 3, col_offset + y_step * 5, col_offset + y_step * 7};
int row_array[] = {icon_row, row_y, row_y + y_step, row_y + y_step * 2, row_y + y_step * 3, row_y + y_step * 4};
it.fill(Color(0, 0, 0)); // Clear screen
// Function to handle all state conditions
auto handle_state = [&](int col_index, int row_index, std::string text, std::string type) {
int x, y, center;
x = col_array[col_index];
y = row_array[row_index];
center = ((col_array[col_index] + col_array[col_index + 1]) / 2) - 10;
if (text != "on" && text != "off" && text != "unavailable" && text != "unknown" && text != "") {
if (type == "temperature") {
text = text + "°C";
} else if (type == "humidity") {
text = text + "%";
}
}
if (text == "unavailable" || text == "unknown") {
it.filled_triangle(x, y + icon_size, x + icon_size, y + icon_size, x + (icon_size / 2), y, Color(255, 0, 0));
it.print((x + icon_size / 3) + 1, y, id(my_font), Color(255, 255, 255), "!");
} else if (text == "" && type == "door" || text == "" && type == "motion") {
it.filled_rectangle(x, y, icon_size, icon_size, Color(128, 128, 128));
} else if (text == "on") {
it.filled_rectangle(x, y, icon_size, icon_size, Color(0, 255, 0));
} else if (text == "off") {
it.filled_rectangle(x, y, icon_size, icon_size, Color(255, 0, 0));
} else if (type == "icon") {
it.print(center, y, id(icon_font), Color(255, 255, 255), text.c_str());
} else {
it.print(x, y, id(my_font), Color(255, 255, 255), text.c_str());
}
};
// Room names (first column)
handle_state(0,0, "󰚡", "icon");
handle_state(0,1, "Bath", "name");
handle_state(0,2, "Hall", "name");
handle_state(0,3, "Kitch", "name");;
handle_state(0,4, "Tom", "name");
handle_state(0,5, "Mate", "name");
// Door status (second column)
handle_state(1, 0, "󰠚", "icon");
handle_state(1, 1, id(bath_door_status).state, "door");
handle_state(1, 2, id(hall_door_status).state, "door");
handle_state(1, 3, "", "door");
handle_state(1, 4, id(tomek_door_status).state, "door");
handle_state(1, 5, id(mateusz_door_status).state, "door");
// Motion status (third column)
handle_state(2, 0, "󰶑", "icon");
handle_state(2, 1, id(bath_motion_status).state, "motion");
handle_state(2, 2, id(hall_motion_status).state, "motion");
handle_state(2, 3, id(kitchen_motion_status).state, "motion");
handle_state(2, 4, "", "motion");
handle_state(2, 5, "", "motion");
// Temperature (fourth column)
handle_state(3, 0, "󰔏", "icon");
handle_state(3, 1, id(bath_temperature).state, "temperature");
handle_state(3, 2, id(hall_temperature).state, "temperature");
handle_state(3, 3, id(kitchen_temperature).state, "temperature");
handle_state(3, 4, id(tomek_temperature).state, "temperature");
handle_state(3, 5, id(mateusz_temperature).state, "temperature");
// Humidity (fifth column)
handle_state(4, 0, "󰖌", "icon");
handle_state(4, 1, id(bath_humidity).state, "humidity");
handle_state(4, 2, id(hall_humidity).state, "humidity");
handle_state(4, 3, id(kitchen_humidity).state, "humidity");
handle_state(4, 4, id(tomek_humidity).state, "humidity");
handle_state(4, 5, id(mateusz_humidity).state, "humidity");
# Home Assistant integration
text_sensor:
- platform: homeassistant
entity_id: binary_sensor.bathroom_door_opening
id: bath_door_status
- platform: homeassistant
entity_id: binary_sensor.entrance_door_opening
id: hall_door_status
# - platform: homeassistant
# entity_id: binary_sensor.kitchen_door_status
# id: kitchen_door_status
- platform: homeassistant
entity_id: binary_sensor.tomasz_s_door_opening
id: tomek_door_status
- platform: homeassistant
entity_id: binary_sensor.mateusz_s_door_opening
id: mateusz_door_status
- platform: homeassistant
entity_id: binary_sensor.bathroom_motion_occupancy
id: bath_motion_status
- platform: homeassistant
entity_id: binary_sensor.hall_motion_occupancy
id: hall_motion_status
- platform: homeassistant
entity_id: binary_sensor.kitchen_motion_occupancy
id: kitchen_motion_status
# - platform: homeassistant
# entity_id: binary_sensor.tomek_motion_sensor
# id: tomek_motion_status
# - platform: homeassistant
# entity_id: binary_sensor.mateusz_motion_sensor
# id: mateusz_motion_status
- platform: homeassistant
entity_id: sensor.bathroom_sensor_temperature
id: bath_temperature
- platform: homeassistant
entity_id: sensor.hall_sensor_temperature
id: hall_temperature
- platform: homeassistant
entity_id: sensor.kitchen_sensor_temperature
id: kitchen_temperature
- platform: homeassistant
entity_id: sensor.t_h_sensor_temperature
id: tomek_temperature
- platform: homeassistant
entity_id: sensor.mateusz_s_room_sensor_temperature
id: mateusz_temperature
- platform: homeassistant
entity_id: sensor.bathroom_sensor_humidity
id: bath_humidity
- platform: homeassistant
entity_id: sensor.hall_sensor_humidity
id: hall_humidity
- platform: homeassistant
entity_id: sensor.kitchen_sensor_humidity
id: kitchen_humidity
- platform: homeassistant
entity_id: sensor.t_h_sensor_humidity
id: tomek_humidity
- platform: homeassistant
entity_id: sensor.mateusz_s_room_sensor_humidity
id: mateusz_humidity
font:
- id: my_font
file: "fonts/Roboto.ttf"
size: 20
- id: icon_font
file: "fonts/JetBrains.ttf"
size: 20
glyphs: [ "󰚡", "󰠚", "󰶑", "󰔏", "󰖌" ]

43
esp-home-hall.yaml Normal file
View File

@ -0,0 +1,43 @@
esphome:
name: esp-home-hall
friendly_name: Esp-Home-Hall
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
web_server:
captive_portal:
# Enable Home Assistant API
api:
encryption:
key: "AMc594qbzF9SwLtCKcAH8jvTeOvNtgOcJzPxpy7BuAU="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp-Home-Hall Fallback Hotspot"
password: "eCkB9AHkfKl6"
switch:
- platform: gpio
restore_mode: ALWAYS_ON
name: "Panel charger"
pin:
number: 13
inverted: true

38
esphome-outside.yaml Normal file
View File

@ -0,0 +1,38 @@
esphome:
name: esphome-outside-s
friendly_name: Outside Light
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "6XGt8kCrllL861S4s3oBM5eUZ+p84JhxZqP6X4EsWE4="
ota:
password: "f95124df8c48dd5b2ecce5a16ff14249"
wifi:
ssid: !secret wifi_outside_ssid
password: !secret wifi_outside_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Server-Room Fallback Hotspot"
password: "UdiLJzrZq12a"
captive_portal:
switch:
- platform: gpio
name: "Outside light"
pin:
number: 13
inverted: true

BIN
fonts/JetBrains.ttf Normal file

Binary file not shown.

BIN
fonts/Material.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto.ttf Normal file

Binary file not shown.

47
kitchen-lights.yaml Normal file
View File

@ -0,0 +1,47 @@
esphome:
name: kitchen-lights
friendly_name: Kitchen Lights
# Disable brownout detector
platformio_options:
build_flags:
- '-DBOOTLOADER_BROWNOUT_ENABLE=0'
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
web_server:
captive_portal:
# Enable Home Assistant API
api:
encryption:
key: "VUi8evAsXU7pfvb4Z686sSdJqNsRQO3Fra+ps+GyZqU="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Kitchen-Lights Fallback Hotspot"
password: "oZVPV9K2jFE4"
switch:
- platform: gpio
name: "Kitchen Counter light"
restore_mode: ALWAYS_ON
pin:
number: 13
inverted: true

120
mateusz-room-switch.yaml Normal file
View File

@ -0,0 +1,120 @@
esphome:
name: mateusz-light-switch
friendly_name: Mateusz's Light switch
bk72xx:
board: generic-bk7231n-qfn32-tuya
logger:
web_server:
captive_portal:
mdns:
api:
encryption:
key: ""
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
output:
- platform: gpio
id: output_led_1
pin:
number: P14
inverted: true
- platform: gpio
id: output_led_2
pin:
number: P26
inverted: true
- platform: gpio
id: output_led_3
pin:
number: P11
inverted: true
light:
- platform: binary
id: light_switch_1
output: output_led_1
- platform: binary
id: light_switch_2
output: output_led_2
- platform: binary
id: light_switch_3
output: output_led_3
binary_sensor:
- platform: gpio
id: binary_switch_1
pin:
number: P24
inverted: true
mode: INPUT_PULLUP
on_press:
then:
- switch.toggle: switch_1
- platform: gpio
id: binary_switch_2
pin:
number: P20
inverted: true
mode: INPUT_PULLUP
on_press:
then:
- switch.toggle: switch_2
- platform: gpio
id: binary_switch_3
pin:
number: P7
inverted: true
mode: INPUT_PULLUP
on_press:
then:
- switch.toggle: switch_3
switch:
- platform: gpio
id: switch_1
name: Switch 1
pin: P6
on_turn_on:
- light.turn_on: light_switch_1
on_turn_off:
- light.turn_off: light_switch_1
- platform: gpio
id: switch_2
name: Switch 2
pin: P8
on_turn_on:
- light.turn_on: light_switch_2
on_turn_off:
- light.turn_off: light_switch_2
- platform: gpio
id: switch_3
name: Switch 3
pin: P9
on_turn_on:
- light.turn_on: light_switch_3
on_turn_off:
- light.turn_off: light_switch_3
status_led:
pin:
number: P22
inverted: true

73
mateuszs-tv.yaml Normal file
View File

@ -0,0 +1,73 @@
esphome:
name: mateuszs-tv
friendly_name: Mateusz's TV
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "sn7OnWvf695dM1BAlpkhUFeFbBOyLCFwob+vOEiz6MY="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Mateuszs-Tv Fallback Hotspot"
password: "j781muxx0RXE"
captive_portal:
web_server:
# Define the TV state binary sensor (connected to GPIO34)
binary_sensor:
- platform: gpio
pin:
number: 34
mode: INPUT
name: "Status"
id: status
device_class: power
on_state:
- lambda: |-
if (!id(power_switch).state == x) {
id(power_switch).publish_state(x);
}
# Define the switch to control TV power (Only toggled via Home Assistant)
switch:
- platform: template
name: "Switch"
id: power_switch
optimistic: true
restore_mode: RESTORE_DEFAULT_OFF
turn_on_action:
- output.turn_off: tv_relay # Set P23 LOW
- delay: 300ms
- output.turn_on: tv_relay # Set P23 HIGH
turn_off_action:
- output.turn_off: tv_relay # Set P23 LOW
- delay: 1500ms
- output.turn_on: tv_relay # Set P23 HIGH
# Define GPIO23 as the output (normally pull-up)
output:
- platform: gpio
id: tv_relay
pin:
number: 23
mode: OUTPUT
inverted: false # Normal logic (LOW = active)

53
server-room.yaml Normal file
View File

@ -0,0 +1,53 @@
esphome:
name: server-room
friendly_name: server-room
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
web_server:
captive_portal:
# Enable Home Assistant API
api:
encryption:
key: "YHBbwijRWhlB6U2rRpTQHc0VivDDMz5HEuRkGoj+jr4="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Server-Room Fallback Hotspot"
password: "UdiLJzrZq12a"
switch:
- platform: gpio
name: "3D printer light"
pin:
number: 13
inverted: true
sensor:
- platform: dht
pin: 4
temperature:
name: "Server room Temperature"
humidity:
name: "Server room Humidity"

View File

@ -0,0 +1,70 @@
esphome:
name: tomasz_s_celling_light
friendly_name: Tomasz's celling light switch
bk72xx:
board: generic-bk7231n-qfn32-tuya
logger:
web_server:
captive_portal:
mdns:
api:
encryption:
key: "5suYTz+ZrTczbwo+9EQki31BW1Bb+RTlIYX2wwdgmiQ="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
output:
- platform: libretiny_pwm
id: output_led_1
pin:
number: P26
inverted: true
light:
- platform: binary
id: light_switch_1
output: output_led_1
binary_sensor:
- platform: gpio
id: binary_switch_1
pin:
number: P20
inverted: true
mode: INPUT_PULLUP
on_press:
then:
- switch.toggle: switch_1
switch:
- platform: gpio
id: switch_1
name: Relay 1
pin: P6
on_turn_on:
- light.turn_on: light_switch_1
on_turn_off:
- light.turn_off: light_switch_1
status_led:
pin:
number: P22
inverted: true

54
tomaszs-wall-lamp-l.yaml Normal file
View File

@ -0,0 +1,54 @@
esphome:
name: tomaszs-wall-light-l
friendly_name: Tomasz's wall light L
bk72xx:
board: generic-bk7231t-qfn32-tuya
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "KgLS7JkyX3p9v3YRB/HaMtm60iJJpH9YbVD6bC8Om3w="
ota:
platform: esphome
password: !secret ota
web_server:
captive_portal:
mdns:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
output:
- platform: libretiny_pwm
id: output_cold
pin: P26
max_power: 80% # Limit the cold white channel to 80%
- platform: libretiny_pwm
id: output_warm
pin: P24
max_power: 80% # Limit the warm white channel to 80%
light:
- platform: cwww
id: light_cwww
name: Light
cold_white_color_temperature: 6500 K
warm_white_color_temperature: 2700 K
cold_white: output_cold
warm_white: output_warm

55
tomaszs-wall-light-r.yaml Normal file
View File

@ -0,0 +1,55 @@
esphome:
name: tomaszs-wall-light-r
friendly_name: Tomasz's wall light R
bk72xx:
board: generic-bk7231t-qfn32-tuya
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "zXAS/5dqZLhuVXHkhlKofR/WcknLhLkTk+0rFqcPlKU="
ota:
platform: esphome
password: !secret ota
web_server:
captive_portal:
mdns:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
output:
- platform: libretiny_pwm
id: output_cold
pin: P26
max_power: 80% # Limit the cold white channel to 80%
- platform: libretiny_pwm
id: output_warm
pin: P24
max_power: 80% # Limit the warm white channel to 80%
light:
- platform: cwww
id: light_cwww
name: Light
cold_white_color_temperature: 6500 K
warm_white_color_temperature: 2700 K
cold_white: output_cold
warm_white: output_warm

View File

@ -0,0 +1,40 @@
esphome:
name: esphome-web-0fedb4
friendly_name: Test
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "fm4ccKErq3XRViSecNf85iR4bASkJZjmHU57L1jfDYA="
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-0Fedb4"
password: "BXHfWtTWeRew"
captive_portal:
sensor:
- platform: dht
pin: 4
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 5s

View File

@ -0,0 +1,31 @@
esphome:
name: esp-home-hall
friendly_name: Hall Charger
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "Ia673XZ4tpmC6xApq59PZYEfsz6SeUdZdGh1zv1iDGI="
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-0Fedc0"
password: "bYA2YBfnBE4n"
captive_portal:

31
trash/hall.yaml Normal file
View File

@ -0,0 +1,31 @@
esphome:
name: hall
friendly_name: Hall
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "2bBi+SYgXR8tGy78rLfNGgtOZdSmf+UHpD4fpr/n5ag="
ota:
password: "6e73941636dbaf1b5fb3191d7663f751"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Hall Fallback Hotspot"
password: "yZRGDi4wENCc"
captive_portal:

42
trash/mateusz-s-esp.yaml Normal file
View File

@ -0,0 +1,42 @@
esphome:
name: mateusz-s-esp
friendly_name: Mateusz_s_esp
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "C9xzP8pJqdTpzlE95zZ5O4ZjNuWI/PVwaDiFaIlO1F8="
ota:
password: "fa5e5bd9c36c45f9ff4bca490ac83bf6"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Mateusz-S-Esp Fallback Hotspot"
password: "lo4bTKMYOzVH"
captive_portal:
esp32_ble_tracker:
binary_sensor:
- platform: ble_presence
mac_address: 62:DB:3F:6D:22:85
name: "BLE TEST"
sensor:
- platform: ble_rssi
mac_address: 62:DB:3F:6D:22:85
name: "Phone RSSI"

67
trash/tuya-test.yaml Normal file
View File

@ -0,0 +1,67 @@
esphome:
name: upk2esphome-bk7231n
bk72xx:
board: generic-bk7231n-qfn32-tuya
logger:
web_server:
captive_portal:
mdns:
api:
encryption:
key: ""
ota:
platform: esphome
password: !secret ota
wifi:
ssid: Suchodupin_IoT_2G
password: CEC0E76B
ap:
text_sensor:
- platform: libretiny
version:
name: LibreTiny Version
- platform: template
id: tuya_pir_state
name: (Unconfirmed) Pir State
filters:
- map:
- 0 -> Pir
- 1 -> None
- platform: template
id: tuya_battery_state
name: (Unconfirmed) Battery State
filters:
- map:
- 0 -> Low
- 1 -> Middle
- 2 -> High
uart:
rx_pin: RX1
tx_pin: TX1
baud_rate: 9600
tuya:
# DPIDs processed from schema model: esi4xk
on_datapoint_update:
- sensor_datapoint: 1
datapoint_type: enum
then:
- text_sensor.template.publish:
id: tuya_pir_state
state: !lambda "return std::to_string(x);"
- sensor_datapoint: 3
datapoint_type: enum
then:
- text_sensor.template.publish:
id: tuya_battery_state
state: !lambda "return std::to_string(x);"

53
under-bed.yaml Normal file
View File

@ -0,0 +1,53 @@
esphome:
name: under-bed
friendly_name: Under Bed
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "nYgcgBRWx8JPbUdrfdqLyJedIVuiHf7aL115aRLyXK0="
ota:
platform: esphome
password: !secret ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Under-Bed Fallback Hotspot"
password: "gjr4VnlR9Rfq"
captive_portal:
web_server:
light:
- platform: rgb
name: "Under Bed"
red: r
green: g
blue: b
default_transition_length:
milliseconds: 200
output:
- platform: ledc
pin: GPIO16
id: g
- platform: ledc
pin: GPIO17
id: r
- platform: ledc
pin: GPIO18
id: b