Beginning of March, I had to become acquainted with ARIS MashZone quite fast, because the IDS Scheer product management planned an integration between ARIS Risk & Compliance Manager (ARCM) and MashZone for the upcoming ARCM service release (SR-4).
Looking for an interesting example case and inspired by Tobias Blickle's „Heating MashApp“, I decided to create a MashApp for monitoring the HVAC (heating, ventilation, air conditioning) installation and the building climate at my own home. In the end, I was surprised how fast I achieved presentable results with ARIS MashZone.
The building services of my house consist of a heating (gas fired condensing technology), a solar thermal water heating, a soapstone fireplace and an automatic ventilation.
The hardware that performs the data acquisition completely differs from Tobias' approach: I do not gather any data from the HVAC controllers, but from an independent, Java based measurement system running on an embedded computer with very low power consumption.
For achieving an adequate real-time data feed for MashZone, all I had to do was equipping the system with a web interface, that provides the data as CSV stream (comma separated values). I implemented this by embedding a Jetty web server into the self-programmed software. The query language is quite simple: For example “http://<hostname:port>/ThetaLOG?cmd=csv&nmb=5” returns a header line with the channel names and the five latest samples:
Zeit;Aussen Nord;Heizung RL;Heizung VL;Kollektor RL;Kollektor VL; 27.05.2010 09:58:52;13.1;21.2;23.7;23.5;36.8 27.05.2010 09:59:13;13.1;21.2;23.7;23.5;36.8 27.05.2010 09:59:34;13.1;21.2;23.7;23.5;36.8 27.05.2010 09:59:55;13.1;21.2;23.7;23.5;36.8 27.05.2010 10:00:16;13.1;21.2;23.7;23.5;36.8
All in all, I installed 13 cable (1-Wire) and 7 wireless (EnOcean) sensors for measuring temperatures and relative humidity. You see, the example above is just an extract ;-)
Connoisseurs may realize that the CSV data shown in the example above perfectly fits for MashZone and the handling is as easy as can be. Having such a handy data source, the corresponding MashZone feed is self-explanatory:
The feed also uses an interesting new feature of MashZone 1.0.1 in the upper right corner: URL creation parameterized by user input.
For completing the App, I created two more feeds: One that just reads the latest data sample from my measurement system (the same request as shown above, but with a constant parameter nmb=1) and one that extracts weather info for my home town from Yahoo's Weather API. The resulting MashApp consists of five tabs. The one at the beginning of this article (2nd floor and warm water) and the following four:
1st floor and outdoor temperatures:
Outdoor temperatures and weather:
This is truly the mashup benchmark. We need to bring it on our gallery server.
Well, independent just means that the system is not electrically connected with the HVAC controllers and sensors. It can be mounted on every system that might be subject to temperature monitoring, even a green house, a cold store or a data center. The hardware is a single board computer (Mini-ITX) with 500MHz/256MB and a typical power consumption of 5W - that's important, because it runs 24/7/365.
The Java application that runs the measurement loop was programmed by myself. It uses some libs for charting and for reading from the 1-Wire bus and also a self-programmed API for the communication with EnOcean wireless sensors. EnOcean is a very modern standard for building control that uses energy harvesting techniques.