My journey from Insteon to Inovelli and matter/thread

This journey started for me after I installed Tesla Powerwall 3 in September 2024. In October my batteries went through a calibration process and changed the way the inverter was charging the batteries. I am currently backup only but even when I put up solar it will only be for one of the 2 houses on the property we use as an office, so I needed to fix the problems I was seeing.

I started noticing that my lights were blinking (not flickering constantly), but random blinks. Sometimes it was quite bad. This seemed to coincide with the inverters kicking on and off during charging cycles of the battery which sometimes had them going on and off every minute or two. I have 2 powerwall gateways so when they were both doing this was when the blinking was the worst.

Needless to say, I contacted Tesla which was really not much help, and they scheduled me for a visit 4 months away. It was November before I had diagnosed it to something I could not solve on my own. This was after checking neutrals and neutral to ground, monitoring voltage and general diagnostics like changing the bulbs and ordering known forward phase and trailing phase bulbs to see if one or the other helped and tried these resisters you put on the load side of the switch to help with flickering. I found others having similar problems online and nothing I tried made it reliably better.

The issue seems to be noise on the AC line. It was messing with my dimmers (oh yeah, this is only a problem on the dimmer circuits which is like 90% of my switches) and you could see the status lights on the dimmer switches flickering a bit as well. This was coupled with some random lights going on or off and scenes were not controlling loads properly. These are all Insteon switches, and the devices impacted were KeypadLincs and DimmerLincs.

I replaced the PLM, moved the PLM (which helped with communications), added more wireless plug in modules to help with wireless signal paths given the path over the AC lines seemed to be the problem. It helped but lights blinking randomly from time to time does not make for happy family members.

When I wired the lights directly to line or replaced the switch with a standard or automation non-dimming / latching switch, there was no blinking. The communication issues on the AC line were a challenge as pretty much everything in my house is automated (well valve, water heater recirculating pump, lights, water leak detectors, motion sensors, door sensors …. all Insteon).

I had been contemplating a move to newer devices with more features. I’ve used Insteon for close to 20 years when they first came out and replaced X10, but support had gotten harder. Additionally, I use Universal Devices eISY and Polisy which make managing Insteon devices a breeze and has lots of functionality, except it didn’t allow me to on-ramp devices to Apple Home or create complicated/powerful automations. I had been running Home Assistant next to eISY for a few years and for many devices I was duplicating plug-ins in both environments which was creating a lot of traffic on my network (duplicate polling of devices) so I could use devices in both ecosystems.

I decided I’d test some devices and take the leap to matter/thread (only wifi when can’t get it with thread) and deal with the pain. I tested some switches first to make sure they did not have blinking issues and landed on a plan to move slowly. I struggle with slowly, so wiring 1 house first turned in to let’s just jump in. I starting with light switches since the blinking was driving me nuts, added fan switches because they are available and realized that for some on-off switches it paid to wait for some new models that have humidity/temp control for places like bathrooms. Currently I am using:

  • · Inovelli white version for in wall switches, fan control and for scene control devices in the future (hopefully they port their blue model for zigbee to matter). For the time being I am leaving my insteon on-off switches in bathrooms with showers that have fans and also leaving the Insteon keypadlincs that don’t actually control loads but allow for scene related buttons.
  • · Onvis for on/off plug modules (water heater pump, arcade game console …)
  • · Nanoleaf for lamp bulbs (thread version)
  • · Arre for buttons to control lamps
  • · Aqara thread motion sensors for closet lights
  • · Sonoff minir4 for making push button controlled devices like my dock power, and dock lights and also to monitor my septic pumps.
  • · Insteon – still using for wireless water sensors, some KPLs mentioned below and some other devices while I wait to switch (not dimmers)

The only device that is not thread is the Sonoff device, it is matter over wifi.

First problem to tackle was getting matter server to work within my vlan network topology. I run a few vlans. I have a separate vlan for home assistant since it runs as a host network, another for sonos and appleTV and Plex as an entertainment VLAN. My phones, computers … are all on another vlan and network infrastructure is separate. All other devices (100s) are in an IOT vlan. It took me a while to get all that setup and working reliability with mdns traffic … so really didn’t want to change too much on the topology.

I did not want to have to move my entertainment vlan to the same as HA or move IOT devices. I run home assistant, scrypted, mqtt, weather station, nginx and matter-server and auxiliary services like MariaDB, ifluxdb … on a docker swarm cluster.

Ultimately, I was able to get the matter server working in the same vlan as appleTV (since I was using it as my border router). A lot of documentation says home assistant has to have matter server in the same vlan as home-assistant and you can’t use vlans. I figured out the real requirement is that your border router network needs to be in the same vlan as the matter-server and since HA talks to the matter server over a websocket, it can really be anywhere. HAOS obviously runs this all in 1 server, so there you have to put HA and your border routers in same vlan. Since I was running this all in docker, I installed matter using a macvlan network in the same vlan as the appleTVs are running. While I could commission a wifi/matter device, thread was still a no go.,

I spent a lot of time determining if ipV6 was working properly. This affected me for a few days as my ISP doesn’t support ipV6 and I had no idea how to setup my own client address assignments (SLAAC, DHCPv6…, RA priority …)

As I brought on more thread devices, I realized I needed to optimize the wifi network as well. I moved my Access Points to only use channel 1,6 on 2.4 spectrum (well not the outside Aps) and that left 11 open. Since the AppleTV border router network reported it was on channel 25 that is in the channel 11 lobe and I saw immediate reliability improvement. If you monitor the matter-server logs you can see the resets when the network is dirty.

I wanted to make Home Assistant the first fabric (initial pairing/commissioning) and share from there as opposed to putting all the devices on AppleTV first and then share to home assistant. The reason is all devices need to be in HA but not all need to be available in Apple Home. This created a whole slew of other issues as HA isn’t as mature and items like automatic updates don’t work as seamlessly. I have no doubt it will catch up.

I commissioned my first thread device, and it took forever. After a bunch of tries I realized when commissioning devices on the thread network I needed to have my phone on the same vlan as the matter-server / AppleTVs even though my client device network has full access to that vlan. Additionally, each type of device had some quirk.

Inovelli devices were pretty good but failed a lot at first. The dimmers needed a firmware update (comes standard now) and seemed to fail more on 1.0.0 but this could also be the wifi issue mentioned above. Usually, it took 2 – 4 times. Sometimes restarting the matter-server helped. When you are commissioning a lot of devices across different areas of your house, the network is changing too much, and devices start failing as paths can’t be found to the matter-server / appleTV border router.

Nanoleaf bulbs gave me so many problems. In the end the issue was that they needed to all be updated to the most recent firmware and the HA pairing was not allowing them to be updated. As it turned out, once you get them up to the latest firmware, updates can be managed in HA. Until this all got ironed out the Nanoleaf bulbs kept taking down the thread network. My best guess given they tended to all go haywire about the same time each night was that they would start hunting for an update and then take themselves down and go offline and now other devices couldn’t be routed through them. You could see the matter server failing devices and sleeping them. Ultimately, I figure out you could pair with HA first and then pair (via Bluetooth) to the Nanoleaf app without having to reset the devices and have access to the nanoleaf app to update if necessary.

Onvis never gave me a problem, paired right up.

Arre devices are fun as they are just buttons so they go to sleep a lot and also are kind of immature (events are confusing), but I have them working to control bulbs.

Sonoff was also pretty easy except you can’t put the minir4 in pulse mode (use with momentary switches) unless you use the app. Again, figured out I had to pair with their app first, set the wifi, delete the device, pair with HA and then share with their app from HA (generate new code) so I could put the switch in pulse mode.

Aquara had 0 issues commissioning / pairing but only using for motion. If Inovelli mmWave matter swtiches existed, I would have used those.

Inovelli has some great switches that are more powerful than the matter protocol supports on most platforms. So for instance if you share it with apple tv you get this weird device with 2 LED sliders (one for load and 1 for the LED bar on the switch) and it takes away your ability to just tap the device to turn on and off. You can ungroup but you end up with a bunch of clutter. Same for fans that end up with like 6 switches for each fan mode. Ultimately, I just shared them through the homekit integration in HA like I had been doing and only exposing the entities I wanted or by modifying them via yaml configuration (like defining fan modes …) As a potential enhancement, the 4 parameters I which I had access to via Apple/HA Matter would be LED color on, LED color off, LED brightness on, LED brightness off for loads (params 8,9,10,11) and the same entities for the fan. Without these you can’t automate turning the LED off at night and such and these were the ones I had to manually program on every device.

I want to do direct binding between matter devices in case HA is down, but matter-server / HA doesn’t support it yet like for zigbee so for now all binding of buttons to bulbs, or switches to smart bulbs happens via HA automations. Luckily there are some nice blueprints for this.

Again, this whole journey started because Tesla has some noisy inverters that just happen to generate noise in the same frequency as Insteon uses to communicate over the powerline. LOL. I was considering a jump anyway and this just pushed me to do it.

60 and counting wired switches for lights and fans, 12 bulbs, 6 on-off plugs, 4 motion sensor, 6 buttons and some in-line modules to make my own specialty switches (like a 220v/30amp contactor wired to a Sonoff and momentary switch to control dock power) and I’m starting to think this might work.

My thread network seems to be stable; traffic is working across the vlans and I still have the separation that I wanted. I almost gave up a few times and started over many times. I’m happy to share any details and info and hopefully I remember how I got it working.

If I did it all again, I’d address the network reliability issues and wifi network first as I think this caused a lot of my early frustration commissioning nodes and since I never went in on zigbee I didn’t realize. Since the HA matter pair flow doesn’t allow you to rename the device when you commission it in HA (well it asks but doesn’t use the name) and the HA app for iphone doesn’t rename all the entities in a device like when using the web interface to rename devices, it can get tedious to pair a device from the phone while you are near the device, then go to the computer, rename the entities and move on to the next device. Living in limbo is a pain also as you are constantly re-doing automations/scenes/scripts temporarily realizing when you replace the next device you might have to revisit.

If I had one set of devices, I would love to replace it would be my LIFX bulbs. I have a lot of them as floods as they have a built in IR light that helps with illuminating the property for security cameras. These will be stuck having to use automations to turn on lights from switches, scene buttons and syncing buttons to bulbs where some of the bulbs are in multiple bulb groups gets tedious.