host: chelsty-infra

uplink:
  type: lte
  connectivity: intermittent
  public_reachability: not-assumed

tailscale:
  enabled: true
  host_ip: 100.122.201.22
  role: internal-management

exposure_classes:
  local-only:
    description: LAN, host, or container-network access only.
  tailscale-internal:
    description: Tailnet access only; no public ingress dependency.
  public:
    description: Public internet exposure through an explicitly defined ingress host.

networks:
  home_automation_lan:
    purpose: MQTT broker, Zigbee coordinator, and local device control.
    offline_required: true
    internet_required_for_core_operation: false

devices:
  slzb-06u:
    role: zigbee-coordinator
    vendor_model: SLZB-06U
    connection_type: network
    transport:
      primary: ethernet
      secondary: wifi
      usb: false
    address:
      hostname: slzb-06u.local
      ipv4: null
      port: 6638
      protocol: tcp
    consumers:
      - zigbee2mqtt
    placement: chelsty-home-automation-lan
    operational_notes:
      - Treat the coordinator as a network appliance, not a USB dongle.
      - Do not configure /dev/ttyUSB0 or other host USB device mappings for this coordinator.
      - Prefer static DHCP or a reserved IP once the LAN addressing plan is known.
    backup:
      recommended: true
      include:
        - coordinator firmware version
        - coordinator configuration export
        - Zigbee network backup from Zigbee2MQTT
        - device IEEE address and network parameters
      notes:
        - Keep a copy of coordinator state with the Zigbee2MQTT backup set.
        - Record the reserved IP or DNS name used by Zigbee2MQTT.
