AccueilActualités informatiqueMaison intelligente : openHAB 3.2 étend l'intégration de JavaScript

Maison intelligente : openHAB 3.2 étend l’intégration de JavaScript

Tous les ans, la communauté openHAB publie une nouvelle version juste avant Noël. La version 3.2 de cette année apporte des ajouts aux scripts pour le moteur de règles, principalement avec JavaScript. En outre, l’équipe a revu les modèles de règles. Un nouveau marché de modules complémentaires sert à partager ses propres extensions pour le logiciel Smart Home.

Sommaire

Certes, la version 3.1 publiée cet été permettait déjà de créer des règles avec JavaScript, mais nécessitait quelques contorsions. Le code devait recourir à des types Java pour l’interaction, comme le montre le simple exemple « Hello World » de la documentation du module JavaScript dans openHAB 3.1 :

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

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

Le nouveau module de script apporte la librairie ES6 openhab.js qui permet d’accéder aux fonctions essentielles d’openHAB via JavaScript. Cela permet de créer toutes les actions, les appareils et le logging sans passer par des types Java. L’exemple de code suivant, tiré de la documentation openHAB, allume la lampe de cuisine et génère ensuite une entrée de log :

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

Sous le capot, le nouveau moteur JavaScript mise sur GraalVM d’Oracle, alors que le précédent utilisait encore le moteur Nashorn, dont Java s’était séparé avec la sortie du JDK 15. openHAB 3.1 permettait certes déjà d’utiliser la variante basée sur GraalVM, mais les deux moteurs JavaScripting ne pouvaient pas être exploités en parallèle. Cela change dans la version 3.2 : ceux qui ont des scripts pour l’ancien moteur peuvent passer progressivement à l’autre.

Dans les modules de script du moteur de règles, il faut en outre signaler l’arrivée de JRuby.

En outre, la nouvelle version apporte des modèles remaniés pour les règles personnelles. Le concept de base des Rule Templates existe déjà depuis openHAB 2, mais était jusqu’à présent assez compliqué à utiliser. La version 3.2 propose une boîte de dialogue pour créer des règles à l’aide de modèles, et de nombreux modèles sont disponibles sur Marketplace. Pour ceux qui souhaitent créer leurs propres modèles, un tutoriel détaillé est disponible sur la page de la communauté.

Depuis la version 3.0, openHAB permet de créer des scripts avec le langage de programmation Blockly, développé par Google, qui permet de composer du code à partir de blocs prédéfinis. La version actuelle étend l’intégration et propose désormais 45 types de blocs répartis en neuf catégories, alors que la version 3.1 n’en comptait que cinq spécifiques. Pour des cas d’application spécifiques, il est désormais possible de créer ses propres bibliothèques de blocs et de les partager via le Marketplace.

Le nombre de types de blocs disponibles pour Blockly est nettement plus élevé que dans la version précédente.

(Image : openHAB.org)

La mise à disposition de ses propres modules complémentaires est un autre complément pour le logiciel Smart Home. La nouvelle section Add-on Marketplace sert à cela. Elle mise sur une approche modulée par les utilisateurs : ceux qui atteignent un certain niveau de confiance obtiennent des droits de curation des modules complémentaires.

La place de marché intégrée dans le logiciel affiche aussi bien les modules complémentaires générés par les utilisateurs que les modules réguliers, dignes de confiance, qui font partie de la distribution openHAB. Ces derniers sont reconnaissables aux marques « openHAB » et « verified ».

Outre les extensions officielles, le Marketplace intégré affiche le contenu communautaire du marché des modules complémentaires.

(Image : openHAB.org)

Comme openHAB utilise log4j, il est potentiellement affecté par la faille du jour zéro. openHAB 3.2 est cependant livré avec la dernière version 2.17 de log4j, qui corrige à la fois la faille initiale et les problèmes supplémentaires trouvés dans les versions 2.15 et 2.16. Ceux qui souhaitent rester dans un premier temps à la version 3.0 ou 3.1 du logiciel de maison intelligente devraient installer les versions correctives 3.04 ou 3.1.1. Ceux qui utilisent encore openHAB 2.x trouveront dans la section Communauté des instructions pour corriger la faille pour différents systèmes d’exploitation.

D’autres nouveautés de la version 3.2, comme le skill remanié pour Alexa, peuvent être consultées sur le blog d’openHAB. La liste complète des modifications se trouve dans les notes de publication. Ces dernières fournissent également des instructions pour l’installation d’openHAB sous Linux, macOS et Windows, ainsi que pour la mise à niveau de la configuration openHABian, entre autres.

Plus d'articles