Merge branch 'master' into development

Conflicts:
	libraries/MySensors/MyGateway.cpp
	libraries/MySensors/MyGateway.h
	libraries/MySensors/MyMessage.h
	libraries/MySensors/examples/LightLuxSensor/LightLuxSensor.ino
This commit is contained in:
Henrik Ekblad
2015-07-30 14:15:26 +02:00
30 changed files with 2547 additions and 719 deletions
+63 -56
View File
@@ -41,12 +41,55 @@ typedef enum {
C_STREAM = 4 // For Firmware and other larger chunks of data that need to be divided into pieces.
} mysensor_command;
// Type of sensor (used when presenting sensors)
typedef enum {
S_DOOR, // Door sensor, V_TRIPPED, V_ARMED
S_MOTION, // Motion sensor, V_TRIPPED, V_ARMED
S_SMOKE, // Smoke sensor, V_TRIPPED, V_ARMED
S_LIGHT, // Binary light or relay, V_STATUS (or V_LIGHT), V_WATT
S_BINARY=3, // Binary light or relay, V_STATUS (or V_LIGHT), V_WATT (same as S_LIGHT)
S_DIMMER, // Dimmable light or fan device, V_STATUS (on/off), V_DIMMER (dimmer level 0-100), V_WATT
S_COVER, // Blinds or window cover, V_UP, V_DOWN, V_STOP, V_DIMMER (open/close to a percentage)
S_TEMP, // Temperature sensor, V_TEMP
S_HUM, // Humidity sensor, V_HUM
S_BARO, // Barometer sensor, V_PRESSURE, V_FORECAST
S_WIND, // Wind sensor, V_WIND, V_GUST
S_RAIN, // Rain sensor, V_RAIN, V_RAINRATE
S_UV, // Uv sensor, V_UV
S_WEIGHT, // Personal scale sensor, V_WEIGHT, V_IMPEDANCE
S_POWER, // Power meter, V_WATT, V_KWH
S_HEATER, // Header device, V_HVAC_SETPOINT_HEAT, V_HVAC_FLOW_STATE
S_DISTANCE, // Distance sensor, V_DISTANCE
S_LIGHT_LEVEL, // Light level sensor, V_LIGHT_LEVEL (uncalibrated in percentage), V_LEVEL (light level in lux)
S_ARDUINO_NODE, // Used (internally) for presenting a non-repeating Arduino node
S_ARDUINO_REPEATER_NODE, // Used (internally) for presenting a repeating Arduino node
S_LOCK, // Lock device, V_LOCK_STATUS
S_IR, // Ir device, V_IR_SEND, V_IR_RECEIVE
S_WATER, // Water meter, V_FLOW, V_VOLUME
S_AIR_QUALITY, // Air quality sensor, V_LEVEL
S_CUSTOM, // Custom sensor
S_DUST, // Dust sensor, V_LEVEL
S_SCENE_CONTROLLER, // Scene controller device, V_SCENE_ON, V_SCENE_OFF.
S_RGB_LIGHT, // RGB light. Send color component data using V_RGB. Also supports V_WATT
S_RGBW_LIGHT, // RGB light with an additional White component. Send data using V_RGBW. Also supports V_WATT
S_COLOR_SENSOR, // Color sensor, send color information using V_RGB
S_HVAC, // Thermostat/HVAC device. V_HVAC_SETPOINT_HEAT, V_HVAC_SETPOINT_COLD, V_HVAC_FLOW_STATE, V_HVAC_FLOW_MODE
S_MULTIMETER, // Multimeter device, V_VOLTAGE, V_CURRENT, V_IMPEDANCE
S_SPRINKLER, // Sprinkler, V_STATUS (turn on/off), V_TRIPPED (if fire detecting device)
S_WATER_LEAK, // Water leak sensor, V_TRIPPED, V_ARMED
S_SOUND, // Sound sensor, V_TRIPPED, V_ARMED, V_LEVEL (sound level in dB)
S_VIBRATION, // Vibration sensor, V_TRIPPED, V_ARMED, V_LEVEL (vibration in Hz)
S_MOISTURE, // Moisture sensor, V_TRIPPED, V_ARMED, V_LEVEL (water content or moisture in percentage?)
} mysensor_sensor;
// Type of sensor data (for set/req/ack messages)
typedef enum {
V_TEMP, // S_TEMP
V_HUM, // S_HUM
V_LIGHT, // S_LIGHT, S_DIMMER
V_DIMMER, // S_DIMMER
V_STATUS, // S_LIGHT, S_DIMMER, S_SPRINKLER, Used for setting binary (on/off) status. 1=on, 0=off
V_LIGHT=2, // S_LIGHT, S_DIMMER. Same as V_STATUS
V_PERCENTAGE, // S_DIMMER. Used for sending a percentage value (0-100).
V_DIMMER=3, // S_DIMMER. Same as V_PERCENTAGE.
V_PRESSURE, // S_BARO
V_FORECAST, // S_BARO
V_RAIN, // S_RAIN
@@ -59,14 +102,15 @@ typedef enum {
V_DISTANCE, // S_DISTANCE
V_IMPEDANCE, // S_MULTIMETER, S_WEIGHT
V_ARMED, // S_DOOR, S_MOTION, S_SMOKE, S_SPRINKLER
V_TRIPPED, // S_DOOR, S_MOTION, S_SMOKE, S_SPRINKLER
V_TRIPPED, // S_DOOR, S_MOTION, S_SMOKE, S_SPRINKLER (for sprinklers with fire detection)
V_WATT, // S_POWER, S_LIGHT, S_DIMMER
V_KWH, // S_POWER
V_SCENE_ON, // S_SCENE_CONTROLLER
V_SCENE_OFF, // S_SCENE_CONTROLLER
V_HEATER, // S_HEATER
V_HEATER_SW, // S_HEATER
V_LIGHT_LEVEL, // S_LIGHT_LEVEL (light level in uncalibrated percentage)
V_HEATER, // Deprecated. Use V_HVAC_FLOW_STATE instead.
V_HVAC_FLOW_STATE=21, // HVAC flow state ("Off", "HeatOn", "CoolOn", or "AutoChangeOver"). S_HEATER, S_HVAC
V_HVAC_SPEED, // HVAC/Heater fan speed ("Min", "Normal", "Max", "Auto")
V_LIGHT_LEVEL, // S_LIGHT_LEVEL (light level in uncalibrated percentage) or S_LEVEL (light level in lux)
V_VAR1, V_VAR2, V_VAR3, V_VAR4, V_VAR5,
V_UP, // S_COVER
V_DOWN, // S_COVER
@@ -76,27 +120,27 @@ typedef enum {
V_FLOW, // S_WATER
V_VOLUME, // S_WATER
V_LOCK_STATUS, // S_LOCK
V_DUST_LEVEL, // S_DUST
V_LEVEL, // S_DUST, S_AIR_QUALITY, S_SOUND (dB), S_VIBRATION (hz), S_LIGHT_LEVEL (lux)
V_VOLTAGE, // S_MULTIMETER
V_CURRENT, // S_MULTIMETER
V_RGB, // S_RGB_LIGHT, S_COLOR_SENSOR.
// Used for sending color information for led lighting or color sensors.
// Sent as ascii hex. RRGGBB (RR=red, GG=green, BB=blue component)
V_RGBW, // S_RGB_LIGHT
// Used for sending color information to led lighting.
// Sent as ascii hex. RRGGBBWW (WW=while component)
// Used for sending color information for multi color LED lighting or color sensors.
// Sent as ASCII hex: RRGGBB (RR=red, GG=green, BB=blue component)
V_RGBW, // S_RGBW_LIGHT
// Used for sending color information to multi color LED lighting.
// Sent as ASCII hex: RRGGBBWW (WW=while component)
V_ID, // S_TEMP
// Used for reporting the sensor internal ids (E.g. DS1820b).
V_LIGHT_LEVEL_LUX, // S_LIGHT, Light level in lux
// Used for sending in sensors hardware ids (i.e. OneWire DS1820b).
V_UNIT_PREFIX, // Allows sensors to send in a string representing the
// unit prefix to be displayed in GUI, not parsed! E.g. cm, m, km, inch.
// Can be used for S_DISTANCE
V_SOUND_DB, // S_SOUND sound level in db
V_VIBRATION_HZ, // S_VIBRATION vibration i Hz
V_ENCODER_VALUE, // S_ROTARY_ENCODER. Rotary encoder value.
// unit prefix to be displayed in GUI, not parsed by controller! E.g. cm, m, km, inch.
// Can be used for S_DISTANCE or gas concentration (S_DUST, S_AIR_QUALITY)
V_HVAC_SETPOINT_COLD, // HVAC cold setpoint (Integer between 0-100). S_HVAC
V_HVAC_SETPOINT_HEAT, // HVAC/Heater setpoint (Integer between 0-100). S_HEATER, S_HVAC
V_HVAC_FLOW_MODE, // Flow mode for HVAC ("Auto", "ContinuousOn", "PeriodicOn"). S_HVAC
} mysensor_data;
// Type of internal messages (for internal messages)
typedef enum {
I_BATTERY_LEVEL, I_TIME, I_VERSION, I_ID_REQUEST, I_ID_RESPONSE,
@@ -105,43 +149,6 @@ typedef enum {
I_REBOOT, I_GATEWAY_READY, I_REQUEST_SIGNING, I_GET_NONCE, I_GET_NONCE_RESPONSE
} mysensor_internal;
// Type of sensor (for presentation message)
typedef enum {
S_DOOR, // V_TRIPPED, V_ARMED
S_MOTION, // V_TRIPPED, V_ARMED
S_SMOKE, // V_TRIPPED, V_ARMED
S_LIGHT, // V_LIGHT, V_WATT
S_DIMMER, // V_LIGHT, V_DIMMER, V_WATT
S_COVER, // V_UP, V_DOWN, V_STOP
S_TEMP, // V_TEMP
S_HUM, // V_HUM
S_BARO, // V_PRESSURE, V_FORECAST
S_WIND, // V_WIND, V_GUST
S_RAIN, // V_RAIN, V_RAINRATE
S_UV, // V_UV
S_WEIGHT, // V_WEIGHT, V_IMPEDANCE
S_POWER, // V_WATT, V_KWH
S_HEATER, // V_HEATER, V_HEATER_SW
S_DISTANCE, // V_DISTANCE
S_LIGHT_LEVEL, // V_LIGHT_LEVEL
S_ARDUINO_NODE,
S_ARDUINO_REPEATER_NODE,
S_LOCK, // V_LOCK_STATUS
S_IR, // V_IR_SEND, V_IR_RECEIVE
S_WATER, // V_FLOW, V_VOLUME
S_AIR_QUALITY, // V_VAR1
S_CUSTOM,
S_DUST, // V_DUST_LEVEL
S_SCENE_CONTROLLER, // V_SCENE_ON, V_SCENE_OFF.
S_RGB_LIGHT, // Send data using V_RGB or V_RGBW
S_COLOR_SENSOR, // Send data using V_RGB
S_MULTIMETER, // V_VOLTAGE, V_CURRENT, V_IMPEDANCE
S_SPRINKLER, // V_TRIPPED, V_ARMED
S_WATER_LEAK, // V_TRIPPED, V_ARMED
S_SOUND, // V_TRIPPED, V_ARMED, V_SOUND_DB
S_VIBRATION, // V_TRIPPED, V_ARMED, V_VIBRATION_HZ
S_ROTARY_ENCODER, // V_ENCODER_VALUE
} mysensor_sensor;
// Type of data stream (for streamed message)
typedef enum {