Qu’est-ce que le format WriteProperty en BACnet ?

Points clés : Qu’est-ce que le format BACnet WriteProperty ?

  • WriteProperty est le service BACnet utilisé pour modifier la valeur d’une propriété d’objet sur un équipement distant.
  • Il permet aux systèmes de gestion technique du bâtiment (GTB / BMS) de piloter des paramètres tels que les consignes, les modes de fonctionnement ou les plannings.
  • Le message inclut au minimum : Object Identifier, Property Identifier et Property Value (avec éventuellement un Array Index et une Priority).
  • Le service est transmis soit via une Confirmed Request (avec accusé de réception), soit via une Unconfirmed Request (sans accusé de réception).
  • Les données sont encodées selon le format TLV (Tag–Length–Value), commun à l’ensemble des services BACnet.
  • Le champ Priority (1 à 16) détermine quelle commande est appliquée lorsque plusieurs écritures sont en concurrence.
  • Les erreurs courantes incluent des restrictions de droits d’accès, des types de données invalides ou des réponses write-access-denied.
  • Une utilisation correcte de WriteProperty garantit la sécurité, l’interopérabilité et l’efficacité opérationnelle des bâtiments connectés.

Sommaire

Introduction

Lire une propriété permet de savoir ce que fait un système de bâtiment — écrire une propriété lui indique ce qu’il doit faire ensuite.

Dans le protocole BACnet, le service WriteProperty permet aux contrôleurs de supervision ou aux systèmes de gestion technique du bâtiment (GTB / BMS) de modifier les valeurs présentes dans les équipements terrain. Cela peut inclure l’ajustement de la consigne de température d’une pièce, le changement du mode d’éclairage ou la mise à jour des plannings d’occupation.

Ce service se situe au cœur même de l’automatisation des bâtiments, là où l’interopérabilité et le contrôle en temps réel doivent coexister.

Pour une vue d’ensemble complète des fondamentaux de BACnet, consultez Qu’est-ce que BACnet ?.

Olivier Hersent

« WriteProperty est le point où la supervision devient du contrôle. C’est le moment où les systèmes BACnet passent de l’observation à l’action — en apportant de l’intelligence à l’automatisation.« 

Qu’est-ce que le service WriteProperty dans BACnet ?

Le service WriteProperty est l’une des fonctions les plus puissantes du protocole BACnet. Il permet à un équipement BACnet — généralement un système de gestion technique du bâtiment (BMS) ou un contrôleur de supervision — de modifier la valeur d’une propriété sur un autre équipement BACnet.

Cette capacité transforme le réseau, qui passe d’un simple outil de supervision passive à un véritable système de contrôle actif. Par exemple, un BMS peut :

  • Mettre à jour une consigne de température sur un objet Analog Value,
  • Basculer un mode de ventilation de « Auto » à « Manuel » sur un objet Binary Value,
  • Modifier un planning d’éclairage stocké dans un objet Schedule.

Chaque requête WriteProperty contient un ensemble structuré de champs qui identifient précisément ce qui est modifié et à quel endroit :

  • Object Identifier → Définit l’objet à modifier (ex. : Analog Output 1)
  • Property Identifier → Définit la propriété (ex. : Present Value)
  • Property Value → Nouvelle valeur à appliquer
  • (Optionnel) Array Index → Spécifie l’élément du tableau à modifier
  • (Optionnel) Priority → Définit l’importance de la commande (1 à 16)

BACnet distingue deux variantes de ce service :

  • WriteProperty en Confirmed Request → L’émetteur reçoit un accusé de réception ou une erreur de la part de l’équipement cible.
  • WriteProperty en Unconfirmed Request → Envoyé sans attendre de réponse, utilisé lorsque le retour immédiat n’est pas critique.

Pour mieux comprendre l’interaction de ces services dans la pile BACnet, consultez Bases du protocole BACnet.

Structure de l’APDU WriteProperty

Le service WriteProperty est transmis à l’aide d’une APDU BACnet (Application Protocol Data Unit). Ce paquet définit la manière dont une commande est encapsulée et interprétée entre les équipements du réseau. Bien que l’encodage détaillé varie selon que le service est confirmé ou non, la structure globale reste cohérente.

Champ Description
Type de PDU Indique si le message est une Confirmed Request ou une Unconfirmed Request.
Invoke ID Numéro de transaction unique reliant la requête et l’accusé de réception (utilisé uniquement pour les services confirmés).
Service Choice Identifie le service invoqué — ici, WriteProperty (service choice = 15).
Données de service Contient les détails encodés : objet, propriété et valeur à écrire.

La partie Service Data contient la charge utile réelle et se compose de plusieurs éléments encodés :

  • Object Identifier – objet cible (ex. : Analog Value 3)
  • Property Identifier – propriété à modifier (ex. : presentValue)
  • (Optionnel) Array Index – utilisé lorsque la propriété est un tableau
  • Property Value – nouvelle donnée (encodée au format TLV)
  • (Optionnel) Priority – définit le niveau de priorité de la commande, de 1 (la plus élevée) à 16 (la plus basse)

Cette structure d’APDU garantit une communication fiable et normalisée entre des équipements BACnet multi-constructeurs — l’une des principales raisons pour lesquelles BACnet demeure le protocole de référence pour les systèmes d’automatisation de bâtiments ouverts.

Encodage des données et identification des propriétés

Les données du service WriteProperty suivent le modèle d’encodage TLV (Tag–Length–Value) utilisé dans l’ensemble du protocole BACnet.

Cette structure garantit que chaque information contenue dans le message — depuis l’objet ciblé jusqu’à la valeur écrite — est auto-descriptive et interprétable par les machines, permettant ainsi une communication fluide entre des équipements de fabricants différents.

Comprendre le TLV (Tag–Length–Value)

  • Tag → Décrit le type de donnée ou son contexte (par exemple : Boolean, Real, Unsigned Integer, Enumerated).
  • Length → Indique le nombre d’octets qui suivent.
  • Value → Contient la donnée réelle à transmettre ou à écrire.

Structure des données de service

Ci-dessous, une vue simplifiée des principaux champs présents dans la section Service Data du service WriteProperty :

Paramètre Description
Identifiant d’objet Spécifie l’objet BACnet à modifier (par exemple : Analog Output 1).
Identifiant de propriété Définit la propriété cible (par exemple : presentValue).
Index de tableau (optionnel) Utilisé lorsque la propriété est un tableau (par exemple : un jour spécifique dans un planning hebdomadaire).
Valeur de la propriété Nouvelle valeur à écrire, encodée selon le type de données BACnet (Boolean, Real, Enumerated, etc.).
Priorité (optionnelle) Priorité de la commande de 1 (la plus élevée) à 16 (la plus basse).

Exemple d’encodage TLV

Par exemple, si un BMS écrit une consigne de température de 22,5 °C dans un objet Analog Value :

  • Tag = Real (type flottant)
  • Length = 4 (nombre d’octets pour un flottant 32 bits)
  • Value = Encodage binaire de 22,5

Cet encodage modulaire permet au même service WriteProperty de gérer une grande variété de données — depuis de simples commutateurs booléens jusqu’à des structures complexes de planification — tout en garantissant une interopérabilité totale entre les équipements.

Exemple – Écriture d’une consigne de température

Prenons un exemple simple de requête WriteProperty dans lequel un système de gestion technique du bâtiment (BMS) envoie une nouvelle consigne de température à un équipement BACnet, tel qu’un régulateur de température de pièce.

Séquence pas à pas

Étape Description
1 Le BMS envoie une APDU Confirmed-Request ciblant Analog Value 1 et la propriété presentValue = 22,5 °C.
2 L’équipement reçoit le message et valide les droits d’accès, le type de données et la plage de valeurs.
3 L’équipement met à jour sa logique interne ou les sorties d’actionneurs avec la nouvelle valeur.
4 L’équipement renvoie une ComplexAck ou une Error PDU selon le résultat.

Exemple en notation simplifiée

WriteProperty-Request ::= {
object-identifier: analogValue, instance 1
property-identifier: presentValue
property-value: REAL, 22.5
priority: 8
}

Ce qu’il se passe ensuite

  • La nouvelle consigne (22,5 °C) met immédiatement à jour la logique du contrôleur.
  • Si d’autres commandes existent à une priorité plus élevée, elles continuent de s’appliquer tant qu’elles ne sont pas libérées.
  • Le BMS peut ensuite vérifier le résultat à l’aide du service ReadProperty sur le même objet.

Ce processus illustre comment WriteProperty permet un contrôle en temps réel et une synchronisation efficace entre les plateformes de supervision et les équipements terrain — un pilier de l’automatisation moderne basée sur BACnet.

Gestion des erreurs et droits d’accès

Étant donné que le service WriteProperty modifie directement le comportement des équipements, BACnet intègre des mécanismes robustes de sécurité, de validation et de gestion des erreurs. Ceux-ci garantissent que seules des opérations autorisées et valides sont appliquées.

Erreurs courantes liées à WriteProperty

Chaque objet représente une fonction logique d’un équipement. Parmi les erreurs les plus fréquemment rencontrées figurent :

Type d’erreur Cause typique
write-access-denied La propriété est en lecture seule ou bloquée par les paramètres de contrôle d’accès.
invalid-data-type Le type de valeur envoyé ne correspond pas au type de données attendu pour la propriété.
value-out-of-range La valeur dépasse la plage autorisée pour la propriété.
unknown-property L’identifiant de propriété n’est pas valide pour ce type d’objet.
device-busy L’équipement ne peut pas traiter la requête à ce moment-là.
other Erreur spécifique au fabricant ou définie par l’implémentation.

Contrôle des accès

Chaque équipement BACnet maintient des droits d’écriture (Write Access Rights) qui définissent quels objets ou propriétés peuvent être modifiés — et par qui. L’accès peut être limité à :

  • Des adresses réseau ou des instances d’équipements spécifiques,
  • Certains types d’objets ou ensembles de propriétés,
  • Des niveaux de sécurité définis lorsque BACnet/SC ou une communication authentifiée est utilisée.

En cas d’échec du contrôle d’accès, l’équipement cible renvoie une PDU d’erreur BACnet avec un code de raison détaillé.

Exemple de réponse d’erreur

Error ::= {
pdu-type: Error,
service-choice: WriteProperty,
error-class: property,
error-code: write-access-denied
}

En intégrant ces couches de validation, BACnet garantit que les opérations WriteProperty restent sûres, prévisibles et conformes dans des environnements multi-constructeurs — une exigence clé pour les réseaux IoT et les systèmes de gestion des bâtiments à grande échelle.

Applications dans les systèmes de gestion technique du bâtiment (GTB / BMS)

Le service WriteProperty est au cœur de l’automatisation et du pilotage au sein des systèmes de gestion technique du bâtiment basés sur BACnet.
Il transforme une supervision passive en prise de décision active, en permettant des ajustements en temps réel des paramètres environnementaux et opérationnels.

Cas d’usage typiques

Application Exemple d’action WriteProperty
Contrôle CVC Ajuster les consignes de température ou d’humidité sur des objets Analog Value.
Systèmes d’éclairage Allumer/éteindre les lumières ou ajuster la luminosité via des sorties binaires ou analogiques.
Planification Mettre à jour les plannings d’occupation ou temporels via des objets Schedule.
Optimisation énergétique Modifier les seuils de délestage ou les limites de consommation d’énergie.
Systèmes de sécurité Piloter des serrures, des alarmes ou des relais d’accès via des sorties binaires.
Mise en service à distance Écrire des paramètres de configuration sur les équipements terrain à distance.

Intégration dans les réseaux IoT et LoRaWAN®

Lorsque BACnet est étendu sur LoRaWAN® ou d’autres couches de communication IoT — comme c’est le cas avec ThingPark Enterprise (TPE) d’Actility et les passerelles BACnet/LoRaWAN
le service WriteProperty peut être utilisé pour piloter des équipements distants à très basse consommation, situés bien au-delà des réseaux filaires traditionnels.

Concrètement, un BMS unique peut ainsi :

  • Ajuster les consignes d’actifs énergétiques distribués,
  • Piloter des actionneurs CVC dans des sites éloignés,
  • Synchroniser des capteurs et contrôleurs terrain via des canaux IoT sécurisés et à faible bande passante.

En faisant le lien entre BACnet et LoRaWAN, Actility étend la puissance de contrôle et l’interopérabilité du service WriteProperty à des déploiements IoT de très grande échelle, ouvrant de nouvelles perspectives pour les bâtiments intelligents, les campus et les villes connectées.

Le service BACnet WriteProperty est le mécanisme qui apporte intelligence et contrôle à la couche réseau des bâtiments intelligents. Combiné à des technologies comme LoRaWAN® via les solutions IoT d’Actility, il permet un pilotage scalable, sécurisé et neutre vis-à-vis des fabricants au sein d’infrastructures distribuées.

Foire aux questions (FAQ) – Le service BACnet WriteProperty expliqué

WriteProperty permet à un équipement BACnet, tel qu’un système de gestion technique du bâtiment (BMS / GTB), de modifier la valeur d’une propriété sur un autre équipement. C’est le service qui transforme la supervision en contrôle opérationnel — en ajustant des consignes, des modes ou des plannings sur un réseau BACnet.

Non. Seules les propriétés modifiables définies par le modèle d’objets BACnet peuvent être écrites. Les propriétés en lecture seule (par exemple les identifiants d’objet ou les indicateurs d’état) ne peuvent pas être modifiées. Les équipements peuvent également restreindre l’accès en écriture selon leur configuration ou les droits utilisateurs.

  • Un WriteProperty confirmé nécessite un accusé de réception ou une réponse d’erreur, garantissant la fiabilité de l’échange.
  • Un WriteProperty non confirmé envoie la même commande sans attendre de réponse — utile lorsque la rapidité ou la bande passante est plus critique que la confirmation.

Si les contrôles d’accès, la validation des données ou les vérifications de plage échouent, l’équipement cible renvoie une PDU d’erreur BACnet, incluant une error-class (par exemple property) et un error-code (par exemple write-access-denied). L’émetteur peut alors journaliser l’erreur ou retenter la commande.

 

Dans des solutions comme ThingPark Enterprise d’Actility, une commande WriteProperty peut être transmise depuis un BMS cloud via une passerelle LoRaWAN®, permettant aux opérateurs de modifier des paramètres sur des équipements BACnet distants ou alimentés par batterie, même sur de longues distances.

BACnet prend en charge de nombreux types de données applicatives : Boolean, Unsigned, Integer, Real, Double, Enumerated, Bit String, Character String, et bien d’autres. Le tag de l’encodage TLV indique le type utilisé.

Lorsque plusieurs commandes WriteProperty ciblent la même propriété, la commande active de plus haute priorité détermine la valeur courante. Les commandes de priorité inférieure restent stockées jusqu’à ce que les priorités supérieures soient libérées, rétablissant alors leur effet.

Les deux. Il peut servir à configurer des paramètres d’équipement (comme des constantes de calibration ou des seuils) ou à effectuer des actions de contrôle en temps réel (comme ajuster la vitesse d’un ventilateur ou une température). Sa flexibilité en fait un pilier de l’automatisation dynamique des bâtiments.

À propos d’Actility

Actility, l’un des co-inventeurs de la technologie LoRaWAN® et membre fondateur de la LoRa Alliance, est le leader des solutions de connectivité LPWAN (Low Power Wide Area Network) de niveau industriel et du suivi IoT.
La plateforme ThingPark™ d’Actility, qui prend en charge la connectivité multi-radio (LoRaWAN®, NB-IoT, LTE-M), alimente la majorité des réseaux publics ainsi que de nombreux réseaux privés et d’entreprise à travers le monde.
À travers sa filiale Abeeway, Actility propose des trackers multi-radio brevetés à très basse consommation, ainsi que des services complets de géolocalisation indoor et outdoor.
Par ailleurs, ThingPark Market dispose du plus vaste catalogue d’équipements, de passerelles et de solutions LoRaWAN® disponibles sur le marché.

Contact presse : marketing@actility.comhttps://www.actility.com/contact/

Pourquoi choisir Actility ?

Chez Actility, nous sommes passionnés par la libération du plein potentiel de l’IoT pour les entreprises et les communautés du monde entier. Rejoignez-nous pour continuer à innover, collaborer et montrer la voie en connectant les mondes numérique et physique grâce à des solutions IoT de pointe.

© 2025 Actility’s All Rights Reserved