openHAB 2 Konfiguration mit Visual Studio Code


Update 12.11.2020

Ab Dezember  2020 habe ich das Glück, ein Eigenheim zu besitzen. Mit dem Umzug werde ich mein Smart Home zukünftig mit Home Assistant steuern, sodass dieser Beitrag nicht länger fortgeführt und gepflegt wird.


Im folgenden Beitrag möchte ich auf die schöne Möglichkeit eingehen, die openHAB 2 Konfigurationen per Visual Studio Code (VSCode) und openHAB Extension zu bearbeiten und zu validieren.

Installation

Für die Installation werden 2 Komponenten benötigt, die von folgenden URLs heruntergeladen werden können:

Die Installation von VSCode ist recht einfach. Das heruntergeladene Setup kann mit den Standardeinstellungen installiert werden. Die Extension kann danach über die Extension Marketplace Funktion nachinstalliert werden:

VSCode Extension Installation

VSCode Extension Installation

Alternativ kann die Extension Datei von obiger URL heruntergeladen und manuell installiert werden:

VSCode Extension Installation per VSIX Datei-Import

VSCode Extension Installation per VSIX Datei-Import

Nach einem Neustart von VSCode ist die Extension aktiv.

openHAB Server Verbindungskonfigurationen

Netzwerkfreigabe: Konfigurationsdateien

Um im Anschluss an die Installation die openHAB Konfigurationsdateien in VSCode zu editieren, muss in VSCode die entsprechende Netzwerkfreigabe auf dem openHAB Server als Ordner eingebunden werden. Entgegen dem Screenshot muss die Netzwerk-Freigabe als Netzlaufwerk eingebunden werden, nicht als UNC-Pfad.

VSCode Einrichtung openHAB Konfigurationsverzeichnis

VSCode Einrichtung openHAB Konfigurationsverzeichnis

Danach kann auf die einzelnen Unterverzeichnisse der openHAB Konfiguration direkt zugegriffen und Dateien darin bearbeitet und gespeichert werden.

REST-API: Konfigurationsvorschau

Für die Vorschau der Konfiguration mit den UIs von openHAB in VSCode ist ein Zugriff per REST-API auf den Server erforderlich. Die Konfiguration dafür muss in der VSCode Konfigurationsdatei angelegt werden. Dies kann entweder manuell in der Datei %APPDATA%\Code\User\settings.json gemacht werden oder in den Settings von VSCode.

openHAB Konfiguration: settings.json

openHAB Konfiguration: settings.json

Folgende Parameter sind für die REST-API einzutragen:

{
   ...
   "openhab.host": "<openHAB-Server-IP/Hostname>",
   "openhab.port": <openHAB-Server http-Port (Default: 8080)>,
   "openhab.useRestApi": true,
   ...
}

In neueren Versionen der openHAB Extension kann der Port auch in der Settings-GUI eingetragen werden.

LSP: Konfigurationsvalidierung/Syntaxprüfung

Die VSCode openHAB Extension ermöglicht neben der eigentlichen Konfiguration auch die Konfigurationsvalidierung/Syntaxprüfung . Diese funktioniert allerdings nicht direkt über den eingebundenen SMB-Share, sondern VSCode muss per Language Server Protokoll (LSP) an den openHAB Server angebunden werden. Dazu muss der openHAB Server mindestens auf Version 2.2.0 Build 1065 aktualisiert sein und falls sich zwischen Client und openHAB Server eine Firewall befindet, muss der Port tcp/5007 zum openHAB Server freigeschaltet sein.

Für die LSP-Konfiguration sind in der VSCode Konfigurationsdatei folgende Parameter anzugeben:

{
   ...
   "openhab.remoteLspPort": 5007,
   "openhab.remoteLspEnabled": true,
   ...
}

In neueren Versionen der openHAB Extension kann der LSP-Port auch in der Settings-GUI eingetragen werden.

karaf Console

Ein weiteres Feature ist der Zugriff auf die openHAB CLI (karaf Console) direkt aus VSCode heraus. Der Zugriff ermöglicht es, das Karaf Log live im VSCode Panel anzeigen zu lassen, sodass man sofort erkennen kann, ob die Konfiguration fehlerhaft ist. Hierzu ist folgender Konfigurationsparameter einzutragen:

"openhab.karafCommand": "ssh openhab@<openHAB-Server-IP/Hostname> -p 8101 -t 'log:tail'",

Fehler und Warnungen

Your openHAB environment is running in simple mode.

Your openHAB environment is running in simple mode.

Your openHAB environment is running in simple mode.

Die o.g. Warnung tritt häufig nach Neuinstallationen von openHAB auf. Sie erscheint, obwohl in der PaperUI der Simple Mode deaktiviert ist. In meinem Fall hat es geholfen, den Simple Mode über die Paper UI einmal kurz zu aktivieren und wieder zu deaktivieren. Dabei jeweils bei jeder Änderung speichern.

Die Option findet sich im PaperUI Menü unter Configuration -> System -> Item Linking:

PaperUI: Configuration -> System -> Item Linking -> Simple Mode

PaperUI: Configuration -> System -> Item Linking -> Simple Mode

3 Antworten

  1. Oliver sagt:

    Hi, super Anleitung. Danke! Die hat mich echt weiter gebracht. Aber eins ist mir noch ein Rätsel: Du beschreibst zwar welchen Parameter man eintragen muss, um auf die Karaf Konsole zuzugreifen, aber nicht, wie man das dann wirklich macht…
    Was ich meine: Ich kann über die eingebaute Konsole in VSCode auch ohne diesen Eintrag auf die Konsole, wenn ich alles manuell eingebe. Der Eintrag in der Settings muss also irgendeinen Vorteil haben.. ein Shortcut? Aber wie nutze ich den?
    Danke!

    • Servus.
      Der openhab.KarafConsole Parameter dient nicht dazu, dich zur Eingabe von Befehlen direkt auf die Konsole zu verbinden, sondern dir ein Log-File deiner Änderungen in VSCode auszugeben.
      Dazu musst du mit Ctrl+J das VSCode Panel unten anzeigen lassen, auf den Reiter Output wechseln und im Panel Dropdown-Menü auf openHab Server wechseln.
      Aber du hast Recht, meine Beschreibung der Funktion im Beitrag war nicht ganz klar, ich hab das etwas angepasst.
      Gruß. Andreas

  2. William sagt:

    Hallo,
    ich hab das mit Rest Api gemacht aber es kam immer noch die error meldung. ich hab keine Ahnung mehr was ich machen soll.

    Grüße

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.