TP-Link Omada Smart-Home-Integration, kostenlos und Open Source

Omada-Netzwerk: Anwesenheit, Access Points, Switches, Gateway und WAN, PoE.
Bringt dein TP-Link-Omada-Netzwerk in Gladys: Wer ist zu Hause (die Handys im WLAN), der Zustand deiner Access Points, Switches und deines Gateways, deine Internetverbindung und ein paar Befehle für deine Szenen.
Keine Verbindung zu TP-Link. Ohne die Hardware entwickelt: Rückmeldungen sind willkommen — die Integration ist gegen einen nachgebauten Controller getestet, der aus veröffentlichten Antworten echter Controller besteht, noch nicht gegen einen echten.
Überblick
- Anwesenheit: Jedes Handy, jeder Laptop und jedes Gerät im Netzwerk kann ein Anwesenheitssensor werden, mit einer Abwesenheitsverzögerung, damit ein Handy im Ruhemodus nicht alle paar Minuten „geht“.
- Omada-Geräte: ein Gladys-Gerät pro Gateway, Switch und Access Point: online, verbundene Clients, Betriebszeit, CPU- und Speicherauslastung, Client-Durchsatz, PoE-Leistung eines PoE-Switches und beim Gateway der Internetzustand und Durchsatz jedes WAN-Ports.
- Szenen-Auslöser: Ein neues unbekanntes Gerät tritt dem Netzwerk bei, ein Omada-Gerät geht offline, ein WAN-Port verliert das Internet oder bekommt es zurück.
- Befehle (standardmäßig aus): das PoE eines Switch-Ports ein- oder ausschalten, ein Omada-Gerät neu starten, eine SSID (das Gäste-WLAN) ein- oder ausschalten.
- Dashboard-Widget: Clients, Internet-Durchsatz, WAN-Ports und Omada-Geräte offline auf einen Blick.
Voraussetzungen
- Ein Omada-Controller: Software Controller, OC200 oder OC300, von Gladys im lokalen Netzwerk erreichbar. Ein Cloud-Controller kann über seine Open-API-Adresse funktionieren (nicht getestet).
- Empfohlen: die Open API (Controller 5.9 oder neuer). Öffne im Controller Globale Ansicht → Einstellungen → Plattformintegration → Open API, füge eine Anwendung im Modus Client hinzu, gib ihr die Site, die du verfolgen willst, und notiere ihre Client-ID und ihr Client-Secret. Eine Rolle Betrachter reicht zum Lesen; die Befehle brauchen eine Rolle, die die Site ändern darf (Administrator).
- Oder ein lokales Administratorkonto (jede Controller-Version 5.x): Lege im Controller ein eigenes lokales Konto an. In diesem Modus liest die Integration nur: keine Befehle.
Konfiguration
In Gladys unter Integrationen → TP-Link Omada → Konfiguration:
| Feld | Was du eingibst |
|---|---|
| Adresse des Controllers | https://<Adresse>:8043 für den Software Controller, https://<Adresse> für einen OC200 / OC300. |
| Verbindungsart | Open API (empfohlen) oder lokales Administratorkonto (nur lesen). |
| Client-ID / Client-Secret der Open API | Die oben angelegte Anwendung (Open-API-Modus). |
| Benutzername / Passwort des lokalen Kontos | Das eigene Konto (Modus mit lokalem Konto). |
| Site | Der Name der Omada-Site (standardmäßig Default). |
| Selbstsigniertes Zertifikat akzeptieren | Der Controller hat ab Werk ein selbstsigniertes Zertifikat: Schalte das ein, außer du hast ein vertrauenswürdiges installiert. |
| Omada-ID | Leer lassen für einen lokalen Controller. Nur Cloud-Controller: die Omada-ID seiner Open-API-Seite. |
| Netzwerk-Clients anbieten | Zeigt die Clients, die online sind, im Tab „Entdecken“, damit du die hinzufügst, die du verfolgen willst. |
| Abwesenheitsverzögerung | Minuten, die ein Client weg sein muss, bevor er als abwesend gilt (standardmäßig 5). |
| Aktualisierungsintervall | 30 s, 1 min (Standard), 2 min oder 5 min. |
| PoE-Steuerung / Neustarts / SSID-Steuerung erlauben | Jeder Befehl ist standardmäßig aus: Schalte nur ein, was deine Szenen brauchen. |
| Sprache der Funktionsnamen | Standardmäßig Französisch; die Namen werden beim Hinzufügen eines Geräts festgelegt. |
Klicke dann auf Verbindung testen: Die Meldung nennt die Site, die Version des Controllers und was gefunden wurde. Öffne den Tab Entdecken, um die Omada-Geräte und die Clients hinzuzufügen, die du verfolgen willst.
Was die Integration vom Controller verlangt. Ein Auslesen der Site pro Aktualisierungsintervall: die Geräteliste, die verbundenen Clients, der WAN-Zustand des Gateways und der PoE-Verbrauch (4 bis 6 Anfragen). Omada-Controller nehmen etwa 10 Anfragen pro Sekunde an; die Integration verteilt ihre Anfragen und schickt nie mehr als eine gleichzeitig. Ein Dashboard zu öffnen kostet den Controller nichts: Das Widget zeigt das letzte Auslesen. Das Zugriffstoken der Open API liegt nur im Speicher und wird bei Ablauf (zwei Stunden) mit den Client-Zugangsdaten erneuert.
Geräte
Gateway, Switch, Access Point (je ein Gladys-Gerät, benannt wie im Controller):
| Funktion | Einheit | Geräte |
|---|---|---|
| Online | 0 / 1 | alle |
| Verbundene Clients | Anzahl | alle (die damit verbundenen Clients) |
| Betriebszeit | Stunden | alle |
| CPU-Auslastung, Speicherauslastung | % | alle |
| Client-Download / Client-Upload | Mbit/s | Switch, Access Point |
| PoE-Leistung | W | PoE-Switch |
| Internet, Download, Upload je WAN-Port | 0 / 1, Mbit/s | Gateway |
Der Client-Durchsatz eines Switches oder Access Points ist die Summe der Echtzeitaktivität der damit verbundenen Clients, wie der Controller sie meldet — nicht der Verkehr seines Uplinks.
Netzwerk-Client (ein Handy, ein Laptop…): eine Funktion Anwesenheit (presence-sensor,
ja/nein). Der Wert ist 1, solange der Client verbunden ist, und fällt auf 0, sobald er länger als die
Abwesenheitsverzögerung fehlt. Ein Controller, der nicht antwortet, lässt nie jemanden gehen: Die
Anwesenheit wird nur bei einem erfolgreichen Auslesen bewertet. Hinzugefügte Clients bleiben im Tab
„Entdecken“, auch wenn sie weg sind.
Alles ist nur lesbar: Die Befehle sind Aktionen (siehe unten), absichtlich nie Schalter, die ein Sprachassistent oder ein falscher Klick umlegen könnte.
Widget
Omada-Netzwerk: Kacheln für die Clients (gesamt, WLAN, Kabel) und den Internet-Download und -Upload, dann der Zustand jedes WAN-Ports (mit seiner öffentlichen IP-Adresse), die Anzahl der Omada-Geräte online und die Namen der Geräte, die offline sind. Es zeigt das letzte Auslesen und aktualisiert sich damit.
Szenen-Auslöser
| Auslöser | Filter | Variablen |
|---|---|---|
| Neuer unbekannter Netzwerk-Client | Verbindung (WLAN / Kabel), SSID, Gastnetzwerk | Name, MAC-Adresse, IP-Adresse, SSID, Verbindung, verbunden mit |
| Omada-Gerät offline | Gerät, Typ (Gateway, Switch, Access Point) | Gerätename, Modell, Typ |
| WAN weg oder zurück | Änderung (Internet weg / zurück), Gateway | Änderung, WAN-Port, Gateway, WAN-IP-Adresse |
- Neuer unbekannter Client löst bei einer MAC-Adresse aus, die noch nie auf der Site war. Das erste
Auslesen nach der Installation lernt nur die vorhandenen Clients; die bekannten MAC-Adressen werden in
/datagespeichert (nur MAC-Adressen, sonst nichts). - Gerät offline deckt alle Omada-Geräte der Site ab, auch die nicht zu Gladys hinzugefügten, und liefert ihren Namen für die Benachrichtigung.
- Nur Übergänge lösen aus: Ein Neustart von Gladys, der Integration oder des Controllers löst nie etwas aus.
Befehle
Nur im Open-API-Modus, jeder in der Konfiguration eingeschaltet. Als Knöpfe im Konfigurationsbildschirm und als Szenen-Aktionen verfügbar:
- PoE eines Switch-Ports: Wähle den Switch, die Portnummer und ein / aus. Der Port bekommt im Controller eine Profilüberschreibung, weil sich das PoE eines Ports, der seinem Profil folgt, nicht ändern lässt. Achtung: Wenn du das PoE abschaltest, geht aus, was am Port hängt — eine Überwachungskamera, ein Access Point, ein Telefon. Nutze es nur für das, was du wirklich ausschalten willst (einen Access Point nachts, ein Gerät zum Neustarten), nie für eine Kamera, die das Haus schützt.
- Ein Omada-Gerät neu starten: Das Gerät ist ein paar Minuten offline.
- Eine SSID ein- oder ausschalten: Gib den Netzwerknamen ein (z. B.
Gäste); er wird auf allen Access Points, die ihn senden, ein- oder ausgeschaltet.
Jeder Befehl schreibt eine Zeile in die Protokolle der Integration.
Szenenbeispiele
- Niemand zu Hause: Wenn die Anwesenheit aller Handys 0 ist, das Haus auf abwesend stellen, das Licht ausschalten, die Alarmanlage scharf schalten.
- Gäste-WLAN nach Zeitplan: jeden Tag um 8:00 die Szenen-Aktion Eine SSID ein- oder ausschalten →
Gäste, ein; um 23:00 aus. - Internet weg: Auslöser WAN weg oder zurück, Änderung Internet weg → eine Nachricht senden „{{triggerEvent.data.port_name}} hat kein Internet mehr“.
- Eindringling im WLAN: Auslöser Neuer unbekannter Netzwerk-Client, SSID
Zuhause→ eine Nachricht mit {{triggerEvent.data.name}} und {{triggerEvent.data.ip}} senden. - Access Point nachts aus: um 0:30 PoE eines Switch-Ports aus für den Port des Garten-Access-Points; um 7:00 ein.
Fehlerbehebung
- „Zertifikat abgelehnt“: Schalte Selbstsigniertes Zertifikat akzeptieren ein.
- „Zugangsdaten abgelehnt“: Prüfe Client-ID und Secret (Open API) oder Benutzername und Passwort (lokales Konto). Eine im Controller gelöschte oder geänderte Open-API-Anwendung bekommt ein neues Secret.
- „Site nicht gefunden“: Die Meldung listet die Sites, die mit diesen Zugangsdaten sichtbar sind; übernimm den Namen.
- „Zugriff verweigert“: Gib der Open-API-Anwendung (oder dem Konto) Zugriff auf die Site; für die Befehle eine Rolle, die die Site ändern darf.
- „antwortet nicht wie ein Omada-Controller“: Prüfe den Port (8043 für den Software Controller) und ob die Open API vorhanden ist (Controller 5.9 oder neuer).
- Ein Befehl meldet einen Fehler auf einem Switch: Manche Switches (Agile-Serie) lehnen den PoE-Befehl der Open API ab; die Meldung des Controllers wird angezeigt.
- Mehr Details: Setze die Umgebungsvariable
LOG_LEVELaufdebug. Die Protokolle enthalten nie ein Geheimnis.
Grenzen
- Ohne die Hardware entwickelt: Die Form der Anfragen stammt aus dem Zugriffsleitfaden der Open API und aus Clients, die mit echten Controllern laufen; Rückmeldungen aus der Praxis sind willkommen.
- Der Modus mit lokalem Konto liest nur: Die Befehle brauchen die Open API.
- Die Anwesenheit folgt dem WLAN: Ein Handy, das im Tiefschlaf länger als die Verzögerung aus dem WLAN geht, gilt als abwesend. Erhöhe die Verzögerung bei Bedarf.
- Handys mit einer privaten (zufälligen) MAC-Adresse pro Netzwerk sind in jedem Netzwerk, dem sie beitreten, ein neuer Client.
- Der Client-Durchsatz eines Switches oder Access Points ist die Summe der Aktivität seiner Clients, kein Portzähler. Die WAN-Raten sind die, die der Controller meldet.
- Die Funktionsnamen werden von Gladys beim Hinzufügen eines Geräts festgelegt: Ändere die Sprache, bevor du sie hinzufügst.
- Ein WAN-Port des Gateways, der später erscheint (ein neues WAN), zeigt im Tab „Entdecken“ einen Knopf „Aktualisieren“.
Konfigurationseinstellungen
Diese Einstellungen fragt TP-Link Omada in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Omada-Controller | section | Nein | Software Controller, OC200 oder OC300. Empfohlen: die Open API (Controller 5.9 oder neuer), mit einer Anwendung, die du unter Globale Ansicht > Einstellungen > Plattformintegration > Open API im Client-Modus anlegst. Der Modus mit lokalem Konto liest nur. |
| Adresse des Controllers | string | Ja | Mit Port: 8043 für den Software Controller, keiner für einen OC200 oder OC300. |
| Verbindungsart | select | Ja | |
| Client-ID der Open API | string | Nein | |
| Client-Secret der Open API | secret | Nein | |
| Benutzername des lokalen Kontos | string | Nein | Nur im Modus mit lokalem Konto: ein eigenes Administratorkonto des Controllers. |
| Passwort des lokalen Kontos | secret | Nein | |
| Site | string | Nein | Name der Omada-Site, wie im Controller angezeigt. |
| Selbstsigniertes Zertifikat akzeptieren | boolean | Nein | Der Controller hat ab Werk ein selbstsigniertes Zertifikat: Schalte das ein, außer du hast ein vertrauenswürdiges installiert. |
| Omada-ID (Cloud-Controller) | string | Nein | Leer lassen für einen lokalen Controller. Für einen Cloud-Controller: die Omada-ID seiner Open-API-Seite, mit seiner Open-API-Adresse oben. |
| Anwesenheit und Aktualisierung | section | Nein | Die Clients, die online sind, erscheinen im Tab „Entdecken“: Füge die Handys hinzu, die du verfolgen willst, jedes wird ein Anwesenheitssensor. |
| Netzwerk-Clients unter „Entdecken“ anbieten | boolean | Nein | |
| Abwesenheitsverzögerung (Minuten) | number | Nein | Wie lange ein Client weg sein muss, bevor er als abwesend gilt (Handys im Ruhemodus verlassen das WLAN eine Weile). |
| Aktualisierungsintervall | select | Nein | |
| Befehle (standardmäßig aus) | section | Nein | Nur im Open-API-Modus, mit einer Anwendung, die schreiben darf. Wenn du das PoE eines Ports abschaltest, geht aus, was daran hängt: eine Überwachungskamera, ein Access Point. Schalte nur ein, was deine Szenen brauchen. |
| PoE-Steuerung erlauben | boolean | Nein | |
| Neustarts erlauben | boolean | Nein | |
| SSID-Steuerung erlauben | boolean | Nein | |
| Sprache der Funktionsnamen | select | Nein | Gilt auch für die Meldungen der Integration. Die Namen werden beim Hinzufügen eines Geräts festgelegt. |
So installierst du TP-Link Omada in Gladys
- Öffne in Gladys Integrationen: TP-Link Omada erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-omada:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-omada.
TP-Link Omada benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
TP-Link Omada ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation