====== Wacnet ======
{{ :suppliers:hvac.io:wacnet:wacnet-explorer.png?400}}
Logo : {{:suppliers:hvac.io:wacnet:wacnet-logo.png?150|}}
[[https://hvac.io/docs/wacnet|Wacnet]] is a BACnet explorer, webserver, and toolkit.
It works with all BACnet/IP networks and doesn't require any installation.
It is used by hundreds of professionals in the field.
===== Requirements =====
* Java 8
* BACnet/IP network
===== Running the Software =====
Wacnet can be started by double-clicking on the .jar file, or by using this command:
java -jar wacnet-standalone-.jar
===== Source =====
Wacnet is open source software under the GPLv3.
The source can be found at this link: https://github.com/Frozenlock/wacnet
===== Scripts =====
The REPL can be used to send custom commands on the network.
Here are a few examples and custom scripts.
Check the bacure [[http://frozenlock.github.io/bacure/index.html|documentation]] to see the functions that are available to you.
==== Find devices ====
Send WhoIs broadcast for a single device at a time.
Use this if you can't seem to get a response from every device on your network.
(defn find-devices
"For the entire IDs range, send WhoIs broadcasts with a single
device as a target. Useful to get an answer from particular devices
when the network is congested."
[start-id end-id]
(let [ids (range start-id (inc end-id))]
(doseq [id ids]
(find-remote-device id)
(Thread/sleep 200))))
;; example to find devices 100 to 200 : (find-devices 100 200)
See the associated [[http://blog.hvac.io/2015/01/11/network-discovery-with-devices-ignoring-whois/|blog post]].
==== Network Profiling / Devices Inventory ====
This script will export a text file of the following form:
| :vendor-name | :object-name | :model-name | :object-identifier |
|--------------------------+-----------------------------------------+----------------------------------+--------------------|
| ABB | DRIVE_U1_V_ALI | ACH550 | [:device 50401] |
| ABB | DRIVE_U1_V_RET | ACH550 | [:device 50402] |
| ABB | UV01_DRIVE_ALIM | ACH550 | [:device 110201] |
| ABB | UV01_DRIVE_RET | ACH550 | [:device 110202] |
| TELEMECANIQUE | ATV 61 | ATV61HD15Y | [:device 110004] |
| TELEMECANIQUE | ATV 61 | ATV61HD15Y | [:device 110005] |
| CARRIER | CHILLER | BACnet Local Equipment Interface | [:device 50300] |
| Delta Controls | UV20 | DAC_1180 | [:device 10301] |
| Delta Controls | AC25 | DAC_1180 | [:device 10401] |
...
(about a hundred more)
(->> (pmap #(try (remote-object-properties % [:device %] [:model-name :object-name :vendor-name])
(catch Exception e))
(remote-devices))
(apply concat)
((fn [x] (with-out-str (print-table x))))
(spit "network-profile.txt"))
===== API =====
Most of the BACnet data visible from Wacnet can be retrieved using the API.
{{:suppliers:hvac.io:wacnet:wacnet-api.png?400|}}