Firmware Guide
Local operation and GitHub update checks
The local Home Assistant firmware keeps UltimateSensor v2 measurements on your own network. Sensor readings go directly to Home Assistant and are not sent to GitHub or the SmartHomeShop cloud.
Wi-Fi and Ethernet firmware includes an ESPHome update entity. It periodically reads a small firmware manifest from SmartHomeShop GitHub Pages to compare the installed version with the latest release. Only firmware metadata is requested; the firmware file is downloaded only when you install an update.
Cloud firmware intentionally communicates with the SmartHomeShop app as part of its cloud features. Disabling the GitHub update check does not convert cloud firmware into local firmware.
Use UltimateSensor v2 without internet access
You may block internet access for UltimateSensor v2; its local measurements and Home Assistant connection continue to work. Night Light and SPS30 quiet hours get the time from public NTP servers, so allow NTP if you use them. To prevent a blocked check from triggering the red status LED, take control of the device in the ESPHome Device Builder app/add-on, open its YAML and add this at the bottom:
update:
- id: !extend firmware_update
update_interval: never
Save the YAML, select Validate, and install the build using Install > Wirelessly. This disables scheduled checks only; it does not remove the update component or change any UltimateSensor v2 sensors.
The adopted YAML continues to contain a packages: link to the SmartHomeShop GitHub repository. ESPHome uses that link on the Home Assistant host when it compiles your firmware. The device itself no longer polls for firmware versions after the customized build is installed.
To restore automatic checks, remove the added update: block and install the firmware again. If ESPHome cannot find the firmware_update ID, update UltimateSensor v2 through the SmartHomeShop web flasher before applying this customization.
This page matches the current ultimatesensor-v2 firmware in the SmartHomeShop GitHub repository.
UltimateSensor v2 is ESP32-S3 based and every v2 firmware variant includes:
- SCD41 CO2 / temperature / humidity
- SGP41 VOC / NOx
- BH1750 illuminance
- LD2412 presence radar
- LD2450 target tracking on standard hardware
- PIR motion
- microphone, speaker, media player and local wake word voice assistant
- WiFi or Ethernet as separate firmware builds
GitHub Source
- Firmware repository: github.com/smarthomeshop/ultimatesensor
- V2 folder: ultimatesensor-v2
Package Layout
| Package | Purpose |
|---|---|
base.yaml |
Shared ESP32-S3 hardware, environmental sensors, PIR, LD2412, microphone, speaker, media player, API, OTA and combined occupancy logic. |
tracking-ld2450.yaml |
Standard factory LD2450 tracking package. |
tracking-ld2460.yaml |
Optional LD2460 upgrade package via smarthomeshop/ld2460. |
wifi.yaml |
WiFi network stack, captive portal, Improv, WiFi diagnostics and Ethernet power off. |
ethernet.yaml |
W5500 Ethernet network stack and Ethernet diagnostics. |
voice-assistant.yaml |
Local wake word and Home Assistant voice assistant package. Included in every local v2 build. |
cloud-voice.yaml |
Local wake word and SmartHomeShop Cloud Voice package. Included in every cloud build instead of voice-assistant.yaml. |
complete.yaml |
SPS30 particulate matter sensor, PM idle controls and quiet hours. |
led-lighting.yaml |
Automatic motion light, night light and CO2 warning for local firmware. |
firmware-selector.yaml |
Firmware variant selector and update entity. |
cloud.yaml |
Optional SmartHomeShop cloud registration and sync entities. |
cloud-zones.yaml |
Cloud sync of the Room Designer zone counts, on LD2450 and LD2460 builds. |
cloud-pm.yaml |
Cloud PM sync for Complete variants. |
Standard Firmware Variants
These are for the product as shipped with LD2412 + LD2450.
| Firmware file | Network | SPS30 | Tracking radar | Voice |
|---|---|---|---|---|
ultimatesensor-v2-wifi-basic.yaml |
WiFi | No | LD2450 | Yes |
ultimatesensor-v2-wifi-complete.yaml |
WiFi | Yes | LD2450 | Yes |
ultimatesensor-v2-ethernet-basic.yaml |
Ethernet W5500 | No | LD2450 | Yes |
ultimatesensor-v2-ethernet-complete.yaml |
Ethernet W5500 | Yes | LD2450 | Yes |
LD2460 Upgrade Variants
Use these only after physically replacing/removing the LD2450 module and installing the optional LD2460 upgrade. Leave LD2412 installed.
Read the UltimateSensor v2 LD2460 Upgrade Guide before installation.
| Firmware file | Network | SPS30 | Tracking radar | Voice |
|---|---|---|---|---|
ultimatesensor-v2-wifi-basic-ld2460.yaml |
WiFi | No | LD2460 | Yes |
ultimatesensor-v2-wifi-complete-ld2460.yaml |
WiFi | Yes | LD2460 | Yes |
ultimatesensor-v2-ethernet-basic-ld2460.yaml |
Ethernet W5500 | No | LD2460 | Yes |
ultimatesensor-v2-ethernet-complete-ld2460.yaml |
Ethernet W5500 | Yes | LD2460 | Yes |
Cloud Build Variants
Cloud variants add SmartHomeShop cloud registration/sync entities on top of the matching standard or LD2460 build, and use SmartHomeShop Cloud Voice instead of Home Assistant voice.
| Firmware file | Network | SPS30 | Tracking radar | Cloud zones | Cloud PM |
|---|---|---|---|---|---|
ultimatesensor-v2-wifi-basic-cloud.yaml |
WiFi | No | LD2450 | Yes | No |
ultimatesensor-v2-wifi-complete-cloud.yaml |
WiFi | Yes | LD2450 | Yes | Yes |
ultimatesensor-v2-ethernet-basic-cloud.yaml |
Ethernet W5500 | No | LD2450 | Yes | No |
ultimatesensor-v2-ethernet-complete-cloud.yaml |
Ethernet W5500 | Yes | LD2450 | Yes | Yes |
ultimatesensor-v2-wifi-basic-ld2460-cloud.yaml |
WiFi | No | LD2460 | Yes | No |
ultimatesensor-v2-wifi-complete-ld2460-cloud.yaml |
WiFi | Yes | LD2460 | Yes | Yes |
ultimatesensor-v2-ethernet-basic-ld2460-cloud.yaml |
Ethernet W5500 | No | LD2460 | Yes | No |
ultimatesensor-v2-ethernet-complete-ld2460-cloud.yaml |
Ethernet W5500 | Yes | LD2460 | Yes | Yes |
Variant Rules
- Basic omits
complete.yaml; no SPS30 PM entities are exposed. - Complete includes
complete.yaml; SPS30 PM entities andPM Sensorcontrols are exposed. - WiFi and Ethernet are separate firmware builds. ESPHome does not run WiFi and Ethernet at the same time.
- LD2450 is factory default.
- LD2460 is an upgrade firmware only. Do not flash it unless the LD2460 hardware has been installed.
- Voice assistant support is always included on UltimateSensor v2. Local firmware uses Home Assistant voice, cloud firmware uses SmartHomeShop Cloud Voice.
Firmware Controls in Home Assistant
Every UltimateSensor v2 firmware exposes:
- UltimateSensor V2 Firmware Variant to select Basic/Complete, WiFi/Ethernet and local/cloud firmware while keeping the installed LD2450 or LD2460 hardware family;
- UltimateSensor V2 Firmware, a disabled-by-default update entity that checks and installs the selected manifest.
Enable the update entity first. Changing the selector only changes the update source. The other firmware is installed when you run the update through the Firmware entity.
Flashing
Web Flasher
Note: The web flasher returns the device to its factory settings. WiFi credentials and settings saved on the device, such as offsets, are erased.
- Connect UltimateSensor v2 to your computer with a USB-C cable that carries data, and use Chrome or Edge.
- Open smarthomeshop.io/en/firmware?product=ultimatesensor.
- Choose V2 (Hardware version 2) and how you use the device: Local with Home Assistant or SmartHomeShop app + local use.
- Select the matching v2 variant:
- WiFi or Ethernet
- Basic or Complete
- LD2450 standard or LD2460 upgrade
- Click Install firmware and choose the USB port of your device.
ESPHome Device Builder
After adoption, the device imports one of the v2 package URLs, for example:
dashboard_import:
package_import_url: github://smarthomeshop/ultimatesensor/ultimatesensor-v2/ultimatesensor-v2-wifi-complete.yaml@main
Change only to another ultimatesensor-v2/... package that matches the hardware. Building the firmware yourself requires ESPHome 2026.10.0 or newer.
WiFi and Ethernet
- WiFi variants keep the W5500 Ethernet hardware powered off.
- Ethernet variants power the W5500 and expose Ethernet network info entities.
- If switching from WiFi to Ethernet, connect the network cable first and keep USB-C connected until the Ethernet firmware runs. PoE only works with Ethernet firmware.
- To switch from Ethernet back to WiFi, use USB-C flashing. Do not rely on OTA, because the network can drop before the WiFi firmware is installed.
Firmware Entity Names
See Sensor Definitions for the exact entity names and ESPHome IDs used by the current firmware.