A Home Assistant custom integration (HACS) that adds a firmware-update-available
binary_sensor to each Faikout device. It reads each device's installed firmware
version from MQTT and compares it against the latest version published on the
Faikout OTA server for the channel you select, stable or beta. It only notifies
you; it does not flash firmware.
- Get notified in Home Assistant when any Faikout device is running outdated firmware, without checking each device by hand.
- Drive an automation (notification, dashboard badge, reminder) off the update-available state so you know when to run an OTA update on the device.
Faikout (RevK) devices that publish their state over MQTT. The integration resolves the latest firmware for known hardware targets on the OTA server. The currently supported target is:
Faikout-S3-MINI-N4-R2
Devices reporting an unrecognised target still appear, but their binary sensor
stays unavailable because no matching firmware manifest is published.
- The Home Assistant MQTT integration, with Faikout (RevK) devices already
discovered (they publish
state/<hostname>withversionandbuild-suffix).
Add this repository as a custom repository (category: Integration), install, then add the Faikout Firmware Update integration and pick a channel.
The integration has a single option, set when you add it and changeable later via the integration's Configure dialog.
Channel decides which firmware track to compare against. stable is released
firmware and the default; beta is pre-release builds. Changing the channel
reloads the integration and re-evaluates every device.
Per device: binary_sensor.<device>_firmware_update, which is on when an
update is available. Attributes: installed_version, latest_version,
channel, target.
The installed version arrives by MQTT push. The integration subscribes to
state/<hostname> and updates a device the moment it reports.
The latest available version is polled from the OTA server every 3 hours.
A device's binary sensor turns on when the two versions differ.
To force an immediate re-check instead of waiting for the next poll, call Home
Assistant's built-in homeassistant.update_entity action against the sensor:
action: homeassistant.update_entity
target:
entity_id: binary_sensor.faikout_zolder_firmware_updateautomation:
- alias: Notify when Faikout firmware update is available
trigger:
- platform: state
entity_id: binary_sensor.faikout_zolder_firmware_update
to: "on"
action:
- service: notify.notify
data:
message: >-
Faikout update available: installed
{{ state_attr('binary_sensor.faikout_zolder_firmware_update', 'installed_version') }},
latest
{{ state_attr('binary_sensor.faikout_zolder_firmware_update', 'latest_version') }}.- It only notifies you. It does not flash or install firmware.
- Only one configuration is supported.
- Only the hardware targets listed under Supported devices are resolved. Other
targets show as
unavailable. - It requires the Home Assistant MQTT integration and devices that publish the
expected
state/<hostname>payload. - A device that stops reporting over MQTT is not removed automatically. Delete it manually, as described below.
If the entity shows as unavailable, the device has not reported over MQTT yet,
or its target is not supported. Confirm the MQTT integration is connected and
that the device is publishing state/<hostname> with version and
build-suffix.
If no entities appear at all, check that MQTT is set up and the devices are online. Entities are created only after a device's first state message.
To see what the integration currently holds, download diagnostics from its device page. They list the selected channel, the latest versions, and the tracked devices.
To drop a device that no longer reports, open its device page in Home Assistant and use Delete. To remove the integration entirely, delete it from Settings → Devices & Services.