The Setup
Why This Is Hard
What Doesn't Work
- Enabling inter-VLAN routing alone: Traffic can flow, but Homebridge still can't discover devices and KLAP handshakes still fail.
- mDNS reflection (Avahi): Reflects mDNS traffic between VLANs — partially useful, but doesn't solve the KLAP authentication problem and introduces its own complexity.
- Cloud-based control: Works, but defeats the entire purpose of local control and introduces external dependency for a system that should work independently of internet connectivity.
The Solution: Direct IP Binding with Explicit JSON Configuration
Json
{
"platform": "TplinkSmarthome",
"addCustomCharacteristics": true,
"devices": [
{
"host": "192.168.x.x",
"port": 9999
},
{
"host": "192.168.x.y",
"port": 9999
}
]
}
Json
{
"host": "192.168.x.z",
"username": "tplink_account@email.com",
"password": "account_password"
}
Verifying the Setup
- Ping from Homebridge container to IoT device IP — confirms firewall permits the traffic
- curl/netcat to device port — confirms the service is reachable
- Homebridge plugin logs — confirm successful authentication and device control
- HomeKit command — end-to-end test from iPhone to physical device without internet