Tipps & Tricks 2.0 in openHAB 3

Da das erste Tipps & Tricks in openHAB 3 sehr gut angekommen ist, will ich hier einige weitere Tipps & Tricks die Ich in openHAB nutze vorstellen.

1. Developer Sidebar

Ein sehr nützliches Tool was ich hier so noch nicht vorgestellt habe ist die Developer Sidebar.

Um die Sidebar zu öffnen geht Ihr auf das Menü, klickt dann auf Developer Tools und setzt dann den Schalter bei Developer Sidebar um.

Schon bekommt Ihr ein neues “Fenster/Tab” auf der rechten Seite mit dem Ihr so einiges anstellen könnt 😉

In letzter Zeit musste ich, während ich Regeln und der gleichen schrieb, des öfteren den Schalt Zustand eines oder mehrere Items überprüfen. Um nicht tausend Tabs öffnen und zwischen den Seiten wechseln zu müssen könnt Ihr hier ganz einfach verschiedene Items anpinnen um so den State einzusehen. Zudem kann man mit dem Bearbeitungs Symbol, die Items schnell und einfach editieren.

Dafür klickt Ihr auf “Pin Items from Model” und wählt dann das gewünschte Item aus. Sehr einfach aber auch super Effizient.

2. JSON Drittanbieter Add-Ons

Zugegeben meistens fällt einem erst dann eine Funktion auf wenn man sie wirklich benötigt bzw. man nicht weiterkommt 😉 So auch bei diesem Features von openHAB3.

Um JSON Drittanbieter Add-Ons installieren zu können, geht Ihr auf Settings und dann auf JSON 3-rd Party Add-on Service und gebt dort dann den unten angeführten Link ein. Dieses benötigte Ich vor kurzem da ich das Tuya Binding auf leichtem Wege in openHAB3 integrieren wollte.

https://download.smarthomej.org/addons.json

3. Geräte die kein Binding haben trotzdem mit openHAB 3 steuern

Die Idee von openHAB bzw. auch anderer SmartHome Systeme ist es möglichst Cloud-free versch. Geräte bedienen zu können, aber auch nur eine App bzw. eine Bridge im ganzen System zu benutzen.

Manchmal ist dies jedoch nicht so einfach möglich. Vor kurzem zog bei mir ein neuer Saugroboter ein. Der Botslab S8 Plus. Leider gibt es aktuell für 360 bzw. Botslab kein Binding für openHAB3. Was auch bei mehreren neuen Geräten oder eher kleineren Firmen ab und zu der Fall ist.

Jedoch haben eigentlich alle neueren Geräte eine Anbindung zu Google Home, Amazon Alexa oder HomeKit. Somit ist es möglich das Gerät an eben diese Voice Assistenten anzubinden und dann die Google, Alexa oder HomeKit Integration in openHAB3 zu nutzen.

Also habe ich den S8 Plus mit Alexa verbunden und kann diesen natürlich auch mit Sprachbefehlen bzw. der Alexa App steuern. Jedoch nutze ich eigentlich zu 99,9% die openHAB3 App an versch. Tablets oder SmartPhones.

Um jetzt den Saugroboter in openHAB einbinden zu können benötigt ihr, in meinem Fall, ein Alexa Thing.

Zuerst muss ein Amazon Konto Thing angelegt werden und danach einen Echo, Show oder dergleichen.

Nachdem der Echo in openHAB eingebunden wurde geht ihr auf Channels und klickt auf Show advanced. Dort seht ihr dann einen Channel der Befehl (textCommand) heißt.

Diesen benötigen wir hier um eben Befehle mittels Text an Alexa schicken zu können.

Um jetzt z.b. meinen Saugroboter starten zu können erstelle Ich ein Widget auf der WebUI und verknüpfe dann das Item “Befehl (textCommand) und gebe dort einfach den Befehl ein, hier Saugroboter starten.

Nachdem Ihr den Befehl abgeschickt habt sollte der Sauger starten und ihr bekommt zudem eine Antwort von Alexa.

4. Item State Mapping

Falls Ihr Items bzw. states bekommt die Ihr nicht nutzen könnt bzw. die nicht schön dargestellt werden könnt Ihr mittels den Metadaten diese umwandeln.

Dazu geht ihr einfach auf das Item und wählt als metadata – state description aus. Dann gebt Ihr unten in den Optionen true=CLOSED, false=OPEN, 0=geschlossen, 1=geöffnet, 3=gekippt usw. ein.

5. Neue Icons

Es gibt seit einiger Zeit viele versch. Möglichkeiten Icons in openHAB einzubinden.

wie ihr warscheinlich wisst gibt es die standard icons oh: https://www.openhab.org/docs/configuration/iconsets/classic/

dann noch die f7 icons: https://framework7.io/icons/

die material icons https://jossef.github.io/material-design-icons-iconfont/

und neu dazugekommen sind die online icons von iconify: https://icon-sets.iconify.design/

Diese laufen meiner Meinung nach genauso flüssig als ob ihr diese lokal speichern würdet da diese nur einmal “runtergeladen” werden und dann im cache eures browser gespeichert werden.

component: oh-button
config:
  round: true
  outline: true
  class:
    - margin
    - display-flex
    - flex-direction-column
  style:
    height: auto
slots:
  default:
    - component: oh-icon
      config:
        height: 200px
        icon: iconify:noto:fire-extinguisher
        class:
          - padding
    - component: Label
      config:
        text: A Fire Extinguisher Button
        style:
          font-size: 30px
        class:
          - margin-left-half
          - margin-bottom

Falls Ihr die Farbe ändern wollt könnt Ihr dies ganz einfach in diesem Beispiel sehen:

component: f7-list
config:
  mediaList: true
slots:
  default:
    - component: oh-list-item
      config:
        title: Tesla Model 3
        icon: iconify:simple-icons:tesla
        iconColor: green
        badge: ONLINE
        badgeColor: green
    - component: oh-list-item
      config:
        title: Audi Q5
        icon: iconify:simple-icons:audi
        iconColor: teal
        badge: UNKNOWN
        badgeColor: teal
    - component: oh-list-item
      config:
        title: BMW 720i
        icon: iconify:simple-icons:bmw
        iconColor: green
        badge: ONLINE
        badgeColor: green
    - component: oh-list-item
      config:
        title: Mercedes GLC
        icon: iconify:simple-icons:mercedes
        iconColor: red
        badge: OFFLINE
        badgeColor: red

Um jetzt z.b. einen Tür Sensor mit dem passenden Icon auszustatten welches dann auch den Zustand der Türe anzeigt nutzt Ihr diese Funktion:

icon: "=items[props.door_state].state === 'OPEN' ? 'iconify:bi:door-open' : 'iconify:bi:door-closed'"

6. Group Settings

In einem meiner Videos habe ich mein Favoriten Page / Widget Setup vorgestellt. Darin nutze ich auch ein Batterie Widget um die Batterie Stände meiner Geräte anzuzeigen.

Dazu habe ich die versch. Batterie Items in eine Gruppe “Alle Batterien” zusammengefasst.

Dann geht Ihr ganz einfach auf die Gruppe “Alle Batterien” und geht auf Edit.

Weiter unten seht Ihr dann die Group Settings dort könnt Ihr den Member Base Type und die Aggregation Function einstellen.

Dort wählt Ihr dann bei Member Base Type Number und bei Aggregation Function MIN aus. Natürlich könnt Ihr diese Einstellung für so fast jede Gruppe vornehmen. Ihr müsst dabei nur die richtigen Werte einstellen.

Und schon wird euch der Minimale Wert in dieser Gruppe angezeigt. In meinem Fall mit 18%

7. Profile

Vor kurzem habe Ich bei mir zuhause versch. Stromzähler im Sicherungskasten installiert. Leider wurden mir diese Werte aber in Watt statt wie gewollt in kWh an openHAB übermittelt. Hier gibt es eine einfache Möglichkeit das ganze zu konvertieren.

JavaScript: wenn ihr z.b. einen Wert teilen oder multiplizieren wollt könnt ihr das mit dieser zeile machen

Dazu geht Ihr auf Profile und wählt JS aus dann fügt Ihr diese Zeile ein.

|  (function(i) {  return i/1000; })(input)

Natürlich könnt Ihr hier nicht nur durch 1000 teilen, Ihr könnt dieses Profile/Funktion auch für andere Berechnungen verwenden.

8. API Explorer

Vor kurzen habe ich bei mir ein Loupedeck installiert um von dort aus openHAB Geräte steuern zu können benötigte ich die Curl Funktion bzw. die Möglichkeit Items vom Browser aus auf bzw. abrufen zu können. Hier bietet uns openHAB den API Explorer an.

Diesen findet Ihr bei den Developer Tools und dann API Explorer

Nachdem Ihr den API Explorer ausgewählt habt, habt Ihr verschiedene Möglichkeiten Dinge zu steuern oder abzurufen. In diesem Beispiel gehe ich auf das Abrufen von der Temperatur bzw. States eines Thermostates ein.

Dazu wählt Ihr dann einfach Gets the state of an item aus.

Dann klickt Ihr auf Try it out und Ihr müsst beim Item name den Namen das abzurufenden Items eingeben, in meinem Fall mein Aqara Thermostat.

Nachdem Ihr nun auf Execute gedrückt habe bekommt Ihr auch schon das Curl Skript das verwendet werden kann um den Status über ein Skript abzurufen um so denn den Status, in meinem Fall 18.08 zu bekommen.

Um das Skript zu verwenden legt Ihr euch bei MAC OS eine .sh Datei an in meinem Fall sieht diese so aus.

#!/bin/bash
curl -X 'GET' \
  'http://192.168.2.193:8080/rest/items/BuroThermostat_0x54ef44100051bf95_5Fclimate_5Fzigbee2mqtt_Temperature/state' \
  -H 'accept: text/plain' \
  -u Benutzername:Passwort

Hier müsst Ihr noch darauf achten den Benutzernamen und das Passwort (welches Ihr benutzt um euch in der openHAB Oberfläche einzuloggen) zu ersetzen.

Nachdem das Skript erstellt wurde muss man es noch ausführbar machen, dazu geht Ihr im Terminal in das Verzeichnis wo die .sh Datei liegt und gebt dann diese Zeile ein.

chmod +x thermostat-getsetpoint.sh

Nun kann das Skript über den Terminal oder z.b. auch den Kurzbefehlen ausgeführt werden.

Natürlich könnte man das ganze auch in der Kurzbefehl App selber anlegen dazu hier der Screenshot.

Hier wird die Temperatur abgefragt und dann als Sprachausgabe ausgegeben.

Ein Gedanke zu “Tipps & Tricks 2.0 in openHAB 3

  1. Super Beitrag, alles leicht verständlich aber kannst du bitte noch erklären wie man das Widget für die Texteingabe am Beispiel des Saugroboters anlegt und verknüpft?

Schreibe einen Kommentar

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