Repository navigation
Releases: ooree23/RecalboxHomeAssistant
Release list
09/02/2026 : Support HA 2026.2, Network stability, Assist UX improvment
- 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
aiohttpsessions from API - #11 Switch from
aiohttptohttpximplementation, 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
- Force not using DNS cache on
aiohttp, because its mDNS resolution is not stable with
.local-suffixed host.
07/02/2026
- Add option to force IP v4 on mDNS or not
- Add other variants on Quit Kodi sentences for Assist voice
05/02/2026
- 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
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
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
userscriptsfolder.
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
- Ensure git pulls the sources with
LFinstead ofCRLFon 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 !
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
recalboxIpAddressandscriptVersionswitch 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 !
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
imageUrltoimagePath.
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 readsimageUrlis existing in JSON, else it composes itself the URL withimagePath. - 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
shutdownandrebootevents in Recalbox script, to say to Home Assistant that the Recalbox is turning off (was only listingstopuntil that)
Recalbox/userscripts/home_assistant_notifier(permanent).shEXPERIMENTAL :- 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
scriptVersionas Recalbox extra state attribute - Added
hostattribute, so the REcalbox card uses the configured host to access webmanager, instead ofip_adressthat doesn't exist yet - Added
recalboxIpAddressattribute, 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.
