Skip to content
This repository was archived by the owner on Feb 9, 2026. It is now read-only.

Releases: ooree23/RecalboxHomeAssistant

09/02/2026 : Support HA 2026.2, Network stability, Assist UX improvment

Choose a tag to compare

@ooree23 ooree23 released this 09 Feb 13:46
  • When pulling game info from API, set game attributes only if "Action"=="rungame", else, we only use the system data (no game running).
  • On Recalbox card, align the game title, and other information to the right side
  • When launching a game by its name, if it starts with 3 digits and a space, then we remove it in order to
    say only the useful text after this prefix.
  • Remove custom aiohttp sessions from API
  • #11 Switch from aiohttp to httpx implementation, with auto retry and backoff when DNS fails
  • Migrate front_end to be fully compatible with Home Assistant 2026.2 (fixing error AttributeError: 'LovelaceData' object has no attribute 'mode' in HA 2026.2)
  • Re-enable option to force or not IPv4

mDNS resolution improvments

Choose a tag to compare

@ooree23 ooree23 released this 08 Feb 13:02
  • Force not using DNS cache on aiohttp, because its mDNS resolution is not stable with
    .local-suffixed host.

07/02/2026

Choose a tag to compare

@ooree23 ooree23 released this 07 Feb 20:59
  • Add option to force IP v4 on mDNS or not
  • Add other variants on Quit Kodi sentences for Assist voice

05/02/2026

Choose a tag to compare

@ooree23 ooree23 released this 05 Feb 11:06
  • Enable (re)configuration of the Kodi port (8081 by default)
  • #9 If Recalbox didn't send any message, but suddenly responds to Ping : ask for current status to update the recalbox card
  • #10 If, when we try to pull status from Recalbox, the API call is KO, we try to Ping Kodi, to check if Recalbox started with Kodi and is running
  • In the Recalbox card, hide "Web manager" link if Recalbox is off, or if Kodi is running (because API maybe not running yet)
  • Fix regression stopping current game by Assists intent

Can quit Kodi from Home Assistant

Choose a tag to compare

@ooree23 ooree23 released this 04 Feb 19:00

Reminder : v1.5.0 has breaking changes. Update the script in your Recalbox userscripts folder.

  • If multiple Recalbox entities are matching to the same Recabox (example, one is "recalbox.local" and one is "192.168.1.X", both for the same device) we now update each matching instances, instead of only the first one.
  • Add new button/service to quit Kodi. Can then be quit clicking in Recalbox Card, in the Home Assistant services, or by text/voice in Assist.

(Breaking changes) Remove MQTT usage

Choose a tag to compare

@ooree23 ooree23 released this 04 Feb 10:59

Major changes !
Installation way more easy : I left MQTT broker dependency

Now the integration exposes an API, and the Recalbox sends its data to Home Assistant via this API.
The installation is only 2 steps now :

  • copy the script on Recalbox
  • install the HACS github project
  • nothing else

Please upload the new Recalbox script to Recalbox userscripts folder.
If you are using an older version, you can uninstall MQTT broker, and remove Recalbox HA person.

  • Remove MQTT dependency, for a lighter architecture : Recalbox now sends its data to an API instead of MQTT.
    The installation is now way easier for customers : no MQTT broker to install, no user, nothing.
  • On receiving data, while last Ping was failed, forces an instant Ping to switch the Recalbox entity status ON
  • Between Home Assitant restarts, restore the previous Recalbox important informations (hardware, recalboxVersion, scriptVersion)
  • On Home Assistant (re)start, request via API the Recalbox Status to get the current game
  • Force using IPv4 in Recalbox hostname resolution to make communication more stable

03/02/2026

Choose a tag to compare

@ooree23 ooree23 released this 03 Feb 19:23
  • Ensure git pulls the sources with LF instead of CRLF on windows (+ add troubleshot section in readme)
  • Add ℹ️ button in the Recalbox Card, going to the quick intro page https://ooree23.github.io/RecalboxHomeAssistant/
  • If only one instance of Recalbox exists, then it considers every message is for himself, no matter the IP address
    where the message comes from.

Supports multiple Recalbox !

Choose a tag to compare

@ooree23 ooree23 released this 01 Feb 20:01

This version is the first version to fully support mutiple instances of Recalboxs in the same local network !
Thanks to mDNS, in Home Assistant we try to get Recalbox IP. When a MQTT message arrives from Recalbox,
it now contains the Recalbox IP address (from itself), we can then check, when receiving it, to which instance
it was sent to.

The Recalbox script has changes and needs to be updated.
If the script version in < 1.4.0, please upgrade !
(a message will be displayed in the Recalbox card).

  • Clean recalboxIpAddress and scriptVersion switch attributes
  • In the HA model, return to 'None' fields values, instead of "-" that was not consistent
  • Support multiple Recalbox
    • Simplify MQTT messages : a single message from Recalbox to Home Assistant contains status + game attributes, instead of 2 messages before
    • On message received, checks the IP address of each Recalbox host, to check if the message comes from this Recalbox
  • Display a message if the script installed on Recalbox needs to be upgraded

Self reload Assist sentences on sentences updates !

Choose a tag to compare

@ooree23 ooree23 released this 31 Jan 23:36

This version adds Assist auto reload on updated Assist sentences.
The Recalbox script .sh had many improvements and optimizations

  • On first install or updates, if custom sentences have been updated,
    tries to reload Home Assistant Assist sentences without asking for a new restart.
    Only if fails to reload, it will ask the user to restart.
  • Reorder settings buttons, because save/load were not in the same order that in the card
  • Change JSON sent from Recalbox to Home Assistant, from imageUrl to imagePath.
    Home Assistant will recompose the full URL on his own, because he knowns the host+port of this Recalbox.
    Integration is still compatible with older versions, it reads imageUrl is existing in JSON, else it composes itself the URL with imagePath.
  • Duplicate Recalbox script in two versions (only one required) :
    • Recalbox/userscripts/home_assistant_notifier.sh:
      • Improve to get Home Assistant IP adress only if the event is useful
      • Optimization : as soon as the Home Assistant IP is solved, it is saved in cache to make next executions quicker
      • Add shutdown and reboot events in Recalbox script, to say to Home Assistant that the Recalbox is turning off (was only listing stop until that)
    • Recalbox/userscripts/home_assistant_notifier(permanent).sh EXPERIMENTAL :
      • New version, that is permanent : the script is launched only once, and loops on events.
      • It should be way more optimized, and waits to be connected to network to send MQTT messages.
      • Create a timestamped logs file : /recalbox/share/system/logs/home_assistant_integration/*
  • Both scripts now send their version to Home Assistant, in the JSON message,
    "scriptVersion": "home_assistant_notifier.sh:v1.3.1" or "scriptVersion": "home_assistant_notifier(permanent).sh:v1.3.1"
  • Auto clean scripts logs
  • Persist scriptVersion as Recalbox extra state attribute
  • Added host attribute, so the REcalbox card uses the configured host to access webmanager, instead of ip_adress that doesn't exist yet
  • Added recalboxIpAddress attribute, instead of setting as the host
  • When Home Assistant (re)starts, pings the Recalbox to directly set as ON (without game info) or OFF, instead of waiting for the first ON MQQT message
  • Change Recalbox Card chip color in light theme.

Recalbox Card visual editor

Choose a tag to compare

@ooree23 ooree23 released this 29 Jan 12:30
  • Implements a visual editor for Recalbox Card on dashboard.
    Instead of having a yaml file to fill, the default card editor has now a UI to
    edit the options you want, with live preview.
  • Translations of visual editor in English and French