I am very new to Matter/Thread, but excited to try it all out, so I bought an Eve Energy smart plug and a GL.iNet S200 Thread Border Router (TBR).
I added the TBR to a fresh installation of HA OS (2024.2.3) on a RP4, and it was directly recognized. I also got the thread credentials from HA onto the companion app on my android phone.
With this installation, the following things work:
add matter/wifi devices
ping4/6 from phone to HA and reverse
ping6 from phone to the OMR address of the TBR
ping6 from HA to the OMR address of the TBR
With all this working, I am assuming that all the network prerequisites are met.
Yet, when I want to add the Eve Energy using the companion app, this happens:
I get âSearching for deviceâŠâ
I get âConnecting to deviceâŠâ
I get âGenerating Matter credentialsâŠâ
I get âChecking network connectivityâŠâ, where it finally fails with âCanât reach deviceâ.
I do not know how to debug from here. The S200 is based on OpenWRT and I have webUI, luci, and SSH access, so if necessary, I can get more information.
I already posted the issue on the GL.iNet forum, where it was suggested that HA is not fully 3rd-party TBR compliant. Hence, this post here.
The network requirements also include having the phone, HA and the matter server on the same network, so if you are using VLANs or have split your network up in any way, then you might need to flatten it.
Regarding the thread credentials, then it is important to try to import them a second time to see if it again says it has copied the credentials or if it says that HA and thread is using the same credentials.
The last one is the successful one and the first one means you will have to clear your Google Play Services cached data.
I am using a flat single-vlan structure. That should not be an issue.
The second part seems more interesting. Whatever I do, I always get âSync Thread credentials [green checkmark] Updated network from Home Assistant on this deviceâ when I try to sync the credentials on the phone via Settings>Companion App>Troublshooting>Sync Thread credentials.
Also, if I use âimport credentialsâ in Devices&Services>Thread>configure, I always get âYou donât have any credentials to import.â.
The above does not change if I do any of the below:
clear the cache of Google Play Services
use âUsed for Android + iOS credentialsâ in Devices&Services>Thread>configure>3-dots settings
both of the above
I tried all of the above also with Google Home installed (which is normally not the case, and I want to avoid this if possible), but most of my testing was done without Google Home being installed.
EDIT: reading helps Maybe for my understanding, what is the difference between syncing the credentials using Troubleshooting and using the Thread service settings? Also, what does âUsed for Android + iOS credentialsâ actually do?
WallyR, thanks for the link. I still didnât get the credential-sync to work on my phone (Iâm investigating what the issue is), but using my wifeâs phone, I got the right message after syncing the thread credentials the second time. However, I am still getting the same issue when trying to commission the thread device, where it fails at the step âChecking network connectivityâŠâ.
EDIT: I actually also got my phone to correctly get the thread credentials from HA, but I had to delete all data of Google Play Services and not just the cache. Still the same issue though.
I had a fight at that point too and I only got it to work by disabling my DHCP-PD IPv6 network and only run with auto-generated fe80 addresses on all devices.
HA seems poorly lacking in IPv6 configuration and performance setups.
Apologies for the late reply @WallyR@Pierre84000. Thank you both for your answers. I looked into both methods, and I will comment on each method below.
@WallyR It took a while to test your suggestion, because network-tinkering with even the shortest offline time is typically met by strong opposition from several family members, so I needed to find an appropriate time slot.
Your method lead to a success. I was able to add the Eve Energy to the thread network and matter using HA and the S200. It was actually even a smooth experience, and also the current/voltage/power/energy readings worked out-of-the-box.
However, I managed to do this only by completely disabling the native IPv6 which I get from my ISP. While this worked, it is not a permanent solution for me, as this impacts the operation of other services on my home server too much. I got all this to work on HA and the matter-server running in docker containers on my Arch Linux server. I am happy that this is working, as I want everything to run on my one server, instead of having multiple RP4s floating around in the house for all kinds of services. That is why I did not even try this on the test installation on the RP4 I mentioned earlier.
In any case, before I got started with HA/matter/thread, I read about the network prerequisites, in particular with respect to IPv6, and tried to meet all of them. In fact, I think everything IPv6 is set up correctly, but the âsolutionâ was to disable IPv6, so, I was somewhat disappointed. @WallyR this is by no means a complaint to you, on the contrary, I am happy you lead me to a âsolutionâ, so thank you again. This is rather a confirmation of what you said in your last message about IPv6+HA.
If there is any way to get this to work while IPv6 is enabled, I would greatly appreciate any input and I can help by providing logs, etc.
@Pierre84000 Thank you too for you message. I tested this, too, but things failed very early. I actually tested this first (because it does not require network interruptions), and I tried this one on the HASS OS test server on the RP4 (all up-to-date).
As it turns out, I cannot connect to HA OS on ws://IP:5580/ws. I suspect that the current version of the HA OS on the RP4 does not allow access on that port outside of localhost? I guess I can allow this via iptables, but as the other solution worked, I did not investigate any further. Also, I only used the RP4 (with bluetooth) for testing, my goal is to use HA on my home server (without bluetooth).
HA seems to lack quite a lot in the IPv6 support, so it becomes a road block for the IPv6 transition.
I have been thinking about making a feature request for a âYear of the IPv6â.