Zum Hauptinhalt springen

Pangolin Smart-Home-Integration, kostenlos und Open Source

Pangolin-Integration für Gladys Assistant

Überwache Pangolin-Standorte und -Ressourcen und schalte Ressourcen aus Gladys ein oder aus.

Diese Integration verbindet Gladys mit Pangolin, dem Tunnel-Reverse-Proxy, der deine Dienste im Internet erreichbar macht, ohne einen Port am Router zu öffnen. Sie funktioniert mit einem selbst gehosteten Pangolin ebenso wie mit Pangolin Cloud.

Was du in Gladys bekommst:

  • ein Gerät pro Standort (ein Newt-Tunnel, ein WireGuard-Standort, der Pangolin-Host selbst), mit seinem Online-Zustand und seinem Datenverkehr (eingehende Daten, ausgehende Daten);
  • ein Gerät pro öffentlicher Ressource (eine HTTPS-Seite auf deiner Domain, ein roher TCP/UDP-Port), mit einem Aktiviert-Schalter, den du aus Gladys ausschalten kannst, und ihrem Zustand;
  • Szenen-Auslöser, Szenen-Aktionen und ein Dashboard-Widget (Gladys 5.1 oder neuer).

Bevor du beginnst​

1. Die Integrations-API aktivieren (nur selbst gehostet)​

Pangolin Cloud hat sie bereits. Bei einem selbst gehosteten Pangolin (Community Edition) ist die Integrations-API standardmäßig aus: Füge dies in config/config.yml ein und starte Pangolin neu.

flags:
enable_integration_api: true

Die API lauscht dann im Pangolin-Container auf Port 3003 (oder 3004, je nach Version: Sieh in deiner Konfiguration unter server.integration_port nach). In der Pangolin-Dokumentation steht, wie du sie auf einer Domain wie https://api.example.com/v1 veröffentlichst.

2. Einen API-Schlüssel erstellen​

Öffne in Pangolin deine Organisation, dann API-Schlüssel → API-Schlüssel generieren. Gib ihm diese Berechtigungen:

BerechtigungWofür
Standorte auflistendie Standort-Geräte
Ressourcen auflistendie Ressourcen-Geräte
Organisation abrufenden Namen, den „Verbindung testen“ anzeigt (optional)
Ressource aktualisiereneine Ressource aus Gladys ein- oder ausschalten (optional)

Kopiere den Schlüssel sofort: Pangolin zeigt ihn nur einmal an. Er sieht so aus: abc123xyz.0123456789abcdef.

Verwende einen eigenen Organisations-Schlüssel für Gladys, nie einen Root-Schlüssel.

3. Die Organisations-ID finden​

Sie steht in der Adressleiste, wenn du deine Organisation in Pangolin aufrufst: https://pangolin.example.com/meine-org/settings → meine-org.

Konfiguration​

FeldWas eintragen
Lokale API-AdresseNur selbst gehostet: die Integrations-API in deinem Netzwerk, z. B. http://192.168.1.10:3004/v1. Sonst leer lassen.
Internet-API-AdressePangolin Cloud: https://api.pangolin.net/v1. Selbst gehostet: ihre öffentliche Adresse, z. B. https://api.example.com/v1.
API-SchlüsselDer oben erstellte Schlüssel.
Organisations-IDDie oben gefundene ID.
Aktualisierungsintervall (s)Wie oft Pangolin gelesen wird (30 bis 3600 s, standardmäßig 60). Jede Abfrage sind zwei Anfragen, unabhängig von der Anzahl der Geräte.

Trage mindestens eine der beiden Adressen ein. /v1 wird ergänzt, falls du es vergisst.

Drücke dann Verbindung testen: Es probiert jede eingetragene Adresse und sagt für jede, was Pangolin geantwortet hat — die Organisation, die Anzahl der Standorte und Ressourcen oder den Grund des Fehlers.

Lokal oder Internet: der Schalter „Lokale Verbindung bevorzugen“​

Sind beide Adressen eingetragen, ruft Gladys die auf, auf die der Schalter Lokale Verbindung bevorzugen zeigt, und weicht nur dann auf die andere aus, wenn die erste nicht antwortet (Netzwerk weg, Zeitüberschreitung, ein Proxy, der 502, 503 oder 504 antwortet). Ein falscher Schlüssel oder eine unbekannte Organisation lösen keinen Wechsel aus: Beide Adressen führen zum selben Server, und die Antwort wäre dieselbe.

Jedes Gerät zeigt die verwendete Adresse auf seinem Badge: lokal, Cloud oder nicht erreichbar. Ein oranger Punkt heißt, dass Gladys die Ausweichadresse nutzt: Es funktioniert, aber nicht so, wie du es wolltest — prüfe die bevorzugte Adresse.

Mit nur einer Adresse gibt es keine Ausweichadresse: Das Badge zeigt diese Adresse oder „nicht erreichbar“.

Geräte​

Öffne den Tab Entdecken der Integration: Jeder Standort und jede öffentliche Ressource der Organisation ist dort aufgelistet. Lege in Gladys die an, die du möchtest.

Standort​

FunktionWerteHinweise
Online1 = Tunnel aktiv, 0 = Tunnel getrenntFehlt bei einem „lokalen“ Standort: Pangolin meldet keinen Zustand
Data inMegabyteZähler von Pangolin, bis du ihn dort zurücksetzt
Data outMegabyteEbenso

Öffentliche Ressource​

FunktionWerteHinweise
Enabled1 = bereitgestellt, 0 = deaktiviertSteuerbar: Ausschalten lässt Pangolin die Ressource nicht mehr bereitstellen, ohne sie zu löschen
Healthy1 = fehlerfrei, 0 = gestörtErgebnis der Zustandsprüfungen ihrer Ziele. Leer, wenn die Ressource keine Zustandsprüfung hat

Private Ressourcen (die über einen Pangolin-Client erreicht werden) werden nicht abgedeckt.

Die Geräte behalten ihre Identität, wenn du einen Standort oder eine Ressource in Pangolin umbenennst: Sie hängen an den internen Nummern von Pangolin, nicht an Namen oder Domains. Ein in Pangolin gelöschter Standort oder eine gelöschte Ressource erscheint nicht erreichbar: Du kannst das Gerät in Gladys löschen.

Szenen und Dashboard (Gladys 5.1)​

Auslöser​

AuslöserFilterVariablen
Ein Pangolin-Standort geht online oder offlineStandort, neuer Status (online / offline)site_name, status
Der Zustand einer Pangolin-Ressource ändert sichRessource, neuer Zustandresource_name, address, health, previous_health
Pangolin antwortet nicht mehr oder wiederneuer Status (antwortet / antwortet nicht)status, reason, organization

Sie lösen einmal pro Änderung aus, bei der Abfrage, die sie bemerkt — also innerhalb des Aktualisierungsintervalls. Beim Start oder nach einer Konfigurationsänderung löst nichts aus: „Der Standort ist offline“ ist in diesem Moment ein Zustand, kein Ereignis. Die Auslöser funktionieren auch für Standorte und Ressourcen, die du nicht als Geräte angelegt hast.

Verwende die Variablen in einer Szene wie alle anderen, z. B. {{triggerEvent.data.site_name}} ist {{triggerEvent.data.status}}.

Aktionen​

AktionFelderAusgaben
Pangolin-Ressource aktivieren oder deaktivierenRessource, aktiviertenabled
Pangolin jetzt aktualisieren—connected, sites_online, sites_offline, resources_unhealthy, resources_disabled

Beispiel: Wenn alle das Haus verlassen, die Ressource „Kameras“ aktivieren; wenn die erste Person zurückkommt, sie deaktivieren.

Widget „Pangolin-Übersicht“​

Füge es im Dashboard-Editor hinzu. Es zeigt:

  • drei Kacheln: Standorte online, aktive Ressourcen, gestörte Ressourcen;
  • die Verbindung (lokal, Internet, orange auf der Ausweichadresse, rot, wenn Pangolin nicht antwortet);
  • die Probleme, die schwersten zuerst: Offline-Standorte, gestörte Ressourcen, deaktivierte Ressourcen — so viele, wie die Einstellung Aufgelistete Probleme angibt (0 bis 9);
  • eine Schaltfläche Aktualisieren.

Fehlerbehebung​

MeldungWas tun
Pangolin antwortet nicht (…)Prüfe Adresse und Port und ob die Integrations-API aktiviert ist. Der Grund (ECONNREFUSED, Zeitüberschreitung…) hilft.
Pangolin hat den API-Schlüssel abgelehntDer Schlüssel ist falsch oder wurde gelöscht: Erstelle einen neuen.
Der API-Schlüssel darf die Organisation „…“ nicht lesenDer Schlüssel gehört zu einer anderen Organisation oder ihm fehlt eine Berechtigung: siehe Einen API-Schlüssel erstellen.
Pangolin kennt keine Organisation „…“Prüfe die Organisations-ID und ob die Adresse die der API ist (endet auf /v1), nicht die des Dashboards.
Eine Ressource lässt sich nicht ausschaltenDem Schlüssel fehlt Ressource aktualisieren.

Die Protokolle der Integration nennen jede fehlgeschlagene Abfrage und jeden Wechsel auf die Ausweichadresse. Der API-Schlüssel erscheint nie darin.

Sicherheit​

  • Der API-Schlüssel wird in einem geheimen Feld gespeichert, nur an die von dir konfigurierten Adressen gesendet und nie protokolliert.
  • Wer in Gladys einen Schalter betätigen oder eine Szene starten kann, kann deine öffentlichen Ressourcen öffnen oder schließen: Denk daran, wenn du Gladys teilst.
  • Verwende für die Internetadresse https://.

Konfigurationseinstellungen​

Diese Einstellungen fragt Pangolin in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Erste SchrittesectionNeinGladys liest deine Pangolin-Organisation über ihre Integrations-API: ein Gerät pro Standort (online, Datenverkehr) und eines pro öffentlicher Ressource (aktiviert, fehlerfrei). Erstelle in Pangolin einen Organisations-API-Schlüssel (API-Schlüssel → API-Schlüssel generieren) mit den Berechtigungen Standorte auflisten, Ressourcen auflisten, Ressource aktualisieren und Organisation abrufen. Ein selbst gehosteter Server muss die Integrations-API aktiviert haben (flags: enable_integration_api: true).
Lokale API-AdressestringNeinDie Integrations-API eines selbst gehosteten Pangolin, in deinem Netzwerk erreichbar (der Pangolin-Container lauscht je nach Version auf Port 3003 oder 3004). Leer lassen, wenn du nur die Internetadresse verwendest.
Internet-API-AdressestringNeinPangolin Cloud: https://api.pangolin.net/v1. Selbst gehostet: die öffentliche Adresse deiner Integrations-API, z. B. https://api.example.com/v1. Sind beide Adressen eingetragen, wählt der Schalter „Lokale Verbindung bevorzugen“ die zuerst versuchte; die andere springt ein, wenn sie nicht antwortet.
API-SchlüsselsecretJaDer API-Schlüssel der Organisation, so wie Pangolin ihn einmalig bei der Erstellung anzeigt (Form: id.secret).
Organisations-IDstringJaDie ID der Organisation, wie in der Adressleiste von Pangolin: /meine-org/settings → meine-org.
Aktualisierungsintervall (s)numberNeinWie oft Pangolin gelesen wird, in Sekunden. Jede Abfrage sind zwei Anfragen, unabhängig von der Anzahl der Geräte.

So installierst du Pangolin in Gladys​

  1. Öffne in Gladys Integrationen: Pangolin erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/prohand/gladys-pangolin:0.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/prohand/gladys-pangolin.

Pangolin 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​

Pangolin 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 prohand veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂