Tech tips & other words

Category: Front Page (Page 1 of 10)

The network settings that make HomeKit and Matter actually work on Unifi hardware

What are the network settings that make HomeKit and Matter actually work on Unifi hardware?

If you’ve built a smart home around HomeKit, Matter, or Thread-enabled devices, you’ve likely run into this frustrating situation:

Everything pairs fine… until it doesn’t.

Lights become “No Response,” devices vanish from the Home app, AirPlay targets stop showing up, or Matter devices refuse to pair. These issues are almost never caused by the devices themselves. The real problem is network multicast handling — especially on UniFi networks.

HomeKit and Matter rely heavily on multicast discovery, and most networks don’t handle multicast correctly out of the box.

If you’re using a UDM / UDM Pro / UDR / Dream Machine SE/Dream Machine Pro Max with UniFi switches and APs, the fix is simple and extremely effective.


Recommended UniFi Network Settings

Setting Value Reason
mDNS Enabled Required for HomeKit & Matter device discovery
IGMP Snooping Disabled Prevents multicast packets from being dropped
IGMP Proxy Enabled Keeps multicast groups active across APs and switches
Spanning Tree Protocol RSTP Fast recovery from any accidental loop conditions

This combination dramatically increases reliability for HomeKit, AirPlay, Matter, and Thread accessories.

Note on LLDP / LLDP-MED

You may see LLDP or LLDP-MED mentioned in UniFi port details, especially on SFP uplinks. This is normal. UniFi switches and access points advertise LLDP by default to help identify devices and port topology. It has no impact on HomeKit, Matter, or multicast behavior, and there is nothing you need to configure. If you don’t see a toggle for LLDP in your controller, that’s expected — simply leave it as-is.


Why These Settings Matter

mDNS (Bonjour)

HomeKit devices announce their presence via multicast DNS:

“Is there a light here?”
“Yes — I’m Hue Bulb A23!”

If mDNS is off, devices can’t discover each other. It must remain enabled.

IGMP Snooping

In theory, it optimizes multicast traffic. In practice, many smart home devices:

  • Sleep to save power
  • Don’t send proper group-join updates
  • Stop receiving multicast broadcasts as a result

When IGMP Snooping is disabled, discovery traffic flows normally.

IGMP Proxy

Once Snooping is disabled, something must maintain group membership. IGMP Proxy does exactly that — especially important when:

  • You have multiple UniFi access points
  • You use HomePod or Apple TV as a Thread Border Router
  • You add Matter devices across rooms or floors

This is the key to keeping Matter devices reliably visible across the whole home.


Why This Helps Thread Networks

Thread creates a mesh network that bridges into your Wi-Fi network via devices like:

  • HomePod mini
  • Apple TV 4K with Ethernet
  • Eero 6/6E routers
  • Nanoleaf border router devices

For Matter to work consistently, multicast must be passed between Wi-Fi and Thread seamlessly. This configuration ensures that happens.


Example Network

UDM Pro ? US-24-PoE switch ? UniFi APs
                                ?
                      HomeKit / Matter Devices

With the settings above, this layout works reliably and consistently — no VLAN tricks or workarounds required.


Final Thoughts

If your smart home feels glitchy or inconsistent, it’s likely not the devices — it’s the network’s multicast handling.

Turning on mDNS, turning off IGMP Snooping, and enabling IGMP Proxy makes HomeKit and Matter devices:

  • Discover faster
  • Stay connected longer
  • Pair more reliably
  • Stop randomly dropping offline

Small change. Big improvement.

Can AI really hold its own as a coding partner?

My curiosity got the best of me: can AI really hold its own as a coding partner? Can it perform at the level of a senior developer—making architectural decisions, interpreting requirements, and writing production-grade code—or is it only suited to junior-level work (if that)? I wanted answers. I had no idea how deep the rabbit hole would go.

Cursor.com, the new darling of AI-powered IDEs, was my choice for this project. It’s an AI supercharged version of Microsoft’s Visual Studio Code. At the time, Cursor’s operating model was unique: mix and match large language models to inspect code and documentation, then either suggest changes (“Ask” mode) or execute them (“Agent” mode) across the entire codebase. Enormous potential — especially for full-stack projects, where developers constantly switch between languages and frameworks. So I decided to throw it a real challenge: a brand-new full-stack web and mobile app project.

My approach was simple: let AI drive. I would act as the product owner and technical interviewer, not the hands-on developer. With decades in software, this was harder than it sounds — my instinct was to intervene, but I’d try to resist —guiding with prompts and requirements while letting the AI make the technical calls.

OMG.

The plan was to see whether AI could handle everything from requirements gathering to code generation across multiple languages. The project would include:

  • A Slim PHP backend API
  • A MySQL data store
  • A React frontend
  • A Swift-based iOS app
  • A high-performance AWS Lambda endpoint for generating pre-signed S3 URLs

Given the simplicity of that Lambda function, it was a great testbed. AI would implement it in Rust, Go, and Node.js, comparing both AI competence and runtime performance. We would also integrate services from AWS and Cloudflare, testing whether the models could interpret live documentation — or whether they’d rely on stale, pre-training knowledge.

After nearly 1,500 hours collaborating with various AI agents in Cursor (and elsewhere), I can say this: the most surprising discoveries weren’t about the AI.

They were about me.

Stay tuned — the next post digs into how the experiment unfolded, what worked, what failed spectacularly, and how I adjusted (or didn’t).

Clear Mac OS DNS cache via command line

The method for clearing or flushing the local cache in Mac OS has changed over the years. Here are all the Mac OS versions on one page that details how to clear Mac OS DNS cache via command line.

Clear your DNS cache on macOS Tahoe 26, macOS Sequoia 15, macOS Sonoma 14, macOS Ventura 13, macOS Monterey 12, macOS Big Sur 11, macOS 10.15 Catalina, macOS 10.14 Mojave, macOS 10.13 High Sierra, macOS 10.12 Sierra, OS X 10.11 El Capitan, OS X 10.10 Yosemite, OS X 10.9 Mavericks, OS X 10.8 Mountain Lion, OS X 10.7 Lion, OS X 10.6 Snow Leopard, and OS X 10.5 Leopard using the following Terminal commands:

Continue reading

High impedance headphones on MacBook Pro 2021

Good news for audiophiles out there. High impedance headphones are supported on m1 MacBook Pros. Apple’s new laptops feature an adaptive voltage headphone amplifier, meaning it optimizes itself to the headphones you’re using. With these two models, gone is the concern whether 80 ohm or 250 ohm headphones will work.

“When you connect headphones with an impedance of less than 150 ohms, the headphone jack provides up to 1.25 volts RMS. For headphones with an impedance of 150 to 1k ohms, the headphone jack delivers 3 volts RMS. This may remove the need for an external headphone amplifier.”

So, if you love Beyerdynamic’s DT 990 Pro 250 ohm Open-back Studio Headphones, you can rest assured that your new MacBook Pro will power them with aplomb.

 

Make your Mac chime at startup again

I miss the startup chime on my MacBook Pro. Make your Mac chime on startup again!

To enable it, open up terminal and type:

sudo nvram StartupMute=%00

To disable it, either reset your parameter RAM by pressing Command-Option-P-R at startup, or in terminal type:

sudo nvram StartupMute=%01
« Older posts