mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-09 13:45:33 +00:00
MYSENSORS: add new constants (merge pullrequest from Kolbi)
git-svn-id: https://svn.fhem.de/fhem/trunk@9341 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
d631b94e19
commit
888704d115
@ -342,7 +342,7 @@ sub onInternalMsg($$) {
|
||||
}
|
||||
last;
|
||||
};
|
||||
$type == I_STARTUP_COMPLETE and do {
|
||||
$type == I_GATEWAY_READY and do {
|
||||
readingsSingleUpdate($hash,'connection','startup complete',1);
|
||||
GP_ForallClients($hash,sub {
|
||||
my $client = shift;
|
||||
|
@ -83,47 +83,59 @@ BEGIN {
|
||||
};
|
||||
|
||||
my %static_types = (
|
||||
S_DOOR => { receives => [], sends => [V_TRIPPED] }, # BinarySwitchSensor
|
||||
S_MOTION => { receives => [], sends => [V_TRIPPED] }, # MotionSensor
|
||||
S_SMOKE => { receives => [], sends => [] }, # Not used so far
|
||||
S_LIGHT => { receives => [V_LIGHT], sends => [V_LIGHT] }, # BinarySwitchSensor
|
||||
S_DIMMER => { receives => [V_LIGHT,V_DIMMER], sends => [V_LIGHT,V_DIMMER] }, # DimmableLEDActuator
|
||||
S_COVER => { receives => [V_DIMMER,V_UP,V_DOWN,V_STOP], sends => [V_DIMMER] }, # ServoActuator
|
||||
S_TEMP => { receives => [], sends => [V_TEMP] }, # DallasTemperatureSensor
|
||||
S_HUM => { receives => [], sends => [V_HUM] }, # HumiditySensor
|
||||
S_BARO => { receives => [], sends => [V_PRESSURE,V_FORECAST] },
|
||||
S_WIND => { receives => [], sends => [V_WIND,V_GUST,V_DIRECTION] }, # Not used so far
|
||||
S_RAIN => { receives => [], sends => [V_RAIN,V_RAINRATE] }, # Not used so far
|
||||
S_UV => { receives => [], sends => [V_UV] }, # UVSensor
|
||||
S_WEIGHT => { receives => [], sends => [V_WEIGHT] }, # Not used so far
|
||||
S_POWER => { receives => [V_VAR1], sends => [V_WATT,V_KWH,V_VAR1] }, # EnergyMeterPulseSensor
|
||||
S_HEATER => { receives => [], sends => [V_HEATER,V_HEATER_SW] }, # Not used so far
|
||||
S_DISTANCE => { receives => [], sends => [V_DISTANCE] }, # DistanceSensor
|
||||
S_LIGHT_LEVEL => { receives => [], sends => [V_LIGHT_LEVEL] }, # LightSensor
|
||||
S_ARDUINO_NODE => { receives => [], sends => [] }, # Not used so far
|
||||
S_ARDUINO_REPEATER_NODE => { receives => [], sends => [] }, # Not used so far
|
||||
S_LOCK => { receives => [V_LOCK_STATUS], sends => [V_LOCK_STATUS] }, #R FIDLockSensor
|
||||
S_IR => { receives => [V_IR_SEND], sends => [V_IR_RECEIVE] }, # Not used so far
|
||||
S_WATER => { receives => [V_VAR1], sends => [V_FLOW,V_VOLUME,V_VAR1] }, # WaterMeterPulseSensor
|
||||
S_AIR_QUALITY => { receives => [], sends => [V_VAR1] }, # AirQualitySensor
|
||||
S_CUSTOM => { receives => [], sends => [V_VAR1,V_VAR2,V_VAR3] }, # Not used so far
|
||||
S_DUST => { receives => [], sends => [V_DUST_LEVEL] }, # Not used so far
|
||||
S_SCENE_CONTROLLER => { receives => [], sends => [V_SCENE_ON,V_SCENE_OFF] }, # TouchDisplaySceneControllerDisplaySensor
|
||||
S_DOOR => { receives => [], sends => [V_TRIPPED,V_ARMED] }, # Door and window sensors
|
||||
S_MOTION => { receives => [], sends => [V_TRIPPED,V_ARMED] }, # MotionSensor
|
||||
S_SMOKE => { receives => [], sends => [V_TRIPPED,V_ARMED] }, # Smoke sensor
|
||||
S_LIGHT => { receives => [V_STATUS,V_WATT], sends => [V_STATUS,V_WATT] }, # Light Actuator (on/off)
|
||||
S_BINARY => { receives => [V_STATUS,V_WATT], sends => [V_STATUS,V_WATT] }, # Binary device (on/off), Alias for S_LIGHT
|
||||
S_DIMMER => { receives => [V_STATUS,V_PERCENTAGE,V_WATT], sends => [V_STATUS,V_PERCENTAGE,V_WATT] }, # Dimmable device of some kind
|
||||
S_COVER => { receives => [V_UP,V_DOWN,V_STOP,V_PERCENTAGE], sends => [V_PERCENTAGE] }, # Window covers or shades
|
||||
S_TEMP => { receives => [], sends => [V_TEMP,V_ID] }, # Temperature sensor
|
||||
S_HUM => { receives => [], sends => [V_HUM] }, # Humidity sensor
|
||||
S_BARO => { receives => [], sends => [V_PRESSURE,V_FORECAST] }, # Barometer sensor (Pressure)
|
||||
S_WIND => { receives => [], sends => [V_WIND,V_GUST] }, # Wind sensor
|
||||
S_RAIN => { receives => [], sends => [V_RAIN,V_RAINRATE] }, # Rain sensor
|
||||
S_UV => { receives => [], sends => [V_UV] }, # UV Sensor
|
||||
S_WEIGHT => { receives => [], sends => [V_WEIGHT,V_IMPEDANCE] }, # Weight sensor for scales etc.
|
||||
S_POWER => { receives => [], sends => [V_WATT,V_KWH] }, # Power measuring device, like power meters
|
||||
S_HEATER => { receives => [], sends => [V_HVAC_SETPOINT_HEAT,V_HVAC_FLOW_STATE,V_TEMP] }, # Heater device
|
||||
S_DISTANCE => { receives => [], sends => [V_DISTANCE,V_UNIT_PREFIX] }, # Distance sensor
|
||||
S_LIGHT_LEVEL => { receives => [], sends => [V_LIGHT_LEVEL,V_LEVEL] }, # Light sensor
|
||||
S_ARDUINO_NODE => { receives => [], sends => [] }, # Arduino node device
|
||||
S_ARDUINO_REPEATER_NODE => { receives => [], sends => [] }, # Arduino repeating node device
|
||||
S_LOCK => { receives => [V_LOCK_STATUS], sends => [V_LOCK_STATUS] }, # Lock device
|
||||
S_IR => { receives => [V_IR_SEND], sends => [V_IR_RECEIVE] }, # Ir sender/receiver device
|
||||
S_WATER => { receives => [], sends => [V_FLOW,V_VOLUME,] }, # Water meter
|
||||
S_AIR_QUALITY => { receives => [], sends => [V_LEVEL,V_UNIT_PREFIX] }, # Air quality sensor e.g. MQ-2
|
||||
S_CUSTOM => { receives => [], sends => [V_VAR1,V_VAR2,V_VAR3,V_VAR4,V_VAR5] }, # Use this for custom sensors where no other fits.
|
||||
S_DUST => { receives => [], sends => [V_LEVEL,V_UNIT_PREFIX] }, # Dust level sensor
|
||||
S_SCENE_CONTROLLER => { receives => [], sends => [V_SCENE_ON,V_SCENE_OFF] }, # Scene controller device
|
||||
S_RGB_LIGHT => { receives => [V_RGB,V_WATT], sends => [V_RGB,V_WATT] }, # RGB light
|
||||
S_RGBW_LIGHT => { receives => [V_RGBW,V_WATT], sends => [V_RGBW,V_WATT] }, # RGBW light (with separate white component)
|
||||
S_COLOR_SENSOR => { receives => [V_RGB], sends => [V_RGB] }, # Color sensor
|
||||
S_HVAC => { receives => [], sends => [V_HVAC_SETPOINT_HEAT,V_HVAC_SETPOINT_COOL,V_HVAC_FLOW_STATE,V_HVAC_FLOW_MODE,V_HVAC_SPEED] }, # Thermostat/HVAC device
|
||||
S_MULTIMETER => { receives => [], sends => [V_VOLTAGE,V_CURRENT,V_IMPEDANCE] }, # Multimeter device
|
||||
S_SPRINKLER => { receives => [], sends => [V_STATUS,V_TRIPPED] }, # Sprinkler device
|
||||
S_WATER_LEAK => { receives => [], sends => [V_TRIPPED,V_ARMED] }, # Water leak sensor
|
||||
S_SOUND => { receives => [], sends => [V_LEVEL,V_TRIPPED,V_ARMED] }, # Sound sensor
|
||||
S_VIBRATION => { receives => [], sends => [V_LEVEL,V_TRIPPED,V_ARMED] }, # Vibration sensor
|
||||
S_MOISTURE => { receives => [], sends => [V_LEVEL,V_TRIPPED,V_ARMED] }, # Moisture sensor
|
||||
);
|
||||
|
||||
my %static_mappings = (
|
||||
V_TEMP => { type => "temperature" },
|
||||
V_HUM => { type => "humidity" },
|
||||
V_STATUS => { type => "status", val => { 0 => 'off', 1 => 'on' }},
|
||||
#V_LIGHT => { type => "switch", val => { 0 => 'off', 1 => 'on' }}, # Deprecated
|
||||
V_PERCENTAGE => { type => "percentage", range => { min => 0, step => 1, max => 100 }},
|
||||
#V_DIMMER => { type => "dimmer", range => { min => 0, step => 1, max => 100 }}, # Deprecated
|
||||
V_PRESSURE => { type => "pressure" },
|
||||
V_LIGHT_LEVEL => { type => "brightness" },
|
||||
V_LIGHT => { type => "switch", val => { 0 => 'off', 1 => 'on' }},
|
||||
V_DIMMER => { type => "dimmer", range => { min => 0, step => 1, max => 100 }},
|
||||
V_FORECAST => { type => "forecast", val => { # PressureSensor, DP/Dt explanation
|
||||
0 => 'stable', # 0 = "Stable Weather Pattern"
|
||||
1 => 'slow rising', # 1 = "Slowly rising Good Weather", "Clear/Sunny "
|
||||
2 => 'slow falling', # 2 = "Slowly falling L-Pressure ", "Cloudy/Rain "
|
||||
3 => 'quick rising', # 3 = "Quickly rising H-Press", "Not Stable"
|
||||
4 => 'quick falling',# 4 = "Quickly falling L-Press", "Thunderstorm"
|
||||
1 => 'sunny', # 1 = "Slowly rising Good Weather", "Clear/Sunny "
|
||||
2 => 'cloudy', # 2 = "Slowly falling L-Pressure ", "Cloudy/Rain "
|
||||
3 => 'unstable', # 3 = "Quickly rising H-Press", "Not Stable"
|
||||
4 => 'thunderstorm',# 4 = "Quickly falling L-Press", "Thunderstorm"
|
||||
5 => 'unknown' }}, # 5 = "Unknown (More Time needed)
|
||||
V_RAIN => { type => "rain" },
|
||||
V_RAINRATE => { type => "rainrate" },
|
||||
@ -134,14 +146,15 @@ my %static_mappings = (
|
||||
V_WEIGHT => { type => "weight" },
|
||||
V_DISTANCE => { type => "distance" },
|
||||
V_IMPEDANCE => { type => "impedance" },
|
||||
V_ARMED => { type => "armed" },
|
||||
V_ARMED => { type => "armed", val => { 0 => 'off', 1 => 'on' }},
|
||||
V_TRIPPED => { type => "tripped", val => { 0 => 'off', 1 => 'on' }},
|
||||
V_WATT => { type => "power" },
|
||||
V_KWH => { type => "energy" },
|
||||
V_SCENE_ON => { type => "button_on" },
|
||||
V_SCENE_OFF => { type => "button_off" },
|
||||
V_HEATER => { type => "heater" },
|
||||
V_HEATER_SW => { type => "heater_sw" },
|
||||
V_HVAC_FLOW_STATE => { type => "hvacflowstate" },
|
||||
V_HVAC_SPEED => { type => "hvacspeed" },
|
||||
V_LIGHT_LEVEL => { type => "brightness", range => { min => 0, step => 1, max => 100 }},
|
||||
V_VAR1 => { type => "value1" },
|
||||
V_VAR2 => { type => "value2" },
|
||||
V_VAR3 => { type => "value3" },
|
||||
@ -155,9 +168,16 @@ my %static_mappings = (
|
||||
V_FLOW => { type => "flow" },
|
||||
V_VOLUME => { type => "volume" },
|
||||
V_LOCK_STATUS => { type => "lockstatus", val => { 0 => 'off', 1 => 'on' }},
|
||||
V_DUST_LEVEL => { type => "dustlevel" },
|
||||
V_LEVEL => { type => "level" },
|
||||
V_VOLTAGE => { type => "voltage" },
|
||||
V_CURRENT => { type => "current" },
|
||||
V_RGB => { type => "rgb" },
|
||||
V_RGBW => { type => "rgbw" },
|
||||
V_ID => { type => "id" },
|
||||
V_UNIT_PREFIX => { type => "unitprefix" },
|
||||
V_HVAC_SETPOINT_COOL => { type => "hvacsetpointcool" },
|
||||
V_HVAC_SETPOINT_HEAT => { type => "hvacsetpointheat" },
|
||||
V_HVAC_FLOW_MODE => { type => "hvacflowmode" },
|
||||
);
|
||||
|
||||
sub Define($$) {
|
||||
@ -484,11 +504,11 @@ sub onInternalMessage($$) {
|
||||
}
|
||||
last;
|
||||
};
|
||||
$type == I_PING and do {
|
||||
$type == I_FIND_PARENT and do {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
$type == I_PING_ACK and do {
|
||||
$type == I_FIND_PARENT_RESPONSE and do {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
@ -513,6 +533,22 @@ sub onInternalMessage($$) {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
$type == I_GATEWAY_READY and do {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
$type == I_REQUEST_SIGNING and do {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
$type == I_GET_NONCE and do {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
$type == I_GET_NONCE_RESPONSE and do {
|
||||
$hash->{$typeStr} = $msg->{payload};
|
||||
last;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,8 +21,8 @@ sub commandToStr($) {
|
||||
use constant {
|
||||
V_TEMP => 0,
|
||||
V_HUM => 1,
|
||||
V_LIGHT => 2,
|
||||
V_DIMMER => 3,
|
||||
V_STATUS => 2,
|
||||
V_PERCENTAGE => 3,
|
||||
V_PRESSURE => 4,
|
||||
V_FORECAST => 5,
|
||||
V_RAIN => 6,
|
||||
@ -40,8 +40,8 @@ use constant {
|
||||
V_KWH => 18,
|
||||
V_SCENE_ON => 19,
|
||||
V_SCENE_OFF => 20,
|
||||
V_HEATER => 21,
|
||||
V_HEATER_SW => 22,
|
||||
V_HVAC_FLOW_STATE => 21,
|
||||
V_HVAC_SPEED => 22,
|
||||
V_LIGHT_LEVEL => 23,
|
||||
V_VAR1 => 24,
|
||||
V_VAR2 => 25,
|
||||
@ -56,17 +56,24 @@ use constant {
|
||||
V_FLOW => 34,
|
||||
V_VOLUME => 35,
|
||||
V_LOCK_STATUS => 36,
|
||||
V_DUST_LEVEL => 37,
|
||||
V_VOLTAGE => 38,
|
||||
V_LEVEL => 37,
|
||||
V_VOLTAGE => 38,
|
||||
V_CURRENT => 39,
|
||||
V_RGB => 40,
|
||||
V_RGBW => 41,
|
||||
V_ID => 42,
|
||||
V_UNIT_PREFIX => 43,
|
||||
V_HVAC_SETPOINT_COOL => 44,
|
||||
V_HVAC_SETPOINT_HEAT => 45,
|
||||
V_HVAC_FLOW_MODE => 46,
|
||||
};
|
||||
|
||||
use constant variableTypes => qw{ V_TEMP V_HUM V_LIGHT V_DIMMER V_PRESSURE V_FORECAST V_RAIN
|
||||
use constant variableTypes => qw{ V_TEMP V_HUM V_STATUS V_PERCENTAGE V_PRESSURE V_FORECAST V_RAIN
|
||||
V_RAINRATE V_WIND V_GUST V_DIRECTION V_UV V_WEIGHT V_DISTANCE
|
||||
V_IMPEDANCE V_ARMED V_TRIPPED V_WATT V_KWH V_SCENE_ON V_SCENE_OFF
|
||||
V_HEATER V_HEATER_SW V_LIGHT_LEVEL V_VAR1 V_VAR2 V_VAR3 V_VAR4 V_VAR5
|
||||
V_HVAC_FLOW_STATE V_HVAC_SPEED V_LIGHT_LEVEL V_VAR1 V_VAR2 V_VAR3 V_VAR4 V_VAR5
|
||||
V_UP V_DOWN V_STOP V_IR_SEND V_IR_RECEIVE V_FLOW V_VOLUME V_LOCK_STATUS
|
||||
V_DUST_LEVEL V_VOLTAGE V_CURRENT};
|
||||
V_LEVEL V_VOLTAGE V_CURRENT V_RGB V_RGBW V_ID V_UNIT_PREFIX V_HVAC_SETPOINT_COOL V_HVAC_SETPOINT_HEAT V_HVAC_FLOW_MODE};
|
||||
|
||||
sub variableTypeToStr($) {
|
||||
(variableTypes)[shift];
|
||||
@ -86,20 +93,23 @@ use constant {
|
||||
I_ID_RESPONSE => 4,
|
||||
I_INCLUSION_MODE => 5,
|
||||
I_CONFIG => 6,
|
||||
I_PING => 7,
|
||||
I_PING_ACK => 8,
|
||||
I_FIND_PARENT => 7,
|
||||
I_FIND_PARENT_RESPONSE => 8,
|
||||
I_LOG_MESSAGE => 9,
|
||||
I_CHILDREN => 10,
|
||||
I_SKETCH_NAME => 11,
|
||||
I_SKETCH_VERSION => 12,
|
||||
I_REBOOT => 13,
|
||||
I_STARTUP_COMPLETE => 14.
|
||||
I_GATEWAY_READY => 14,
|
||||
I_REQUEST_SIGNING => 15,
|
||||
I_GET_NONCE => 16,
|
||||
I_GET_NONCE_RESPONSE => 17.
|
||||
};
|
||||
|
||||
use constant internalMessageTypes => qw{ I_BATTERY_LEVEL I_TIME I_VERSION I_ID_REQUEST I_ID_RESPONSE
|
||||
I_INCLUSION_MODE I_CONFIG I_PING I_PING_ACK
|
||||
I_INCLUSION_MODE I_CONFIG I_FIND_PARENT I_FIND_PARENT_RESPONSE
|
||||
I_LOG_MESSAGE I_CHILDREN I_SKETCH_NAME I_SKETCH_VERSION
|
||||
I_REBOOT I_STARTUP_COMPLETE };
|
||||
I_REBOOT I_GATEWAY_READY I_REQUEST_SIGNING I_GET_NONCE I_GET_NONCE_RESPONSE };
|
||||
|
||||
sub internalMessageTypeToStr($) {
|
||||
(internalMessageTypes)[shift];
|
||||
@ -111,6 +121,7 @@ use constant {
|
||||
S_MOTION => 1,
|
||||
S_SMOKE => 2,
|
||||
S_LIGHT => 3,
|
||||
S_BINARY => 3,
|
||||
S_DIMMER => 4,
|
||||
S_COVER => 5,
|
||||
S_TEMP => 6,
|
||||
@ -133,11 +144,23 @@ use constant {
|
||||
S_CUSTOM => 23,
|
||||
S_DUST => 24,
|
||||
S_SCENE_CONTROLLER => 25,
|
||||
S_RGB_LIGHT => 26,
|
||||
S_RGBW_LIGHT => 27,
|
||||
S_COLOR_SENSOR => 28,
|
||||
S_HVAC => 29,
|
||||
S_MULTIMETER => 30,
|
||||
S_SPRINKLER => 31,
|
||||
S_WATER_LEAK => 32,
|
||||
S_SOUND => 33,
|
||||
S_VIBRATION => 34,
|
||||
S_MOISTURE => 35,
|
||||
};
|
||||
|
||||
use constant sensorTypes => qw{ S_DOOR S_MOTION S_SMOKE S_LIGHT S_DIMMER S_COVER S_TEMP S_HUM S_BARO S_WIND
|
||||
use constant sensorTypes => qw{ S_DOOR S_MOTION S_SMOKE S_LIGHT S_BINARY S_DIMMER S_COVER S_TEMP S_HUM S_BARO S_WIND
|
||||
S_RAIN S_UV S_WEIGHT S_POWER S_HEATER S_DISTANCE S_LIGHT_LEVEL S_ARDUINO_NODE
|
||||
S_ARDUINO_REPEATER_NODE S_LOCK S_IR S_WATER S_AIR_QUALITY S_CUSTOM S_DUST S_SCENE_CONTROLLER };
|
||||
S_ARDUINO_REPEATER_NODE S_LOCK S_IR S_WATER S_AIR_QUALITY S_CUSTOM S_DUST S_SCENE_CONTROLLER
|
||||
S_RGB_LIGHT S_RGBW_LIGHT S_COLOR_SENSOR S_HVAC S_MULTIMETER S_SPRINKLER S_WATER_LEAK S_SOUND S_VIBRATION
|
||||
S_MOISTURE};
|
||||
|
||||
sub sensorTypeToStr($) {
|
||||
(sensorTypes)[shift];
|
||||
@ -236,4 +259,4 @@ use Exporter ('import');
|
||||
|
||||
%EXPORT_TAGS = (all => [@EXPORT_OK]);
|
||||
|
||||
1;
|
||||
1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user