From ad26c8048318452faf385a693adae27da8f43217 Mon Sep 17 00:00:00 2001 From: Tim Meneely Date: Fri, 26 Jun 2026 07:42:02 -0400 Subject: [PATCH] General update, getting ready to move --- Personal (Web).url | 39 ++++++++++++ bluetooth-proxies | 1 + bluetooth_proxy.yaml | 31 ++++++++++ bluetooth_proxy2.yaml | 44 ++++++++++++++ laundry/sonoff-s31e.yaml | 71 ++++++++++++++++++++++ laundry/sonoff-s31f.yaml | 71 ++++++++++++++++++++++ laundry/t/sonoff-s31christmas.yaml | 61 +++++++++++++++++++ laundry/t/sonoff_s31a.yaml | 61 +++++++++++++++++++ laundry/t/sonoff_s31b.yaml | 61 +++++++++++++++++++ lora1.yaml | 92 ++++++++++++++++++++++++++++ nightstand.bat => nightstand.txt | 0 tkm.yaml | 96 ++++++++++++++++++++++++++++++ tkm1.yaml | 89 +++++++++++++++++++++++++++ tkm2.yaml | 29 +++++++++ 14 files changed, 746 insertions(+) create mode 100644 Personal (Web).url create mode 160000 bluetooth-proxies create mode 100644 bluetooth_proxy.yaml create mode 100644 bluetooth_proxy2.yaml create mode 100644 laundry/sonoff-s31e.yaml create mode 100644 laundry/sonoff-s31f.yaml create mode 100644 laundry/t/sonoff-s31christmas.yaml create mode 100644 laundry/t/sonoff_s31a.yaml create mode 100644 laundry/t/sonoff_s31b.yaml create mode 100644 lora1.yaml rename nightstand.bat => nightstand.txt (100%) create mode 100644 tkm.yaml create mode 100644 tkm1.yaml create mode 100644 tkm2.yaml diff --git a/Personal (Web).url b/Personal (Web).url new file mode 100644 index 0000000..2b88d70 --- /dev/null +++ b/Personal (Web).url @@ -0,0 +1,39 @@ +esphome: + name: esp32-bluetooth-proxy + friendly_name: Bluetooth Proxy + min_version: 2025.8.0 + name_add_mac_suffix: true + +esp32: + variant: esp32 + framework: + type: esp-idf + +wifi: + ap: + +api: +logger: + +ota: + - platform: esphome + id: ota_esphome + +esp32_ble_tracker: + scan_parameters: + # We currently use the defaults to ensure Bluetooth + # can co-exist with WiFi In the future we may be able to + # enable the built-in coexistence logic in ESP-IDF + active: true + +bluetooth_proxy: + active: true + +button: + - platform: safe_mode + id: button_safe_mode + name: Safe Mode Boot + + - platform: factory_reset + id: factory_reset_btn + name: Factory reset diff --git a/bluetooth-proxies b/bluetooth-proxies new file mode 160000 index 0000000..6054c5a --- /dev/null +++ b/bluetooth-proxies @@ -0,0 +1 @@ +Subproject commit 6054c5a11b04dfbfc58f8d700716d4f2ed73517f diff --git a/bluetooth_proxy.yaml b/bluetooth_proxy.yaml new file mode 100644 index 0000000..c662e05 --- /dev/null +++ b/bluetooth_proxy.yaml @@ -0,0 +1,31 @@ +substitutions: + name: meneely-bluetooth-proxy1 + +esphome: + name: ${name} + name_add_mac_suffix: false + +esp32: + variant: esp32s3 + framework: + type: esp-idf + +wifi: + ssid: Meneely + password: punxsutawney1 +# ssid: !secret wifi_ssid +# password: !secret wifi_password + +# Enable logging +logger: + +# Enable Home Assistant API +api: + +ota: + platform: esphome + +esp32_ble_tracker: + +bluetooth_proxy: + active: true \ No newline at end of file diff --git a/bluetooth_proxy2.yaml b/bluetooth_proxy2.yaml new file mode 100644 index 0000000..cf3cfa7 --- /dev/null +++ b/bluetooth_proxy2.yaml @@ -0,0 +1,44 @@ +esphome: + name: esp32-bluetooth-proxy + friendly_name: Bluetooth Proxy + min_version: 2025.8.0 + name_add_mac_suffix: true + +esp32: + variant: esp32s3 + framework: + type: esp-idf + +wifi: + ssid: Meneely-IoT + password: punxsutawney1 +# ssid: !secret wifi_ssid +# password: !secret wifi_password + ap: +web_server: + +api: +logger: + +ota: + - platform: esphome + id: ota_esphome + +esp32_ble_tracker: + scan_parameters: + # We currently use the defaults to ensure Bluetooth + # can co-exist with WiFi In the future we may be able to + # enable the built-in coexistence logic in ESP-IDF + active: true + +bluetooth_proxy: + active: true + +button: + - platform: safe_mode + id: button_safe_mode + name: Safe Mode Boot + + - platform: factory_reset + id: factory_reset_btn + name: Factory reset diff --git a/laundry/sonoff-s31e.yaml b/laundry/sonoff-s31e.yaml new file mode 100644 index 0000000..716dc66 --- /dev/null +++ b/laundry/sonoff-s31e.yaml @@ -0,0 +1,71 @@ +substitutions: + device_name: sonoff-s31e + # device_ip: 192.168.87.75 + +esphome: + name: ${device_name} + platform: ESP8266 + board: esp01_1m + on_boot: + - switch.turn_on: relay + # platformio_options: + # upload_speed: 115200 #baud, tagging this so grep will find it later + +#<<: !include standard_wifi.yaml +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password +# manual_ip: +# # static_ip: ${device_ip} +# gateway: 192.168.86.1 +# subnet: 255.255.254.0 + fast_connect: True + +logger: + baud_rate: 0 # (UART logging interferes with cse7766) + +api: + # reboot_timeout: 15min + +ota: + +# Device Specific Config + +uart: + rx_pin: RX + baud_rate: 4800 + +binary_sensor: + - platform: gpio + pin: + number: GPIO0 + mode: INPUT_PULLUP + inverted: True + name: ${device_name}_button + on_press: + - switch.toggle: relay + - platform: status + name: ${device_name}_status + +sensor: + - platform: wifi_signal + name: ${device_name}_wifi + update_interval: 60s + - platform: cse7766 + current: + name: ${device_name}_current + accuracy_decimals: 1 + voltage: + name: ${device_name}_voltage + accuracy_decimals: 1 + power: + name: ${device_name}_power + accuracy_decimals: 1 +switch: + - platform: gpio + name: ${device_name}_relay + pin: GPIO12 + id: relay + +status_led: + pin: GPIO13 diff --git a/laundry/sonoff-s31f.yaml b/laundry/sonoff-s31f.yaml new file mode 100644 index 0000000..fb2e37a --- /dev/null +++ b/laundry/sonoff-s31f.yaml @@ -0,0 +1,71 @@ +substitutions: + device_name: sonoff-s31f + # device_ip: 192.168.87.75 + +esphome: + name: ${device_name} + platform: ESP8266 + board: esp01_1m + on_boot: + - switch.turn_on: relay + # platformio_options: + # upload_speed: 115200 #baud, tagging this so grep will find it later + +#<<: !include standard_wifi.yaml +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password +# manual_ip: +# # static_ip: ${device_ip} +# gateway: 192.168.86.1 +# subnet: 255.255.254.0 + fast_connect: True + +logger: + baud_rate: 0 # (UART logging interferes with cse7766) + +api: + # reboot_timeout: 15min + +ota: + +# Device Specific Config + +uart: + rx_pin: RX + baud_rate: 4800 + +binary_sensor: + - platform: gpio + pin: + number: GPIO0 + mode: INPUT_PULLUP + inverted: True + name: ${device_name}_button + on_press: + - switch.toggle: relay + - platform: status + name: ${device_name}_status + +sensor: + - platform: wifi_signal + name: ${device_name}_wifi + update_interval: 60s + - platform: cse7766 + current: + name: ${device_name}_current + accuracy_decimals: 1 + voltage: + name: ${device_name}_voltage + accuracy_decimals: 1 + power: + name: ${device_name}_power + accuracy_decimals: 1 +switch: + - platform: gpio + name: ${device_name}_relay + pin: GPIO12 + id: relay + +status_led: + pin: GPIO13 diff --git a/laundry/t/sonoff-s31christmas.yaml b/laundry/t/sonoff-s31christmas.yaml new file mode 100644 index 0000000..a43ad26 --- /dev/null +++ b/laundry/t/sonoff-s31christmas.yaml @@ -0,0 +1,61 @@ +substitutions: + device_name: sonoff-s31christmas + device_ip: 192.168.87.74 + +esphome: + name: ${device_name} + platform: ESP8266 + board: esp01_1m + # platformio_options: + # upload_speed: 115200 #baud, tagging this so grep will find it later + +<<: !include standard_wifi.yaml + +logger: + baud_rate: 0 # (UART logging interferes with cse7766) + +api: + # reboot_timeout: 15min + +ota: + +# Device Specific Config + +uart: + rx_pin: RX + baud_rate: 4800 + +binary_sensor: + - platform: gpio + pin: + number: GPIO0 + mode: INPUT_PULLUP + inverted: True + name: ${device_name}_button + on_press: + - switch.toggle: relay + - platform: status + name: ${device_name}_status + +sensor: + - platform: wifi_signal + name: ${device_name}_wifi + update_interval: 60s + - platform: cse7766 + current: + name: ${device_name}_current + accuracy_decimals: 1 + voltage: + name: ${device_name}_voltage + accuracy_decimals: 1 + power: + name: ${device_name}_power + accuracy_decimals: 1 +switch: + - platform: gpio + name: ${device_name}_relay + pin: GPIO12 + id: relay + +status_led: + pin: GPIO13 diff --git a/laundry/t/sonoff_s31a.yaml b/laundry/t/sonoff_s31a.yaml new file mode 100644 index 0000000..f22d651 --- /dev/null +++ b/laundry/t/sonoff_s31a.yaml @@ -0,0 +1,61 @@ +substitutions: + device_name: sonoff_s31a + device_ip: 192.168.87.71 + +esphome: + name: ${device_name} + platform: ESP8266 + board: esp01_1m + # platformio_options: + # upload_speed: 115200 #baud, tagging this so grep will find it later + +<<: !include standard_wifi.yaml + +logger: + baud_rate: 0 # (UART logging interferes with cse7766) + +api: + # reboot_timeout: 15min + +ota: + +# Device Specific Config + +uart: + rx_pin: RX + baud_rate: 4800 + +binary_sensor: + - platform: gpio + pin: + number: GPIO0 + mode: INPUT_PULLUP + inverted: True + name: ${device_name}_button + on_press: + - switch.toggle: relay + - platform: status + name: ${device_name}_status + +sensor: + - platform: wifi_signal + name: ${device_name}_wifi + update_interval: 60s + - platform: cse7766 + current: + name: ${device_name}_current + accuracy_decimals: 1 + voltage: + name: ${device_name}_voltage + accuracy_decimals: 1 + power: + name: ${device_name}_power + accuracy_decimals: 1 +switch: + - platform: gpio + name: ${device_name}_relay + pin: GPIO12 + id: relay + +status_led: + pin: GPIO13 diff --git a/laundry/t/sonoff_s31b.yaml b/laundry/t/sonoff_s31b.yaml new file mode 100644 index 0000000..9e1b745 --- /dev/null +++ b/laundry/t/sonoff_s31b.yaml @@ -0,0 +1,61 @@ +substitutions: + device_name: sonoff_s31b + device_ip: 192.168.87.72 + +esphome: + name: ${device_name} + platform: ESP8266 + board: esp01_1m + # platformio_options: + # upload_speed: 115200 #baud, tagging this so grep will find it later + +<<: !include standard_wifi.yaml + +logger: + baud_rate: 0 # (UART logging interferes with cse7766) + +api: + # reboot_timeout: 15min + +ota: + +# Device Specific Config + +uart: + rx_pin: RX + baud_rate: 4800 + +binary_sensor: + - platform: gpio + pin: + number: GPIO0 + mode: INPUT_PULLUP + inverted: True + name: ${device_name}_button + on_press: + - switch.toggle: relay + - platform: status + name: ${device_name}_status + +sensor: + - platform: wifi_signal + name: ${device_name}_wifi + update_interval: 60s + - platform: cse7766 + current: + name: ${device_name}_current + accuracy_decimals: 1 + voltage: + name: ${device_name}_voltage + accuracy_decimals: 1 + power: + name: ${device_name}_power + accuracy_decimals: 1 +switch: + - platform: gpio + name: ${device_name}_relay + pin: GPIO12 + id: relay + +status_led: + pin: GPIO13 diff --git a/lora1.yaml b/lora1.yaml new file mode 100644 index 0000000..345e158 --- /dev/null +++ b/lora1.yaml @@ -0,0 +1,92 @@ +esphome: + name: "heltec" + +esp32: + variant: esp32s3 + flash_size: 8MB + cpu_frequency: 240MHZ + framework: + type: esp-idf + +logger: + hardware_uart: UART0 + +api: + +ota: + platform: esphome + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + +# SPI bus for LoRa radio +spi: + clk_pin: GPIO9 + mosi_pin: GPIO10 + miso_pin: GPIO11 + +# I2C for OLED display +i2c: + sda: GPIO17 + scl: GPIO18 + frequency: 400kHz + +# FSK Radio Configuration (SX1262) +sx126x: + dio1_pin: GPIO14 + cs_pin: GPIO8 + busy_pin: GPIO13 + rst_pin: GPIO12 + pa_power: 3 + bandwidth: 78_2kHz + crc_enable: true + frequency: 433920000 + modulation: FSK + rx_start: true + payload_length: 0 + hw_version: sx1262 + bitrate: 4800 + rf_switch: true + sync_value: [0x33, 0x33] + preamble_size: 4 + preamble_detect: 2 + tcxo_voltage: 1_8V + tcxo_delay: 5ms + on_packet: + then: + - lambda: |- + ESP_LOGD("fsk", "Packet RSSI: %.2f dBm, SNR: %.2f dB, Data: %s", + rssi, snr, format_hex(x).c_str()); + +button: + - platform: template + name: "Send FSK Packet" + on_press: + then: + - sx126x.send_packet: + data: [0xC5, 0x51, 0x78, 0x82, 0xB7, 0xF9, 0x9C, 0x5C] + +# OLED Display + +display: + - platform: ssd1306_i2c + model: "SSD1306 128x64" + reset_pin: GPIO21 + address: 0x3C + lambda: |- + it.printf(0, 0, id(font1), "Heltec V3"); + it.printf(0, 16, id(font1), "WiFi LoRa 32"); + it.printf(0, 32, id(font1), "%.1f dBm", id(wifi_signal_db).state); + +font: + - file: "gfonts://Roboto" + id: font1 + size: 14 + +sensor: + - platform: wifi_signal + id: wifi_signal_db + name: "WiFi Signal" + update_interval: 60s + diff --git a/nightstand.bat b/nightstand.txt similarity index 100% rename from nightstand.bat rename to nightstand.txt diff --git a/tkm.yaml b/tkm.yaml new file mode 100644 index 0000000..29a83a9 --- /dev/null +++ b/tkm.yaml @@ -0,0 +1,96 @@ +substitutions: + device_name: sonoffmini_45 + device_ip: 192.168.87.45 + +esphome: + name: ${device_name} + platform: ESP8266 + board: esp01_1m + +wifi: + ssid: "Meneely" + password: "punxsutawney1" + manual_ip: + static_ip: ${device_ip} + gateway: 192.168.86.1 + subnet: 255.255.255.0 + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "ESPHOME" + password: "12345678" + +logger: + +api: + reboot_timeout: 15min + +ota: + +# the web_server & sensor components can be removed without affecting core functionaility. + +web_server: + port: 80 + +sensor: + - platform: wifi_signal + name: ${device_name} Wifi Signal Strength + update_interval: 60s + - platform: uptime + name: ${device_name} Uptime + +####################################### +# Device specific Config Begins Below # +####################################### + +binary_sensor: + - platform: gpio + pin: GPIO00 # The built-in switch + id: reset + internal: true + filters: + - invert: + - delayed_off: 10ms + on_press: + - switch.toggle: + id: relay_1 + + - platform: gpio + name: ${device_name}_status + pin: GPIO04 # The external terminals + id: switch_1 + filters: + - delayed_on: 100ms + on_press: + then: + - switch.toggle: + id: relay_1 + # on_release: + # then: + # - switch.toggle: + # id: relay_1 + +switch: + - platform: gpio + name: ${device_name}_switch + icon: "mdi: lightbulb_outline" + pin: GPIO12 + id: relay_1 + restore_mode: restore_default_off + +status_led: + pin: + number: GPIO13 + inverted: true + +output: + - platform: esp8266_pwm + id: blue_led + pin: GPIO13 + inverted: True + +light: + # the 4 lines below define the Blue LED light on Sonoff Mini, to expose in HomeAssistant remove line "internal: true" + - platform: monochromatic + name: ${device_name}_blueled + output: blue_led + internal: true # hides the Blue LED from HomeAssistant diff --git a/tkm1.yaml b/tkm1.yaml new file mode 100644 index 0000000..416c694 --- /dev/null +++ b/tkm1.yaml @@ -0,0 +1,89 @@ +esphome: + name: nightstandtkm + +esp8266: + board: esp8285 + +# Enable logging +logger: + +# Enable Home Assistant API +api: + encryption: + key: "EgFzta0ZRgjSLEAfkzFDFlzs2ZDcs+2sD5LL7vSHSmE=" + +ota: + - platform: esphome + + +wifi: + ssid: "Meneely" + password: "punxsutawney1" + + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "Nightstand Tkm Fallback Hotspot" + password: "EK3tBJRGRsuQ" + +captive_portal: + + +####################################### +# Device specific Config Begins Below # +####################################### +substitutions: + device_name: nightstandtkm + #device_ip: 192.168.87.45 + +binary_sensor: + - platform: gpio + pin: GPIO00 # The built-in switch + id: reset + internal: true + filters: + - invert: + - delayed_off: 10ms + on_press: + - switch.toggle: + id: relay_1 + + - platform: gpio + name: ${device_name}_status + pin: GPIO04 # The external terminals + id: switch_1 + filters: + - delayed_on: 100ms + on_press: + then: + - switch.toggle: + id: relay_1 + # on_release: + # then: + # - switch.toggle: + # id: relay_1 + +switch: + - platform: gpio + name: ${device_name}_switch + icon: "mdi:lightbulb_outline" + pin: GPIO12 + id: relay_1 + restore_mode: restore_default_off + +#status_led: +# pin: +# number: GPIO13 +# inverted: true + +output: + - platform: esp8266_pwm + id: blue_led + pin: GPIO13 + inverted: True + +light: + # the 4 lines below define the Blue LED light on Sonoff Mini, to expose in HomeAssistant remove line "internal: true" + - platform: monochromatic + name: ${device_name}_blueled + output: blue_led + internal: true # hides the Blue LED from HomeAssistant diff --git a/tkm2.yaml b/tkm2.yaml new file mode 100644 index 0000000..0d3ee91 --- /dev/null +++ b/tkm2.yaml @@ -0,0 +1,29 @@ +esphome: + name: tkm3 + +esp8266: + board: esp8285 + +# Enable logging +logger: + +# Enable Home Assistant API +api: + encryption: + key: "RxgR/v9F6OQQmn37bnfqvgWlb2Img/TXKPFrHV88Cu8=" + +ota: + - platform: esphome + + +wifi: + ssid: "Meneely" + password: "punxsutawney1" + + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "Tkm3 Fallback Hotspot" + password: "NaluQQJ7i0Ld" + +captive_portal: + \ No newline at end of file