Network Infrastructure¶
Overview¶
| Layer | Hardware | Role |
|---|---|---|
| Gateway | Eero Pro mesh | 1 Gbps fiber — WiFi throughout |
| Core switch | TP-Link TL-SG116 (16-port unmanaged) | LAN backbone in SMC |
| Patch panel | VCELINK 24-port Cat6A keystone | Structured wiring termination in SMC |
| Inter-floor backbone | ScreenBeam MoCA adapters + quad-shield RG6 coax | Ethernet over coax between floors |
SMC contents: Mini S13 PC (HAOS) · MoCA adapter · TP-Link switch.
Cabling¶
Mix of Cat6 (most runs) and MoCA (floors without direct Cat6). Quad-shield RG6 coax on MoCA runs between floors provides reliable gigabit-class throughput without new wiring.
Zigbee Coordinator Placement¶
ZBT-2 USB dongle → Sabrent USB 2.0 hub → extension cable → away from Eero
Zigbee 2.4 GHz signal competes with WiFi channels 1, 6, and 11. Channel 25 (chosen) maps to ~2.475 GHz — clear of all standard WiFi channels. Physical separation from the Eero gateway reduces interference further.
Coordinator placement matters
Keep the ZBT-2 dongle at least 1 meter from the Eero and any other 2.4 GHz radio. A USB extension cable solves this cheaply.
Zigbee Mesh Best Practices¶
- Pair mains-powered devices first (switches, plugs) — they form the mesh backbone that battery sensors route through
- Wait 24 hours after adding powered devices before testing signal — neighbor tables rebuild gradually
- Battery-powered devices (sensors, remotes) rejoin automatically after coordinator restarts via channel scan
- ZHA coordinator migration: Use the ZHA radio migration tool — no re-pairing required
- Channel 25 deliberately chosen to avoid 2.4 GHz WiFi overlap
IP Addressing¶
HA instance local IP is stored in secrets.yaml (not in repo). Reference: 192.168.x.x.
All SSH/SCP commands in CLAUDE.md and this documentation use 192.168.x.x as a placeholder — substitute the real IP from secrets.yaml.
Internet Speed Monitoring¶
The Speedtest.net integration runs periodic tests and exposes sensor.speedtest_download, sensor.speedtest_upload (Mbit/s), and sensor.speedtest_ping (ms). Healthy download is 300+ Mbit/s.
Alerting — two automations (automations.yaml Section 16) watch for the Eero WAN link degrading to "100mb mode" (auto-negotiating 100BASE-TX instead of gigabit, which reads ~94 Mbit/s):
- Internet Speed — Degraded: download below 100 Mbit/s sustained for 90 min → push to Louis, latches
input_boolean.internet_speed_degraded - Internet Speed — Recovered: download back above 150 Mbit/s → "recovered" push, clears the latch
The 100/150 hysteresis gap and the latch helper prevent flapping and duplicate alerts. See docs/automations.md Section 16 for full detail. (Catches slow, not a full outage — a downed line just freezes the sensor at its last value.)
Visualization — three Grafana panels in the 🌐 Internet row of the Home Intelligence dashboard: Internet Download and Internet Upload (Mbit/s) and Internet Ping (ms), each a separate time series fed from InfluxDB. Use Grafana's time picker to choose the window (e.g. last 7 days). Panel definitions live in grafana/dashboard.json (see docs/grafana.md).