The Open VeNDing Project

The OpenVND project was started to answer a challenge. The maintainers of the OpenNMS Project have often said that if the data is available over the network, OpenNMS can manage it. The challenge arose to monitor a drink machine. While tons of apocryphal tales exist of network-enabled soda machines, the details of such devices are scarce, so we set out to make one. Plus, as anyone in a software company can attest, keep enough cold, caffienated and carbonated beverages around is a critical task, so it was worth doing.

OpenNMS is the world’s first enterprise-grade network management application platform developed under the open source model. As an application platform, it should be able to parse drink machine data as long as it can be put on the network. Ideally, this would be done using the Simple Network Management Protocol (SNMP), but OpenNMS has the ability to handle data from other protocols as well, so the initial goal was to get the machine monitored as quickly and easily as possible.

The solution involved purchasing a drink machine with a UCS/DEX inventory interface. A small Linux PC was mounted inside the machine in order to interface with the inventory management card and to proxy that data to the network. Software was installed to grab the data from the machine and make it available to OpenNMS. For Phase I this was done by publishing it on a web page.

Once the data was being collected, it was a simple matter to add a low threshold to indicate when a particular drink slot was running low on soda:

as well as sending a notice when it was refilled.

An absolute threshold was enabled to indicate when the inventory of any drink slot had changed by one, thus sending a notice that a particular soda had been sold.

Now that there are events describing when drinks are sold, that data can be put into a database report (click for the pdf).

The next step is to extend the Net-SNMP agent to provide this data over SNMP.

In the meantime, the resource graphs are available on the OpenNMS demo machine (user/pass:demo/demo), and we’ve made the raw data available until such time as either the network or our little PC are negatively impacted. There are other pages on this site detailing the hardware and software used in this solution.