Skip to content

Repository files navigation

Faikout Firmware Update

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.

Use cases

  • 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.

Supported devices

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.

Requirements

  • The Home Assistant MQTT integration, with Faikout (RevK) devices already discovered (they publish state/<hostname> with version and build-suffix).

Install (HACS)

Add this repository as a custom repository (category: Integration), install, then add the Faikout Firmware Update integration and pick a channel.

Configuration

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.

Entities

Per device: binary_sensor.<device>_firmware_update, which is on when an update is available. Attributes: installed_version, latest_version, channel, target.

Data updates

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_update

Automation example

automation:
  - 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') }}.

Known limitations

  • 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.

Troubleshooting

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.

Removing a device

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.

Releases

Packages

Contributors

Languages