I’ve done it!
My first real, service providing, payment subscription website. I must say it took longer than what I was expecting… (Paypal’s API is a bitch; many things don’t act like described in their manual).
Because I like privacy and encryption, I made sure BACnethelp.com would abide by these principles. What? You want me to encrypt only the payment section? Well first of all it wasn’t really necessary, as the payment section really is on the Paypal side. But even then, I only have this to say:
That’s right! Every single page is encrypted. No one on your network can see what you are looking at! They can, however, see that you are browsing BACnethelp.com because of the DNS resolving which isn’t encrypted. Hopefully this will change sooner rather than later.
Needless to say, I made sure that all the passwords are not saved in plain-text. This might seems self evident, but I’m constantly surprised by the number of website not doing it the right way. In fact, if a website gives you a maximum length for your password, run. Run as fast as you can, because this is a really, really bad sign.
What it does
But really, what does my website do? It enables you to see what’s on your BACnet network.
A Data Communication Protocol for Building Automation and
By that I don’t mean there isn’t already some tools to browse a BACnet network. Unfortunately for the user, those tools often cost more than a thousand dollar for a single license. Add some more thousands if you want to save the data in a database, or add a web-server. Want to use BACnet at home? Well this seems like a good choice; take one of your micro-controllers, add it a BACnet stack and you’re rolling baby! Except won’t you be able to retrieve the data easily. This is the weird state of BACnet right now. Yes, its main goal is integrability, yet most of us can’t see what’s on the network unless we drop only a grand or two.
This is where BACnet help comes in. Tada! By running a little application, you are able to scan the entire network in a single swoop. It’s grabbing everything: IP addresses, MAC addresses, current values, descriptions, out-of-service, (…) trend-logs and even backups! It takes a snapshot of your network. “How was the network when I finished servicing it? Does someone played with some values and caused havoc?” All you need to do, is press a single button:
This couldn’t be any simpler. Of course there’s some advanced settings if you want to customize a little more your scanning experience.
In other words, this is what BACnet help lets you do: Scan and see your network.
As many of you probably determined by now, the scanner doesn’t provide a real time view of the network; it’s a snapshot. It’s not meant to send commands, only to see your network. One of the constraints I had to cope with was that some of BACnet’s heavy users don’t have an Internet access on the same network. I know, I know, why the hell not. On one side it would be silly to hack into a system only to change a room temperature set point. On the other side, there’s no authentication (that I know of) on the BACnet network. Anyone can just connect to port 47808 and voilà!
So how can I take a snapshot of a network and send it to BACnet help later, when the user has an Internet access? The resulting file must also be able to go through most firewalls (to send it via email). Finally, the most important point, the user must be able to use it. (In the HVAC world, there’s some people still sending faxes, don’t expect them to know how to do the simplest computer task. Don’t get me wrong, they might be gods to maintain a boiler system… but they suck at computers. Nobody can do everything.) What’s the solution for an easy to use file, usable on any machine and transparent to firewalls? An HTML file! All data is crammed inside it, ready to be send when the user click on the “Send” button.
Now calm down, I know what you are thinking “Won’t all this info help others reverse engineer your so-nice-I-wish-I-could-marry-it network scanner? Well no, because…
The scanner is open source! You can grab the source whenever you want! I must warn you, many shortcuts where taken as I didn’t need the entire BACnet range of functions to do what I wanted. You can check the BACnet4J library if you want to build something more hardcore. Because I’m also a big fan of free softwares, I must mention that the scanner works on the JVM (written in Clojure), meaning it can also work on GNU/Linux! The .exe scanner is simply a wrapped .jar, meaning that you can open it using the Java runtime.
So I need to pay to use it?
Only if you use it extensively! As a non-subscriber, you can save up to 3 projects, each with a maximum of 5 devices. This is more then enough for a home project! You can also delete devices you don’t use and put new ones in their places. The important thing here is to stay below the maximum number. Unless you are using it extensively, it’s 100% free!
Please, try it! I would love to have your feedbacks!