#Nope dont work for nabu casa nor know
1 messages · Page 1 of 1 (latest)
coolio, so have you got a skyconnect, or any other thread usb dongle
I'm running in the Proxmox HASSIO OS. The device has wifi and bluetooth on-board, but is getting internet through Ethernet
Ah, no I do not.
you running your nanoleaf bulbs on a apple thread network? then using matter to connect to them?
I think it's just the Apple Thread Network, I don't think I've got anything Matter working because the Essentials were made before they announced Matter support
So all 30 bulbs were paired to HomeKit, I had to unpair them to make them show up in HASSIO. Then once I paired to them I bridged them back to HomeKit. I'd be happy with the intergration, but randomly bulbs are going offline from the HomeKit and I wish I could get more solid connectivity.
ah, not much i can do atm without you having a sky connect or any thread usb dongle, thats more what i was refering to in the first post
No worries. I don't think a Sky Connect is exactly what I would need, since the Nanoleaf bulbs are pre-thread.
Turning off the Bluetooth Integration actually improved responsiveness a lot, which has me confused
strange
Is there a way to determine how Home Assistant is communicating with these bulbs? Like is there a chance that:
- The bluetooth adapter has run out of "slots?"
- Running the bluetooth is somehow interfeering with the Thread protocal?
These bulbs are just homekit over thread using Thread within the Apple homepods or Apple TV's you may have in your house.
So it has nothing to do with Home Assistant and/or Bluetooth
Hmmmm, so what would be the reasoning for resets causing this to happen?
Upon reset like 15 of my devices are in a "Failed setup, will retry" loop for the foreseeable future.
Source: components/homekit_controller/connection.py:252
First occurred: 6:38:02 AM (47 occurrences)
Last logged: 6:44:06 AM
Transaction 0 failed with error 6 (Invalid request ```
Ah, you're using these devices using the Homekit controller integration, basically using HA to control these devices over the existing (Apple) Thread infrastructure. I'm not sure if that will also/fallback to Bluetooth for communication but I'm pretty sure @opaque lotus will be able to answer that.
Yeah the vague guesses I have so far are:
- that my realtek bluetooth device is not good enough (I bought a sabrent from the list of adapters that should come in a couple of days"
- Maybe because I have five homepods and two nanoleaf shapes the Apple Thread BRs are competing with the Nanoleaf ones?
I see "MyHome30" with 7 Border Routers. Which to my understanding should represent a very diverse and therefore strong thread mesh. However my actual experience is spotty performance
It does not say anything about the mesh but having 7 border routers (actual entry points into your thread network) should be really good for coverage, especially if those 7 border routers are strategiclaly spread around your house. Comparing it with Zigbee or Z-Wave you have not one entry point but 7 and (meshing) routing devices even improve coverage further.
Exactly my thoughts. It's a 1700 sq ft house and I've got three wifi access points (all hardwired with ethernet backhaul) and like 30 thread devices throughout. I just can't determine where the weak point is.
Bluetooth is unrelated to your situation, at least directly. We don't use bluetooth for fallback. If we are connected by thread, we don't do bluetooth at all. So as i said in the other channel you asked about this, the bluetooth integration shouldn't have any direct impact on what you are doing unless bluetooth is swamping out your thread network. with 7 BR's that seems unlikely.
"Transaction 0 failed with error 6" is (iirc) a harmless error - there are some non standard characteristics on those devices that it tries to read but they aren't readable (by design). they just need ignoring but its not been a priority.
Unfortunately as to what is happening, its hard to be sure as there aren't sufficient diagnostics to point out the root cause
There are known Nanoleaf bugs in the pre-matter firmware, and even the post matter firmware is known to destabilize an otherwise healthy mesh. this is allegedly getting better on the matter firmware.
It was also the case that apple mesh performance degrades as you add more BR's
there is actually a limit at which some vendors won't support you, though i think it is a little bit more than 7.
Okay, so just to confirm. When things are working correctly my HASSIO takes the following path:
Mini PC -> Ethernet to Router -> Wifi to Nanoleaf/HomePod -> NL/HP to Thread -> Thread to Bulb?
there are also known issues where some BR's that have poor mesh connectivity but happen to get chosen as the default route for a device. this is typically Apple TV's (the first generation with thread radios) that are in high interference locations. in these situations, sometimes turning BR's off can fix things.
that has also helped with homepods in the past, too
And if I've read things correctly, Apple does not let you turn off the BR capability of indiviudal devices right? You have to unplug the entire thing?
correct
the next ios release will support TREL (unless they pull it before final release). that will mitigate this by allowing a BR to use your backhaul wifi/ethernet to mitigate against thread connectivity issues. so if packet goes to a BR in a thread Faraday cage, it should tunnel the packet to a BR that is actually on the mesh.
finally, i'm pretty sure there are edge cases where reconnects get stuck. but my thread network hasn't been falling over when i have time to debug it so (its pretty infrequent here, with 2 BR's)
A sidenote, while we're discussing. Rolling back to 2023.9.0 seemed to fix things. All of the bulbs are connected now. The only unavailabe device is a 3rd gen Eve Motion sensor which I think might be defaulting to Bluetooth
This is the one coming in the fall?
yes
this is broadly correct, but it's important to note that the routing part of your router should not be involved.
Fingers crossed then. That sounds like mroe of the magic that thread claims to be
? Would it be using the Wifi Adapter to connect to the BR? If that's the case then perhaps my BT and Wifi adapter being combined on the board could be an issue?
your HomePod's are all flooding your L2 network with icmp6 packets that contain route advertisements. your HA should see those announcements and get entries in its route table that go directly via that homepod. in terms of mental model, imagine that everything was connected by ethernet, you would plug your BR's and HA into a switch.
if your router considers your homepods and HA to be on the same VLAN (L2 segment) then it will be acting as a switch or bridge, rather than a router
if your wifi is on a seperate vlan to your HA, then you will have problems.
Is there a way to determine how many VLANs I have going? (This is an area I'm unfamiliar with)
If you didn’t explicitly set any up, I doubt you would
But you can always look in your routers settings somewhere (if it supports it obv)
I just saw your message in the main bluetooth channel and would MediaTek be included in that "bin on sight" category?
its unlikely it would work to the extent that it does
we've found routers don't really support the icmp6 routes thread needs
Okay haha. Just wanted to make sure I wasn't causing a big issue without even knowing it
not that they need to
yes, but more from a free software perspective rather than anything else. i have a handheld device that uses a mediatek chipset and they don't play nice with upstream linux, so its very poorly supported if you want to run a reasonable and up to date linux on it.
Okay. So I might be able to resolve the issue with my Eve Motion connectivity by putting the list-approved bluetooth adapter in the computer and turning off the USB passthrough of the onboard one
Other than that, what I'm gathering is I just gotta let Thread do it's thing and hope that Apple fixes it's BR shit
yes, or by getting rid of usb bluetooth entirely and getting esphome bluetooth proxies.
(esphome bluetooth proxies are a bit like BR's for bluetooth, and let you get full house BLE coverage)
How would I go about checking the method of communication for an item? I've got a third gen Eve Motion which should supposedly offer Thread, but it is sitting next to a HomePod Mini and it keeps going unavailable.
Year introduced: 2022
Product number: 10EBY9901
Model number: 20EBY9901
Wireless Connection: Bluetooth/Thread (requires HomePod (2nd gen.), HomePod mini or Apple TV 4K (2nd gen. / 3rd gen. 128 GB).
How to upgrade```
If you look at the device page in home assistant there is a thread status sensor. If it’s disabled, then you are definitely not using thread. If it’s anything else, it’s connected by thread.
Ah ha! All I see is Signal Strength sensor, which is similar to the other device that is communicating via bluetooth.
are you sure?
if it doesn't have the thread sensor then it doesnt support thread
regardless of how its connected
i guess unless you didn't connect it to ios and update its firmware?
My bad. I was looking at the wrong one! It has the thread sensors. I'm enabling htem now to get a readout
Logbook: ```September 12, 2023
Eve Motion 1032 Provision Preferred Thread Credentials changed to September 12, 2023 at 6:28 AM triggered by service Button: Press
6:28:15 AM - Now - Sai
Eve Motion 1032 Thread Capabilities changed to Sleepy End Device
6:27:54 AM - 22 seconds ago
Eve Motion 1032 Thread Status changed to Disabled
6:27:54 AM - 22 seconds ago
Eve Motion 1032 Identify became unknown
6:27:54 AM - 22 seconds ago
Eve Motion 1032 Provision Preferred Thread Credentials became unknown
6:27:54 AM - 22 seconds ago```
Upon pressing the Provision Thread Credentials I get this error: Failed to call service button/press. No thread network credentials available I presume this is because I haven't set a preferred network yet. I can't figure out if that's possible withe the Nanoleaf and HomePod BRs I have, though. Do they give a REST API? Or would that only be available if I set up an OpenThread BR through Google?
So if you follow the docs there is a process for HK Thread device with Apple BR's where you don't know the thread credentials
the gist is, pair it with ios, wait for it to join thread, unpair from ios (DO NOT RESET), then pair it to home assistant. it should then leverage your apple BR's
this can go wrong with battery powered eve devices because unpairing from ios fails
the workaround is to turn your border routers (all of them) off (eve bug)
then use the Eve app. it has an "identify" features. press it until it works and doesnt error. at this point you are connected over bluetooth again, and unpair from ios will work
then turn BR's back on
then pair to HA
Yeah I believe that's how I've gotten all of my Nanoleaf Essentials on to the network.
This is likely what is happening, then it defaults back to Bluetooth
when it happens they are in a paired state but no one knows the encryption key, so you likely had to factory reset them to get them to work again
Have you happened across this script? https://old.reddit.com/r/homeassistant/comments/11pkmpu/obtain_apple_thread_network_credentials/jzjtxbo/ It seems promising for getting Thread credentials so that I could just click the "Provision Thread Credentials" button whenever it fails
Provision Thread Credentials, as you say, only works where home assistant has a preferred network. that is not possible through the official API's right now. Allegedly in some circumstances the iOS Nanoleaf app can show the key. Mine does not.
That said, Nanoleaf only gives me one datapoint for my Thread Network: Extended Pan ID
Reaching the same point simultaneously haha
sounds like if you had a nanoleaf device paired to ios it might show it
then you'd need to use that script to make a TLV string, which is what HA uses
I can unpair a device and try it
So you're saying unpair form HA, pair directly to HK and then check Nanoleaf app?
yeah
Promising... Got five datapoints from the NL app
This does not seem to be a URL, though.
no
but it is correct 🙂
yep
by the way that is a private key
with it i could connect to your home network
so you might want to delete it
THanks for the tip haha
Okay I have provisioned preferred thread credentials!
It still says Thread Status Disabled, but that was last updated an hour ago. Is there a way to force check the state?
when you press the button it takes up to a minute
you should see it go unavailable and then available
and then the state will change
but it relies on bluetooth working
move it closer to your bluetooth dongle rather than next to your BR
Okay, I will be patient. I tend to work on this for the two hours before I have to go to work so I am often too fast-paced
if it hasn't updated after a minute, bring it closer to bluetooth dongle and try again
if still not working, press identify
that should make the led on the sensor flash
if it doesn't you still dont have a working bluetooth connection
Is attaching documents turned off globally on this channel? I wanted to provide a .log of the error I'm getting
Afaik
Source: components/homekit_controller/connection.py:866
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 7:47:24 AM (1 occurrences)
Last logged: 7:47:24 AM
[139676489733696] 'NoneType' object has no attribute 'encode'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 227, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1969, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2006, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
return await service.entity_service_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
response_data = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^```
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/button/__init__.py", line 124, in _async_press_action
await self.async_press()
File "/usr/src/homeassistant/homeassistant/components/homekit_controller/button.py", line 176, in async_press
await self._accessory.async_thread_provision()
File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 866, in async_thread_provision
await self.pairing.thread_provision(dataset)
File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 197, in _async_operation_lock_wrap
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/bleak_retry_connector/__init__.py", line 471, in _async_wrap_bluetooth_connection_error_retry
return await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 236, in _async_force_fresh_connection
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 213, in _async_restore_and_resume
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 1542, in thread_provision
(1, decoded.networkname.encode("utf-8")),
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'encode'
Name of the Thread Network or the SSID of my WiFi?
Probably a stupid question but worth the ask
name of the thread network
as shown in nanoleaf app
(there was a b missing from the first version of my link - if you get an error with it, then check you have the b - you can see the change here https://gist.github.com/Jc2k/b29c63e374382d749546df498b678fd0/revisions)
also, it doesnt look like you can update a TLV after you've added it
just tried here and i ended up deleting /config/.storage/thread.datasets, then restarting HA, then adding it again
Hmmmm, I think something is still wrong.
File "/Users/saiellis/Downloads/import python_otbr_api.py", line 15, in <module>
pan_id= MeshcopTLVItem(tag=1, data=bytes.fromhex(PANID))
ValueError: non-hexadecimal number found in fromhex() arg at position 1```
Hmm
Worked for me
PANID must be wrong
Can’t say how without seeing your file in full
Yeah can I send it to you in a PM?
Yeah
Wow! I'm finally a proud parent!
Battery
90%
Identify (Hidden)
PRESS
Signal strength
Unavailable
Thread Capabilities
Sleepy End Device
Thread Status
Child```
Thank you thank you thank you. I'm able to flash the thread credentials to all the Nanoleaf Essentials that were not on the the mesh for some reason and I'm VERY hopeful that it will improve responsiveness in a big way.
@opaque lotus Ugh. Moving each bulb over to Thread. One at a time pairing them to HomeKit Device Intergration and then sending Thread Credentials.
Now when I try to send the credentials, however, it is giving this error: File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 211, in _async_restore_and_resume await self._populate_accessories_and_characteristics() File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 1083, in _populate_accessories_and_characteristics made_connection = await self._ensure_connected(attempts) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/pairing.py", line 482, in _ensure_connected self.client = await establish_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohomekit/controller/ble/connection.py", line 61, in establish_connection raise AccessoryDisconnectedError(ex) from ex aiohomekit.exceptions.AccessoryDisconnectedError: Nanoleaf Light Bulb [F2:1B:36:31:83:2B] (id=86:BB:CC:68:15:1B) - F2:1B:36:31:83:2B: Failed to connect after 9 attempt(s): No backend with an available connection slot that can reach address F2:1B:36:31:83:2B was found: The proxy/adapter is out of connection slots or the device is no longer reachable; Add additional proxies (https://esphome.github.io/bluetooth-proxies/) near this device
In theory there should be two devices using my bluetooth adapter. The one Eve Motion and the one bulb that is being sent the info. How is it full?
first of all, thats about the limit for an average linux bluetooth device
the finest linux bluetooth dongle can manage 5 connections (but that will not be the fastest bluetooth connection oh no)
second - that error is really only saying that the MAC address can't be connected to
it might not be out of connection slots
it might just be out of range
or maybe the bluetooth dongle crashed
(this is also frustratingly common, especially with realtek dongles)
I'm now using one of the devices on the approved list from the docs https://www.amazon.com/gp/product/B06XHY5VXF/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1