I’d love for Infinity Evo 4D massage chair to work with Home Assistant. It has an app (Evo 4D) that communicates via bluetooth to the chair. I feel like there should be a way by using a bluetooth relay node to have home assistant send/receive those commands and be able to integrate the system. Something similar to a BedJet Integration that I also use.
I have no coding experience so it is a bit beyond my abilities. Normally I wouldn’t post for what may be a very niche product, however after hearing Paulus on State of the Home talk about being active in the forums to see if other people are wondering the same thing, I thought I would at least put it out there. Maybe there’s more than just me who is wanting this. I am happy to help test if anyone else is interested.
Awesome idea! You’re not alone—integrating unique Bluetooth devices like massage chairs into Home Assistant is exactly the kind of creativity this community thrives on. Here’s a breakdown of a few possible approaches to get your Infinity Evo 4D connected:
Possible Integration Paths
1. Bluetooth Sniffing with ESP32 (Passive Proxy)
Use an ESP32 board running ESPHome with esp32_ble_tracker or ble_client.
It can listen for or mimic commands sent from the official app to the chair over BLE.
If you can capture UUIDs and services, you can re-send those from ESPHome as custom services in Home Assistant.
Low cost (~$5), integrates directly into Home Assistant Requires some trial and error to identify BLE characteristics
2. Use a Bluetooth-to-MQTT Bridge (Raspberry Pi or ESP32)
Set up a Bluetooth relay node (like a Pi Zero W or ESP32) to communicate with the chair and publish commands to MQTT.
Use Home Assistant MQTT integration to control the chair.
Tools like ble2mqtt, bt-mqtt-gateway, or gatttool with scripts can help.
Highly flexible and scalable Requires basic scripting or config setup
3. Android Debugging via App (App-Control Interception)
If the app is Android-based, you could reverse engineer the commands using ADB logcat or Bluetooth HCI snoop logs.
Once the command structure is known, mimic them using an automation or script from Home Assistant via a Bluetooth proxy.
Deepest integration, full control More advanced, but others in the community may help decode i
Thanks, @zodyking. Sound like all good ideas! Each of those ideas kind of sound familiar but still a bit over my head.
I’m one of the novice users who uses Home Assistant Green Plug n Play and whatever I can set up through the UI for the most part.
I did find that there is an Android App for it. I don’t have an android device to use it on (or the ADB logical/Bluetooth HCl apps). I will see what I can figure out with ChatGPT and if I ever am successful with anything, I will update this post. Not overly optimistic in my abilities but appreciate the response!
I was able to find the MAC address for the chair so I guess that is first step.
Test it on your android tv or fire tv, you’ll have to side load it (usb drive or app downloader to install) I know it sounds quirky but it is android based and at least allows you to test the app lol
Tv wouldn’t load the app - it isn’t supported on that device type. I purchased a cheap android tablet but the location for the snoop HCI file is protected and I can’t root this model or gain access to it. I’m guessing next best thing is to purchase a pixel tablet or phone and try again?
I bought a pixel phone and was able to root it to get access. Here are two bluetooth HCI snoop logs. One of them I opened the app, and selected the chair from the bluetooth list and closed the app. The other one I ran a program, stopped the program, reclined, sit upright, knead, and stop.
I tried running it through WireShark and saw some hex codes which I tried to send via nRF but couldn’t get anything to happen. There could be PLENTY of user error along the way as I don’t know much of what I am doing other than what ChatGPT can guide me through.