Skip to content

telard-pixel/unifi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

UniFi Network (API Key) — Home Assistant Custom Integration

hacs_badge HA Version Version License

Integrazione per Home Assistant che si connette al controller UniFi OS 3.2+ / 5.x tramite Integration API v1 con autenticazione a chiave API nativa (no username/password, no cookie session).


✨ Funzionalità

Piattaforma Entità Descrizione
sensor sensor.unifi_wifi_clients Numero client wireless connessi
sensor sensor.unifi_wired_clients Numero client cablati connessi
sensor sensor.unifi_<device> Stato online/offline di ogni dispositivo UniFi
sensor sensor.unifi_<device>_firmware Disponibilità aggiornamento firmware
binary_sensor binary_sensor.unifi_<device>_online Connettività dispositivo (class: connectivity)
binary_sensor binary_sensor.unifi_<device>_update Aggiornamento firmware disponibile (class: update)
device_tracker device_tracker.<client_name> Presence detection per ogni client di rete

📋 Requisiti

  • Home Assistant Core ≥ 2024.1
  • UniFi OS 3.2 o superiore (UniFi OS 5.x raccomandato)
  • Controller raggiungibile dalla rete di Home Assistant
  • Una API Key generata dalla console UniFi OS

⚠️ Non compatibile con controller UniFi self-hosted basati su Debian/bare-metal senza UniFi OS (es. UniFi Network Application standalone). Richiede UniFi OS con Integration API v1.


🔑 Come generare la API Key

  1. Accedi alla console UniFi OS: https://<ip-controller>
  2. Vai in Settings → API Keys
  3. Clicca Create API Key
  4. Assegna un nome (es. homeassistant) e salva la chiave generata

🚀 Installazione

Tramite HACS (consigliato)

  1. In HACS, vai su Integrations → ⋮ → Custom repositories
  2. Aggiungi l'URL di questo repository, categoria Integration
  3. Cerca UniFi Network (API Key) e installa
  4. Riavvia Home Assistant

Manuale

  1. Scarica l'ultima release (.zip) dalla pagina Releases
  2. Estrai la cartella unifi_api/ in <config>/custom_components/
  3. La struttura finale deve essere:
    custom_components/
    └── unifi_api/
        ├── __init__.py
        ├── api.py
        ├── binary_sensor.py
        ├── config_flow.py
        ├── const.py
        ├── coordinator.py
        ├── device_tracker.py
        ├── manifest.json
        ├── sensor.py
        ├── strings.json
        └── translations/
            └── en.json
    
  4. Riavvia Home Assistant

⚙️ Configurazione

  1. Vai in Impostazioni → Dispositivi e Servizi → Aggiungi integrazione
  2. Cerca UniFi Network (API Key)
  3. Compila il modulo:
Campo Descrizione Default
Host IP o hostname del controller UniFi
Porta Porta HTTPS del controller 443
API Key Chiave API generata in precedenza
Verifica SSL Abilita verifica certificato SSL false

Il Site ID viene rilevato automaticamente al primo collegamento. Se hai più siti, verrà selezionato il primo disponibile.


🔄 Aggiornamento dati

L'integrazione interroga il controller ogni 30 secondi (polling locale). Non richiede accesso a internet.


📦 Struttura del progetto

unifi_api/
├── __init__.py          # Setup/unload entry, piattaforme
├── api.py               # Client HTTP aiohttp per Integration API v1
├── binary_sensor.py     # Binary sensor: online, firmware update
├── config_flow.py       # UI config flow (API Key + host)
├── const.py             # Costanti, endpoint API, domain
├── coordinator.py       # DataUpdateCoordinator (polling 30s)
├── device_tracker.py    # Presence detection client di rete
├── manifest.json        # Metadati integrazione
├── sensor.py            # Sensor: contatori client, stato device, firmware
├── strings.json         # Stringhe UI (italiano)
└── translations/
    └── en.json          # Stringhe UI (inglese)

🐛 Changelog

v1.1.0 — Bug Fix Release

Fix deprecazioni HA Core (compatibilità futura garantita):

File Fix
device_tracker.py ScannerEntity importato da homeassistant.components.device_tracker.config_entryhomeassistant.components.device_tracker
config_flow.py FlowResult da homeassistant.data_entry_flowConfigFlowResult da homeassistant.config_entries
device_tracker.py DeviceInfo da homeassistant.helpers.entityhomeassistant.helpers.device_registry
sensor.py DeviceInfo da homeassistant.helpers.entityhomeassistant.helpers.device_registry
binary_sensor.py DeviceInfo da homeassistant.helpers.entityhomeassistant.helpers.device_registry

Tutti questi alias deprecati verranno rimossi in HA Core 2027.x. Aggiornamento consigliato.

v1.0.0 — Release iniziale

  • Supporto Integration API v1 (UniFi OS 3.2+ / 5.x)
  • Autenticazione con API Key nativa
  • Sensor: contatori client WiFi/cablati, stato dispositivi, firmware
  • Binary sensor: online/offline, aggiornamento firmware
  • Device tracker: presence detection per tutti i client di rete
  • Config flow UI completo
  • Rilevamento automatico Site ID

🛠️ Risoluzione problemi

Il controller non risponde (cannot_connect)

  • Verifica che l'IP/hostname sia raggiungibile da HA: ping <ip-controller>
  • Controlla la porta (di default 443)
  • Se usi un certificato self-signed, disabilita Verifica SSL

API Key non valida (invalid_auth)

  • Rigenera la chiave dalla console UniFi OS
  • Assicurati che la chiave abbia i permessi di lettura

Endpoint 404

  • Verifica che il controller sia UniFi OS 3.2 o superiore
  • L'Integration API v1 non è disponibile su UniFi Network Application standalone

Nessun device tracker creato

  • I client vengono rilevati solo se connessi al momento del polling
  • Attendi un aggiornamento (max 30 secondi) o riavvia l'integrazione

📄 Licenza

MIT License — vedi LICENSE


🙏 Credits

Sviluppato per Home Assistant con supporto all'UniFi Integration API v1.
API reference: developer.ui.com/unifi-api

About

UniFi integration for HomeHassistant

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages