Explorateur BACnet gratuit et open source avec API REST
Wacnet est un explorateur BACnet/IP gratuit et open source qui s'exécute en un seul fichier JAR sans aucune installation — téléchargez, double-cliquez et parcourez votre réseau BACnet en moins de 30 secondes. Contrairement aux outils BACnet propriétaires qui coûtent des milliers de dollars par poste, Wacnet est entièrement gratuit (GPLv3) et fonctionne sur Windows, macOS et Linux. Il inclut un explorateur de réseau web, une API REST complète avec documentation Swagger pour l'intégration avec Python, Excel ou tout client HTTP, et un REPL Clojure interactif pour les utilisateurs avancés qui doivent scripter des opérations BACnet personnalisées. Wacnet intègre aussi le support natif de Vigilia, permettant l'enregistrement automatique de votre réseau BACnet dans le nuage à intervalles configurables.
Idéal pour : les intégrateurs de systèmes qui ont besoin d'un outil de diagnostic rapide pour les réseaux BACnet multi-fournisseurs, les gestionnaires d'immeubles qui veulent voir ce qui est sur leur réseau sans acheter de logiciel propriétaire, et les développeurs qui ont besoin d'une API REST pour intégrer BACnet dans leurs applications.
Nous sommes charmés par les possibilités offertes et nous voyons plusieurs applications en lien direct avec notre entreprise.
Merci beaucoup pour cette application, je la trouve très pratique et m'en sert quotidiennement.
Un collègue et moi l'utilisons de temps en temps pour trouver des appareils pendant l'intégration de systèmes. C'est léger et utile pour les recherches BACnet.
Fonctionnalités principales
Découverte du réseau
Découvrez automatiquement tous les appareils BACnet sur votre réseau. Parcourez les propriétés, listes d'objets et valeurs dans une interface web claire.
API REST
API CRUD complète avec documentation Swagger. Lisez et écrivez des objets BACnet depuis Python, Excel ou tout client HTTP. Supporte JSON, Transit et EDN.
REPL interactif
Les utilisateurs avancés ont accès à un REPL Clojure avec accès direct à la pile BACnet. Scriptez des opérations, automatisez des commandes par lot ou prototypez des intégrations.
Intégration Vigilia
Enregistreur intégré pour Vigilia — scannez votre réseau BACnet à intervalles réguliers et envoyez les données dans le nuage. Scan parallèle configurable pour les grands réseaux.
Aucune installation
Un seul fichier JAR — fonctionne sur toute machine avec Java. Pas d'installateur, pas de droits admin. Peut même fonctionner depuis une clef USB. Compatible Windows, macOS et Linux.
Mode sans interface
Déployez sur un serveur avec --headless. Configurez via la ligne de commande : ports personnalisés, démarrage automatique de l'enregistrement, pas de navigateur. Parfait pour les installations permanentes.
Configuration requise
| Java | 1.8 ou plus récent |
|---|---|
| OS | Windows, macOS, Linux |
| Espace disque | ~100 Mo |
| Réseau | BACnet/IP (port UDP 47808) |
| Interface web | http://localhost:47800 |
| REPL | nREPL sur le port 47999 |
Pour qui est Wacnet?
- Gestionnaires d'immeubles — Voyez ce qui se trouve sur votre réseau BACnet sans acheter de logiciel propriétaire.
- Intégrateurs de systèmes — Diagnostiquez les réseaux multi-fournisseurs. Lisez des objets, envoyez des commandes, testez des points.
- Développeurs — Intégrez BACnet dans vos applications via l'API REST ou le REPL Clojure.
- Agents de mise en service — Vérifiez les configurations d'appareils et les séquences de contrôle lors de la mise en service.
- Étudiants et enseignants — Apprenez le protocole BACnet de manière pratique sans aucune barrière à l'entrée.
À propos
Wacnet est un serveur web ainsi qu'une trousse à outils pour les réseaux BACnet.
Il peut être démarré immédiatement sans aucune installation, à condition que vous ayez Java (min 1.8) sur votre machine.
Vous pouvez naviguer votre réseau BACnet en utilisant l'explorateur, envoyé des commandes sur le réseau avec le REPL ou l'API web, et enregistrer des historiques avec l'aide de Vigilia.
Wacnet est un logiciel libre, gratuit et ne vient avec absolument aucune garantie, tel que spécifié dans la licence GPLv3. La source Le code source est sur GitHub.
Pourquoi Wacnet?
BACnet promet l'interopérabilité entre appareils de multiples manufacturiers — mais les outils pour utiliser cette interopérabilité ont traditionnellement été coûteux et complexes.
La plupart des outils BACnet commerciaux coûtent de centaines à des milliers de dollars par poste, nécessitent des assistants d'installation, des dongles de licence et une formation spécifique au fournisseur. Les gestionnaires d'immeubles ne savent souvent pas ce qui se trouve sur leur réseau BACnet parce que la seule façon de le parcourir nécessite un logiciel propriétaire.
Wacnet change la donne. Téléchargez un seul fichier, double-cliquez et vous parcourez votre réseau en quelques secondes. C'est le Notepad des outils BACnet — gratuit, simple et toujours disponible quand vous en avez besoin. Pas de clé de licence, pas d'abonnement, pas de verrouillage fournisseur.
| Wacnet | Outils propriétaires typiques | |
|---|---|---|
| Coût | Gratuit (GPLv3) | 500 $ – 5 000 $+ / poste |
| Installation | Aucune — un seul fichier JAR | Installateur + activation de licence |
| Plateforme | Windows, macOS, Linux | Windows seulement (typiquement) |
| API | API REST complète + REPL | Rarement disponible |
| Enregistrement réseau | Intégré (via Vigilia) | Produit séparé / module additionnel |
| Interface web | Oui — tout navigateur | Bureau seulement (typiquement) |
| Scriptabilité | API REST + REPL Clojure | Limitée ou aucune |
| Code source | Ouvert (GitHub) | Fermé |
Wacnet est une alternative moderne et open source à YABE (Yet Another BACnet Explorer) et aux outils propriétaires comme CAS BACnet Explorer, conçue pour des flux de travail web natifs. Contrairement à YABE, Wacnet fournit une API REST complète pour l'automatisation et l'intégration, et contrairement aux outils commerciaux, il est gratuit et fonctionne sur toutes les plateformes.
Capacités techniques
- Services BACnet : ReadProperty, ReadPropertyMultiple, WriteProperty (avec niveaux de priorité 1–16), WhoIs/IAm, WhoHas/IHave, SubscribeCOV
- Réseau : BACnet/IP, support BBMD, Foreign Device Registration (FDR), réseaux BACnet/MSTP routés (via routeur IP)
- Types d'objets : Tous les objets BACnet standard — Analog Input/Output/Value, Binary Input/Output/Value, Multi-state, Schedule, Calendar, Trend Log, Notification Class, et plus
- Formats API : JSON, Transit+JSON, Transit+MessagePack, EDN — tous les points d'accès supportent CORS
- Automatisation : REPL Clojure (nREPL sur le port 47999) pour scripter des opérations par lot, des séquences BACnet personnalisées et du prototypage en temps réel
Exemples de démarrage rapide
Lister tous les appareils BACnet sur votre réseau :
curl http://localhost:47800/api/v1/bacnet/devices
Lire un capteur de température (appareil 1234, analog-input 1) :
curl http://localhost:47800/api/v1/bacnet/devices/1234/objects/analog-input.1
Python — scanner et afficher tous les appareils :
import requests devices = requests.get("http://localhost:47800/api/v1/bacnet/devices").json() for d in devices: print(f"Device {d}: {requests.get(f'http://localhost:47800/api/v1/bacnet/devices/{d}').json()}") La documentation complète de l'API est disponible via l'interface Swagger intégrée à http://localhost:47800/api/ une fois Wacnet démarré.
Support multi-plateforme
- Windows 10/11 — Double-cliquez le JAR ou exécutez depuis l'invite de commandes. Aucun installateur .exe requis — Wacnet fonctionne comme un exécutable portable.
- macOS — Fonctionne directement avec le runtime Java intégré. Un outil BACnet léger pour les utilisateurs Mac.
- Linux / Raspberry Pi — Idéal pour les déploiements permanents sans interface. Exécutez Wacnet sur un Raspberry Pi comme passerelle BACnet et enregistreur Vigilia dédié.
- USB portable — Copiez le JAR sur une clef USB et exécutez-le sur n'importe quelle machine avec Java — aucune installation, aucune trace laissée.
Sécurité et empreinte
- Aucun droit administrateur ni privilège élevé requis
- S'exécute entièrement dans la machine virtuelle Java (JVM) — aucune modification système
- Ne communique pas vers l'extérieur — tout le trafic réseau est du BACnet/IP local (sauf si vous activez l'enregistrement Vigilia)
- Aucune collecte de données, aucune télémétrie, aucune analytique
- Open source (GPLv3) — auditez le code vous-même sur GitHub
Utilisation
Obtenir l'application
Si vous connaissez Clojure, téléchargez le code source, puis exécutez lein uberjar.
Vous pouvez aussi télécharger la version compilée au haut de cette page.
Démarrer l'application
Aucune installation de nécessaire! Peut fonctionner directement sur une clef USB!
Le fichier .jar peut être démarré sur n'importe quelle machine avec Java d'installé. Nous recommendons de démarrer l'application avec la ligne de commande suivante:
java -jar <nom du fichier>
Par exemple:
java -jar wacnet-2.1.9-standalone.jar
Vous pouvez aussi démarrer l'application avec un simple double clic sur le fichier .jar
Lorsque l'application est démarrée, allez sur http://localhost:47800/ et explorer votre réseau!
Options de ligne de commande –web-port PORT Port du serveur web (défaut 47800) –nrepl-port PORT Port REPL (défaut 47999) –headless Exécuter sans interface graphique (pour serveurs) –no-browser Ne pas ouvrir le navigateur au démarrage -p, –project-id ID ID du projet Vigilia (démarrage auto de l'enregistrement) -k, –logger-key KEY Clé de l'enregistreur Vigilia -t, –time-interval MIN Intervalle de scan en minutes (min 5)
Utilisation avancée
REPL
Le REPL est un environnement de programmation interactif qui permet à l'utilisateur aguerri d'utiliser des outils fait sur mesure pour ses besoins. S'il manque une fonctionnalité, il est même possible de l'ajouter directement!
Pour une meilleure expérience, il est fortement recommandé de se connecter au REPL par le port 47999 plutôt qu'en utilisant l'interface web.
Une méthode pour y arriver est d'utiliser Emacs et CIDER sur le port 47999.
Assurez-vous de regarder les exemples sur la page REPL pour avoir un aperçu de ce qui est possible. Jetez aussi un coup d'oeil à la documentation de la librairie bacure pour apprendre les commandes liées à BACnet.
API REST
L'API vous donne accès au réseau BACnet sans que vous ayez à apprendre des langages de programmation.
Vous utilisez Excel? Des pages HTML? De simples scripts Python? Ça n'a pas d'importance, l'API peut être utilisée immédiatement dans votre environnement favori.
L'API a aussi une interface Swagger qui décrit chacun des points d'accès, en plus de vous donner l'opportunité de les essayer directement dans votre navigateur.
Points d'accès principaux :
GET /api/v1/bacnet/devices— lister tous les appareils BACnetGET /api/v1/bacnet/devices/{id}/objects— lister les objets d'un appareilGET /api/v1/bacnet/devices/{id}/objects/{obj}— lire les propriétés d'un objetPUT /api/v1/bacnet/devices/{id}/objects/{obj}— écrire sur un objetPOST /api/v1/bacnet/devices/{id}/objects— créer un nouvel objet
Les réponses sont disponibles en JSON, Transit+JSON, EDN et Transit+MessagePack. Tous les points d'accès supportent CORS pour les intégrations web.
Historique de réseau (Vigilia)
Wacnet est fourni avec un enregistreur intégré pour Vigilia, permettant de scanner le réseau BACnet à intervalles réguliers et d'envoyer les données dans le nuage. Fonctionnalités :
- Intervalles de scan configurables (à partir de 5 minutes)
- Scan parallèle des appareils pour les grands réseaux
- Ciblage sélectif d'objets par appareil
- Filtrage des ID d'appareils (plages d'inclusion/exclusion)
- Démarrage automatique de l'enregistrement via la ligne de commande
- Support proxy pour les réseaux d'entreprise
Voyez ce guide pour commencer à enregistrer votre réseau.
Foire aux questions
Est-ce que Wacnet est vraiment gratuit?
Oui. Wacnet est distribué sous la licence GNU General Public License v3 (GPLv3). Vous pouvez l'utiliser, le modifier et le distribuer librement. Le code source est sur GitHub.
Est-ce que ça fonctionne avec BACnet/MSTP?
Wacnet communique via BACnet/IP. Si vos appareils MSTP sont derrière un routeur BACnet qui fait le pont vers IP, Wacnet peut les atteindre — il supporte les réseaux routés et affiche les informations de routage.
Peut-on l'exécuter sur un serveur en permanence?
Oui. Utilisez --headless --no-browser pour exécuter sans interface graphique. Combinez avec les options Vigilia pour démarrer l'enregistrement automatiquement au démarrage.
Combien d'appareils peut-il gérer?
Il n'y a pas de limite stricte. Wacnet a été utilisé sur des réseaux avec des centaines d'appareils. Pour les très grands réseaux, vous pouvez exécuter plusieurs instances scannant différentes plages d'appareils.
Peut-on écrire des valeurs sur les objets BACnet?
Oui. Via l'API ou le REPL, vous pouvez écrire sur toute propriété BACnet inscriptible avec support des niveaux de priorité.
Avertissements
Wacnet va tenter de dissimuler toutes les erreurs de communication. Pour une analyse plus avancée, il est recommandé d'utiliser Wacnet avec Wireshark: Envoyer les commandes avec Wacnet et regardez les erreurs avec Wireshark.
Licence
GNU General Public License version 3.0 (GPLv3)

