The devices I run in my own home automation setup.
Each per-device config lives in the repository root, one per physical device. Each sets substitutions: (device name, friendly name, and any per-device overrides) and pulls in a template via packages:.
garage-presence-sensor.yamluses the SmartHomeShop CeilSense template for presence, CO2, temperature, humidity, lux, and pressure in the garage.- It is mounted in the center of the garage ceiling. The room is small in radar terms: nothing in it is further than 4.2 m slant range from the sensor, the two side doors sit at 3.9 m and 4.2 m, and the main door center at 3.0 m.
- The main garage door is glass, which 24 GHz radar passes through, so the sensor sees the driveway and the street beyond it. Bounding the radar to the room is what keeps outside movement out of the presence state.
- The LD2412 runs
0.5mdistance resolution withMaximum Distance Gate10, reporting out to 5.5 m and discarding everything past it. That covers the whole room with roughly a meter of margin, and the main door opening still reads at saturated move energy. See LD2412 Siting and Tuning. - The device config declares all fourteen gate move and still thresholds, which the vendor package leaves unexposed, so a single distance band can be desensitized from Home Assistant without another flash. It also declares the per-gate energy sensors, disabled by default because they publish at 1 Hz each, and enabled only for a tuning session.
garage-door-controller.yamluses the Konnected blaQ template.- Note: currently powered off pending an upstream investigation into self-opening incidents, see the status block in the config and issue #29.
office-bluetooth-proxy.yamlandpantry-bluetooth-proxy.yamlboth use the Waveshare ESP32-S3-ETH template, adding theesp32_ble_trackerandbluetooth_proxyblocks the board template leaves to the device. Neither fits the camera overlay, which is a separate load on the same board and the same API connection.- Both are powered over PoE, so a single Ethernet run carries both power and network, and both sit in Fabrion365's Waveshare ESP32-S3-ETH PoE case on MakerWorld.
- Both run the onboard ceramic antenna. Selecting the IPEX Gen 1 connector means moving a resistor too small to rework by hand, so the onboard antenna stays until it becomes a problem.
- Both run at the ESPHome connection-slot defaults, so the two proxies differ only in where they are mounted.
hvac-compressor-sensor.yamluses the Unexpected Maker ProS3D template and the EasyStart template once per module, reporting both HVAC compressors.- It is deliberately not a Bluetooth proxy. It runs no
bluetooth_proxy, setsesp32_ble: max_connections: 2for its twoble_cliententries, and scans passively, since it only ever connects to two known addresses and reads no advertisement payloads. - It is installed outside beside the two compressors, on the u.FL antenna (
external_antenna_restore_mode: ALWAYS_ON). - Each module powers its BLE radio only while its compressor runs, so between cycles the live measurements read
unknownand the RSSI diagnostic drops out. That is the module losing power, not a link fault.
garage-door-fan-controller.yamluses the Sonoff TH10 template andgarage-gate-fan-controller.yamluses the Norvi ENET-AE06-R template. Both control cool air ventilation fans in the garage based on temperature.- See blog post for project details.
recirculation-pump-controller.yamluses the Sonoff TH10 template to control the whole home hot water recirculation pump using temperature probes on an interval / duration schedule.- See blog post for project details.
Work the fleet is carrying, tracked here rather than as issues because none of it is a defect.
One device still runs a bootloader older than ESP-IDF 5.2. OTA writes the app partition and never the bootloader, so only a serial flash clears it. Until then it logs Bootloader too old for OTA rollback and SRAM1 as IRAM (+40KB) at every boot, has no OTA rollback, and cannot use the extra 40KB of IRAM. Setting sram1_as_iram before the reflash hard bricks the device, so that option waits. The mechanism is documented in OPERATIONS.md.
Nothing here is urgent. The device works, and the cost is access rather than risk.
| Device | Access needed |
|---|---|
garage-gate-fan-controller.yaml |
Mounted in an enclosure |
Of the remaining ESP32 devices, the garage presence sensor, the HVAC compressor sensor, and both Bluetooth proxies report a current bootloader. The proxies were flashed over USB. The garage door controller is powered off and has not been checked. The ESP8266 devices are unaffected.