Virtual Sensors

From OpenMotics
Jump to navigation Jump to search


The Openmotics system supports following virtual devices:

  • Virtual Inputs: For example a doorbell that sends a push notification is translated in an action that switches on a light in the house
  • Virtual Outputs: For example a Philips Hue light that acts as a virtual output can be switched on by a normal switch on the Openmotics system (or a virtual switch)
  • Virtual sensors: Any non-openmotics sensors like Z-wave wireless temperature, NEST thermostat temperature and humidity, third party light sensors etc

The Openmotics system has his own set of sensors that can be connected. However, in certain circumstances, it can be useful to connect third party sensors like for example wireless Z-wave temperature sensors or the NEST thermostat to act as temperature sensor for the thermostat function.

How does all the Virtual stuff works?

All virtual devices are picked up by the plug-in system:

  • Virtual Inputs: Virtual inputs like doorbells, motion detectors etc sends a message to the Gateway that is picked up by Plug-in system. The plug-in system will translate this in actions and for example switch on/off lights, change thermostat settings, change position of shutters etc
  • Virtual Outputs: When for example a virtual output (Philips Hue for example) has to be switched when an input on the Openmotics system is pressed, a Virtual Output can be configured. Each Virtual Output that must be switched will be sent to the gateway. On the gateway, a for example Philips plug-in will be installed that converts the virtual output to the necessary commands for the Philips system.
  • Virtual Sensors: The Plug-in system will request for example the temperature of a wireless sensor and forward this to the Master. The Master will use this temperature like it was a temperature measured from one of the sensors directly connected to the Openmotics system. In other words, a Virtual sensor can be used to perform any function like it was a directly connected sensor so you can use Virtual sensor and use them for example in the thermostat functions.

See Virtual Plug-in Examples for more information how to use this in combination with the plug-in system.

Virtual Sensors (Available in firmware version 3.142.1 and higher)

As of Firmware Version F3.142.1 and higher, the master allows virtual sensors. A good example is the NEST thermostat which measures temperature and humidity as well. If you want to use the NEST temperature and/or Humidity in Openmotics, a virtual senor must be configured. When a virtual sensor is enabled on one of the sensor ports, the master will only update the sensor data through the virtual sensor API even when an Openmotics sensor is connected on that port

The user can configure a sensor to be normal or virtual. When a sensor is normal, it will get his values (temperature/humidity/light) from the Openmotics Temperature module. When a sensor is virtual, the plug-in system will send the values to the Master.

In total, 32 sensors can be configured. Those can all be virtual or normal or a mix of both. When for example sensor 5 is configured to be virtual, all sensor values (temperature/humidity/light) of that sensor will be virtual, even when a physical sensor is connected on port 5.

Configure Virtual sensors

Sensor configuration (Virtual enabled or disabled) can be changed by changing the eeprom values in Page 195 (See Memory Model). Changing the values directly in the eeprom (page 195, see Memory Model) can be done. Please make sure to do an "eeprom activate" instruction (can be done in maintenance mode with instruction "eeprom activate" as well as by using API instruction AE) after changing the eeprom values.

API instruction "VL" (see API Reference Guide) is used to receive a list of the configured (normal or virtual) 32 sensors.

API instruction "VS" (see API Reference Guide) is used to send the sensor value (temperature, humidity and light) of 1 sensor from the Beagle Bone to the Master.

Page 195 in the Eeprom of the Master is used to store the sensor type (virtual or normal), see Memory Model

Configure Permanent Manual thermostat mode

When a Nest thermostat is integrated in the Openmotics system, you'll have double settings: Timings and temperature setpoints are programmed in the Nest thermostat and also in the Openmotics thermostat. This situation will create a thermostat that won'work properly and the intelligence of the Nest thermostat will be lost. To allow the user to keep the Nest functionality (for 1 room for example) but still allowing to change setpoints from the Openmotics portal as well as from the Nest app, you must be able to set 1 individual thermostat to permanent manual so no setpoints will be taken over from the Openmotics configuration.

When a Nest thermostat is configured for one of your rooms, and you've configured that Openmotics thermostat to permanent manual, you'll be able to do following functions:

  • Fully use the Nest app
  • Use the full intelligence of the Nest thermostat
  • Use the configured timings of the Nest app
  • Change the room setpoint in the Nest app
  • Change the room setpoint in the Openmotics portal
  • Change the thermostat mode (to away mode for example) in the Nest app
  • Change the thermostat mode (to away mode for example) in the Openmotics portal

When you use a multiroom configuration (with multiple thermostats) of which some of the thermostats are Nest thermostats, the output to drive the actuators and your pump(s) must be performed by Openmotics (Openmotics will be master to drive your actuators and pumps, the Nest thermostat will be Master for the rooms with a Nest thermostat, the Openmotics system will be master for the rooms with an Openmotics thermostat).

API instruction "pL" (see API Reference Guide) is used to receive a list of the 24 configured permanent manual thermostats.

Page 195 in the Eeprom of the Master is used to store the permanent manual thermostat setting, see Memory Model

The change in Permanent Manual mode is done by using Basic Action 82 (set) and 83 (Clear). When BA 82 or 83 is performed, the API instruction "pL" is automatically sent. The "pL" will always sent the list of it's currently active mode (cooling or heating) in other words, when your system for example is in Heating mode and you make a change of a Cooling thermostat, the "pL" instruction will contain the Heating parameters.