Skip to content

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

  1. Pair mains-powered devices first (switches, plugs) — they form the mesh backbone that battery sensors route through
  2. Wait 24 hours after adding powered devices before testing signal — neighbor tables rebuild gradually
  3. Battery-powered devices (sensors, remotes) rejoin automatically after coordinator restarts via channel scan
  4. ZHA coordinator migration: Use the ZHA radio migration tool — no re-pairing required
  5. 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).