AC Infinity Bluetooth 69 PRO controllers SUCCESSFUL

Yes, I just started to have a look yesterday, so I will try first the shell_command in an automation, then probably will try the python library as I’m not too sure how to do it yet. good luck!

Oh also you can find the mac with a bluetooth scanner app on your phone.

Would you be able to ELI5 how to use this to populate the sensor data into HA? I don’t really care if I can control the controller since it’s just running through an automation itself, I’d just like to be able to get all of the data from the controller onto my dashboard

For those of you still following this thread, I took the information provided and have built a custom integration for AC Infinity Controllers. It’s working with my Controller 69 Pro, but should also work for a Controller 67.

I’m at the point where I could use some beta testers. You can add this as a custom repository in HACS to make sure you get updates and I push features and fixes:

5 Likes

I just tried and got

2023-07-15 14:07:19.754 ERROR (MainThread) [custom_components.ac_infinity.config_flow] Unexpected error
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/ac_infinity_ble/device.py", line 159, in update
    await events[CallbackType.NOTIFICATION].wait()
  File "/usr/local/lib/python3.11/asyncio/locks.py", line 213, in wait
    await fut
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/config/custom_components/ac_infinity/config_flow.py", line 66, in async_step_user
    await controller.update()
  File "/usr/local/lib/python3.11/site-packages/ac_infinity_ble/device.py", line 158, in update
    async with async_timeout.timeout(5):
  File "/usr/local/lib/python3.11/site-packages/async_timeout/__init__.py", line 129, in __aexit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.11/site-packages/async_timeout/__init__.py", line 212, in _do_exit
    raise asyncio.TimeoutError
TimeoutError

That’s the same error @jayrama got - is this a controller 69 Pro or something else?

I just released v1.0.2 on HACS which should hopefully fix some issues. If it’s not showing, navigate to the integration and click the 3 dots on the top to choose “redownload”

1 Like

It worked perfect ! Thank so much for doing this

You’re a hero @hunterjm !
image

Installed through HACS, restated HA, device was found instantly!
Powered on the second unit, instantly picked up as well. So grateful for your work there!

I do have three requests though:
1/ An icon would be cool
2/ Even a small blurb in the README just telling people to add it as a custom repository, just for the real newbies it’d probably help
3/ Somewhere we can donate to you and buy you a beverage or similar just to say thanks for the integration!

I’ll probably open a PR to make this to an official integration once we are done beta testing it. At that point I’ll upload icons/logos to the brands repo. My unit went unresponsive to both the integration and the app after running fine for 2 days, so I want to make sure that’s not a recurring issue.

Also no donation necessary. I usually build integrations that I need in the time I have. Steer your money towards Nabu Casa. Paulus & co. are the real heros.

1 Like

Hey there. I have a 69 Pro that I just connected to the network. I can see it in the app, I have a brand new HA running on a raspberry pi and it’s not finding the device. Do you support the pro and any thoughts on why I can’t see it?

You can’t have the app pulled up at the same time. Otherwise, if you have Bluetooth configured in HA and your Pi is close enough it should discover it.

Ok so the first time I installed the component I hadn’t set up the controller on wifi yet. In home assistant it was searching for a few seconds before it said “no device found on the network”. Now it is instant, sometimes doesn’t even show the “looking” dialog.

I have done the following:

  • Rebooted Hass & pi
  • Removed and reinstalled the component
  • Made sure the app is open (I am currently remote)
  • Updated controller firmware to latest
  • Confirmed the controller is on wifi / connected in the router

Any logs I can look at to troubleshoot?

I don’t have my controller setup on WiFi - I only have it configured on Bluetooth. If you configure WiFi it could disable BT communication from the controller which my Home Assistant integration uses.

1 Like

OK! I am up and running. There were a few steps that I was getting caught up in because I have 2 controllers I am setting up.

  • RPI bluetooth needed to be accessed by a container. Had to add another volume to the config
  • Firmware HAD to be updated. I updated one and it worked, the other did not. Updated and it added fine

The only thing that does not seem to work is the fan. Works from the controller but trying to control it in HASS throws an error. Temp, humidity sensors are working fine. Any thoughts on the fan?

update: It shows the bluetooth icon when I call fan turn_on but nothing is happening.

I get an error when updating the fan sometimes as well, but not every time. Will need to look into it. That being said - it does work for me most of the time, but takes a minute to update in the UI.

I’ve noticed I’m getting the following on the other parameters. I don’t really mind coz I have a bunch of other M5stack sensors and things but thought I’d provide the feedback in case it was supposed to be working:


At this point given I have a couple of M5stack Atom Lite units around with bluetooth proxying and active connections enabled, it could possibly be that? I can’t tell right now if they’re connected back to the NUC via Bluetooth directly or not.

Thanks again @hunterjm !!

Nice but has far I see I am able to only add one of my fan (I have four controler) so look how I can make it work with four maybe 4 intégrations? lol

Yes, readding the integration for each fan worked for me. I have two showing up on two different controllers now :slight_smile:

You have the lastest version? Because when I add the second fan I get this.

500 Internal Server Error Server got itself in trouble

Cette erreur provient d'une intégration personnalisée

Logger: aiohttp.server
Source: custom_components/ac_infinity/config_flow.py:104
Integration: AC Infinity (documentation, issues)
First occurred: 21:46:15 (3 occurrences)
Last logged: 21:47:05

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 149, in post
    return await super().post(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
    result = await method(view, request, data, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 71, in post
    result = await self._flow_mgr.async_init(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 856, in async_init
    flow, result = await task
                   ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 884, in _async_init
    result = await self._async_handle_step(flow, flow.init_step, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 393, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ac_infinity/config_flow.py", line 104, in async_step_user
    service_info.advertisement.manufacturer_data[MANUFACTURER_ID]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 2306