Connexion de BSB-LAN aux systèmes de domotique

BSB-LAN fournit quatre façons de se connecter aux systèmes de domotique:

  1. Utilisation de modules pris en charge pour des systèmes de domotique spécifiques
  2. Échange de données via MQTT
  3. Échange de données via JSON
  4. Échange de données via des commandes URL et la récupération de données à l'écran

Utilisation de modules pris en charge pour des systèmes de domotique spécifiques

Pour certains systèmes, des modules spécifiques existent et peuvent être utilisés pour accéder à BSB-LAN de manière transparente:

Home Assistant

Bien que le plugin officiel ne fonctionne plus, l'approche MQTT (voir ci-dessous) fonctionne bien avec Home Assistant, y compris la fonctionnalité de découverte automatique. Voici un lien vers une vidéo sur la chaîne YouTube de BSB-LAN qui montre comment configurer BSB-LAN dans Home Assistant en utilisant la fonctionnalité de découverte automatique de Home Assistant.

Pour plus de détails sur la mise en œuvre, vous pouvez également consulter ces tutoriels:

L'utilisateur GitHub @ryann72 a écrit des instructions détaillées pour BSB-LAN et HomeAssistant/Mosquitto. Il est également disponible en français.

L'utilisateur YouTube @StoneTime a créé deux vidéos (en allemand) dans lesquelles il montre l'installation de BSB-LAN ainsi que sa configuration dans Home Assistant. Dankeschön!

L'utilisateur YouTube @ArminasTV a créé deux vidéos (en français) dans lesquelles il montre l'installation de BSB-LAN ainsi que sa configuration avec Home Assistant et MQTT. Merci beaucoup!

Homebridge

L'utilisateur de BSB-LAN, Michael, a écrit un plugin pour Homebridge. Merci!

ioBroker

L'utilisateur GitHub @hacki11 a développé un adaptateur pour ioBroker. Merci!

Jeedom

L'utilisateur GitHub @bernard-dandrea a écrit un plugin pour Jeedom (avec une description en français). Merci!

Node-RED

L'utilisateur GitHub @konne a écrit un module pour Node-RED. Merci!

FHEM

L'utilisateur du forum FHEM, Luposoft, a écrit une explication concise de la configuration pour utiliser FHEM via MQTT. Merci!

openHAB

Depuis la version 2.5.4, il existe une liaison qui fait officiellement partie d'OpenHAB.

Homematic

L'utilisateur du forum FHEM, PaulM, a écrit quelques scripts pour illustrer l'intégration de BSB-LAN dans Homematic. Merci!

SmartHomeNG

L'utilisateur GitHub @thensty a écrit un plugin pour SmartHomeNG. Merci!

Volkszaehler

L'utilisateur GitHub @lapixo a contribué à un script pour le projet Volkszaehler. Merci!

Script Bash

L'utilisateur GitHub @khfm a écrit des scripts Bash pour interroger les données et les afficher à l'aide de gnuplot. Merci!


Échange de données via MQTT

Il s'agit de la méthode recommandée pour connecter BSB-LAN aux systèmes de domotique car elle permet un échange de données transparent. En prérequis, un courtier MQTT (tel que mosquitto) est nécessaire, soit en local, soit via un service public. Certains systèmes de domotique tels que Home Assistant proposent l'installation de mosquitto dans le cadre de leur logiciel.

Attention: Actuellement, le courtier mosquitto semble avoir un problème avec la gestion d'un grand nombre de messages à partir des versions 2.0.16 et ultérieures (voir ce rapport de bogue). Si vous rencontrez le problème que vos entités BSB-LAN deviennent «indisponibles», en particulier après avoir utilisé la fonctionnalité de découverte automatique ci-dessous, veuillez rétrograder vers la version 2.0.15 de mosquitto. Cependant, soyez conscient que cette version a des problèmes de sécurité, assurez-vous donc que votre courtier s'exécute au moins dans un environnement protégé par un pare-feu.

Dans BSB-LAN, vous devez effectuer ou activer au moins les configurations suivantes:

  • Définissez le mode de journalisation (en plus) sur Envoyer au courtier MQTT.
  • Définissez l'intervalle de journalisation sur le temps (en secondes) pendant lequel vous souhaitez que les paramètres de journalisation soient publiés.
  • Sélectionnez jusqu'à 20 paramètres de journalisation que vous souhaitez envoyer à votre système de domotique.
  • Définissez l'utilisation de MQTT sur texte brut.
  • Définissez le serveur du courtier MQTT sur le nom d'hôte de votre courtier MQTT (tel que le serveur mosquitto).

Si votre système de domotique prend en charge la découverte automatique MQTT (comme c'est le cas avec Home Assistant), vous pouvez appeler la commande URL /M1!<x> et BSB-LAN enverra des messages de découverte automatique pour tous les paramètres disponibles à partir de l'ID d'appareil <x> au courtier MQTT et donc au système de domotique. Vous devrez peut-être effectuer un nettoyage par la suite ou envoyer un message de suppression pour tous ces paramètres à l'aide de la commande URL /M0!<x> si vous ne souhaitez plus utiliser cette fonctionnalité.

Sinon, si vous souhaitez configurer vos propres détails de connexion, la structure de sujet de BSB-LAN est la suivante: <BSB-LAN MQTT Topic>/<device ID>/<category no.>/<parameter no.>

  • <BSB-LAN MQTT Topic> est défini dans les paramètres de BSB-LAN (par défaut BSB-LAN),
  • <device ID> est l'ID du régulateur de chauffage (généralement 0 pour le contrôleur principal),
  • <category no.> est le numéro de catégorie tel qu'il est utilisé avec la commande URL /K,
  • <parameter no.> est le numéro de paramètre, tel que 501.1.

Cette structure est suivie de l'un de ces sujets qui déterminent l'action à effectuer:

  • /status - contient la valeur du paramètre dans la charge utile MQTT.
  • /set - utilisé pour définir un paramètre avec la valeur contenue dans la charge utile MQTT publiée à l'aide du télégramme SET (méthode par défaut de définition des paramètres).
  • /inf - identique à /set, mais utilise le télégramme INF (utilisé pour envoyer le paramètre de température ambiante 10000, par exemple).
  • /poll - ignore la valeur publiée et force BSB-LAN à mettre à jour immédiatement /status du même paramètre avec une valeur de paramètre nouvellement récupérée. /poll peut également être accessible directement sous le sujet principal (par exemple BSB-LAN/poll) où il accepte une liste de paramètres séparés par des virgules. Ces paramètres auront ensuite leurs sujets /status respectifs mis à jour en une seule fois. L'adressage des paramètres peut être effectué soit dans le style de sujet (avec une barre oblique de début), soit de manière similaire à la liste des paramètres de journalisation dans les paramètres de BSB-LAN (voir les exemples ci-dessous).

Dans le même temps, la méthode héritée d'envoi de commandes URL via MQTT directement au sujet principal (tel que défini dans les paramètres, par défaut BSB-LAN), est toujours prise en charge pour des raisons de compatibilité, mais est déconseillée. Les réponses seront toujours écrites dans /status de la structure de sujet ci-dessus.

Le sujet /status est mis à jour de quatre manières:

  • via les paramètres de journalisation vers MQTT comme expliqué ci-dessus
  • chaque fois qu'une requête URL est effectuée sur BSB-LAN (peut être désactivé en activant Only send log parameters to MQTT dans la configuration)
  • chaque fois qu'un paramètre est modifié via le module de commande (peut être désactivé en activant Only send log parameters to MQTT dans la configuration)
  • chaque fois que le paramètre est mis à jour via le sujet /poll comme expliqué ci-dessus

Dans ces cas, les valeurs respectives des paramètres concernés seront envoyées au courtier MQTT, de sorte que même les modifications apportées en dehors de BSB-LAN sont envoyées au système de domotique, c'est pourquoi l'approche MQTT est la méthode recommandée pour se connecter à un système de domotique. Cela signifie également que, comme alternative à la fonctionnalité de journalisation intégrée de BSB-LAN, vous pouvez également appeler périodiquement une URL avec les paramètres que vous souhaitez voir mis à jour. Étant donné que ces paramètres seront également envoyés au courtier MQTT, votre système de domotique les recevra également. Par exemple, si vous appelez périodiquement l'URL http://bsb-lan.local/700/8700, le mode de fonctionnement du circuit de chauffage 1 (paramètre 700) ainsi que la température extérieure actuelle (paramètre 8700) seront envoyés au courtier MQTT.

Exemples d'interrogation ou de définition de paramètres via MQTT à l'aide de mosquitto

Interroger la température extérieure (ID d'appareil 0, numéro de catégorie 51, paramètre 8700): mosquitto_sub -h my.mosquitto-broker.local -u USER -P PASSWORD -t BSB-LAN/0/51/8700/status

Définissez le point de consigne de température de confort (ID d'appareil 0, numéro de catégorie 16, paramètre 710) à 20 degrés: mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m "20" -t BSB-LAN/0/16/710/set

Forcer la mise à jour immédiate de la température extérieure (ID d'appareil 0, numéro de catégorie 51, paramètre 8700): mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m "" -t BSB-LAN/0/51/8700/poll

Forcer la mise à jour immédiate des paramètres 700 et 8700 à partir de l'appareil par défaut ainsi que du paramètre 8326 à partir de l'ID d'appareil 1: mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m "700,8700,8326!1" -t BSB-LAN/poll ou mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m "/0/16/700,/0/51/8700,/1/50/8326" -t BSB-LAN/poll

Attention: Veuillez noter que le numéro de catégorie diffère d'un système à l'autre et doit être comparé avec votre système en premier!


Échange de données via JSON

BSB-LAN permet d'interroger et de définir des paramètres via des structures JSON et fournit également de nombreuses informations sur les paramètres et les structures de catégories de cette manière. L'API JSON est accessible via des commandes URL et le fichier openapi.yaml fourni dans ce référentiel peut être utilisé avec Swagger pour explorer ses possibilités et ses fonctionnalités.


Échange de données via des commandes URL et la récupération de données à l'écran

Pour des solutions plus simples, l'utilisation de commandes URL pour interroger et définir des paramètres peut être utilisée pour contrôler BSB-LAN à partir d'autres systèmes. La récupération de données à l'écran est possible car le projet tente de ne pas rompre certaines façons d'afficher les données, de sorte que l'analyse avec des expressions régulières reste réalisable. Néanmoins, pour la plupart des scénarios, l'une des autres options sera probablement préférable.