node-red-contrib-mysensors
Version:
Mysensors related nodes, for decoding / encoding mysensors serial protocol and MQTT topic, and wrapping arbitrary messages into mysensors compatible messages
173 lines (167 loc) • 10.9 kB
text/typescript
/* eslint-disable max-len */
export enum mysensor_command {
C_PRESENTATION = 0, // !< Sent by a node when they present attached sensors. This is usually done in presentation() at startup.
C_SET = 1, // !< This message is sent from or to a sensor when a sensor value should be updated.
C_REQ = 2, // !< Requests a variable value (usually from an actuator destined for controller).
C_INTERNAL = 3, // !< Internal MySensors messages (also include common messages provided/generated by the library).
C_STREAM = 4, // !< For firmware and other larger chunks of data that need to be divided into pieces.
}
export enum mysensor_sensor {
S_DOOR = 0, // !< Door sensor, V_TRIPPED, V_ARMED
S_MOTION = 1, // !< Motion sensor, V_TRIPPED, V_ARMED
S_SMOKE = 2, // !< Smoke sensor, V_TRIPPED, V_ARMED
S_BINARY = 3, // !< Binary light or relay, V_STATUS, V_WATT
S_LIGHT = 3, // !< \deprecated Same as S_BINARY
S_DIMMER = 4, // !< Dimmable light or fan device, V_STATUS (on/off), V_PERCENTAGE (dimmer level 0-100), V_WATT
S_COVER = 5, // !< Blinds or window cover, V_UP, V_DOWN, V_STOP, V_PERCENTAGE (open/close to a percentage)
S_TEMP = 6, // !< Temperature sensor, V_TEMP
S_HUM = 7, // !< Humidity sensor, V_HUM
S_BARO = 8, // !< Barometer sensor, V_PRESSURE, V_FORECAST
S_WIND = 9, // !< Wind sensor, V_WIND, V_GUST
S_RAIN = 10, // !< Rain sensor, V_RAIN, V_RAINRATE
S_UV = 11, // !< Uv sensor, V_UV
S_WEIGHT = 12, // !< Personal scale sensor, V_WEIGHT, V_IMPEDANCE
S_POWER = 13, // !< Power meter, V_WATT, V_KWH, V_VAR, V_VA, V_POWER_FACTOR
S_HEATER = 14, // !< Header device, V_HVAC_SETPOINT_HEAT, V_HVAC_FLOW_STATE, V_TEMP
S_DISTANCE = 15, // !< Distance sensor, V_DISTANCE
S_LIGHT_LEVEL = 16, // !< Light level sensor, V_LIGHT_LEVEL (uncalibrated in percentage), V_LEVEL (light level in lux)
S_ARDUINO_NODE = 17, // !< Used (internally) for presenting a non-repeating Arduino node
S_ARDUINO_REPEATER_NODE = 18, // !< Used (internally) for presenting a repeating Arduino node
S_LOCK = 19, // !< Lock device, V_LOCK_STATUS
S_IR = 20, // !< IR device, V_IR_SEND, V_IR_RECEIVE
S_WATER = 21, // !< Water meter, V_FLOW, V_VOLUME
S_AIR_QUALITY = 22, // !< Air quality sensor, V_LEVEL
S_CUSTOM = 23, // !< Custom sensor
S_DUST = 24, // !< Dust sensor, V_LEVEL
S_SCENE_CONTROLLER = 25, // !< Scene controller device, V_SCENE_ON, V_SCENE_OFF.
S_RGB_LIGHT = 26, // !< RGB light. Send color component data using V_RGB. Also supports V_WATT
S_RGBW_LIGHT = 27, // !< RGB light with an additional White component. Send data using V_RGBW. Also supports V_WATT
S_COLOR_SENSOR = 28, // !< Color sensor, send color information using V_RGB
S_HVAC = 29, // !< Thermostat/HVAC device. V_HVAC_SETPOINT_HEAT, V_HVAC_SETPOINT_COLD, V_HVAC_FLOW_STATE, V_HVAC_FLOW_MODE, V_TEMP
S_MULTIMETER = 30, // !< Multimeter device, V_VOLTAGE, V_CURRENT, V_IMPEDANCE
S_SPRINKLER = 31, // !< Sprinkler, V_STATUS (turn on/off), V_TRIPPED (if fire detecting device)
S_WATER_LEAK = 32, // !< Water leak sensor, V_TRIPPED, V_ARMED
S_SOUND = 33, // !< Sound sensor, V_TRIPPED, V_ARMED, V_LEVEL (sound level in dB)
S_VIBRATION = 34, // !< Vibration sensor, V_TRIPPED, V_ARMED, V_LEVEL (vibration in Hz)
S_MOISTURE = 35, // !< Moisture sensor, V_TRIPPED, V_ARMED, V_LEVEL (water content or moisture in percentage?)
S_INFO = 36, // !< LCD text device / Simple information device on controller, V_TEXT
S_GAS = 37, // !< Gas meter, V_FLOW, V_VOLUME
S_GPS = 38, // !< GPS Sensor, V_POSITION
S_WATER_QUALITY = 39, // !< V_TEMP, V_PH, V_ORP, V_EC, V_STATUS
}
export enum mysensor_data {
V_TEMP = 0, // !< S_TEMP. Temperature S_TEMP, S_HEATER, S_HVAC
V_HUM = 1, // !< S_HUM. Humidity
V_STATUS = 2, // !< S_BINARY, S_DIMMER, S_SPRINKLER, S_HVAC, S_HEATER. Used for setting/reporting binary (on/off) status. 1=on, 0=off
V_LIGHT = 2, // !< \deprecated Same as V_STATUS
V_PERCENTAGE = 3, // !< S_DIMMER. Used for sending a percentage value 0-100 (%).
V_DIMMER = 3, // !< \deprecated Same as V_PERCENTAGE
V_PRESSURE = 4, // !< S_BARO. Atmospheric Pressure
V_FORECAST = 5, // !< S_BARO. Whether forecast. string of 'stable', 'sunny', 'cloudy', 'unstable', 'thunderstorm' or 'unknown'
V_RAIN = 6, // !< S_RAIN. Amount of rain
V_RAINRATE = 7, // !< S_RAIN. Rate of rain
V_WIND = 8, // !< S_WIND. Wind speed
V_GUST = 9, // !< S_WIND. Gust
V_DIRECTION = 10, // !< S_WIND. Wind direction 0-360 (degrees)
V_UV = 11, // !< S_UV. UV light level
V_WEIGHT = 12, // !< S_WEIGHT. Weight(for scales etc)
V_DISTANCE = 13, // !< S_DISTANCE. Distance
V_IMPEDANCE = 14, // !< S_MULTIMETER, S_WEIGHT. Impedance value
V_ARMED = 15, // !< S_DOOR, S_MOTION, S_SMOKE, S_SPRINKLER. Armed status of a security sensor. 1 = Armed, 0 = Bypassed
V_TRIPPED = 16, // !< S_DOOR, S_MOTION, S_SMOKE, S_SPRINKLER, S_WATER_LEAK, S_SOUND, S_VIBRATION, S_MOISTURE. Tripped status of a security sensor. 1 = Tripped, 0
V_WATT = 17, // !< S_POWER, S_BINARY, S_DIMMER, S_RGB_LIGHT, S_RGBW_LIGHT. Watt value for power meters
V_KWH = 18, // !< S_POWER. Accumulated number of KWH for a power meter
V_SCENE_ON = 19, // !< S_SCENE_CONTROLLER. Turn on a scene
V_SCENE_OFF = 20, // !< S_SCENE_CONTROLLER. Turn of a scene
V_HVAC_FLOW_STATE = 21, // !< S_HEATER, S_HVAC. HVAC flow state ('Off', 'HeatOn', 'CoolOn', or 'AutoChangeOver')
V_HEATER = 21, // !< \deprecated Same as V_HVAC_FLOW_STATE
V_HVAC_SPEED = 22, // !< S_HVAC, S_HEATER. HVAC/Heater fan speed ('Min', 'Normal', 'Max', 'Auto')
V_LIGHT_LEVEL = 23, // !< S_LIGHT_LEVEL. Uncalibrated light level. 0-100%. Use V_LEVEL for light level in lux
V_VAR1 = 24, // !< VAR1
V_VAR2 = 25, // !< VAR2
V_VAR3 = 26, // !< VAR3
V_VAR4 = 27, // !< VAR4
V_VAR5 = 28, // !< VAR5
V_UP = 29, // !< S_COVER. Window covering. Up
V_DOWN = 30, // !< S_COVER. Window covering. Down
V_STOP = 31, // !< S_COVER. Window covering. Stop
V_IR_SEND = 32, // !< S_IR. Send out an IR-command
V_IR_RECEIVE = 33, // !< S_IR. This message contains a received IR-command
V_FLOW = 34, // !< S_WATER. Flow of water (in meter)
V_VOLUME = 35, // !< S_WATER. Water volume
V_LOCK_STATUS = 36, // !< S_LOCK. Set or get lock status. 1=Locked, 0=Unlocked
V_LEVEL = 37, // !< S_DUST, S_AIR_QUALITY, S_SOUND (dB), S_VIBRATION (hz), S_LIGHT_LEVEL (lux)
V_VOLTAGE = 38, // !< S_MULTIMETER
V_CURRENT = 39, // !< S_MULTIMETER
V_RGB = 40, // !< S_RGB_LIGHT, S_COLOR_SENSOR. Sent as ASCII hex: RRGGBB (RR=red, GG=green, BB=blue component)
V_RGBW = 41, // !< S_RGBW_LIGHT. Sent as ASCII hex: RRGGBBWW (WW=white component)
V_ID = 42, // !< Used for sending in sensors hardware ids (i.e. OneWire DS1820b).
V_UNIT_PREFIX = 43, // !< Allows sensors to send in a string representing the unit prefix to be displayed in GUI, not parsed by controller! E.g. cm, m, km, inch.
V_HVAC_SETPOINT_COOL = 44, // !< S_HVAC. HVAC cool setpoint (Integer between 0-100)
V_HVAC_SETPOINT_HEAT = 45, // !< S_HEATER, S_HVAC. HVAC/Heater setpoint (Integer between 0-100)
V_HVAC_FLOW_MODE = 46, // !< S_HVAC. Flow mode for HVAC ('Auto', 'ContinuousOn', 'PeriodicOn')
V_TEXT = 47, // !< S_INFO. Text message to display on LCD or controller device
V_CUSTOM = 48, // !< Custom messages used for controller/inter node specific commands, preferably using S_CUSTOM device type.
V_POSITION = 49, // !< GPS position and altitude. Payload: latitude;longitude;altitude(m). E.g. '55.722526;13.017972;18'
V_IR_RECORD = 50, // !< Record IR codes S_IR for playback
V_PH = 51, // !< S_WATER_QUALITY, water PH
V_ORP = 52, // !< S_WATER_QUALITY, water ORP : redox potential in mV
V_EC = 53, // !< S_WATER_QUALITY, water electric conductivity μS/cm (microSiemens/cm)
V_VAR = 54, // !< S_POWER, Reactive power: volt-ampere reactive (var)
V_VA = 55, // !< S_POWER, Apparent power: volt-ampere (VA)
V_POWER_FACTOR = 56, // !< S_POWER, Ratio of real power to apparent power: floating point value in the range [-1,..,1]
}
export enum mysensor_internal {
I_BATTERY_LEVEL = 0, // !< Battery level
I_TIME = 1, // !< Time (request/response)
I_VERSION = 2, // !< Version
I_ID_REQUEST = 3, // !< ID request
I_ID_RESPONSE = 4, // !< ID response
I_INCLUSION_MODE = 5, // !< Inclusion mode
I_CONFIG = 6, // !< Config (request/response)
I_FIND_PARENT_REQUEST = 7, // !< Find parent
I_FIND_PARENT_RESPONSE = 8, // !< Find parent response
I_LOG_MESSAGE = 9, // !< Log message
I_CHILDREN = 10, // !< Children
I_SKETCH_NAME = 11, // !< Sketch name
I_SKETCH_VERSION = 12, // !< Sketch version
I_REBOOT = 13, // !< Reboot request
I_GATEWAY_READY = 14, // !< Gateway ready
I_SIGNING_PRESENTATION = 15, // !< Provides signing related preferences (first byte is preference version)
I_NONCE_REQUEST = 16, // !< Request for a nonce
I_NONCE_RESPONSE = 17, // !< Payload is nonce data
I_HEARTBEAT_REQUEST = 18, // !< Heartbeat request
I_PRESENTATION = 19, // !< Presentation message
I_DISCOVER_REQUEST = 20, // !< Discover request
I_DISCOVER_RESPONSE = 21, // !< Discover response
I_HEARTBEAT_RESPONSE = 22, // !< Heartbeat response
I_LOCKED = 23, // !< Node is locked (reason in string-payload)
I_PING = 24, // !< Ping sent to node, payload incremental hop counter
I_PONG = 25, // !< In return to ping, sent back to sender, payload incremental hop counter
I_REGISTRATION_REQUEST = 26, // !< Register request to GW
I_REGISTRATION_RESPONSE = 27, // !< Register response from GW
I_DEBUG = 28, // !< Debug message
I_SIGNAL_REPORT_REQUEST = 29, // !< Device signal strength request
I_SIGNAL_REPORT_REVERSE = 30, // !< Internal
I_SIGNAL_REPORT_RESPONSE = 31, // !< Device signal strength response (RSSI)
I_PRE_SLEEP_NOTIFICATION = 32, // !< Message sent before node is going to sleep
I_POST_SLEEP_NOTIFICATION = 33, // !< Message sent after node woke up (if enabled)
}
export enum mysensor_stream {
ST_FIRMWARE_CONFIG_REQUEST = 0, // !< Request new FW, payload contains current FW details
ST_FIRMWARE_CONFIG_RESPONSE = 1, // !< New FW details to initiate OTA FW update
ST_FIRMWARE_REQUEST = 2, // !< Request FW block
ST_FIRMWARE_RESPONSE = 3, // !< Response FW block
ST_SOUND = 4, // !< Sound
ST_IMAGE = 5, // !< Image
}
export enum mysensor_payload {
P_STRING = 0, // !< Payload type is string
P_BYTE = 1, // !< Payload type is byte
P_INT16 = 2, // !< Payload type is INT16
P_UINT16 = 3, // !< Payload type is UINT16
P_LONG32 = 4, // !< Payload type is INT32
P_ULONG32 = 5, // !< Payload type is UINT32
P_CUSTOM = 6, // !< Payload type is binary
P_FLOAT32 = 7, // !< Payload type is float32
}