Zum Hauptinhalt springen

openHAB Smart-Home-Integration, kostenlos und Open Source

openHAB-Integration für Gladys Assistant

Brücke zu openHAB: Items (Lampen, Rollläden, Sensoren…) in Gladys importieren und steuern.

Diese Integration verbindet Gladys mit deinem openHAB-Server und bietet seine Items im Reiter Entdecken von Gladys an: Lampen, Schalter und Steckdosen, Rollläden und Vorhänge, Solltemperaturen, Sensoren mit ihren Einheiten, Kontakte, Melder, Player und Schlösser. Sobald ein Gerät hinzugefügt ist, folgen seine Zustände openHAB live, und Gladys steuert es über openHAB, das seine Bindings behält (Zigbee, Z-Wave, KNX, Modbus, Cloud…). Wechsle in deinem Tempo zu Gladys, oder betreibe beide nebeneinander. Alles bleibt in deinem lokalen Netzwerk. Inoffiziell, nicht mit der openHAB Foundation verbunden.

Getestet mit openHAB 5.0.1 in Docker und virtuellen Items (ohne Binding), noch nicht auf vielen echten Installationen: Rückmeldungen sind im GitHub-Repository willkommen.

Voraussetzungen​

  • openHAB 4.x oder 5.x, von der Gladys-Maschine aus erreichbar (gleiches Netz oder ein VPN).
  • Ein API-Token eines openHAB-Benutzers (am besten eines Administrators: Eine Regel aus einer Szene auszuführen braucht das). Nimmt dein openHAB Anfragen ohne Anmeldung an (seine standardmäßige „implizite Benutzerrolle“), ist kein Token nötig.

Konfiguration​

Adresse und Token​

  1. Öffne in openHAB (Main UI) dein Profil (unten links), dann Create new API token. Nenne es „Gladys“ und kopiere das Token: openHAB zeigt es nur einmal.
  2. Öffne in Gladys die Integration, Konfiguration:
    • Adresse von openHAB: wie http://192.168.1.30:8080, oder https://openhab.example.org hinter einem Reverse-Proxy. Kein .local-Name, nicht localhost: Die Integration läuft in einem eigenen Container.
    • API-Token: Füge es ein. Benutzername und Passwort gehen auch, nur wenn die Basic-Authentifizierung in openHAB aktiviert ist (Settings → API Security).
  3. Klicke auf Verbindung testen: Die openHAB-Version, die Zahl der angebotenen Geräte und die nicht importierten Item-Typen werden angezeigt.
  4. Öffne den Reiter Entdecken und füge die gewünschten Geräte hinzu. Die Werte werden gleich beim Hinzufügen gesendet.

Auswählen, was importiert wird​

Eine openHAB-Installation hat oft Hunderte von Items. Gladys bietet an:

  • nur die Items der aufgeführten Gruppen, falls vorhanden (Gruppennamen oder Bezeichnungen, durch Kommas getrennt, wie gGroundFloor, Garten; ein Item zählt, wenn es in einer davon liegt, in jeder Tiefe);
  • nur die Items mit einem der aufgeführten Tags, falls vorhanden (Tags des Items oder seines Equipments: semantische Tags wie Lightbulb, Temperature, oder eigene wie Gladys);
  • nie die Items unter Auszulassende Items (*_Signal, * steht für beliebigen Text).

Gruppen-Items sind nie selbst Geräte: Das sind die Orte und Equipments des semantischen Modells. Nur die in Gladys hinzugefügten Geräte erhalten Zustände: Die anderen kosten nichts.

Schlösser, Garagentore und Tore​

Standardmäßig sind Schlösser (Items mit dem Tag Lock, oder Punkte eines Lock-Equipments), und jedes Item eines Garagentors, Tors oder einer Tür (Rollladen, Impulsschalter, Türöffner), so getaggt oder Punkt eines solchen Equipments, in Gladys schreibgeschützt: Du siehst, ob sie verriegelt, offen oder geschlossen sind, aber weder ein Gerät, noch eine Szene, noch ein mit Gladys verbundener Sprachassistent kann sie öffnen. Aktiviere Befehle für Schlösser, Garagentore und Tore erlauben, um sie zu steuern (klicke dann im Reiter Entdecken bei diesen Geräten auf „Aktualisieren“). Die Szenen-Aktion, die einen Befehl sendet, lehnt sie ebenfalls ab, und auch eine Gruppe, die eines davon enthält, solange dieses Feld nicht aktiviert ist.

Optionen​

  • Mindestabstand zwischen zwei Werten eines Sensors: standardmäßig 10 Sekunden. Ein Zähler, der jede Sekunde meldet, wird in diesem Takt an Gladys gesendet. Schalter, Lampen, Rollläden und Melder werden nie verzögert.
  • Sprache der Funktionsnamen: die Wörter, die an die Namen der Nebenfunktionen angehängt werden („Rollladen – Position“). Standardmäßig Französisch.
  • Für Szenen beobachtete Items: siehe den Szenen-Auslöser unten.

Was du bekommst​

Geräte​

Ein Gladys-Gerät pro Equipment des semantischen Modells von openHAB, mit den Funktionen seiner Punkte (eine Lampe mit Schalter, Dimmer und Farbe); ein Item außerhalb jedes Equipments ist ein eigenes Gerät. Der Name ist die openHAB-Bezeichnung, mit ihrem Ort („Deckenlampe (Wohnzimmer)“).

openHAB-ItemIn Gladys
Switchein Schalter, oder eine Lampe (Tag Light, Licht-Equipment)
Switch mit Tag Alarm/Status + Smoke, Water…Rauch-, Leck-, CO-, Bewegungs-, Sabotage- oder Vibrationsmelder
Switch mit Tag Lockverriegelt oder nicht (schreibgeschützt, außer erlaubt)
DimmerHelligkeit einer Lampe (mit Ein/Aus, wenn allein)
Dimmer mit Tag SoundVolumedie Lautstärke eines Players
ColorFarbe und Helligkeit einer Lampe (mit Ein/Aus, wenn allein)
Rollershutterein Rollladen (oder Vorhang): öffnen, schließen, stopp, Position
Rollershutter Garagentor, Tor, Türoffen oder geschlossen, Position (schreibgeschützt, außer erlaubt)
Contactein Öffnungsmelder
PlayerWiedergabestatus, Wiedergabe, Pause, weiter, zurück
Number:Temperature mit Tag Setpointeine Solltemperatur, im Min und Max des Items
Number:Temperature, Pressure, Illuminance…Temperatur, Druck, Helligkeit, Leistung, Energie, Spannung
Strom, Volumen (Gas, Wasser), Wind, Lärm, Regenintensität
Number in % mit Tag Humidity, oder BatterieLuftfeuchtigkeit, Batteriestand
Number in ppm mit Tag CO2ein CO2-Sensor

Items vom Typ String, DateTime, Location, Call, Image und Gruppen werden nicht importiert (der Verbindungstest listet sie auf); ein String kann trotzdem eine Szene auslösen (Auslöser unten) oder einen Befehl empfangen (Szenen-Aktion). Eine Number ohne Einheit und ohne Bedeutung wird auch nicht importiert: Gib ihr eine Dimension (Number:Power) oder einen semantischen Tag.

Die Position eines Rollladens folgt Gladys: 100 % ist offen (openHAB sagt 0 %). Eine Number:Dimensionless ohne unit-Metadaten behält ihren Zustand in openHAB in „one“ (48 % ist 0.48): Die Brücke zeigt sie in der Einheit ihres Musters, wie openHAB.

Dashboard-Widget​

openHAB: die Verbindung, wie die Zustände ankommen (Ereignisstrom oder Abfrage), die openHAB-Version, die angebotenen und hinzugefügten Geräte, die verfolgten Items, und ein Knopf Neu laden, der die Item-Liste neu liest.

Szenen-Auslöser​

openHAB-Item geändert: Ein Item unter Für Szenen beobachtete Items hat seinen Zustand geändert, auch wenn es nicht zu Gladys hinzugefügt ist (ein String, ein Alarmmodus, eine Klingel). Filter: das Item, und der neue Zustand (optional). Variablen: Item, Bezeichnung, neuer Zustand, vorheriger Zustand.

Szenen-Aktionen​

  • Befehl an ein openHAB-Item senden: ein beliebiges Item, ein beliebiger Befehl (ON, OFF, 50, UP, PLAY, ein Text). Praktisch für Items ohne Funktion in Gladys, oder um eine openHAB-Regel über einen virtuellen Schalter zu starten.
  • openHAB-Regel ausführen: über ihre Kennung (UID, sichtbar unter Settings → Rules); die Szenen von openHAB sind auch Regeln. Braucht das Token eines Administrators.

Szenenbeispiele​

  • Wenn das openHAB-Item Alarm_Mode zu ARMED wird (beobachtetes Item), alle Lampen von Gladys ausschalten und eine Nachricht senden.
  • Bei Sonnenuntergang DOWN an die openHAB-Gruppe gShutters senden (Szenen-Aktion).
  • Wenn die Anwesenheit in Gladys das Haus verlässt, die openHAB-Regel away_mode ausführen.

Fehlerbehebung​

  • „openHAB verweigert den Zugriff“: Das Token ist falsch oder wurde gelöscht; erstelle ein neues. Mit einem Benutzernamen muss die Basic-Authentifizierung in openHAB aktiviert sein.
  • „openHAB ist nicht erreichbar“: Prüfe die Adresse von der Gladys-Maschine aus (curl http://<adresse>:8080/rest/). Ein neuer Versuch folgt nach 5 Sekunden, dann bis zu jede Minute.
  • Das Widget zeigt „Abfrage“: Der Ereignisstrom (/rest/events) kommt nicht durch, oft wegen eines Reverse-Proxys, der ihn puffert. Die Zustände kommen trotzdem alle 30 Sekunden an; der Strom wird regelmäßig erneut versucht.
  • Ein Item fehlt: Starte den Verbindungstest, er listet die nicht importierten Typen. Prüfe Gruppen, Tags und Ausschlüsse der Konfiguration.
  • Ein Wert ist 100-mal zu groß oder zu klein: Das Item ist eine Number:Dimensionless, deren Muster % sagt, während openHAB sie in „one“ speichert, oder umgekehrt; gib ihr in openHAB unit-Metadaten.
  • Protokolle: Setze LOG_LEVEL=debug, um jeden Zustand und jedes Ereignis zu sehen.

Grenzen​

  • Entwickelt gegen openHAB 5.0.1 mit virtuellen Items: weder Binding noch echte Hardware. Rückmeldungen willkommen.
  • Gruppen sind keine Geräte: Eine Lampengruppe lässt sich trotzdem über die Szenen-Aktion steuern.
  • Ein Thermostatmodus, eine Farbtemperatur oder eine Lüftergeschwindigkeit haben keinen eigenen Item-Typ in openHAB: Solche Werte kommen als Number oder Dimmer an und werden als solche importiert, wenn sie eine Einheit haben, sonst gar nicht.
  • Ein Item in openHAB umzubenennen erzeugt ein anderes Item: Das Gladys-Gerät muss neu hinzugefügt werden. Ein Item in ein anderes Equipment zu verschieben ändert auch sein Gladys-Gerät.
  • Die Namen der Funktionen werden beim Hinzufügen des Geräts in Gladys festgelegt.

Datenschutz​

Die Brücke spricht nur mit deinem openHAB-Server, in deinem Netzwerk. Das Token (oder das Passwort) speichert Gladys in seiner Konfiguration, es wird nie in die Protokolle geschrieben. Nichts geht ins Internet.

Konfigurationseinstellungen​

Diese Einstellungen fragt openHAB in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Deine openHAB-Items in GladyssectionNeinGladys liest die Items deines openHAB-Servers über seine REST-API und verfolgt ihre Änderungen live. Erstelle in openHAB ein API-Token (dein Profil, ganz unten: Create new API token). Nimmt dein openHAB Anfragen ohne Anmeldung an, kann das Token leer bleiben. Die Items erscheinen dann im Reiter Entdecken, nach Equipment des semantischen Modells gruppiert: Füge die gewünschten hinzu.
Adresse von openHABstringJaIP-Adresse und Port, von der Gladys-Maschine aus gesehen. Kein .local-Name, nicht localhost.
API-TokensecretNeinLeer, wenn dein openHAB Anfragen ohne Anmeldung annimmt.
Benutzername (statt eines Tokens)stringNeinNur wenn die Basic-Authentifizierung in openHAB aktiviert ist (Sicherheitseinstellungen der API). Ein Token ist besser.
PasswortsecretNein
Nur die Items dieser GruppenstringNeinGruppennamen oder Bezeichnungen, durch Kommas getrennt: Ein Item zählt, wenn es in einer davon liegt, in jeder Tiefe. Leer: alle Items.
Nur die Items mit diesen TagsstringNeinTags des Items oder seines Equipments, durch Kommas getrennt (semantische Tags wie Lightbulb oder Temperature, oder eigene). Leer: alle Items.
Auszulassende ItemsstringNeinItem-Namen, durch Kommas getrennt; * steht für beliebigen Text. Nie importiert.
Befehle für Schlösser, Garagentore und Tore erlaubenbooleanNeinAus: Schlösser, Garagentore und Tore zeigen ihren Zustand, aber Gladys kann sie nicht öffnen, über Gerät, Szene oder Sprachassistent.
Mindestabstand zwischen zwei Werten eines Sensors (s)numberNeinEin Zähler, der jede Sekunde meldet, wird in diesem Takt an Gladys gesendet. Schalter und Melder werden nie verzögert.
SzenensectionNeinHier aufgeführte Items lösen bei jeder Zustandsänderung den Szenen-Auslöser „openHAB-Item geändert“ aus, auch wenn sie nicht zu Gladys hinzugefügt sind (ein String, ein DateTime, ein Alarmmodus…).
Für Szenen beobachtete ItemsstringNeinItem-Namen, durch Kommas getrennt; * steht für beliebigen Text.
Sprache der FunktionsnamenselectNein

So installierst du openHAB in Gladys​

  1. Öffne in Gladys Integrationen: openHAB erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-openhab:1.0.0) 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/guim31/gladys-openhab.

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

openHAB 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.

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 🙂