Smart Home: openHAB 3.2 erweitert die JavaScript-Integration

Zum Erstellen von Skripten für die Rule Engine hat das Release eine überarbeitete JavaScript-Engine an Bord, die eine passende Library mitbringt.

In Pocket speichern vorlesen Druckansicht 14 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Alle Jahre wieder veröffentlicht die openHAB-Community kurz vor Weihnachten ein frisches Release. Die diesjährige Version 3.2 bringt Ergänzungen zu den Skripten für die Rule-Engine vor allem mit JavaScript. Außerdem hat das Team die Vorlagen für Regeln überarbeitet. Ein neuer Add-on Marketplace dient zum Teilen eigener Erweiterungen für die Smart-Home-Software.

Zwar erlaubte bereits die im Sommer veröffentlichte Version 3.1 das Erstellen von Regeln mit JavaScript, erforderte aber einige Verrenkungen. Der Code musste zur Interaktion auf Java-Typen zurückgreifen, wie das einfache "Hello World"-Beispiel aus der Dokumentation zum JavaScript-Modul in openHAB 3.1 zeigt:

const LoggerFactory = Java.type('org.slf4j.LoggerFactory');

LoggerFactory.getLogger("org.openhab.core.automation.examples").
  info("Hello world!");

Das neue Scripting-Modul bringt die ES6-Library openhab.js mit, die Zugriff auf die wesentlichen openHAB-Funktionen über JavaScript ermöglicht. Dadurch lassen sich alle Aktionen, Geräte und das Logging ohne den Umweg über Java-Typen erstellen. Folgendes Codebeispiel aus der openHAB-Dokumentation schaltet die Küchenlampe ein und erzeugt anschließend einen Log-Eintrag:

items.getItem("KitchenLight").sendCommand("ON");
console.log("Kitchen Light State", 
            items.getItem("KitchenLight").state);

Unter der Haube setzt die neue JavaScript-Engine auf Oracles GraalVM, während die frühere noch die Nashorn-Engine verwendete, von der sich Java mit dem Release von JDK 15 verabschiedet hatte. openHAB 3.1 erlaubte zwar bereits den Einsatz der GraalVM-basierten Variante, aber die beiden JavaScript-Scripting-Engines ließen sich nicht parallel betreiben. Das ändert sich in Version 3.2: Wer Skripte für die alte Engine hat, kann auf die Weise schrittweise umsteigen.

Bei den Skripting-Modulen der Rule Engine ist zudem mit JRuby ein Neuzugang zu vermelden.

Darüber hinaus bringt das frische Release überarbeitete Vorlagen für eigene Regeln mit. Das grundsätzliche Konzept der Rule Templates existiert bereits seit openHAB 2, war aber bisher wohl recht umständlich zu verwenden. Version 3.2 bietet einen Dialog zum Anlegen von Regeln über Vorlagen, und im Marketplace finden sich zahlreiche Templates. Wer eigene Vorlagen erstellen will, findet auf der Community-Seite ein ausführliches Tutorial.

Seit Version 3.0 ermöglicht openHAB das Erstellen von Skripten mit der von Google entwickelten Programmiersprache Blockly, mit der sich Code aus vorgegebenen Blöcken zusammenstellen lässt. Das aktuelle Release erweitert die Integration und bringt nun 45 Blocktypen in neun Kategorien mit, nachdem Version 3.1 gerade einmal fünf spezifische Blocktypen gekannt hatte. Für spezielle Anwendungsfälle lassen sich zudem neuerdings eigene Block-Libraries erstellen und über den Marketplace teilen.

Für Blockly stehen deutlich mehr Blocktypen zur Verfügung als im vorherigen Release.

(Bild: openHAB.org)

Das Bereitstellen eigener Add-ons ist eine weitere Ergänzung für die Smart-Home-Software. Dazu dient die neue Sektion Add-on Marketplace. Er setzt auf einen User-moderierten Ansatz: Wer eine gewisse Vertrauensstufe erreicht, bekommt Rechte zum Kuratieren der Add-ons.

Der in der Software integrierte Marktplatz zeigt sowohl die User-generierten Add-ons als auch die regulären, vertrauenswürdigen an, die Teil der openHAB-Distribution sind. Letztere lassen sich an den Kennzeichnungen "openHAB" und "verified" erkennen.

Neben den offiziellen Erweiterungen zeigt der integrierte Marketplace Community-Inhalte des Add-on Marketplace an.

(Bild: openHAB.org)

Da openHAB log4j nutzt, ist es potenziell von der Zero-Day-Lücke betroffen. openHAB 3.2 bringt jedoch die jüngste log4j-Version 2.17 mit, die sowohl die ursprüngliche Schwachstelle, als auch die in den Releases 2.15 und 2.16 zusätzlich gefundenen Probleme behebt. Wer zunächst bei Version 3.0 oder 3.1 der Smart-Home-Software bleiben möchte, sollte die Patch-Releases 3.04 beziehungsweise 3.1.1 installieren. Wer noch auf openHAB 2.x setzt, findet in der Community-Sektion eine Anleitung zum Beheben der Schwachstelle für unterschiedliche Betriebssysteme.

Weitere Neuerungen in Version 3.2 wie der überarbeitete Skill für Alexa lassen sich dem openHAB-Blog entnehmen. Die vollständige Liste der Änderungen findet sich in den Release Notes. Letztere bieten zudem eine Anleitung für die Installation von openHAB unter Linux, macOS und Windows sowie für das Upgrade unter anderem des openHABian-Setups.

(rme)