Hardware Inventory¶
Last Updated: 2026-07-19 Purpose: Single source of truth for all physical hardware. All other docs link here.
Servers¶
Primary Unraid NAS — Lotus(office outbuilding)¶
| Hostname | Lotus |
| IP | 192.168.1.80 |
| OS | Unraid |
| CPU | Intel Core i3-N305 (8 cores) |
| RAM | 32GB |
| Boot device | 28.9GB USB flash drive |
| Parity | 1× 12.7TB |
| Data drives | 1× 3.6TB (disk1), 1× 7.3TB (disk2), 1× 7.3TB (disk3) |
| Cache pool | 2× 931.5GB NVMe SSD |
| Usable storage | ~18.2TB |
| UPS backed | Yes — Back-UPS ES 850G2 (Office 1) |
| Always on | Yes |
Backup Unraid NAS — Cooper(living room)¶
| Hostname | Cooper |
| IP | 192.168.1.60 |
| OS | Unraid |
| CPU | Intel Celeron J4125 (4 cores, 2.0GHz) |
| RAM | 24GB |
| Boot device | 59.8GB |
| Parity | 1× 3.6TB |
| Data drives | 1× 3.6TB (disk1), 1× 3.6TB (disk2) |
| Cache pool | 1× 512GB SSD (2.5" SATA, bay 4) |
| Usable storage | ~7.2TB |
| UPS backed | Yes — Back-UPS ES 650G2 (Living Room) |
| Always on | Yes (backup target) |
Proxmox NUC — Pacific(bedroom)¶
| Hostname | Pacific (proxmox.local) |
| Model | Intel NUC NUC6CAYS (corrected 2026-07-19 — previously listed as NUC6CAYH, confirmed via dmidecode during the disk rebuild) |
| IP | 192.168.1.10 |
| OS | Proxmox VE 9.2.2 (Debian 13 Trixie, kernel 7.0.2-6-pve) — reinstalled 2026-07-19, was 8.4.17 |
| CPU | Intel Celeron J3455 (4 cores, 1.5GHz) |
| RAM | 16GB |
| Storage | 512GB Samsung 860 PRO SSD (primary, replaced 2026-07-19) + 29.1GB eMMC (onboard, unused) — original 238.5GB SanDisk SSD failed (climbing SMART uncorrectable-sector count), see Lessons Learned |
| UPS backed | Yes — Back-UPS ES 650G2 (Bedroom), USB direct to Pacific, NUT runs on the host itself — see Pacific server doc |
| Always on | Yes |
| Known issue | Cooling fan (AVC BAZB0508R5U) has worn-bearing noise, discovered 2026-07-19 — still functional, replacement part identified but not yet fitted |
Proxmox VMs / LXC Containers:
| ID | Type | Role | IP |
|---|---|---|---|
| VM 112 | VM | Home Assistant OS — ⚠️ currently running on Lotus instead as of 2026-07-19, see Pacific server doc | 192.168.1.12 |
| LXC 101 | LXC | AdGuard Home — primary DNS | 192.168.1.11 |
| LXC 103 | LXC | Tailscale exit node | — |
| LXC 108 | LXC | Frigate NVR (Docker inside) | 192.168.1.18 |
| LXC 130 | LXC | GMUPS-27 — UPS/NUT monitoring | — |
Desktop PC¶
Brabham(office outbuilding)¶
| Hostname | Brabham |
| IP | 192.168.1.40 |
| OS | Windows 11 |
| UPS backed | Yes — BVX2200Li-GR (Office 2) |
| Notes | Dan's main workstation. Backed up to Lotus via Veeam. |
Network Equipment¶
UniFi UCG Ultra — Gateway / Router¶
| Model | UniFi Cloud Gateway Ultra (UDRULT) |
| IP | 192.168.1.1 (LAN) / 192.168.99.81 (WAN1) |
| MAC | 9c:05:d6:59:ac:a3 |
| Firmware | 5.0.16 |
| Ports | 3 × GE LAN + 1 × GE WAN2 (port 4) + 1 × 2.5GE WAN1 |
| Location | Bedroom wardrobe |
| UPS backed | Yes — Bedroom UPS |
| Admin URL | https://192.168.1.1 |
| WAN1 | Vodafone ADSL — modem on 192.168.99.x subnet |
| WAN2 | Three LTE (backup) — Zyxel LTE3302-M432 on 192.168.2.x subnet, port 4 |
Zyxel LTE3302-M432 — Backup WAN Router¶
| Model | Zyxel LTE3302-M432 |
| IP | 192.168.2.254 (LAN management) |
| Firmware | V1.00(ABKQ.1)C0 |
| SIM | Three UK — LTE |
| Signal | -56 dBm RSSI (excellent) |
| Mode | Router mode (intentional — avoids management lockout; double NAT is harmless with Tailscale) |
| Location | Bedroom wardrobe |
| Connected to | UCG Ultra port 4 (WAN2) |
| Subnet | 192.168.2.0/24 |
| Admin URL | http://192.168.2.254 |
Switches¶
| Name | Model | IP | Location | Ports | Firmware | Uplink to |
|---|---|---|---|---|---|---|
| Bedroom Switch | UniFi USW Mini 5 (USMINI) |
192.168.1.2 | Bedroom wardrobe | 5 × GE | 2.1.6 | UCG Ultra Port 3 |
| Living Room Switch | UniFi Switch 8 60W (US8P60) |
192.168.1.3 | Living room | 8 × GE (ports 5–8 PoE) | 7.2.123 | Bedroom Switch Port 5 |
| Office Switch | UniFi USW Mini 5 (USMINI) |
192.168.1.4 | Office outbuilding | 5 × GE | 2.1.6 | Living Room Switch Port 2 |
Access Points¶
| Name | Model | IP | Location | Firmware | Uplink to |
|---|---|---|---|---|---|
| Bedroom AP | UniFi U7LT | 192.168.1.171 (DHCP) | Bedroom | 6.8.2 | UCG Ultra Port 2 |
| Living Room AP | UniFi U7PG2 | 192.168.1.123 (DHCP) | Living room | 6.8.2 | Living Room Switch Port 6 |
| Office AP | UniFi U7LT | 192.168.1.101 (DHCP) | Office outbuilding | 6.8.2 | Office Switch Port 3 |
All three APs broadcast all four SSIDs on both 2.4 GHz and 5 GHz.
UPS Devices¶
| Location | Model | Protects |
|---|---|---|
| Bedroom | APC Back-UPS ES 650G2 | Pacific, router, switch, AP |
| Living Room | APC Back-UPS ES 650G2 | Cooper, switch, AP |
| Office 1 | APC Back-UPS ES 850G2 | Lotus, desk, switch, AP |
| Office 2 | APC BVX2200Li-GR | Brabham |
Smart Home Hardware¶
| Device | Location | Protocol |
|---|---|---|
| Sonoff Zigbee Bridge (Tasmota) | Living room | WiFi → HA — http://192.168.20.10/ — UPS backed |
| Coral TPU (PCIe M.2) | Pacific / Frigate LXC | AI inference for Frigate — passed through to LXC 108 |
| Reolink doorbell camera | Porch | WiFi / RTSP — https://192.168.20.132/ (IoT VLAN) |
| Awair Element (air quality) | Living Room | WiFi |
| Everything Presence One | Kitchen | ESPHome / WiFi |
| Zigbee TRVs | All rooms | Zigbee |
| Shelly Plus 2PM | Utility Room / Boiler | WiFi — powered from the boiler unit itself, not a separate mains socket |
| Boiler Plug (Third Reality UZ1) | Utility Room | Zigbee — in service 2026-07-29, replaced the Tasmota plug that failed 2026-07-24. Firmware updated on install. power_on_behavior: on (boiler regains power after an outage) and metering_only_mode: on (relay forced ON, cannot be switched off). Direct link to the coordinator. sensor.boiler_plug_power reads 0 W at boiler standby — below the plug's resolution, so never use power > 0 to test for mains; use plug availability or sensor.boiler_plug_voltage. |
| Lotus Plug (Third Reality UZ1) | Office | Zigbee — in service 2026-07-28, replaced the Tasmota "Lotus Server Plug" whose watchdog resets were rebooting Lotus. metering_only_mode: on (relay forced ON, cannot cut power to the NAS). Feeds the Homelab Dashboard infrastructure power tiles via sensor.lotus_plug_power. Typical draw 14–75 W, avg ~29 W. |
| ~~Boiler smart plug (Tasmota)~~ | Utility Room | RETIRED. WiFi, NoT VLAN, firmware v10 (early purchase batch). Failed 2026-07-24 — see Lessons Learned. Also the confirmed source of three days of WiFi channel-6 jamming (2026-07-29 entry). Binned 2026-07-27. |
| Smart plugs (all protocols) | Various | 24 plugs across 5 protocol families — see the Smart Plug Register below. All 5 Tasmota units were brought to firmware 15.5.0 with fixed telemetry on 2026-07-29. |
| Kitchen Pi (Raspberry Pi CM4, Waveshare carrier) | Kitchen | WiFi (USB dongle), IoT VLAN 20 — 192.168.20.254. Debian 12 with the Pi kernel; HiFiBerry Pi Zero MiniAMP (PCM5102A + TPA3118) driving the kitchen speakers as a Squeezelite player — see Multiroom Audio |
| Sony HT-A9 | Living Room | WiFi, IoT VLAN 20 — 192.168.20.21. No wired audio input available (HDMI occupied, no optical or analogue), so Chromecast built-in is the only usable audio endpoint — see Multiroom Audio |
| Govee H5074 sensors | Office | Bluetooth |
| Home Assistant Voice Preview | Office | — |
| Alexa Echo devices | Kitchen, various rooms | WiFi |
| Motorised blind (Aqara E1) | Living Room | Zigbee |
| Develco ZHEMI101 (electricity meter interface) | Meter cupboard | Zigbee — optical pulse counter clipped to the meter's flash LED, configured for 2000 imp/kWh (replaced 2026-07) |
Smart Plug Register¶
Adopted 2026-07-29. Every plug carries a permanent tag encoding its connection type. Connection type is fixed in hardware, so the tag can never go stale; the role follows the tag and changes freely when a plug is redeployed.
| Prefix | Connection |
|---|---|
Pw |
WiFi (Tasmota, TP-Link Kasa) |
Pz |
Zigbee (Third Reality, Tuya, Salus) |
Pmw |
Matter over WiFi (Meross) |
Pmt |
Matter over Thread — reserved |
Pv |
Z-Wave — reserved (unlikely; Ring's Z-Wave is a closed ecosystem) |
Pb |
Bluetooth/BLE — reserved |
Only the P is capitalised. Numbers are zero-padded and restart per category. Format: Pw01 - Living Room Switch.
Why: an audit on 2026-07-29 found four independent naming layers had drifted apart — Tasmota DeviceName, the MQTT topic that seeds the HA entity ID, HA name_by_user, and the UniFi alias. One plug simultaneously claimed to be a dishwasher, a media plug and a network-switch plug. Trust the device name and area; never the entity ID or the UniFi alias.
Rules¶
- Entity IDs are permanent identifiers, not descriptions. They stay frozen at each plug's original role and must not be renamed — templates, dashboards and automations reference them (
sensor.cooper_energy_powerfeedsInfrastructure Total Power). - Never rename a Zigbee device's Z2M friendly name. It changes the MQTT topic and therefore the HA entity IDs. Put the tag in Z2M's
descriptionfield instead. - Setting a Z2M description needs no restart — publish to
zigbee2mqtt/bridge/request/device/optionswith{"id":"<ieee>","options":{"description":"..."}}. It applies live and persists toconfiguration.yaml. - Tasmota
DeviceName/FriendlyName1are safe to change — the MQTT topic istasmota_%06X, independent of the name. - Physically label the plug body. Neither the register nor an IP address tells you what a plug feeds without walking to it — that was the actual difficulty the audit ran into.
Register¶
| Tag | Role | Address | Vendor | Area |
|---|---|---|---|---|
| Pw01 | Spare — in the drawer (ex-Living Room Switch) | 192.168.30.52 (reserved) |
Tasmota LocalBytes | — |
| Pw02 | Living Room TV | 192.168.30.53 |
Tasmota LocalBytes | Living Room |
| Pw03 | Spare — labelled, in drawer | 192.168.30.54 |
Tasmota LocalBytes | — |
| Pw04 | Kettle | 192.168.30.57 |
Tasmota LocalBytes | Kitchen |
| Pw05 | Cooper | 192.168.30.59 |
Tasmota LocalBytes | Living Room |
| ~~Pw06~~ | FAILED — bin it (ex-Desktop) | 4c:eb:d6:11:11:23 |
Tasmota LocalBytes | — |
| Pw07 | Spare — prepared, in drawer | 192.168.30.62 |
Tasmota LocalBytes | — |
| Pw08 | undeployed (ex-Dehumidifier) | e0:98:06:f0:a9:74 |
Tasmota LocalBytes | Loft |
| Pw09 | Printer | KP105 | TP-Link Kasa | Office |
| Pw10 | Kitchen Speakers | KP105 | TP-Link Kasa | Kitchen |
| Pw11 | Christmas Tree Bottom | KP105 | TP-Link Kasa | Living Room |
| Pw12 | Christmas Tree Top | P100 | TP-Link Kasa | Living Room |
| Pz01 | Lotus | 0x4ce1755274040000 |
Third Reality UZ1 | Office |
| Pz02 | Boiler | 0x4ce17552707b0000 |
Third Reality UZ1 | Utility Room |
| Pz03 | Turbo Trainer | 0x4ce1755270000000 |
Third Reality UZ1 | Loft |
| Pz04 | Dishwasher | 0x70b3d52b6005096d |
Tuya TS011F | Kitchen |
| Pz05 | WasherDryer | 0x70b3d52b6005098c |
Tuya TS011F | Kitchen |
| Pz06 | Shield TV Media | 0x70b3d52b60050efc |
Tuya TS011F | Living Room |
| Pz07 | Fridge | 0x001e5e090216a0ef |
Salus | Kitchen |
| Pz08 | undeployed (ex-Bedroom NUC) — identity resolved 2026-07-30, see below | 0x70b3d52b6004b608 |
Tuya TS011F | Bedroom |
| Pz09 | undeployed (ex-Turbo Trainer) | 0x70b3d52b6001b1b6 |
Tuya TS011F | Loft |
| Pmw01 | Pacific NUC | serial 510801240106766 |
Meross Mini | Bedroom |
| Pmw02 | Brabham | serial 510801240108438 |
Meross Mini | Office |
| Pmw03 | Desk Power Strip | serial 510801240105010 |
Meross Mini | Office |
Binned: the boiler's Tasmota plug — dead, and the confirmed source of three days of 2.4 GHz channel-6 jamming (2026-07-27).
Redeployment warning: Pw08 shares the LocalBytes v10 batch with two units that have now died. Fine for a lamp or occasional monitoring; not for anything continuous or critical. See the load-correlation rule in Lessons Learned.
Individual plug histories¶
Pw01 — removed from service 2026-07-29, stored as a spare (working, not failed). It fed the living-room network switch, which is now on a plain socket; Powercalc's daily_fixed_energy "Living Room Switch" entry (7 W, no source entity) covers that load, so nothing was lost from the energy picture. Its entities read unavailable while unplugged — expected, not a fault.
Its entity IDs were renormalised to the tag on 2026-07-30 — the first use of the spare-plug exception. All 20 entities went *.dishwasher* → *.pw01* (e.g. switch.dishwasher → switch.pw01), because the old IDs were fossils of a long-gone dishwasher role — the dishwasher runs on Pz04 now. Five references were rewritten in the same change: /config/.storage/energy (an energy-dashboard source) and cards in lovelace.claude_dev, lovelace.lovelace and lovelace.dc_tablet. Backups *.bak-20260730-pw01. Tasmota DeviceName was set to Pw01 - Spare the same day; MQTT rediscovery did not re-create the old IDs, because the unique_ids were unchanged, and the 214.575 kWh Total carried through. Fifteen stale per-entity friendly-name overrides were also cleared rather than re-set, so the next device rename propagates by itself.
Pw06 — confirmed FAILED 2026-07-29, binned. The second confirmed death in the LocalBytes v10 batch. On retest after ~7 months offline a 40-second button factory reset worked (it returned as a blank tasmota-111123-4387), it authenticated to 2SVT-NoT at −47 dBm and took its reserved DHCP address — but then passed essentially no traffic (rx_bytes/tx_bytes 0, receive rate stuck at 1.00 Mbps, UniFi reporting AP/Client Signal Balance: Poor), answered neither ICMP nor HTTP, and repeatedly dropped and re-associated. The fault is below the configuration layer — a reset cannot fix it.
Diagnostic worth reusing: UniFi's client detail panel gives Rx/Tx Rate and AP/Client Signal Balance. A strong RSSI combined with a 1 Mbps rate and "Poor" balance means the client's transmitter is weak — the AP can't hear it even though it hears the AP. That distinguishes a failing radio from a config or range problem, and neither RSSI alone nor a ping test would show it.
Don't leave a suspect plug powered "for testing." The boiler plug was left plugged into a living-room socket after it died and jammed 2.4 GHz channel 6 for three days before anyone connected the two. Unplug on diagnosis, not later.
Removing it from HA cleanly meant clearing its retained MQTT discovery messages, not deleting the registry entry — publish an empty retained payload to tasmota/discovery/<MAC>/config and /sensors, and HA removes the device and all 20 entities itself, with no chance of it reappearing on the next MQTT reload. Its 8 orphaned long-term statistics were cleared via websocket recorder/clear_statistics — that call returns clear_statistics timed out but still succeeds, asynchronously; re-check with recorder/list_statistic_ids rather than retrying.
Pw07 — recommissioned 2026-07-29 as a light-duty spare. Found already on 15.5.0, so its old Software Watchdog resets may have been the v10 firmware fault that the kettle's upgrade also cured — unproven, since it has never been re-tested under sustained load. Given it once took Lotus down twice, treat it as light-duty until it has run something non-critical for a good while. Its HA entities are still sensor.lotusserverplug_* / switch.lotusserverplug and came back to life on plug-in — they are not dead and must not be deleted.
Pz08 — identity resolved 2026-07-30; it was never actually a conflict. Pacific sits in the bedroom wardrobe, so Z2M's Plug Wardrobe Rack (naming the location) and HA's Bedroom NUC Plug (naming the load) were always the same plug described two ways. It is the superseded predecessor of Pmw01, the Meross Mini now monitoring Pacific — the same pattern as Pw06 → Pmw02 for Brabham. Its unavailable state is simply because it is unplugged; it has not dropped off the Zigbee mesh. Pacific's power monitoring is unaffected and live.
Technique worth reusing:
recorder/statistics_during_periodwithperiod: monthshows a sensor's coverage window even when the values come back empty. Here it dated the changeover independently of any naming evidence —sensor.bedroom_nuc_plug_energyhas stats from Jan 2025 ending ~Jun 2025, andsensor.pacific_nuc_plug_energyruns from Jun 2025 to present. One stops where the other starts. This reaches far beyond the ~9-day recorder retention.
⚠️ Pz08 and Pz09 are physically MISLAID as of 2026-07-30. Both undeployed Tuya TS011F units, whereabouts unknown — the two the physical-label pass could not cover. No functional impact. To identify one when it turns up: plug it in and see which entity family leaves unavailable in HA — Pz08 (0x70b3d52b6004b608) or Pz09 (0x70b3d52b6001b1b6). Faster than reading the IEEE off the body, and the two are otherwise indistinguishable. Note five plugs share the TS011F model (Pz04–Pz06, Pz08, Pz09) and are physically identical — the IEEE address is the only reliable way to tell them apart.
Standard Tasmota settings¶
Applied to all five WiFi plugs on 2026-07-29:
| Setting | Value | Why |
|---|---|---|
TelePeriod |
60 | 300 hid every event shorter than 5 minutes |
PowerDelta1 |
20 | forces an immediate publish on a 20 W change |
Sleep |
0 | dynamic sleep caused thousands of MQTT reconnects |
SetOption56 |
1 | scan for the strongest AP at boot |
NtpServer1/2 |
192.168.1.80 / 192.168.1.60 |
NoT has no internet; pool.ntp.org never resolves |