mirror of
https://github.com/athom-tech/esp32-configs.git
synced 2026-07-28 04:05:53 +00:00
219 lines
5.7 KiB
YAML
219 lines
5.7 KiB
YAML
substitutions:
|
|
# Default name
|
|
name: "athom-zigbee-gateway"
|
|
# Default friendly name
|
|
friendly_name: "Athom Zigbee Gateway"
|
|
# Allows ESP device to be automatically linked to an 'Area' in Home Assistant. Typically used for areas such as 'Lounge Room', 'Kitchen' etc
|
|
room: ""
|
|
# Description as appears in ESPHome & top of webserver page
|
|
device_description: "athom eth zigbee gateway"
|
|
# Project Name
|
|
project_name: "China Athom Technology.Athom Zigbee Gateway"
|
|
# Projection version denotes the release version of the yaml file, allowing checking of deployed vs latest version
|
|
project_version: "v2.0.7"
|
|
# Define a domain for this device to use. i.e. iot.home.lan (so device will appear as athom-smart-plug-v2.iot.home.lan in DNS/DHCP logs)
|
|
dns_domain: ".local"
|
|
# Set timezone of the smart plug. Useful if the plug is in a location different to the HA server. Can be entered in unix Country/Area format (i.e. "Australia/Sydney")
|
|
timezone: ""
|
|
# Define logging level: NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE
|
|
log_level: "DEBUG"
|
|
|
|
|
|
esphome:
|
|
name: "${name}"
|
|
friendly_name: "${friendly_name}"
|
|
comment: "${device_description}"
|
|
area: "${room}"
|
|
name_add_mac_suffix: true
|
|
project:
|
|
name: "${project_name}"
|
|
version: "${project_version}"
|
|
platformio_options:
|
|
# board_build.mcu: esp32dev
|
|
# board_build.variant: esp32dev
|
|
board_build.flash_mode: dio
|
|
|
|
esp32:
|
|
board: esp32dev
|
|
flash_size: 4MB
|
|
framework:
|
|
type: esp-idf
|
|
version: recommended
|
|
sdkconfig_options:
|
|
# @grigi found in testing that these options resulted in better responsiveness.
|
|
# BLE 4.2 is supported by ALL ESP32 boards that have bluetooth, the original and derivatives.
|
|
CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
|
|
# Extend the watchdog timeout, so the device reboots if the device appears locked up for over 10 seconds.
|
|
CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10"
|
|
|
|
# Enable Home Assistant API
|
|
api:
|
|
on_client_connected:
|
|
- esp32_ble_tracker.start_scan:
|
|
continuous: true
|
|
# Disable BLE tracking when there are no api connections live
|
|
on_client_disconnected:
|
|
if:
|
|
condition:
|
|
not:
|
|
api.connected:
|
|
then:
|
|
- esp32_ble_tracker.stop_scan:
|
|
|
|
external_components:
|
|
- source: github://oxan/esphome-stream-server
|
|
refresh: 0s
|
|
|
|
dashboard_import:
|
|
package_import_url: github://athom-tech/esp32-configs/athom-zigbee-gateway.yaml
|
|
|
|
esp32_ble_tracker:
|
|
scan_parameters:
|
|
interval: 320ms
|
|
window: 320ms
|
|
active: true
|
|
|
|
bluetooth_proxy:
|
|
active: true
|
|
|
|
#WT32-ETH01 Ethernet
|
|
ethernet:
|
|
type: LAN8720
|
|
mdc_pin: GPIO23
|
|
mdio_pin: GPIO18
|
|
clk:
|
|
pin: GPIO17
|
|
mode: CLK_OUT
|
|
phy_addr: 1
|
|
|
|
# wifi:
|
|
# # This spawns an AP with the device name and mac address with no password.
|
|
# ap: {}
|
|
# # Allow rapid re-connection to previously connect WiFi SSID, skipping scan of all SSID
|
|
# fast_connect: "${wifi_fast_connect}"
|
|
# # Define dns domain / suffix to add to hostname
|
|
# domain: "${dns_domain}"
|
|
|
|
# captive_portal:
|
|
|
|
# Enable logging
|
|
logger:
|
|
baud_rate: 115200
|
|
level: ${log_level}
|
|
|
|
# Enable Home Assistant API
|
|
api:
|
|
reboot_timeout: 0s
|
|
|
|
ota:
|
|
- platform: esphome
|
|
# Enables OTA firmware flashing from a URL (used by the update component below)
|
|
- platform: http_request
|
|
|
|
# Required by the ota http_request platform and the update component.
|
|
# verify_ssl: false skips TLS cert validation to reduce heap/RAM pressure during
|
|
# the download; the manifest's MD5 still verifies firmware integrity before flashing.
|
|
http_request:
|
|
verify_ssl: false
|
|
|
|
update:
|
|
# Managed updates via HTTP request: periodically checks the published manifest
|
|
# and exposes a "Firmware Update" entity, pointing at this device's GitHub Pages
|
|
# manifest. Pages URLs avoid the redirect/buffer issues of Release download URLs.
|
|
- platform: http_request
|
|
name: "Firmware Update"
|
|
source: https://athom-tech.github.io/esp32-configs/firmware/athom-zigbee-gateway.manifest.json
|
|
# update_interval defaults to 6h (how often it checks, not installs)
|
|
|
|
web_server:
|
|
port: 80
|
|
local: True
|
|
|
|
switch:
|
|
- platform: gpio
|
|
pin: 32
|
|
id: zRST_gpio
|
|
inverted: yes
|
|
restore_mode: ALWAYS_OFF
|
|
|
|
- platform: gpio
|
|
pin: 33
|
|
name: "zBSL"
|
|
id: zBSL
|
|
inverted: yes
|
|
restore_mode: ALWAYS_OFF
|
|
|
|
- platform: template
|
|
name: "Prep the cc2652p2 for firmware update"
|
|
turn_on_action:
|
|
- script.execute: fw_update_mode
|
|
turn_off_action:
|
|
- button.press: zRST
|
|
|
|
button:
|
|
- platform: restart
|
|
name: "Restart the Device"
|
|
|
|
- platform: template
|
|
name: "Zigbee Module Restart"
|
|
id: zRST
|
|
on_press:
|
|
- switch.turn_on: zRST_gpio
|
|
- delay: 15ms
|
|
- switch.turn_off: zRST_gpio
|
|
|
|
uart:
|
|
id: uart_bus
|
|
rx_pin: GPIO14
|
|
tx_pin: GPIO12
|
|
baud_rate: 115200
|
|
|
|
stream_server:
|
|
uart_id: uart_bus
|
|
id: ss
|
|
port: 8888 # optional, default is 8888
|
|
|
|
binary_sensor:
|
|
- platform: stream_server
|
|
connected:
|
|
name: "AthomZB Serial Connected"
|
|
|
|
- platform: status
|
|
name: "Status"
|
|
entity_category: diagnostic
|
|
|
|
mdns:
|
|
services:
|
|
- service: "_athomzb"
|
|
protocol: "_tcp"
|
|
port: 8888
|
|
txt:
|
|
version: 1.0
|
|
name: AthomZB
|
|
radio_type: znp
|
|
baud_rate: 115200
|
|
data_flow_control: software
|
|
|
|
light:
|
|
- platform: status_led
|
|
name: "Status LED"
|
|
id: blue_led
|
|
disabled_by_default: true
|
|
pin:
|
|
inverted: true
|
|
number: GPIO15
|
|
|
|
script:
|
|
- id: fw_update_mode
|
|
then:
|
|
- switch.turn_on: zBSL
|
|
- delay: 1s
|
|
- switch.turn_on: zRST_gpio
|
|
- delay: 1s
|
|
- switch.turn_off: zRST_gpio
|
|
- logger.log: "Delaying ~10 seconds for cc2652p2 to settle"
|
|
- delay: 11s
|
|
- switch.turn_off: zBSL
|
|
- logger.log: "Please try update with cc2538-bsl tool now"
|
|
- logger.log: "cc-bsl usage: cc2538-bsl.py -p socket://ip-of-gw:8888 -evw firmware.hex"
|