Le plugin BACnet Stack Server transforme votre Jeedom en passerelle BACnet bidirectionnelle. Il fonctionne à la fois en mode serveur (exposer vos équipements Jeedom sur le réseau BACnet) et en mode client (lire et écrire des valeurs sur des devices BACnet externes).
Le plugin s’appuie sur bacnet-stack, une implémentation open source du protocole BACnet. Un binaire compilé est téléchargé automatiquement lors de l’installation des dépendances.
Jeedom Réseau BACnet
┌─────────────────────┐ ┌──────────────────┐
│ │ ←→ │ GTB / Automate │
│ Mode Serveur │ │ (lit/écrit les │
│ (objets exposés) │ │ objets Jeedom) │
│ │ └──────────────────┘
│ Mode Client │ ←→ ┌──────────────────┐
│ (lit/écrit des │ │ Device BACnet │
│ devices externes) │ │ (capteur, CVC…) │
└─────────────────────┘ └──────────────────┘
Accédez à la page de configuration via le menu du plugin. Cette interface vous permet de lier vos commandes Jeedom à des objets BACnet visibles sur le réseau.
Une barre de recherche en haut du tableau filtre instantanément les lignes par type, instance, nom ou commande liée. Utile sur de grandes configurations.
| Colonne | Description |
|---|---|
| Type BACnet | Type d’objet BACnet (analog-value, analog-input, binary-value, etc.) |
| Instance | Numéro d’instance unique pour ce type d’objet (≥ 1, sauf schedule/trendlog ≥ 0) |
| Nom BACnet | Nom de l’objet visible sur le réseau BACnet |
| Commande Jeedom liée | Commande info ou action à exposer |
| Valeur initiale | Valeur de démarrage de l’objet BACnet |
| Sync auto | Mise à jour automatique depuis Jeedom (cron) |
| Actions | Supprimer l’objet ou configurer l’action |
analog-value / analog-input : valeurs numériques (température, consommation…)binary-value / binary-input : états ON/OFFmulti-state-value : états multiplesQuand une commande action est liée à un objet BACnet, cliquez sur “Config” pour définir le comportement lors d’une écriture BACnet :
22.5 → thermostat reçoit 22.51 (pour activer)Le bouton “Valeurs live” dans l’en-tête du tableau interroge instantanément le daemon BACnet pour afficher la valeur courante de chaque objet directement dans la colonne correspondante.
| Bouton | Effet |
|---|---|
| Sauvegarder | Enregistre la configuration dans un fichier temporaire, sans l’appliquer au serveur |
| Sauvegarder et Appliquer | Crée un backup automatique, puis applique à chaud la configuration (pas de redémarrage) |
| Synchroniser maintenant | Lance une synchronisation manuelle immédiate de toutes les valeurs liées |
1. Cron (Sync auto)
2. Callback temps réel
Le plugin peut se comporter en client BACnet : il se connecte à un device BACnet présent sur le réseau (automate, capteur, régulateur CVC…) pour lire ses valeurs et/ou lui envoyer des consignes.
4194302)192.168.1.100:47808). Le port 47808 est ajouté automatiquement si absent.Chaque commande info d’un équipement client correspond à un objet BACnet du device distant :
| Paramètre | Description |
|---|---|
| Type d’objet | analog-input, analog-value, binary-input, etc. |
| Instance | Numéro d’instance de l’objet sur le device |
| Propriété | Propriété à lire (par défaut : present-value) |
Les valeurs sont lues automatiquement à chaque cycle du cron. L’unité de mesure est récupérée depuis le device et appliquée automatiquement sur la commande Jeedom.
Chaque commande action permet d’écrire une valeur sur un objet BACnet du device distant :
| Paramètre | Description |
|---|---|
| Type d’objet | analog-value, analog-output, binary-value, etc. |
| Instance | Numéro d’instance de l’objet cible |
| Propriété | Propriété à écrire (par défaut : present-value) |
| Priorité d’écriture | Priorité BACnet (1–16, défaut : 8) |
Le plugin surveille automatiquement la disponibilité de chaque device client :
La page Supervision (accessible depuis l’accueil du plugin via la tuile orange) offre une vue centralisée de l’état du plugin.
Le bouton Rafraîchir met à jour l’ensemble de la page.
La section Derniers événements liste les 200 derniers événements enregistrés par le plugin, triés du plus récent au plus ancien.
Types d’événements :
| Type | Description |
|---|---|
| Connectivité | Device qui passe hors-ligne ou qui revient en ligne |
| Écriture | Écriture BACnet reçue sur le serveur ou envoyée par le client |
| Timeout | Dépassement du délai d’attente lors d’une lecture client |
| Connexion | Erreur de connexion au daemon |
Filtres disponibles :
Un badge coloré est affiché en permanence dans l’en-tête du plugin :
Il se rafraîchit automatiquement toutes les 30 secondes.
Depuis la page de mapping, vous pouvez :
Lorsque vous modifiez la configuration (ajout d’un objet, changement de valeur…), le plugin peut mettre à jour le serveur BACnet de trois façons différentes. Comprendre ces modes permet d’éviter les interruptions inutiles.
Aucune coupure réseau. Le daemon BACnet reste actif et met à jour ses objets en mémoire via la socket TCP interne. C’est le mode utilisé par défaut pour toutes les opérations courantes :
| Action | Déclencheur |
|---|---|
| Bouton “Sauvegarder et Appliquer” dans le mapping | Met à jour les objets immédiatement |
| Upload JSON en mode “à chaud” | Applique la nouvelle configuration sans interruption |
| Synchronisation automatique (cron) | Rafraîchit les presentValue de tous les objets liés |
| Changement de valeur d’une commande Jeedom | Propagé instantanément vers le serveur BACnet |
Attention : la mise à jour à chaud est additive. Si vous supprimez un objet du mapping, il reste présent en mémoire dans le daemon jusqu’au prochain redémarrage complet. Pour forcer la suppression d’un objet sans redémarrer, utilisez “Sauvegarder et Appliquer” (qui effectue un reset complet de la liste des objets).
Le serveur efface tous ses objets puis recharge la nouvelle configuration, toujours sans couper le daemon. Ce mode est utilisé automatiquement par “Sauvegarder et Appliquer” pour garantir la cohérence de la liste d’objets.
Coupure BACnet de ~2–10 secondes. Le daemon s’arrête puis redémarre. Nécessaire uniquement lors d’une modification des paramètres serveur (Device ID, port BACnet, interface réseau…) ou via le bouton “Redémarrer” dans la page de supervision.
L’upload JSON en mode “avec redémarrage” déclenche également ce mode — une confirmation est demandée avant de procéder.
Besoin : Exposer la température du salon à une GTB
analog-input — Instance : 3001 — Nom : “Température Salon”➜ La GTB peut lire la température via BACnet sur l’instance 3001
Besoin : Permettre à une GTB de modifier la consigne de chauffage
analog-value — Instance : 3002 — Nom : “Consigne Chauffage Salon”➜ Quand la GTB écrit sur l’instance 3002, le thermostat Jeedom est commandé
Besoin : Afficher dans Jeedom la température d’un capteur BACnet (device ID 100, IP 192.168.1.50)
100, IP 192.168.1.50:47808analog-input — Instance : 1Besoin : Modifier la consigne d’un régulateur BACnet depuis un scénario Jeedom
analog-value — Instance : 3 — Priorité : 8Le plugin génère des logs dans la page de logs Jeedom :
| Canal | Contenu |
|---|---|
bacnetStackServer |
Lectures/écritures client, connectivité, cron |
callbackBacnetStackServer |
Écritures reçues sur le serveur depuis le réseau BACnet |
Niveaux :
Q : Quelle est la différence entre analog-value et analog-input ?
R : analog-input est en lecture seule par convention BACnet, analog-value est en lecture/écriture. Pour commander depuis BACnet, utilisez analog-value.
Q : Pourquoi ma checkbox “Sync auto” est grisée ? R : La synchronisation automatique n’est disponible que pour les commandes info. Les commandes action réagissent aux écritures BACnet en temps réel, sans nécessiter de sync auto.
Q : Que se passe-t-il si je ne lie pas de commande Jeedom à un objet serveur ? R : L’objet BACnet existe avec une valeur statique définie dans “Valeur initiale”. Il ne sera pas mis à jour automatiquement.
Q : Puis-je utiliser la même instance pour plusieurs objets ? R : Non, chaque couple Type + Instance doit être unique sur le serveur BACnet.
Q : Les backups prennent-ils de la place ? R : Le plugin garde automatiquement les 10 derniers backups et supprime les plus anciens.
Q : Que signifie “Appliquer à chaud” ? R : Le serveur BACnet met à jour sa configuration sans redémarrage — les connexions actives ne sont pas interrompues.
Q : Comment savoir si un device client est accessible ? R : Consultez la page Supervision → colonne Statut du tableau des devices. La commande “Connectivité” de l’équipement est également disponible pour les scénarios et alertes. Un device est marqué hors-ligne après 3 cycles consécutifs sans réponse.
Q : Quelle est la librairie BACnet utilisée ? R : Le plugin utilise bacnet-stack, une implémentation open source et portable du protocole BACnet/IP.