WELL building standard and indoor air quality

What is the WELL building standard?

WELLBritish employees will tell you how hard they work and they are right; these days we are spending more time in the office than any other EU country except Austria and Germany.  How can the time spent indoors be made more comfortable and agreeable? It’s hard to isolate one sole influence that affects productivity when in fact there are many to consider. Studies have shown that despite an average working day of 8 hours you’re probably only productive for around 3 of those. The WELL Building Standard is a set of best practices and guidelines focused on human health and wellness. The culmination of seven years of evidence-based medical research in partnership with leading scientists, doctors, architects and wellness thought leaders was pioneered by Delos.  WELL is based on medical research on the health and wellness impacts of the buildings we spend most of our time in.  

WELL certification concentrates on performance and requires a ‘pass’ score in these seven categories: air, water, nourishment, light, fitness, comfort and mind. With WELL certification awarded at one of three levels: Silver, Gold, and Platinum, it is now much easier to gauge the gaps between comfort, well being and employee work output.

What variables are likely to impact productivity?

There is much research showing the effects of lighting, noise, temperature, and CO2 on our productivity.

Poor lighting makes us sleepy

That lull in energy you’re feeling might not be a sugar crash after all. Don’t blame it all on cake. There is a marked connection between light and productivity amongst other key factors. Daylight and “blue-enriched light bulbs” help employees stay alert by lowering melatonin, the hormone that makes us sleepy. But that’s not the only factor at play here influencing our alertness.

Breath of fresh air

We are less conscientious of air quality, but poor indoor air quality also cuts productivity. Insufficient ventilation concentrates pollutants, such as volatile organic compounds (VOCs) and carbon dioxide (CO2). High CO2 levels have been shown to reduce concentration, attention span, and memory in classrooms.

The adverse effects of poor air quality can be dangerous (see Sick Building Syndrome).

To address these issues companies are recycling indoor air to maintain healthy CO2 levels.

Screen Shot 2017-08-31 at 14.52.29

Noise reduces concentration

Clacking keyboards, co-workers yakking away and phones ringing are some of the common gripes employees give for the reduction in their concentration. World GBC’s 2016 report estimates that productivity dropped by 66% in performance and concentration due to ambient noise distractions.


Adjust your thermostat

It’s probably no surprise that with high temperatures (over 32C), productivity declines but the same is true when the temperature decreases below 15C, making people less focused on work and thus less productive. A 2004 study links fewer typing errors and higher productivity when work spaces are warm enough. Let’s not forget about humidity either as that affects perceived temperature and comfort levels so keeping a good level of it is key to maintaining a healthy and productive office environment.

Sensors improve workspace

Our clients use sensors for light, noise, temperature, and CO2, as well as measuring air quality (i.e. particulates) and various gases including potentially harmful ones (e.g. VOC and CO) to monitor the workplace environment and help create healthier surroundings. Pollution in large cities is increasingly problematic and it is vital that HVAC systems successfully filter out pollutants and gases from the outside world so employees can go about their days confident they are not compromising their well being just by going to work. OpenSensors aggregates data from a variety of sensors for the next generation of smart Building Management Systems and with experience in helping companies combine data from new workplace sensors, even interoperating it seamlessly with existing systems is easily done. We also operate the world’s largest repository of air quality data and process over 10 million sensor messages per day – that’s the equivalent of one message each for the entire population of Portugal!  


It has never been easier to measure environmental factors within buildings and analyse the data to give a fully comprehensive overview. Companies can optimise employee well being and efficiency using data from light, noise, temperature, and CO2 sensors with unprecedented ease.  A win win for everyone.


The Power of APIs

APIs are reshaping how companies do business. Once solely the domain of software engineers, they have grown to affect all levels of company.

What is an API?

An API is a set of clearly defined methods of communication between various software components. A good API not only makes it easy to get at your data but also combine it with additional data.

Why are APIs important?

Screen Shot 2017-08-24 at 10.42.35APIs are essential for interpretability. Deployed sensors and sensor networks will be part of the infrastructure of buildings for the foreseeable future and beyond, a trend that has gathered pace over recent years and is expected to continue for a long time to come. If the data only goes from the sensor into a black box, there is no built-in flexibility. Not only can you now see the visualizations clearly and easily but you can also integrate the data with the existing CAFM System. The same data can also be integrated into the existing systems already in place and familiar to the client whether meeting room booking systems or building security systems ensuring maximum accessibility and control

Benefits of an API:

  • Freedom from vendor lock-in – easy independent access to data
  • Better security – the more people who can see and test a set of code, the more likely any flaws will be caught and fixed quickly.
  • Customizability
  • Flexibility
  • Interoperability – our list of current integrations is always growing. Contact us to see if your system can be linked together
  • Auditability
  • Try before you buy – why not do a pilot of 5 devices before you rollout to a large scale deployment?

A closed platform can be damaging long-term and expensive. Your data becomes locked up and customers can find themselves very much at the mercy of the vendor’s changing vision, requirements, dictates, prices, priorities, and timetable.

More about the OpenSensors APIs

cropped-os_badge_logoOpenSensors API’s enable you to extract data by a variety of means; project, location, organizational departments, types of sensors, types of messages etc. We have integrated with many CAMF systems, meeting room booking systems, and building security systems. It is a constantly reviewed and expanding list with many other integrations planned on our road map. It is not only possible to build integrations with the visualization systems you already have in place but also use our canned visualizations. The data can also be seen within our systems, but it’s really targeted at enabling flexibility and multi-purpose use of the data.

OpenSensors has an open data mission

Hardware is expensive. Implementation can often be difficult to reduce the data as much as possible. Unless the data is used by multiple systems effectively you are going to have to have a different use for the same data within the building. With closed systems, the same sensors will have to be redeployed for each specific set of data required. This does not make sense to us. Our basic mission is to make these data sets easily accessible. Whether that’s private data or open data, we want you to be able to collect the information and make it immediately reusable and interoperable with all the different systems that you are already or will be using.

Our systems are similar to the electrical voltage standards that allow you to purchase any appliance and plug it in delivering power to your device. OpenSensors allow you to plug in the different devices as needed. Our API allows your applications to connect and extract the data when and how it is needed. The data is no longer locked away in a proprietary system holding you to the ransom of one vendor and puts you back firmly in control.

By harnessing the power of data aggregation across smart building ecosystem, every stakeholder wins. Over and over again, we’ve seen that enriching the experience of all parties (business – agent – customer) generates a higher degree of success and satisfaction

About OpenSensors

OpenSensors aggregates data from a variety of sensors for the next generation of smart Building Management Systems. Our dashboards help you make the most effective use of your office space. With experience in helping more than 100 companies to combine data from new workplace sensors seamlessly, interoperating it with existing and familiar mobile and desktop systems, we aim to give you a fully comprehensive overview.

Monitoring for Earthquakes With Node-red

OpenSensors now capture seismic data from the Euro-Med Seismic Centre (EMSC) and the United States Geological Survey (USGS). Every ten minutes we are polling the latest information of major and minor earthquakes around the globe and make this information available via our programming interface (API) or as MQTT feed. In this short tutorial, we’re showing you how to use OpenSensors together with Node-RED to receive email alerts whenever there’s a major incident in a region of interest. You can use this guide as starting point for further experiments with Node-RED and develop your own earthquake-triggered workflows. Let’s shake it.

On OpenSensors

  • First, you need to login to your account on OpenSensor or sign up for one if you haven’t done so already at https://OpenSensors.io.
  • Next, it’s good practice to have a new ‘device’ for this application, i.e. a dedicated set of credentials you’re going to use to log in to OpenSensors for this particular set of MQTT feeds.
    • In the panel on the left, click My Devices in the Devices menu.
    • Click the yellow Create New Device button at the top of the page.
    • Optional: Add some optional descriptions and press the disk icon to save your new device.
    • Take a note of your ‘Client id’ and ‘Password’ as you’re going to need them in your Node-RED workflow.

For Node-RED

Install node.js and Node-RED on your system. There’s a very good guide for this on the Node-RED website. Follow the instructions, including the separate section on Running Node-RED.

Once you’re ready, open a web browser and direct it to localhost:1880, the default address and port of the Node-RED GUI on your system.

(A very basic description of the Node-RED vocabulary can also be found at SlideShare.)

Developing a workflow

  • From the input panel of your nodes library on the left side, drag and drop a pink mqtt input node into the work area named Sheet 1.
  • Double-click the mqtt node. A window with configuration details opens.
    • Click the pen symbol next to ‘Add new mqtt-broker…’. Your Broker is opensensors.io, your Client ID and Password those you generated in the previous step on the OpenSensors website, and User is your OpenSensor user name.
  • Once the Broker is defined, enter /orgs/EMSC/+ into the Topic field. This is going to instruct Node-RED to subscribe to all MQTT topics generated by the EMSC.
  • Optional: Set the Name of this node to ‘EMSC’.
  • Drag and drop a second mqtt input node. When you double-click the node, you will realise that the Broker settings default to the ones you previously entered.
    • Enter /orgs/USGS/+ in the Topics field and ‘USGS’ as optional Name.
  • Drag and drop a dark green debug node from the output panel on the left. While debugging has the connotation of fixing a problem, in Node-RED it’s the default way of directly communicating messages to the user.
  • Draw connection lines (“pipes”) from both mqtt nodes to the debug node.
  • Press the red Deploy button in the upper right corner. This starts your Node-RED flow. If everything worked, you should see ‘connected’ underneath the mqtt nodes and your debug panel (on the right) should soon produce the following JSON-formatted output if there’s an event (which may take a while!):

While it is pleasing to be informed about every time the earth shakes, it soon becomes tedious staring at the debug panel in expectation of an earthquake. Also, you may not be interested in events in remote areas of the world, or exactly in those – whatever interests you.

We are going to extend our flow with some decision making:

First, we need to parse the information from the EMSC and USGS. For this example, we’re going to be particularly interested in the fields region and magnitude. There are plenty more fields in their records, and you may want to adjust this flow to your needs.

  • Drag and drop a pale orange function node from the functions panel into your flow. Connect both mqtt nodes to the input side (the left side) of your function node. Function nodes allow you directly interact with your data using JavaScript.
  • Enter the following code (or download the OpenSensors workflow).

Here be a JavaScript course… :–) In a nutshell, this code takes data from the ‘payload’ of the incoming message (read up on the topic and payload concept of Node-RED in the SlideShare article suggested earlier). The payload is then parsed for the region and magnitude fields using standard regular expressions. If we can successfully extract information (in this case: the region containing ‘ia’ somewhere in it’s name), we’re going to set the outgoing message’s payload to the magnitude, its topic to ‘EVENT in ‘ plus the name of the region and pass it on (‘return msg’) to the next node.

  • Drag and drop a lime green switch node from the function panel into your workflow. Connect the output of the function node to the input of the switch node. Configure (by double-clicking) the switch node to assert if the payload (being the magnitude of the earthquake) is greater than 2. Only then the message is going to be passed on
  • Last, we’re going to drag and drop a light green e-mail output node from the social panel and configure it like an e-mail client, but with a default recipient: here in this case, ohmygodithappend@gmail.com.
  • Connect the output of the switch node to our debug node, as well as to the outgoing e-mail node.
  • We can then deploy the new workflow and should see something like this after a while:

In this case, an event was detected ‘off the coast of Northern California’ with a magnitude of 4.4 and at the same time, you should receive an e-mail with the region as subject and the magnitude in the body of the e-mail.

We hope that this flow is getting you started! Remember that Node-RED is superbly suited to interact with hardware… …imagine LEDs and buzzers indicating an earthquake.

The flow JSON: [{“id”:“e9024ae0.16fdb8”,“type”:“mqtt-broker”,“broker”:“opensensors.io”,“port”:“1883”,“clientid”:“1646”},{“id”:“2952b879.d6ad48”,“type”:“mqtt in”,“name”:“EMSC”,“topic”:“/orgs/EMSC/+”,“broker”:“e9024ae0.16fdb8”,“x”:127,“y”:104,“z”:“82a1c632.7d5e38”,“wires”:[[“490a140f.b6f5ec”,“163677af.e9c988”]]},{“id”:“54239d6.fabdc64”,“type”:“mqtt in”,“name”:“USGS”,“topic”:“/orgs/USGS/+”,“broker”:“e9024ae0.16fdb8”,“x”:128,“y”:159,“z”:“82a1c632.7d5e38”,“wires”:[[“490a140f.b6f5ec”,“163677af.e9c988”]]},{“id”:“490a140f.b6f5ec”,“type”:“debug”,“name”:“”,“active”:true,“console”:“false”,“complete”:“false”,“x”:538,“y”:86,“z”:“82a1c632.7d5e38”,“wires”:[]},{“id”:“163677af.e9c988”,“type”:“function”,“name”:“parse”,“func”:“// uppercase the payload (different centres report in mixed formats)nmsg.payload = msg.payload.toUpperCase();nn// extracting interesting fields with regular expressions,n// instead of using JSON.parse which fails with null fieldsnvar places_with_ia_regex = new RegExp(“REGION”:“(.IA.)”,“UPDATED”);nvar result1 = places_with_ia_regex.exec(msg.payload);nnvar magnitude_regex = new RegExp(“MAGNITUDE”:([0-9].[0-9]+)“);nvar result2 = magnitude_regex.exec(msg.payload);nn// if successful, sets topic to the region and payload to the magnitudenif (result1 && result2) {n msg.topic = ‘EVENT in ’+result1[1];n msg.payload = result2[1];n return msg;n}”,“outputs”:1,“noerr”:0,“x”:296,“y”:251,“z”:“82a1c632.7d5e38”,“wires”:[[“64f4f2ea.9b0b0c”]]},{“id”:“64f4f2ea.9b0b0c”,“type”:“switch”,“name”:“at least magnitude 2”,“property”:“payload”,“rules”:[{“t”:“gte”,“v”:“2”}],“checkall”:“true”,“outputs”:1,“x”:428,“y”:179,“z”:“82a1c632.7d5e38”,“wires”:[[“490a140f.b6f5ec”,“f7bcc59c.084338”]]},{“id”:“f7bcc59c.084338”,“type”:“e-mail”,“server”:“smtp.gmail.com”,“port”:“465”,“name”:“ohmygodithappened@gmail.com”,“dname”:“”,“x”:581,“y”:256,“z”:“82a1c632.7d5e38”,“wires”:[]}]