- Location:
- /trunk
- Files:
-
- 2 added
- 2 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
/trunk/D_UvSensor1.json
r20 r30 79 79 "text": "Advanced" 80 80 }, 81 "Position": "1", 82 "TabType": "javascript", 83 "ScriptName": "shared.js", 84 "Function": "advanced_device" 85 }, 86 { 87 "Label": { 88 "lang_tag": "logs", 89 "text": "Logs" 90 }, 81 91 "Position": "2", 82 92 "TabType": "javascript", 83 93 "ScriptName": "shared.js", 84 "Function": "advanced_device" 94 "Function": "device_logs" 95 }, 96 { 97 "Label": { 98 "lang_tag": "notifications", 99 "text": "Notifications" 100 }, 101 "Position": "3", 102 "TabType": "javascript", 103 "ScriptName": "shared.js", 104 "Function": "device_notifications" 85 105 } 86 106 ], -
/trunk/I_RFXtrx.xml
r20 r30 90 90 <action> 91 91 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 92 <name>ReceiveRollerTrol</name> 93 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_ROLLERTROL_RECEIVING") end</run> 92 <name>ReceiveFineOffset</name> 93 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_FINEOFFSET_RECEIVING") end</run> 94 </action> 95 <action> 96 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 97 <name>ReceiveRubicson</name> 98 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_RUBICSON_RECEIVING") end</run> 99 </action> 100 <action> 101 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 102 <name>ReceiveAE</name> 103 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_AE_RECEIVING") end</run> 104 </action> 105 <action> 106 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 107 <name>ReceiveBlindsT1</name> 108 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_BLINDST1_RECEIVING") end</run> 109 </action> 110 <action> 111 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 112 <name>ReceiveBlindsT0</name> 113 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_BLINDST0_RECEIVING") end</run> 114 </action> 115 <action> 116 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 117 <name>ReceiveMeiantech</name> 118 <run>if (pluginLib ~= nil) then pluginLib.enableReceiving(lul_settings.enable, "VAR_MEIANTECH_RECEIVING") end</run> 94 119 </action> 95 120 <action> … … 212 237 <name>AddRisingSunSwitch</name> 213 238 <run>if (pluginLib ~= nil) then pluginLib.addRisingSunSwitch(lul_settings.HouseCode or "", lul_settings.UnitCode or "") end</run> 239 </action> 240 <action> 241 <serviceId>urn:upnp-rfxcom-com:serviceId:rfxtrx1</serviceId> 242 <name>AddPhilipsSwitch</name> 243 <run>if (pluginLib ~= nil) then pluginLib.addPhilipsSwitch(lul_settings.HouseCode or "", lul_settings.UnitCode or "") end</run> 214 244 </action> 215 245 <action> -
/trunk/D_RainSensor1.json
r20 r30 156 156 "ScriptName": "shared.js", 157 157 "Function": "advanced_device" 158 }, 159 { 160 "Label": { 161 "lang_tag": "logs", 162 "text": "Logs" 163 }, 164 "Position": "2", 165 "TabType": "javascript", 166 "ScriptName": "shared.js", 167 "Function": "device_logs" 168 }, 169 { 170 "Label": { 171 "lang_tag": "notifications", 172 "text": "Notifications" 173 }, 174 "Position": "3", 175 "TabType": "javascript", 176 "ScriptName": "shared.js", 177 "Function": "device_notifications" 158 178 } 159 179 ], -
/trunk/L_RFXtrx.lua
r20 r30 30 30 LIGHTING_IMPULS = { 0x10, 0x5, 7, nil, nil, "Impuls" }, 31 31 LIGHTING_RISINGSUN = { 0x10, 0x6, 7, nil, "Risingsun Electronics", "RisingSun" }, 32 LIGHTING_PHILIPS = { 0x10, 0x7, 7, nil, "Philips", "SBC" }, 32 33 33 34 LIGHTING_AC = { 0x11, 0x0, 11, nil, nil, "AC" }, … … 47 48 TEMP7 = { 0x50, 0x7, 8, nil, "Viking", "Viking 02811" }, 48 49 TEMP8 = { 0x50, 0x8, 8, nil, "La Crosse Technology", "WS2300" }, 49 TEMP9 = { 0x50, 0x9, 8, nil, "RUBiCSON", "RUBiCSON" }, 50 TEMP9 = { 0x50, 0x9, 8, nil, "Rubicson", "Rubicson" }, 51 TEMP10 = { 0x50, 0xA, 8, nil, "TFA", "TFA 30.3133" }, 50 52 51 53 HUM1 = { 0x51, 0x1, 8, nil, "La Crosse Technology","La Crosse TX3" }, … … 86 88 CURTAIN_HARRISON = { 0x18, 0x0, 7, nil, "Harrison", "Harrison" }, 87 89 88 BLIND_ROLLERTROL = { 0x19, 0x0, 9, nil, "RollerTrol Automation Systems", "RollerTrol" }, 90 BLIND_T0 = { 0x19, 0x0, 9, nil, nil, "RollerTrol, Hasta" }, 91 BLIND_T1 = { 0x19, 0x1, 9, nil, "Hasta", "Hasta" }, 89 92 90 93 SECURITY_X10DS = { 0x20, 0x0, 8, nil, nil, "X10 security door/window sensor" }, … … 94 97 POWERCODE_AUXDS = { 0x20, 0x7, 8, nil, "Visonic", "PowerCode door/window sensor auxiliary contact" }, 95 98 POWERCODE_MS = { 0x20, 0x5, 8, nil, "Visonic", "PowerCode motion sensor" }, 99 SECURITY_MEISR = { 0x20, 0x8, 8, nil, "Meiantech", "Meiantech/Atlantic security remote" }, 96 100 97 101 ELEC2 = { 0x5A, 0x1, 17, nil, "OWL", "CM119/160" } … … 146 150 CMD_WATT = { "Watt", "POWER", "VAR_WATT" }, 147 151 CMD_KWH = { "kWh", "POWER", "VAR_KWH" }, 148 CMD_BATTERY = { "BatteryLevel", nil, "VAR_BATTERY_LEVEL" } 152 CMD_BATTERY = { "BatteryLevel", nil, "VAR_BATTERY_LEVEL" }, 153 CMD_SCENE_ON = { "SceneOn", "REMOTE", "VAR_SCENE_ON" }, 154 CMD_SCENE_OFF = { "SceneOff", "REMOTE", "VAR_SCENE_OFF" }, 149 155 } 150 156 151 157 -- This table defines all device variables that are used by the plugin 152 -- Each entry is a table of 3elements:158 -- Each entry is a table of 4 elements: 153 159 -- 1) the service ID 154 160 -- 2) the variable name 155 -- 3) true if the variable used by the main device of type boolean 161 -- 3) true if the variable is used by the main device and of type boolean 162 -- 4) true if the variable can be adjusted (through value in AdjustConstant variable) 156 163 local tabVars = { 157 VAR_TEMP = { "urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", false }, 158 VAR_HUM = { "urn:micasaverde-com:serviceId:HumiditySensor1", "CurrentLevel", false }, 159 VAR_LIGHT = { "urn:upnp-org:serviceId:SwitchPower1", "Status", false }, 160 VAR_DIMMER = { "urn:upnp-org:serviceId:Dimming1", "LoadLevelStatus", false }, 161 VAR_PRESSURE = { "urn:upnp-org:serviceId:BarometerSensor1", "CurrentPressure", false }, 162 VAR_FORECAST = { "urn:upnp-org:serviceId:BarometerSensor1", "Forecast", false }, 163 VAR_RAIN = { "urn:upnp-org:serviceId:RainSensor1", "CurrentTRain", false }, 164 VAR_RAINRATE = { "urn:upnp-org:serviceId:RainSensor1", "CurrentRain", false }, 165 VAR_WIND = { "urn:upnp-org:serviceId:WindSensor1", "AvgSpeed", false }, 166 VAR_GUST = { "urn:upnp-org:serviceId:WindSensor1", "GustSpeed", false }, 167 VAR_DIRECTION = { "urn:upnp-org:serviceId:WindSensor1", "Direction", false }, 168 VAR_UV = { "urn:upnp-org:serviceId:UvSensor1", "CurrentLevel", false }, 169 VAR_BATTERY_LEVEL = { "urn:micasaverde-com:serviceId:HaDevice1", "BatteryLevel", false }, 170 VAR_BATTERY_DATE = { "urn:micasaverde-com:serviceId:HaDevice1", "BatteryDate", false }, 171 VAR_IO_DEVICE = { "urn:micasaverde-com:serviceId:HaDevice1", "IODevice", false }, 172 VAR_BAUD = { "urn:micasaverde-org:serviceId:SerialPort1", "baud", false }, 173 VAR_ARMED = { "urn:micasaverde-com:serviceId:SecuritySensor1", "Armed", false }, 174 VAR_TRIPPED = { "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", false }, 175 VAR_LAST_TRIP = { "urn:micasaverde-com:serviceId:SecuritySensor1", "LastTrip", false }, 176 VAR_ARM_MODE = { "urn:micasaverde-com:serviceId:AlarmPartition2", "ArmMode", false }, 177 VAR_ARM_MODE_NUM = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ArmModeNum", false }, 178 VAR_DETAILED_ARM_MODE = { "urn:micasaverde-com:serviceId:AlarmPartition2", "DetailedArmMode", false }, 179 VAR_WATT = { "urn:micasaverde-com:serviceId:EnergyMetering1", "Watts", false }, 180 VAR_KWH = { "urn:micasaverde-com:serviceId:EnergyMetering1", "KWH", false }, 181 182 VAR_PLUGIN_VERSION = { "upnp-rfxcom-com:serviceId:rfxtrx1", "PluginVersion", false }, 183 VAR_AUTO_CREATE = { "upnp-rfxcom-com:serviceId:rfxtrx1", "AutoCreate", true }, 184 VAR_FIRMWARE_VERSION = { "upnp-rfxcom-com:serviceId:rfxtrx1", "FirmwareVersion", false }, 185 VAR_TEMP_UNIT = { "upnp-rfxcom-com:serviceId:rfxtrx1", "CelciusTemp", true }, 186 VAR_SPEED_UNIT = { "upnp-rfxcom-com:serviceId:rfxtrx1", "KmhSpeed", true }, 187 VAR_ROLLERTROL_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "RollerTrolReceiving", true }, 188 VAR_PROGUARD_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ProGuardReceiving", true }, 189 VAR_FS20_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "FS20Receiving", true }, 190 VAR_LACROSSE_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "LaCrosseReceiving", true }, 191 VAR_HIDEKI_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "HidekiReceiving", true }, 192 VAR_AD_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ADReceiving", true }, 193 VAR_MERTIK_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "MertikReceiving", true }, 194 VAR_VISONIC_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "VisonicReceiving", true }, 195 VAR_ATI_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ATIReceiving", true }, 196 VAR_OREGON_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "OregonReceiving", true }, 197 VAR_IKEA_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "IkeaReceiving", true }, 198 VAR_HEU_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "HEUReceiving", true }, 199 VAR_AC_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ACReceiving", true }, 200 VAR_ARC_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ARCReceiving", true }, 201 VAR_X10_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "X10Receiving", true }, 202 VAR_MOOD1ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood1ID", false }, 203 VAR_MOOD2ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood2ID", false }, 204 VAR_MOOD3ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood3ID", false }, 205 VAR_MOOD4ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood4ID", false }, 206 VAR_MOOD5ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood5ID", false }, 207 VAR_ASSOCIATION = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Assocation", false }, 208 VAR_PROGRAMMED = { "upnp-rfxcom-com:serviceId:rfxtrx1", "KopplaProgrammed", false } 164 VAR_TEMP = { "urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", false, true }, 165 VAR_HUM = { "urn:micasaverde-com:serviceId:HumiditySensor1", "CurrentLevel", false, true }, 166 VAR_LIGHT = { "urn:upnp-org:serviceId:SwitchPower1", "Status", false, false }, 167 VAR_DIMMER = { "urn:upnp-org:serviceId:Dimming1", "LoadLevelStatus", false, false }, 168 VAR_PRESSURE = { "urn:upnp-org:serviceId:BarometerSensor1", "CurrentPressure", false, true }, 169 VAR_FORECAST = { "urn:upnp-org:serviceId:BarometerSensor1", "Forecast", false, false }, 170 VAR_RAIN = { "urn:upnp-org:serviceId:RainSensor1", "CurrentTRain", false, false }, 171 VAR_RAINRATE = { "urn:upnp-org:serviceId:RainSensor1", "CurrentRain", false, false }, 172 VAR_WIND = { "urn:upnp-org:serviceId:WindSensor1", "AvgSpeed", false, false }, 173 VAR_GUST = { "urn:upnp-org:serviceId:WindSensor1", "GustSpeed", false, false }, 174 VAR_DIRECTION = { "urn:upnp-org:serviceId:WindSensor1", "Direction", false, false }, 175 VAR_UV = { "urn:upnp-org:serviceId:UvSensor1", "CurrentLevel", false, true }, 176 VAR_BATTERY_LEVEL = { "urn:micasaverde-com:serviceId:HaDevice1", "BatteryLevel", false, false }, 177 VAR_BATTERY_DATE = { "urn:micasaverde-com:serviceId:HaDevice1", "BatteryDate", false, false }, 178 VAR_IO_DEVICE = { "urn:micasaverde-com:serviceId:HaDevice1", "IODevice", false, false }, 179 VAR_BAUD = { "urn:micasaverde-org:serviceId:SerialPort1", "baud", false, false }, 180 VAR_ARMED = { "urn:micasaverde-com:serviceId:SecuritySensor1", "Armed", false, false }, 181 VAR_TRIPPED = { "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", false, false }, 182 VAR_LAST_TRIP = { "urn:micasaverde-com:serviceId:SecuritySensor1", "LastTrip", false, false }, 183 VAR_ARM_MODE = { "urn:micasaverde-com:serviceId:AlarmPartition2", "ArmMode", false, false }, 184 VAR_ARM_MODE_NUM = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ArmModeNum", false, false }, 185 VAR_DETAILED_ARM_MODE = { "urn:micasaverde-com:serviceId:AlarmPartition2", "DetailedArmMode", false, false }, 186 VAR_WATT = { "urn:micasaverde-com:serviceId:EnergyMetering1", "Watts", false, false }, 187 VAR_KWH = { "urn:micasaverde-com:serviceId:EnergyMetering1", "KWH", false, false }, 188 VAR_SCENE_ON = { "urn:micasaverde-com:serviceId:SceneController1", "sl_SceneActivated", false, false }, 189 VAR_SCENE_OFF = { "urn:micasaverde-com:serviceId:SceneController1", "sl_SceneDeactivated", false, false }, 190 191 VAR_PLUGIN_VERSION = { "upnp-rfxcom-com:serviceId:rfxtrx1", "PluginVersion", false, false }, 192 VAR_AUTO_CREATE = { "upnp-rfxcom-com:serviceId:rfxtrx1", "AutoCreate", true, false }, 193 VAR_FIRMWARE_VERSION = { "upnp-rfxcom-com:serviceId:rfxtrx1", "FirmwareVersion", false, false }, 194 VAR_TEMP_UNIT = { "upnp-rfxcom-com:serviceId:rfxtrx1", "CelciusTemp", true, false }, 195 VAR_SPEED_UNIT = { "upnp-rfxcom-com:serviceId:rfxtrx1", "KmhSpeed", true, false }, 196 VAR_FINEOFFSET_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "FineOffsetReceiving", true, false }, 197 VAR_RUBICSON_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "RubicsonReceiving", true, false }, 198 VAR_AE_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "AEReceiving", true, false }, 199 VAR_BLINDST1_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "BlindsT1Receiving", true, false }, 200 VAR_BLINDST0_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "BlindsT0Receiving", true, false }, 201 VAR_PROGUARD_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ProGuardReceiving", true, false }, 202 VAR_FS20_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "FS20Receiving", true, false }, 203 VAR_LACROSSE_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "LaCrosseReceiving", true, false }, 204 VAR_HIDEKI_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "HidekiReceiving", true, false }, 205 VAR_AD_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ADReceiving", true, false }, 206 VAR_MERTIK_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "MertikReceiving", true, false }, 207 VAR_VISONIC_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "VisonicReceiving", true, false }, 208 VAR_ATI_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ATIReceiving", true, false }, 209 VAR_OREGON_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "OregonReceiving", true, false }, 210 VAR_MEIANTECH_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "MeiantechReceiving", true, false }, 211 VAR_HEU_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "HEUReceiving", true, false }, 212 VAR_AC_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ACReceiving", true, false }, 213 VAR_ARC_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "ARCReceiving", true, false }, 214 VAR_X10_RECEIVING = { "upnp-rfxcom-com:serviceId:rfxtrx1", "X10Receiving", true, false }, 215 VAR_MOOD1ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood1ID", false, false }, 216 VAR_MOOD2ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood2ID", false, false }, 217 VAR_MOOD3ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood3ID", false, false }, 218 VAR_MOOD4ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood4ID", false, false }, 219 VAR_MOOD5ID = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Mood5ID", false, false }, 220 VAR_ASSOCIATION = { "upnp-rfxcom-com:serviceId:rfxtrx1", "Assocation", false, false }, 221 VAR_PROGRAMMED = { "upnp-rfxcom-com:serviceId:rfxtrx1", "KopplaProgrammed", false, false }, 222 VAR_ADJUST_CONSTANT = { "upnp-rfxcom-com:serviceId:rfxtrx1", "AdjustConstant", false, false }, 223 VAR_REPEAT_EVENT = { "upnp-rfxcom-com:serviceId:rfxtrx1", "RepeatEvent", false, false } 209 224 } 210 225 211 226 -- This table defines all kinds of child that can be managed by the plugin 212 -- Each entry is a table of 6elements:227 -- Each entry is a table of 7 elements: 213 228 -- 1) device type (URN) 214 229 -- 2) XML description file … … 217 232 -- 5) a boolean indicating if variable "Association" must be created for this device type 218 233 -- 6) a boolean indicating if variable "KopplaProgrammed" must be created for this device type 234 -- 7) a boolean indicating if variable "AdjustConstant" must be created for this device type 219 235 local tableDeviceTypes = { 220 DOOR = { "urn:schemas-micasaverde-com:device:DoorSensor:1", "D_DoorSensor1.xml", "RFX Door ", "DS/", false, false }, 221 MOTION = { "urn:schemas-micasaverde-com:device:MotionSensor:1", "D_MotionSensor1.xml", "RFX Motion ", "MS/", false, false }, 222 LIGHT = { "urn:schemas-upnp-org:device:BinaryLight:1", "D_BinaryLight1.xml", "RFX Light ", "LS/", true, true }, 223 DIMMER = { "urn:schemas-upnp-org:device:DimmableLight:1", "D_DimmableLight1.xml", "RFX dim Light ", "DL/", true, true }, 224 COVER = { "urn:schemas-micasaverde-com:device:WindowCovering:1", "D_WindowCovering1.xml", "RFX Window ", "WC/", true, false }, 225 TEMP = { "urn:schemas-micasaverde-com:device:TemperatureSensor:1", "D_TemperatureSensor1.xml", "RFX Temp ", "TS/", false, false }, 226 HUM = { "urn:schemas-micasaverde-com:device:HumiditySensor:1", "D_HumiditySensor1.xml", "RFX Hum ", "HS/", false, false }, 227 BARO = { "urn:schemas-micasaverde-com:device:BarometerSensor:1", "D_BarometerSensor1.xml", "RFX Baro ", "BS/", false, false }, 228 WIND = { "urn:schemas-micasaverde-com:device:WindSensor:1", "D_WindSensor1.xml", "RFX Wind ", "WS/", false, false }, 229 RAIN = { "urn:schemas-micasaverde-com:device:RainSensor:1", "D_RainSensor1.xml", "RFX Rain ", "RS/", false, false }, 230 UV = { "urn:schemas-micasaverde-com:device:UvSensor:1", "D_UvSensor1.xml", "RFX UV ", "UV/", false, false }, 231 POWER = { "urn:schemas-micasaverde-com:device:PowerMeter:1", "D_PowerMeter1.xml", "RFX Power ", "PM/", false, false }, 232 ALARM = { "urn:schemas-micasaverde-com:device:AlarmPartition:3", "D_X10AlarmPartition2.xml", "RFX Alarm ", "AR/", false, false } 236 DOOR = { "urn:schemas-micasaverde-com:device:DoorSensor:1", "D_DoorSensor1.xml", "RFX Door ", "DS/", false, false, false }, 237 MOTION = { "urn:schemas-micasaverde-com:device:MotionSensor:1", "D_MotionSensor1.xml", "RFX Motion ", "MS/", false, false, false }, 238 LIGHT = { "urn:schemas-upnp-org:device:BinaryLight:1", "D_BinaryLight1.xml", "RFX Light ", "LS/", true, true, false }, 239 DIMMER = { "urn:schemas-upnp-org:device:DimmableLight:1", "D_DimmableLight1.xml", "RFX dim Light ", "DL/", true, true, false }, 240 COVER = { "urn:schemas-micasaverde-com:device:WindowCovering:1", "D_WindowCovering1.xml", "RFX Window ", "WC/", true, false, false }, 241 TEMP = { "urn:schemas-micasaverde-com:device:TemperatureSensor:1", "D_TemperatureSensor1.xml", "RFX Temp ", "TS/", false, false, true }, 242 HUM = { "urn:schemas-micasaverde-com:device:HumiditySensor:1", "D_HumiditySensor1.xml", "RFX Hum ", "HS/", false, false, true }, 243 BARO = { "urn:schemas-micasaverde-com:device:BarometerSensor:1", "D_BarometerSensor1.xml", "RFX Baro ", "BS/", false, false, true }, 244 WIND = { "urn:schemas-micasaverde-com:device:WindSensor:1", "D_WindSensor1.xml", "RFX Wind ", "WS/", false, false, false }, 245 RAIN = { "urn:schemas-micasaverde-com:device:RainSensor:1", "D_RainSensor1.xml", "RFX Rain ", "RS/", false, false, false }, 246 UV = { "urn:schemas-micasaverde-com:device:UvSensor:1", "D_UvSensor1.xml", "RFX UV ", "UV/", false, false, true }, 247 POWER = { "urn:schemas-micasaverde-com:device:PowerMeter:1", "D_PowerMeter1.xml", "RFX Power ", "PM/", false, false, false }, 248 ALARM = { "urn:schemas-micasaverde-com:device:SecurityRemote:1", "D_SecurityRemote1.xml", "RFX Remote ", "SR/", false, false, false }, 249 REMOTE = { "urn:schemas-micasaverde-com:device:SceneController:1", "D_SceneController1.xml", "RFX Remote ", "RC/", false, false, false } 233 250 } 234 251 … … 302 319 tableMsgTypes.LIGHTING_IMPULS[4] = decodeLighting1 303 320 tableMsgTypes.LIGHTING_RISINGSUN[4] = decodeLighting1 321 tableMsgTypes.LIGHTING_PHILIPS[4] = decodeLighting1 304 322 tableMsgTypes.LIGHTING_AC[4] = decodeLighting2 305 323 tableMsgTypes.LIGHTING_HEU[4] = decodeLighting2 … … 316 334 tableMsgTypes.TEMP8[4] = decodeTemp 317 335 tableMsgTypes.TEMP9[4] = decodeTemp 336 tableMsgTypes.TEMP10[4] = decodeTemp 318 337 tableMsgTypes.HUM1[4] = decodeHum 319 338 tableMsgTypes.HUM2[4] = decodeHum … … 345 364 tableMsgTypes.UV3[4] = decodeUV 346 365 tableMsgTypes.CURTAIN_HARRISON[4] = decodeCurtain 347 tableMsgTypes.BLIND_ROLLERTROL[4] = decodeBlind 366 tableMsgTypes.BLIND_T0[4] = decodeBlind 367 tableMsgTypes.BLIND_T1[4] = decodeBlind 348 368 tableMsgTypes.SECURITY_X10DS[4] = decodeSecurityDS 349 369 tableMsgTypes.SECURITY_X10MS[4] = decodeSecurityMS 350 tableMsgTypes.SECURITY_X10SR[4] = decodeX10Remote 370 tableMsgTypes.SECURITY_X10SR[4] = decodeSecurityRemote 371 tableMsgTypes.SECURITY_MEISR[4] = decodeSecurityRemote 351 372 tableMsgTypes.POWERCODE_PRIMDS[4] = decodeSecurityDS 352 373 tableMsgTypes.POWERCODE_AUXDS[4] = decodeSecurityDS … … 430 451 431 452 local altid 453 local altid2 432 454 local tableCmds = {} 433 455 … … 472 494 473 495 altid = "L3.0/A08" 496 altid2 = "L3.0/A" 474 497 --table.insert(tableCmds, { altid, tableCommands.CMD_ON[1], nil, 0 } ) 498 --table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_ON[1], 8, 0 } ) 475 499 table.insert(tableCmds, { altid, tableCommands.CMD_OFF[1], nil, 0 } ) 476 table.insert(tableCmds, { altid, tableCommands.CMD_ON[1], nil, 30 } ) 500 table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_OFF[1], 8, 0 } ) 501 table.insert(tableCmds, { altid, tableCommands.CMD_OFF[1], nil, 15 } ) 502 table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_OFF[1], 8, 15 } ) 477 503 478 504 altid = "L3.0/410" 479 505 table.insert(tableCmds, { altid, tableCommands.CMD_DIM[1], 75, 0 } ) 480 506 481 altid = "X10/ AR/456789"507 altid = "X10/SR/456789" 482 508 --table.insert(tableCmds, { altid, tableCommands.CMD_ARM_MODE[1], "Disarmed", 0 } ) 483 509 table.insert(tableCmds, { altid, tableCommands.CMD_ARM_MODE[1], "Armed", 0 } ) … … 497 523 table.insert(tableCmds, { altid, tableCommands.CMD_DOOR[1], "0", 15 } ) 498 524 525 altid = "L1.7/P05" 526 altid2 = "L1.7/P" 527 table.insert(tableCmds, { altid, tableCommands.CMD_ON[1], nil, 0 } ) 528 table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_ON[1], 5, 0 } ) 529 table.insert(tableCmds, { altid, tableCommands.CMD_ON[1], nil, 10 } ) 530 table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_ON[1], 5, 10 } ) 531 table.insert(tableCmds, { altid, tableCommands.CMD_OFF[1], nil, 20 } ) 532 table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_OFF[1], 5, 20 } ) 533 table.insert(tableCmds, { altid, tableCommands.CMD_OFF[1], nil, 30 } ) 534 table.insert(tableCmds, { altid2, tableCommands.CMD_SCENE_OFF[1], 5, 30 } ) 535 536 altid = "MEI/SR/234567" 537 --table.insert(tableCmds, { altid, tableCommands.CMD_ARM_MODE[1], "Disarmed", 0 } ) 538 table.insert(tableCmds, { altid, tableCommands.CMD_ARM_MODE[1], "Armed", 0 } ) 539 --table.insert(tableCmds, { altid, tableCommands.CMD_ARM_MODE_NUM[1], "0", 0 } ) 540 table.insert(tableCmds, { altid, tableCommands.CMD_ARM_MODE_NUM[1], "1", 0 } ) 541 --table.insert(tableCmds, { altid, tableCommands.CMD_DETAILED_ARM_MODE[1], "Disarmed", 0 } ) 542 --table.insert(tableCmds, { altid, tableCommands.CMD_DETAILED_ARM_MODE[1], "Armed", 0 } ) 543 table.insert(tableCmds, { altid, tableCommands.CMD_DETAILED_ARM_MODE[1], "Stay", 0 } ) 544 --table.insert(tableCmds, { altid, tableCommands.CMD_PANIC[1], "1", 0 } ) 545 --table.insert(tableCmds, { altid, tableCommands.CMD_PANIC[1], "0", 0 } ) 546 499 547 actOnMessage(tableCmds, dateMsg) 500 548 … … 530 578 msg3 = msg3 + 0x80 531 579 end 580 if (luup.variable_get(tabVars.VAR_FINEOFFSET_RECEIVING[1], tabVars.VAR_FINEOFFSET_RECEIVING[2], THIS_DEVICE) == "1") 581 then 582 msg3 = msg3 + 0x04 583 end 584 if (luup.variable_get(tabVars.VAR_RUBICSON_RECEIVING[1], tabVars.VAR_RUBICSON_RECEIVING[2], THIS_DEVICE) == "1") 585 then 586 msg3 = msg3 + 0x02 587 end 588 if (luup.variable_get(tabVars.VAR_AE_RECEIVING[1], tabVars.VAR_AE_RECEIVING[2], THIS_DEVICE) == "1") 589 then 590 msg3 = msg3 + 0x01 591 end 532 592 533 593 local msg4 = 0 534 if (luup.variable_get(tabVars.VAR_ROLLERTROL_RECEIVING[1], tabVars.VAR_ROLLERTROL_RECEIVING[2], THIS_DEVICE) == "1") 594 if (luup.variable_get(tabVars.VAR_BLINDST1_RECEIVING[1], tabVars.VAR_BLINDST1_RECEIVING[2], THIS_DEVICE) == "1") 595 then 596 msg4 = msg4 + 0x80 597 end 598 if (luup.variable_get(tabVars.VAR_BLINDST0_RECEIVING[1], tabVars.VAR_BLINDST0_RECEIVING[2], THIS_DEVICE) == "1") 535 599 then 536 600 msg4 = msg4 + 0x40 … … 574 638 msg5 = msg5 + 0x20 575 639 end 576 if (luup.variable_get(tabVars.VAR_ IKEA_RECEIVING[1], tabVars.VAR_IKEA_RECEIVING[2], THIS_DEVICE) == "1")640 if (luup.variable_get(tabVars.VAR_MEIANTECH_RECEIVING[1], tabVars.VAR_MEIANTECH_RECEIVING[2], THIS_DEVICE) == "1") 577 641 then 578 642 msg5 = msg5 + 0x10 … … 1026 1090 elseif (category == 6) 1027 1091 then 1028 type = tableMsgTypes.BLIND_ ROLLERTROL[1]1092 type = tableMsgTypes.BLIND_T0[1] 1029 1093 subType = tonumber(string.sub(id, 5, 5)) 1030 1094 if (cmd == tableCommands.CMD_OPEN[1]) … … 1139 1203 log("requestQuickArmMode " .. id .. " state " .. state) 1140 1204 1141 if ((string.len(id) ~= 16) or (string.sub(id, 1, 10) ~= " AR/X10/AR/"))1205 if ((string.len(id) ~= 16) or (string.sub(id, 1, 10) ~= "SR/X10/SR/" and string.sub(id, 1, 10) ~= "SR/MEI/SR/")) 1142 1206 then 1143 1207 log("Unexpected device id " .. id .. ". Quick Arm Mode command not sent", 2) 1144 1208 return 1209 end 1210 1211 local type = nil 1212 local subtype = nil 1213 if (string.sub(id, 1, 9) == "SR/X10/SR") 1214 then 1215 type = tableMsgTypes.SECURITY_X10SR[1] 1216 subType = tableMsgTypes.SECURITY_X10SR[2] 1217 elseif (string.sub(id, 1, 9) == "SR/MEI/SR") 1218 then 1219 type = tableMsgTypes.SECURITY_MEISR[1] 1220 subType = tableMsgTypes.SECURITY_MEISR[2] 1145 1221 end 1146 1222 1147 1223 local cmd = nil 1148 1224 local cmdValue = nil 1225 local delay = 0 1149 1226 local cmd2 = nil 1150 1227 local cmd2Value = nil 1228 local delay2 = 0 1151 1229 local cmd3 = nil 1152 1230 local cmd3Value = nil 1231 local delay3 = 0 1232 local cmd4 = nil 1233 local cmd4Value = nil 1234 local delay4 = 0 1153 1235 local cmdCode = nil 1154 1236 local data = nil 1155 1156 if (state == "Armed") 1237 local exitDelay = 0 1238 1239 if (state == "Armed" and exitDelay > 0) 1240 then 1241 cmdCode = 0x0A 1242 cmd = tableCommands.CMD_DETAILED_ARM_MODE[1] 1243 cmdValue = "ExitDelay" 1244 cmd2 = tableCommands.CMD_ARM_MODE[1] 1245 cmd2Value = "Armed" 1246 delay2 = exitDelay 1247 cmd3 = tableCommands.CMD_DETAILED_ARM_MODE[1] 1248 cmd3Value = "Armed" 1249 delay3 = exitDelay 1250 cmd4 = tableCommands.CMD_ARM_MODE_NUM[1] 1251 cmd4Value = "1" 1252 delay4 = exitDelay 1253 elseif (state == "ArmedInstant" or (state == "Armed" and exitDelay == 0)) 1157 1254 then 1158 1255 cmdCode = 0x09 … … 1163 1260 cmd3 = tableCommands.CMD_ARM_MODE_NUM[1] 1164 1261 cmd3Value = "1" 1165 elseif (state == "Stay") 1262 elseif (state == "Stay" and exitDelay > 0) 1263 then 1264 cmdCode = 0x0C 1265 cmd = tableCommands.CMD_DETAILED_ARM_MODE[1] 1266 cmdValue = "ExitDelay" 1267 cmd2 = tableCommands.CMD_ARM_MODE[1] 1268 cmd2Value = "Armed" 1269 delay2 = exitDelay 1270 cmd3 = tableCommands.CMD_DETAILED_ARM_MODE[1] 1271 cmd3Value = "Stay" 1272 delay3 = exitDelay 1273 cmd4 = tableCommands.CMD_ARM_MODE_NUM[1] 1274 cmd4Value = "1" 1275 delay4 = exitDelay 1276 elseif (state == "StayInstant" or (state == "Stay" and exitDelay == 0)) 1166 1277 then 1167 1278 cmdCode = 0x0B … … 1199 1310 if (cmd ~= nil) 1200 1311 then 1201 table.insert(tableCmds, { string.sub(id, 4), cmd, cmdValue, 0} )1312 table.insert(tableCmds, { string.sub(id, 4), cmd, cmdValue, delay } ) 1202 1313 end 1203 1314 if (cmd2 ~= nil) 1204 1315 then 1205 table.insert(tableCmds, { string.sub(id, 4), cmd2, cmd2Value, 0} )1316 table.insert(tableCmds, { string.sub(id, 4), cmd2, cmd2Value, delay2 } ) 1206 1317 end 1207 1318 if (cmd3 ~= nil) 1208 1319 then 1209 table.insert(tableCmds, { string.sub(id, 4), cmd3, cmd3Value, 0 } ) 1320 table.insert(tableCmds, { string.sub(id, 4), cmd3, cmd3Value, delay3 } ) 1321 end 1322 if (cmd4 ~= nil) 1323 then 1324 table.insert(tableCmds, { string.sub(id, 4), cmd4, cmd4Value, delay4 } ) 1210 1325 end 1211 1326 table.insert(tableMsgSent, { sequenceNum, tableCmds }) 1212 1327 1213 sendCommand(t ableMsgTypes.SECURITY_X10SR[1], tableMsgTypes.SECURITY_X10SR[2], data)1328 sendCommand(type, subType, data) 1214 1329 end 1215 1330 … … 1221 1336 log("requestPanicMode " .. id .. " state " .. state) 1222 1337 1223 if ((string.len(id) ~= 16) or (string.sub(id, 1, 10) ~= " AR/X10/AR/"))1338 if ((string.len(id) ~= 16) or (string.sub(id, 1, 10) ~= "SR/X10/SR/" and string.sub(id, 1, 10) ~= "SR/MEI/SR/")) 1224 1339 then 1225 1340 log("Unexpected device id " .. id .. ". Panic Mode command not sent", 2) 1226 1341 return 1342 end 1343 1344 local type = nil 1345 local subtype = nil 1346 if (string.sub(id, 1, 9) == "SR/X10/SR") 1347 then 1348 type = tableMsgTypes.SECURITY_X10SR[1] 1349 subType = tableMsgTypes.SECURITY_X10SR[2] 1350 elseif (string.sub(id, 1, 9) == "SR/MEI/SR") 1351 then 1352 type = tableMsgTypes.SECURITY_MEISR[1] 1353 subType = tableMsgTypes.SECURITY_MEISR[2] 1227 1354 end 1228 1355 … … 1236 1363 table.insert(tableMsgSent, { sequenceNum, tableCmds }) 1237 1364 1238 sendCommand(t ableMsgTypes.SECURITY_X10SR[1], tableMsgTypes.SECURITY_X10SR[2], data)1365 sendCommand(type, subtype, data) 1239 1366 1240 1367 end … … 1456 1583 end 1457 1584 1585 function addPhilipsSwitch(houseCode, unitCode) 1586 1587 log("addPhilipsSwitch " .. houseCode .. " " .. unitCode) 1588 1589 if (string.find(houseCode, "[A-P]$") ~= 1) 1590 then 1591 log("action AddPhilipsSwitch: unexpected value for first argument; must be a string from A to P", 2) 1592 return 1593 end 1594 if ((string.find(unitCode, "%d+$") ~= 1) or (tonumber(unitCode) < 1) or (tonumber(unitCode) > 8)) 1595 then 1596 log("action AddPhilipsSwitch: unexpected value for second argument; must be a decimal value from 1 to 8", 2) 1597 return 1598 end 1599 1600 local altid = "L1." .. tableMsgTypes.LIGHTING_PHILIPS[2] .. "/" 1601 .. houseCode .. string.format("%02d", tonumber(unitCode)) 1602 1603 if (findChild(THIS_DEVICE, altid, nil) == nil) 1604 then 1605 createChildren({ { altid, "LIGHT" } }) 1606 else 1607 log("action AddPhilipsSwitch: child already exists.", 2) 1608 end 1609 1610 end 1611 1458 1612 function addACSwitch(remoteId, unitCode) 1459 1613 … … 1777 1931 end 1778 1932 1779 local altid = "B" .. tableMsgTypes.BLIND_ ROLLERTROL[2] .. "/"1933 local altid = "B" .. tableMsgTypes.BLIND_T0[2] .. "/" 1780 1934 .. string.format("%06X", tonumber(remoteId, 16)) .. "/" .. string.format("%02d", tonumber(unitCode)) 1781 1935 … … 1990 2144 undecMsg = (bitw.band(msg4, 0x80) == 0x80) 1991 2145 luup.variable_set(tabVars.VAR_FIRMWARE_VERSION[1], tabVars.VAR_FIRMWARE_VERSION[2], "v" .. firmware, THIS_DEVICE) 2146 2147 if (bitw.band(msg3, 0x04) == 0x04) 2148 then 2149 luup.variable_set(tabVars.VAR_FINEOFFSET_RECEIVING[1], tabVars.VAR_FINEOFFSET_RECEIVING[2], "1", THIS_DEVICE) 2150 log(" - FineOffset / Viking") 2151 else 2152 luup.variable_set(tabVars.VAR_FINEOFFSET_RECEIVING[1], tabVars.VAR_FINEOFFSET_RECEIVING[2], "0", THIS_DEVICE) 2153 end 2154 if (bitw.band(msg3, 0x02) == 0x02) 2155 then 2156 luup.variable_set(tabVars.VAR_RUBICSON_RECEIVING[1], tabVars.VAR_RUBICSON_RECEIVING[2], "1", THIS_DEVICE) 2157 log(" - Rubicson") 2158 else 2159 luup.variable_set(tabVars.VAR_RUBICSON_RECEIVING[1], tabVars.VAR_RUBICSON_RECEIVING[2], "0", THIS_DEVICE) 2160 end 2161 if (bitw.band(msg3, 0x01) == 0x01) 2162 then 2163 luup.variable_set(tabVars.VAR_AE_RECEIVING[1], tabVars.VAR_AE_RECEIVING[2], "1", THIS_DEVICE) 2164 log(" - AE (Blyss)") 2165 else 2166 luup.variable_set(tabVars.VAR_AE_RECEIVING[1], tabVars.VAR_AE_RECEIVING[2], "0", THIS_DEVICE) 2167 end 2168 2169 if (bitw.band(msg4, 0x80) == 0x80) 2170 then 2171 luup.variable_set(tabVars.VAR_BLINDST1_RECEIVING[1], tabVars.VAR_BLINDST1_RECEIVING[2], "1", THIS_DEVICE) 2172 log(" - Hasta (old)") 2173 else 2174 luup.variable_set(tabVars.VAR_BLINDST1_RECEIVING[1], tabVars.VAR_BLINDST1_RECEIVING[2], "0", THIS_DEVICE) 2175 end 1992 2176 if (bitw.band(msg4, 0x40) == 0x40) 1993 2177 then 1994 luup.variable_set(tabVars.VAR_ ROLLERTROL_RECEIVING[1], tabVars.VAR_ROLLERTROL_RECEIVING[2], "1", THIS_DEVICE)1995 log(" - RollerTrol ")2178 luup.variable_set(tabVars.VAR_BLINDST0_RECEIVING[1], tabVars.VAR_BLINDST0_RECEIVING[2], "1", THIS_DEVICE) 2179 log(" - RollerTrol / Hasta (new)") 1996 2180 else 1997 luup.variable_set(tabVars.VAR_ ROLLERTROL_RECEIVING[1], tabVars.VAR_ROLLERTROL_RECEIVING[2], "0", THIS_DEVICE)2181 luup.variable_set(tabVars.VAR_BLINDST0_RECEIVING[1], tabVars.VAR_BLINDST0_RECEIVING[2], "0", THIS_DEVICE) 1998 2182 end 1999 2183 if (bitw.band(msg4, 0x20) == 0x20) … … 2021 2205 then 2022 2206 luup.variable_set(tabVars.VAR_HIDEKI_RECEIVING[1], tabVars.VAR_HIDEKI_RECEIVING[2], "1", THIS_DEVICE) 2023 log(" - Hideki ")2207 log(" - Hideki / UPM") 2024 2208 else 2025 2209 luup.variable_set(tabVars.VAR_HIDEKI_RECEIVING[1], tabVars.VAR_HIDEKI_RECEIVING[2], "0", THIS_DEVICE) … … 2062 2246 if (bitw.band(msg5, 0x10) == 0x10) 2063 2247 then 2064 luup.variable_set(tabVars.VAR_ IKEA_RECEIVING[1], tabVars.VAR_IKEA_RECEIVING[2], "1", THIS_DEVICE)2065 log(" - Ikea Koppla")2248 luup.variable_set(tabVars.VAR_MEIANTECH_RECEIVING[1], tabVars.VAR_MEIANTECH_RECEIVING[2], "1", THIS_DEVICE) 2249 log(" - Meiantech") 2066 2250 else 2067 luup.variable_set(tabVars.VAR_ IKEA_RECEIVING[1], tabVars.VAR_IKEA_RECEIVING[2], "0", THIS_DEVICE)2251 luup.variable_set(tabVars.VAR_MEIANTECH_RECEIVING[1], tabVars.VAR_MEIANTECH_RECEIVING[2], "0", THIS_DEVICE) 2068 2252 end 2069 2253 if (bitw.band(msg5, 0x08) == 0x08) … … 2110 2294 function decodeLighting1(subType, data, seqNum) 2111 2295 2112 local altid = "L1." .. subType .. "/" 2113 .. string.sub(data, 1, 1) .. string.format("%02d", tonumber(string.byte(data, 2))) 2114 2296 local altid2 = "L1." .. subType .. "/" 2297 .. string.sub(data, 1, 1) 2298 local altid = altid2 .. string.format("%02d", tonumber(string.byte(data, 2))) 2299 2300 local tableCmds = {} 2301 local cmd = nil 2302 local cmdValue = nil 2303 local cmdDelay = 0 2304 local cmd2 = nil 2305 local cmd2Value = nil 2306 local cmd2Delay = 0 2307 local cmdCode = string.byte(data, 3) 2308 if (cmdCode == 0) 2309 then 2310 cmd = tableCommands.CMD_OFF[1] 2311 cmd2 = tableCommands.CMD_SCENE_OFF[1] 2312 cmd2Value = tonumber(string.byte(data, 2)) 2313 elseif (cmdCode == 1) 2314 then 2315 cmd = tableCommands.CMD_ON[1] 2316 cmd2 = tableCommands.CMD_SCENE_ON[1] 2317 cmd2Value = tonumber(string.byte(data, 2)) 2318 elseif (cmdCode == 7) 2319 then 2320 altid = altid2 2321 cmd = tableCommands.CMD_DOOR[1] 2322 cmdValue = "1" 2323 cmd2 = tableCommands.CMD_DOOR[1] 2324 cmd2Value = "0" 2325 cmd2Delay = 5 2326 else 2327 log("Lighting1 command not yet implemented: " .. cmdCode, 2) 2328 end 2329 if (cmd ~= nil) 2330 then 2331 table.insert(tableCmds, { altid, cmd, cmdValue, cmdDelay } ) 2332 end 2333 if (cmd2 ~= nil) 2334 then 2335 table.insert(tableCmds, { altid2, cmd2, cmd2Value, cmd2Delay } ) 2336 end 2337 2338 return tableCmds 2339 2340 end 2341 2342 function decodeLighting2(subType, data, seqNum) 2343 2344 local altid2 = "L2." .. subType .. "/" 2345 .. string.format("%X", bitw.band(string.byte(data, 1), 0x03)) 2346 .. string.format("%02X", tonumber(string.byte(data, 2))) 2347 .. string.format("%02X", tonumber(string.byte(data, 3))) 2348 .. string.format("%02X", tonumber(string.byte(data, 4))) 2349 local altid = altid2 .. "/" .. string.format("%02d", tonumber(string.byte(data, 5))) 2350 2351 local tableCmds = {} 2352 local cmd = nil 2353 local cmdValue = nil 2354 local cmdDelay = 0 2355 local cmd2 = nil 2356 local cmd2Value = nil 2357 local cmd2Delay = 0 2358 local cmdCode = string.byte(data, 6) 2359 if (cmdCode == 0) 2360 then 2361 cmd = tableCommands.CMD_OFF[1] 2362 cmd2 = tableCommands.CMD_SCENE_OFF[1] 2363 cmd2Value = tonumber(string.byte(data, 5)) 2364 elseif (cmdCode == 1) 2365 then 2366 cmd = tableCommands.CMD_ON[1] 2367 cmd2 = tableCommands.CMD_SCENE_ON[1] 2368 cmd2Value = tonumber(string.byte(data, 5)) 2369 elseif (cmdCode == 2) 2370 then 2371 cmd = tableCommands.CMD_DIM[1] 2372 cmdValue = math.floor((string.byte(data, 7) + 1) * 100 / 0x10 + 0.5) 2373 else 2374 log("Lighting2 command not yet implemented: " .. cmdCode, 2) 2375 end 2376 if (cmd ~= nil) 2377 then 2378 table.insert(tableCmds, { altid, cmd, cmdValue, cmdDelay } ) 2379 end 2380 if (cmd2 ~= nil) 2381 then 2382 table.insert(tableCmds, { altid2, cmd2, cmd2Value, cmd2Delay } ) 2383 end 2384 2385 return tableCmds 2386 2387 end 2388 2389 function decodeLighting3(subType, data, seqNum) 2390 2391 local ids = {} 2392 local altid = "L3." .. subType .. "/" 2393 .. string.format("%X", bitw.band(string.byte(data, 1), 0x0F)) 2394 if (bitw.band(string.byte(data, 2), 0x01) ~= 0) 2395 then 2396 table.insert(ids, 1) 2397 end 2398 if (bitw.band(string.byte(data, 2), 0x02) ~= 0) 2399 then 2400 table.insert(ids, 2) 2401 end 2402 if (bitw.band(string.byte(data, 2), 0x04) ~= 0) 2403 then 2404 table.insert(ids, 3) 2405 end 2406 if (bitw.band(string.byte(data, 2), 0x08) ~= 0) 2407 then 2408 table.insert(ids, 4) 2409 end 2410 if (bitw.band(string.byte(data, 2), 0x10) ~= 0) 2411 then 2412 table.insert(ids, 5) 2413 end 2414 if (bitw.band(string.byte(data, 2), 0x20) ~= 0) 2415 then 2416 table.insert(ids, 6) 2417 end 2418 if (bitw.band(string.byte(data, 2), 0x40) ~= 0) 2419 then 2420 table.insert(ids, 7) 2421 end 2422 if (bitw.band(string.byte(data, 2), 0x80) ~= 0) 2423 then 2424 table.insert(ids, 8) 2425 end 2426 if (bitw.band(string.byte(data, 3), 0x01) ~= 0) 2427 then 2428 table.insert(ids, 9) 2429 end 2430 if (bitw.band(string.byte(data, 3), 0x02) ~= 0) 2431 then 2432 table.insert(ids, 10) 2433 end 2434 2115 2435 local tableCmds = {} 2116 2436 local cmd = nil 2117 2437 local cmdValue = nil 2118 2438 local cmd2 = nil 2119 local cmd 2Value = nil2120 lo cal cmdCode = string.byte(data, 3)2121 if (cmdCode == 0 )2439 local cmdCode = string.byte(data, 4) 2440 log("Koppla message received with command code: " .. cmdCode) 2441 if (cmdCode == 0x1A) 2122 2442 then 2123 2443 cmd = tableCommands.CMD_OFF[1] 2124 elseif (cmdCode == 1) 2444 cmd2 = tableCommands.CMD_SCENE_OFF[1] 2445 elseif (cmdCode == 0x10) 2125 2446 then 2126 2447 cmd = tableCommands.CMD_ON[1] 2127 elseif (cmdCode == 7) 2128 then 2129 altid = "L1." .. subType .. "/" .. string.sub(data, 1, 1) 2130 cmd = tableCommands.CMD_DOOR[1] 2131 cmdValue = "1" 2132 cmd2 = tableCommands.CMD_DOOR[1] 2133 cmd2Value = "0" 2134 else 2135 log("Lighting1 command not yet implemented: " .. cmdCode, 2) 2136 end 2137 if (cmd ~= nil) 2138 then 2139 table.insert(tableCmds, { altid, cmd, cmdValue, 0 } ) 2140 end 2141 if (cmd2 ~= nil) 2142 then 2143 table.insert(tableCmds, { altid, cmd2, cmd2Value, 5 } ) 2448 cmd2 = tableCommands.CMD_SCENE_ON[1] 2449 elseif (cmdCode >= 0x11 and cmdCode <= 0x19) 2450 then 2451 cmd = tableCommands.CMD_DIM[1] 2452 cmdValue = (cmdCode - ox10) * 10 2453 else 2454 log("Lighting3 command not yet implemented: " .. cmdCode, 2) 2455 end 2456 2457 if (ids ~= nil and #ids > 0) 2458 then 2459 for i, v in ipairs(ids) 2460 do 2461 if (cmd ~= nil) 2462 then 2463 table.insert(tableCmds, { altid .. string.format("%02d", v), cmd, cmdValue, 0 } ) 2464 end 2465 if (cmd2 ~= nil) 2466 then 2467 table.insert(tableCmds, { altid, cmd2, v, 0 } ) 2468 end 2469 end 2144 2470 end 2145 2471 … … 2148 2474 end 2149 2475 2150 function decodeLighting 2(subType, data, seqNum)2151 2152 local altid = "L2." .. subType .. "/"2153 .. string.format("% X", bitw.band(string.byte(data, 1), 0x03))2476 function decodeLighting5(subType, data, seqNum) 2477 2478 local altid2 = "L5." .. subType .. "/" 2479 .. string.format("%02X", tonumber(string.byte(data, 1))) 2154 2480 .. string.format("%02X", tonumber(string.byte(data, 2))) 2155 2481 .. string.format("%02X", tonumber(string.byte(data, 3))) 2156 .. string.format("%02X", tonumber(string.byte(data, 4))) 2157 .. "/" .. string.format("%02d", tonumber(string.byte(data, 5))) 2482 local altid = altid2 .. "/" .. string.format("%02d", tonumber(string.byte(data, 4))) 2158 2483 2159 2484 local tableCmds = {} 2160 2485 local cmd = nil 2161 2486 local cmdValue = nil 2162 local cmdCode = string.byte(data, 6) 2163 if (cmdCode == 0) 2164 then 2165 cmd = tableCommands.CMD_OFF[1] 2166 elseif (cmdCode == 1) 2167 then 2168 cmd = tableCommands.CMD_ON[1] 2169 elseif (cmdCode == 2) 2170 then 2171 cmd = tableCommands.CMD_DIM[1] 2172 cmdValue = math.floor((string.byte(data, 7) + 1) * 100 / 0x10 + 0.5) 2173 else 2174 log("Lighting2 command not yet implemented: " .. cmdCode, 2) 2175 end 2176 if (cmd ~= nil) 2177 then 2178 table.insert(tableCmds, { altid, cmd, cmdValue, 0 } ) 2179 end 2180 2181 return tableCmds 2182 2183 end 2184 2185 function decodeLighting3(subType, data, seqNum) 2186 2187 local altid = {} 2188 local prefix = "L3." .. subType .. "/" 2189 .. string.format("%X", bitw.band(string.byte(data, 1), 0x0F)) 2190 if (bitw.band(string.byte(data, 2), 0x01) ~= 0) 2191 then 2192 table.insert(altid, prefix .. "01") 2193 elseif (bitw.band(string.byte(data, 2), 0x02) ~= 0) 2194 then 2195 table.insert(altid, prefix .. "02") 2196 elseif (bitw.band(string.byte(data, 2), 0x04) ~= 0) 2197 then 2198 table.insert(altid, prefix .. "03") 2199 elseif (bitw.band(string.byte(data, 2), 0x08) ~= 0) 2200 then 2201 table.insert(altid, prefix .. "04") 2202 elseif (bitw.band(string.byte(data, 2), 0x10) ~= 0) 2203 then 2204 table.insert(altid, prefix .. "05") 2205 elseif (bitw.band(string.byte(data, 2), 0x20) ~= 0) 2206 then 2207 table.insert(altid, prefix .. "06") 2208 elseif (bitw.band(string.byte(data, 2), 0x40) ~= 0) 2209 then 2210 table.insert(altid, prefix .. "07") 2211 elseif (bitw.band(string.byte(data, 2), 0x80) ~= 0) 2212 then 2213 table.insert(altid, prefix .. "08") 2214 elseif (bitw.band(string.byte(data, 3), 0x01) ~= 0) 2215 then 2216 table.insert(altid, prefix .. "09") 2217 elseif (bitw.band(string.byte(data, 3), 0x02) ~= 0) 2218 then 2219 table.insert(altid, prefix .. "10") 2220 end 2221 2222 local tableCmds = {} 2223 local cmd = nil 2224 local cmdValue = nil 2225 local cmdCode = string.byte(data, 4) 2226 log("Koppla message received with command code: " .. cmdCode) 2227 if (cmdCode == 0x1A) 2228 then 2229 cmd = tableCommands.CMD_OFF[1] 2230 elseif (cmdCode == 0x10) 2231 then 2232 cmd = tableCommands.CMD_ON[1] 2233 elseif (cmdCode >= 0x11 and cmdCode <= 0x19) 2234 then 2235 cmd = tableCommands.CMD_DIM[1] 2236 cmdValue = (cmdCode - ox10) * 10 2237 else 2238 log("Lighting3 command not yet implemented: " .. cmdCode, 2) 2239 end 2240 2241 if (cmd ~= nil and altid ~= nil and #altid > 0) 2242 then 2243 for i, v in ipairs(altid) 2244 do 2245 table.insert(tableCmds, { v, cmd, cmdValue, 0 } ) 2246 end 2247 end 2248 2249 return tableCmds 2250 2251 end 2252 2253 function decodeLighting5(subType, data, seqNum) 2254 2255 local altid = "L5." .. subType .. "/" 2256 .. string.format("%02X", tonumber(string.byte(data, 1))) 2257 .. string.format("%02X", tonumber(string.byte(data, 2))) 2258 .. string.format("%02X", tonumber(string.byte(data, 3))) 2259 .. "/" .. string.format("%02d", tonumber(string.byte(data, 4))) 2260 2261 local tableCmds = {} 2262 local cmd = nil 2263 local cmdValue = nil 2487 local cmdDelay = 0 2488 local cmd2 = nil 2489 local cmd2Value = nil 2490 local cmd2Delay = 0 2264 2491 local cmdCode = string.byte(data, 5) 2265 2492 if (cmdCode == 0) 2266 2493 then 2267 2494 cmd = tableCommands.CMD_OFF[1] 2495 cmd2 = tableCommands.CMD_SCENE_OFF[1] 2496 cmd2Value = tonumber(string.byte(data, 4)) 2268 2497 elseif (cmdCode == 1) 2269 2498 then 2270 2499 cmd = tableCommands.CMD_ON[1] 2500 cmd2 = tableCommands.CMD_SCENE_ON[1] 2501 cmd2Value = tonumber(string.byte(data, 4)) 2271 2502 elseif (cmdCode == 3) 2272 2503 then … … 2312 2543 if (cmd ~= nil) 2313 2544 then 2314 table.insert(tableCmds, { altid, cmd, cmdValue, 0 } ) 2545 table.insert(tableCmds, { altid, cmd, cmdValue, cmdDelay } ) 2546 end 2547 if (cmd2 ~= nil) 2548 then 2549 table.insert(tableCmds, { altid2, cmd2, cmd2Value, cmd2Delay } ) 2315 2550 end 2316 2551 … … 2797 3032 end 2798 3033 2799 function decode X10Remote(subType, data, seqNum)3034 function decodeSecurityRemote(subType, data, seqNum) 2800 3035 2801 3036 local altid = "" … … 2808 3043 local cmd3Value = nil 2809 3044 local cmd = tonumber(string.byte(data, 4)) 3045 local prefix 3046 3047 if (subType == tableMsgTypes.SECURITY_X10SR[2]) 3048 then 3049 prefix = "X10" 3050 elseif (subType == tableMsgTypes.SECURITY_MEISR[2]) 3051 then 3052 prefix = "MEI" 3053 end 2810 3054 2811 3055 if (cmd == 0x09 or cmd == 0x0A) 2812 3056 then 2813 altid = "X10/AR/" .. string.format("%02X", tonumber(string.byte(data, 1)))3057 altid = prefix .. "/SR/" .. string.format("%02X", tonumber(string.byte(data, 1))) 2814 3058 .. string.format("%02X", tonumber(string.byte(data, 2))) 2815 .. string.format("%02X", tonumber(string.byte(data, 3))) 3059 .. string.format("%02X", tonumber(string.byte(data, 3))) 2816 3060 cmd = tableCommands.CMD_ARM_MODE[1] 2817 3061 cmdValue = "Armed" … … 2822 3066 elseif (cmd == 0x0B or cmd == 0x0C) 2823 3067 then 2824 altid = "X10/AR/" .. string.format("%02X", tonumber(string.byte(data, 1)))3068 altid = prefix .. "/SR/" .. string.format("%02X", tonumber(string.byte(data, 1))) 2825 3069 .. string.format("%02X", tonumber(string.byte(data, 2))) 2826 .. string.format("%02X", tonumber(string.byte(data, 3))) 3070 .. string.format("%02X", tonumber(string.byte(data, 3))) 2827 3071 cmd = tableCommands.CMD_ARM_MODE[1] 2828 3072 cmdValue = "Armed" … … 2833 3077 elseif (cmd == 0x0D) 2834 3078 then 2835 altid = "X10/AR/" .. string.format("%02X", tonumber(string.byte(data, 1)))3079 altid = prefix .. "/SR/" .. string.format("%02X", tonumber(string.byte(data, 1))) 2836 3080 .. string.format("%02X", tonumber(string.byte(data, 2))) 2837 .. string.format("%02X", tonumber(string.byte(data, 3))) 3081 .. string.format("%02X", tonumber(string.byte(data, 3))) 2838 3082 cmd = tableCommands.CMD_ARM_MODE[1] 2839 3083 cmdValue = "Disarmed" … … 2844 3088 elseif (cmd == 0x06) 2845 3089 then 2846 altid = "X10/AR/" .. string.format("%02X", tonumber(string.byte(data, 1)))3090 altid = prefix .. "/SR/" .. string.format("%02X", tonumber(string.byte(data, 1))) 2847 3091 .. string.format("%02X", tonumber(string.byte(data, 2))) 2848 3092 .. string.format("%02X", tonumber(string.byte(data, 3))) … … 2851 3095 elseif (cmd == 0x07) 2852 3096 then 2853 altid = "X10/AR/" .. string.format("%02X", tonumber(string.byte(data, 1)))3097 altid = prefix .. "/SR/" .. string.format("%02X", tonumber(string.byte(data, 1))) 2854 3098 .. string.format("%02X", tonumber(string.byte(data, 2))) 2855 3099 .. string.format("%02X", tonumber(string.byte(data, 3))) … … 2979 3223 local programmed = IsKopplaProgrammed(k, false) 2980 3224 table.insert(tableDevices, { v.id, key, associations, programmed }) 3225 if (tableDeviceTypes[key][7] == true) 3226 then 3227 local adjustConst = luup.variable_get(tabVars.VAR_ADJUST_CONSTANT[1], tabVars.VAR_ADJUST_CONSTANT[2], k) 3228 if (adjustConst == nil) 3229 then 3230 luup.variable_set(tabVars.VAR_ADJUST_CONSTANT[1], tabVars.VAR_ADJUST_CONSTANT[2], "", k) 3231 end 3232 end 3233 if (key == "LIGHT") 3234 then 3235 local repeatEvt = luup.variable_get(tabVars.VAR_REPEAT_EVENT[1], tabVars.VAR_REPEAT_EVENT[2], k) 3236 if (repeatEvt == nil) 3237 then 3238 luup.variable_set(tabVars.VAR_REPEAT_EVENT[1], tabVars.VAR_REPEAT_EVENT[2], "0", k) 3239 end 3240 end 2981 3241 end 2982 3242 end … … 3191 3451 if ((deviceType == nil or v.device_type == deviceType[1]) and variable ~= nil and value ~= nil) 3192 3452 then 3453 if (v.device_type == tableDeviceTypes.LIGHT[1]) 3454 then 3455 local repeatEvt = luup.variable_get(tabVars.VAR_REPEAT_EVENT[1], tabVars.VAR_REPEAT_EVENT[2], device) 3456 if (repeatEvt == "1") 3457 then 3458 --log("SET " .. variable[2] .. " from " .. v.id .. " with value " .. -1) 3459 luup.variable_set(variable[1], variable[2], -1, device) 3460 end 3461 end 3462 if (deviceType ~= nil and deviceType[7] == true and variable[4] == true) 3463 then 3464 local adjustConst = luup.variable_get(tabVars.VAR_ADJUST_CONSTANT[1], tabVars.VAR_ADJUST_CONSTANT[2], device) 3465 if (adjustConst ~= nil and adjustConst ~= "") 3466 then 3467 --log("Adjust value of " .. adjustConst .. " on device " .. v.id) 3468 value = tonumber(value) + tonumber(adjustConst) 3469 end 3470 end 3193 3471 --log("SET " .. variable[2] .. " from " .. v.id .. " with value " .. value) 3194 3472 luup.variable_set(variable[1], variable[2], value, device) … … 3440 3718 end 3441 3719 end 3720 if (parameters ~= "") 3721 then 3722 parameters = parameters .. "\n" 3723 end 3724 parameters = parameters .. tabVars.VAR_REPEAT_EVENT[1] .. "," .. tabVars.VAR_REPEAT_EVENT[2] .. "=0" 3442 3725 luup.chdev.append(THIS_DEVICE, child_devices, deviceType[4] .. subId, deviceType[3] .. subId , 3443 3726 deviceType[1], deviceType[2], "", parameters, false) … … 3481 3764 parameters = parameters .. tabVars.VAR_PROGRAMMED[1] .. "," .. tabVars.VAR_PROGRAMMED[2] .. "=1" 3482 3765 end 3766 if (deviceType[7] == true) 3767 then 3768 if (parameters ~= "") 3769 then 3770 parameters = parameters .. "\n" 3771 end 3772 parameters = parameters .. tabVars.VAR_ADJUST_CONSTANT[1] .. "," .. tabVars.VAR_ADJUST_CONSTANT[2] .. "=" 3773 end 3774 if (deviceType == tableDeviceTypes.LIGHT) 3775 then 3776 if (parameters ~= "") 3777 then 3778 parameters = parameters .. "\n" 3779 end 3780 parameters = parameters .. tabVars.VAR_REPEAT_EVENT[1] .. "," .. tabVars.VAR_REPEAT_EVENT[2] .. "=0" 3781 end 3483 3782 luup.chdev.append(THIS_DEVICE, child_devices, deviceType[4] .. deviceId, 3484 3783 deviceType[3] .. deviceId , deviceType[1], deviceType[2], "", parameters, false) … … 3562 3861 local countPM = 0 3563 3862 local countUV = 0 3564 local countAR = 0 3863 local countSR = 0 3864 local countRC = 0 3565 3865 for i, v in ipairs(tableDevices) 3566 3866 do … … 3604 3904 elseif (key == "ALARM") 3605 3905 then 3606 countAR = countAR + 1 3906 countSR = countSR + 1 3907 elseif (key == "REMOTE") 3908 then 3909 countRC = countRC + 1 3607 3910 end 3608 3911 end … … 3620 3923 log(" UV sensors: " .. countUV) 3621 3924 log(" power sensors: " .. countPM) 3622 log(" alarm remotes: " .. countAR) 3925 log(" security remotes: " .. countSR) 3926 log(" remote controls: " .. countRC) 3623 3927 3624 3928 end -
/trunk/D_WindSensor1.json
r20 r30 172 172 "Function": "advanced_device" 173 173 }, 174 { 175 "Label": { 176 "lang_tag": "logs", 177 "text": "Logs" 178 }, 179 "Position": "2", 180 "TabType": "javascript", 181 "ScriptName": "shared.js", 182 "Function": "device_logs" 183 }, 184 { 185 "Label": { 186 "lang_tag": "notifications", 187 "text": "Notifications" 188 }, 189 "Position": "3", 190 "TabType": "javascript", 191 "ScriptName": "shared.js", 192 "Function": "device_notifications" 193 } 174 194 ], 175 195 "eventList2": [ -
/trunk/D_BarometerSensor1.json
r20 r30 134 134 "ScriptName": "shared.js", 135 135 "Function": "advanced_device" 136 }, 137 { 138 "Label": { 139 "lang_tag": "logs", 140 "text": "Logs" 141 }, 142 "Position": "2", 143 "TabType": "javascript", 144 "ScriptName": "shared.js", 145 "Function": "device_logs" 146 }, 147 { 148 "Label": { 149 "lang_tag": "notifications", 150 "text": "Notifications" 151 }, 152 "Position": "3", 153 "TabType": "javascript", 154 "ScriptName": "shared.js", 155 "Function": "device_notifications" 136 156 } 137 157 ], -
/trunk/S_RFXtrx.xml
r20 r30 169 169 </action> 170 170 <action> 171 <name>ReceiveRollerTrol</name> 171 <name>ReceiveFineOffset</name> 172 <argumentList> 173 <argument> 174 <name>enable</name> 175 <direction>in</direction> 176 </argument> 177 </argumentList> 178 </action> 179 <action> 180 <name>ReceiveRubicson</name> 181 <argumentList> 182 <argument> 183 <name>enable</name> 184 <direction>in</direction> 185 </argument> 186 </argumentList> 187 </action> 188 <action> 189 <name>ReceiveAE</name> 190 <argumentList> 191 <argument> 192 <name>enable</name> 193 <direction>in</direction> 194 </argument> 195 </argumentList> 196 </action> 197 <action> 198 <name>ReceiveBlindsT1</name> 199 <argumentList> 200 <argument> 201 <name>enable</name> 202 <direction>in</direction> 203 </argument> 204 </argumentList> 205 </action> 206 <action> 207 <name>ReceiveBlindsT0</name> 208 <argumentList> 209 <argument> 210 <name>enable</name> 211 <direction>in</direction> 212 </argument> 213 </argumentList> 214 </action> 215 <action> 216 <name>ReceiveMeiantech</name> 172 217 <argumentList> 173 218 <argument> … … 408 453 <action> 409 454 <name>AddRisingSunSwitch</name> 455 <argumentList> 456 <argument> 457 <name>HouseCode</name> 458 <direction>in</direction> 459 </argument> 460 <argument> 461 <name>UnitCode</name> 462 <direction>in</direction> 463 </argument> 464 </argumentList> 465 </action> 466 <action> 467 <name>AddPhilipsSwitch</name> 410 468 <argumentList> 411 469 <argument> -
/trunk/D_RFXtrx.json
r20 r30 101 101 "Label": { 102 102 "lang_tag": "temp_unit", 103 "text": "Temp rature unit"103 "text": "Temperature unit" 104 104 }, 105 105 "Display": { … … 406 406 "Label": { 407 407 "lang_tag": "hideki_receiving", 408 "text": "Hideki "408 "text": "Hideki / UPM" 409 409 }, 410 410 "Display": { … … 471 471 "Label": { 472 472 "lang_tag": "ad_receiving", 473 "text": "AD "473 "text": "AD (LightwaveRF)" 474 474 }, 475 475 "Display": { … … 665 665 "ControlType": "label", 666 666 "Label": { 667 "lang_tag": "bindsT0_receiving", 668 "text": "RollerTrol / Hasta" 669 }, 670 "Display": { 671 "Top": 300, 672 "Left": 25, 673 "Width": 75, 674 "Height": 20 675 } 676 }, 677 { 678 "ControlType": "button", 679 "Label": { 680 "lang_tag": "cmd_blindsT0_enable", 681 "text": "Enable" 682 }, 683 "Display": { 684 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 685 "Variable": "BlindsT0Receiving", 686 "Value": "1", 687 "Top": 295, 688 "Left": 135, 689 "Width": 75, 690 "Height": 20 691 }, 692 "Command": { 693 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 694 "Action": "ReceiveBlindsT0", 695 "Parameters": [ 696 { 697 "Name": "enable", 698 "Value": "1" 699 } 700 ] 701 } 702 }, 703 { 704 "ControlType": "button", 705 "Label": { 706 "lang_tag": "cmd_blindsT0_disable", 707 "text": "Disable" 708 }, 709 "Display": { 710 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 711 "Variable": "BlindsT0Receiving", 712 "Value": "0", 713 "Top": 295, 714 "Left": 225, 715 "Width": 75, 716 "Height": 20 717 }, 718 "Command": { 719 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 720 "Action": "ReceiveBlindsT0", 721 "Parameters": [ 722 { 723 "Name": "enable", 724 "Value": "0" 725 } 726 ] 727 } 728 }, 729 { 730 "ControlType": "label", 731 "Label": { 732 "lang_tag": "bindsT1_receiving", 733 "text": "Hasta (old)" 734 }, 735 "Display": { 736 "Top": 330, 737 "Left": 25, 738 "Width": 75, 739 "Height": 20 740 } 741 }, 742 { 743 "ControlType": "button", 744 "Label": { 745 "lang_tag": "cmd_blindsT1_enable", 746 "text": "Enable" 747 }, 748 "Display": { 749 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 750 "Variable": "BlindsT1Receiving", 751 "Value": "1", 752 "Top": 325, 753 "Left": 135, 754 "Width": 75, 755 "Height": 20 756 }, 757 "Command": { 758 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 759 "Action": "ReceiveBlindsT1", 760 "Parameters": [ 761 { 762 "Name": "enable", 763 "Value": "1" 764 } 765 ] 766 } 767 }, 768 { 769 "ControlType": "button", 770 "Label": { 771 "lang_tag": "cmd_blindsT1_disable", 772 "text": "Disable" 773 }, 774 "Display": { 775 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 776 "Variable": "BlindsT1Receiving", 777 "Value": "0", 778 "Top": 325, 779 "Left": 225, 780 "Width": 75, 781 "Height": 20 782 }, 783 "Command": { 784 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 785 "Action": "ReceiveBlindsT1", 786 "Parameters": [ 787 { 788 "Name": "enable", 789 "Value": "0" 790 } 791 ] 792 } 793 }, 794 { 795 "ControlType": "label", 796 "Label": { 797 "lang_tag": "fineoffset_receiving", 798 "text": "FineOffset / Viking" 799 }, 800 "Display": { 801 "Top": 360, 802 "Left": 25, 803 "Width": 75, 804 "Height": 20 805 } 806 }, 807 { 808 "ControlType": "button", 809 "Label": { 810 "lang_tag": "cmd_fineoffset_enable", 811 "text": "Enable" 812 }, 813 "Display": { 814 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 815 "Variable": "FineOffsetReceiving", 816 "Value": "1", 817 "Top": 355, 818 "Left": 135, 819 "Width": 75, 820 "Height": 20 821 }, 822 "Command": { 823 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 824 "Action": "ReceiveFineOffset", 825 "Parameters": [ 826 { 827 "Name": "enable", 828 "Value": "1" 829 } 830 ] 831 } 832 }, 833 { 834 "ControlType": "button", 835 "Label": { 836 "lang_tag": "cmd_fineoffset_disable", 837 "text": "Disable" 838 }, 839 "Display": { 840 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 841 "Variable": "FineOffsetReceiving", 842 "Value": "0", 843 "Top": 355, 844 "Left": 225, 845 "Width": 75, 846 "Height": 20 847 }, 848 "Command": { 849 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 850 "Action": "ReceiveFineOffset", 851 "Parameters": [ 852 { 853 "Name": "enable", 854 "Value": "0" 855 } 856 ] 857 } 858 }, 859 { 860 "ControlType": "label", 861 "Label": { 667 862 "lang_tag": "ati_receiving", 668 863 "text": "ATI" … … 795 990 "ControlType": "label", 796 991 "Label": { 797 "lang_tag": " rollertrol_receiving",798 "text": " RollerTrol"992 "lang_tag": "meiantech_receiving", 993 "text": "Meiantech" 799 994 }, 800 995 "Display": { … … 808 1003 "ControlType": "button", 809 1004 "Label": { 810 "lang_tag": "cmd_ rollertrol_enable",1005 "lang_tag": "cmd_meiantech_enable", 811 1006 "text": "Enable" 812 1007 }, 813 1008 "Display": { 814 1009 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 815 "Variable": " RollerTrolReceiving",1010 "Variable": "MeiantechReceiving", 816 1011 "Value": "1", 817 1012 "Top": 145, … … 822 1017 "Command": { 823 1018 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 824 "Action": "Receive RollerTrol",1019 "Action": "ReceiveMeiantech", 825 1020 "Parameters": [ 826 1021 { … … 834 1029 "ControlType": "button", 835 1030 "Label": { 836 "lang_tag": "cmd_ rollertrol_disable",1031 "lang_tag": "cmd_meiantech_disable", 837 1032 "text": "Disable" 838 1033 }, 839 1034 "Display": { 840 1035 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 841 "Variable": " RollerTrolReceiving",1036 "Variable": "MeiantechReceiving", 842 1037 "Value": "0", 843 1038 "Top": 145, … … 848 1043 "Command": { 849 1044 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 850 "Action": "Receive RollerTrol",1045 "Action": "ReceiveMeiantech", 851 1046 "Parameters": [ 852 1047 { … … 1118 1313 }, 1119 1314 { 1315 "ControlType": "label", 1316 "Label": { 1317 "lang_tag": "rubicson_receiving", 1318 "text": "Rubicson" 1319 }, 1320 "Display": { 1321 "Top": 300, 1322 "Left": 325, 1323 "Width": 75, 1324 "Height": 20 1325 } 1326 }, 1327 { 1328 "ControlType": "button", 1329 "Label": { 1330 "lang_tag": "cmd_rubicson_enable", 1331 "text": "Enable" 1332 }, 1333 "Display": { 1334 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 1335 "Variable": "RubicsonReceiving", 1336 "Value": "1", 1337 "Top": 295, 1338 "Left": 435, 1339 "Width": 75, 1340 "Height": 20 1341 }, 1342 "Command": { 1343 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 1344 "Action": "ReceiveRubicson", 1345 "Parameters": [ 1346 { 1347 "Name": "enable", 1348 "Value": "1" 1349 } 1350 ] 1351 } 1352 }, 1353 { 1354 "ControlType": "button", 1355 "Label": { 1356 "lang_tag": "cmd_rubicson_disable", 1357 "text": "Disable" 1358 }, 1359 "Display": { 1360 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 1361 "Variable": "RubicsonReceiving", 1362 "Value": "0", 1363 "Top": 295, 1364 "Left": 525, 1365 "Width": 75, 1366 "Height": 20 1367 }, 1368 "Command": { 1369 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 1370 "Action": "ReceiveRubicson", 1371 "Parameters": [ 1372 { 1373 "Name": "enable", 1374 "Value": "0" 1375 } 1376 ] 1377 } 1378 }, 1379 { 1380 "ControlType": "label", 1381 "Label": { 1382 "lang_tag": "ae_receiving", 1383 "text": "AE (Blyss)" 1384 }, 1385 "Display": { 1386 "Top": 330, 1387 "Left": 325, 1388 "Width": 75, 1389 "Height": 20 1390 } 1391 }, 1392 { 1393 "ControlType": "button", 1394 "Label": { 1395 "lang_tag": "cmd_ae_enable", 1396 "text": "Enable" 1397 }, 1398 "Display": { 1399 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 1400 "Variable": "AEReceiving", 1401 "Value": "1", 1402 "Top": 325, 1403 "Left": 435, 1404 "Width": 75, 1405 "Height": 20 1406 }, 1407 "Command": { 1408 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 1409 "Action": "ReceiveAE", 1410 "Parameters": [ 1411 { 1412 "Name": "enable", 1413 "Value": "1" 1414 } 1415 ] 1416 } 1417 }, 1418 { 1419 "ControlType": "button", 1420 "Label": { 1421 "lang_tag": "cmd_ae_disable", 1422 "text": "Disable" 1423 }, 1424 "Display": { 1425 "Service": "upnp-rfxcom-com:serviceId:rfxtrx1", 1426 "Variable": "AEReceiving", 1427 "Value": "0", 1428 "Top": 325, 1429 "Left": 525, 1430 "Width": 75, 1431 "Height": 20 1432 }, 1433 "Command": { 1434 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 1435 "Action": "ReceiveAE", 1436 "Parameters": [ 1437 { 1438 "Name": "enable", 1439 "Value": "0" 1440 } 1441 ] 1442 } 1443 }, 1444 { 1120 1445 "ControlType": "button", 1121 1446 "Label": { … … 1124 1449 }, 1125 1450 "Display": { 1126 "Top": 3 05,1451 "Top": 395, 1127 1452 "Left": 25, 1128 1453 "Width": 150, … … 1143 1468 }, 1144 1469 "Display": { 1145 "Top": 3 00,1470 "Top": 390, 1146 1471 "Left": 200, 1147 1472 "Width": 225, … … 1248 1573 "Label": { 1249 1574 "lang_tag": "unitcode_help2", 1250 "text": "Except for Chacon EMW200: 1 to 4; for Flamingo and Impuls: 1 to 64; for Phenix: 1 to 32 "1575 "text": "Except for Chacon EMW200: 1 to 4; for Flamingo and Impuls: 1 to 64; for Phenix: 1 to 32; for Philips: 1 to 8" 1251 1576 }, 1252 1577 "Display": { … … 1261 1586 "Label": { 1262 1587 "lang_tag": "cmd_add_switch_x10", 1263 "text": "Add Switch (X10)"1588 "text": "Add X10 Switch" 1264 1589 }, 1265 1590 "Display": { … … 1288 1613 "Label": { 1289 1614 "lang_tag": "cmd_add_switch_arc", 1290 "text": "Add Switch (ARC)"1615 "text": "Add ARC Switch" 1291 1616 }, 1292 1617 "Display": { … … 1315 1640 "Label": { 1316 1641 "lang_tag": "cmd_add_switch_waveman", 1317 "text": "Add Switch (Waveman)"1642 "text": "Add Waveman Switch" 1318 1643 }, 1319 1644 "Display": { … … 1342 1667 "Label": { 1343 1668 "lang_tag": "cmd_add_switch_ab400", 1344 "text": "Add Switch (Flamingo)"1669 "text": "Add Flamingo Switch" 1345 1670 }, 1346 1671 "Display": { … … 1369 1694 "Label": { 1370 1695 "lang_tag": "cmd_add_switch_impuls", 1371 "text": "Add Switch (Impuls)"1696 "text": "Add Impuls Switch" 1372 1697 }, 1373 1698 "Display": { … … 1396 1721 "Label": { 1397 1722 "lang_tag": "cmd_add_switch_phenix", 1398 "text": "Add Switch (Phenix)"1723 "text": "Add Phenix Switch" 1399 1724 }, 1400 1725 "Display": { … … 1423 1748 "Label": { 1424 1749 "lang_tag": "cmd_add_switch_emw200", 1425 "text": "Add Switch (EMW200)"1750 "text": "Add EMW200 Switch" 1426 1751 }, 1427 1752 "Display": { … … 1450 1775 "Label": { 1451 1776 "lang_tag": "cmd_add_switch_risingsun", 1452 "text": "Add Switch (RisingSun)"1777 "text": "Add RisingSun Switch" 1453 1778 }, 1454 1779 "Display": { … … 1476 1801 "ControlType": "button", 1477 1802 "Label": { 1478 "lang_tag": "cmd_add_ harrison",1479 "text": "Add Harrison Curtain"1803 "lang_tag": "cmd_add_philips", 1804 "text": "Add Philips Switch" 1480 1805 }, 1481 1806 "Display": { … … 1487 1812 "Command": { 1488 1813 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 1489 "Action": "Add HarrisonCurtain",1814 "Action": "AddPhilipsSwitch", 1490 1815 "Parameters": [ 1491 1816 { … … 1501 1826 }, 1502 1827 { 1828 "ControlType": "button", 1829 "Label": { 1830 "lang_tag": "cmd_add_harrison", 1831 "text": "Add Harrison Curtain" 1832 }, 1833 "Display": { 1834 "Top": 165, 1835 "Left": 100, 1836 "Width": 150, 1837 "Height": 20 1838 }, 1839 "Command": { 1840 "Service": "urn:upnp-rfxcom-com:serviceId:rfxtrx1", 1841 "Action": "AddHarrisonCurtain", 1842 "Parameters": [ 1843 { 1844 "Name": "HouseCode", 1845 "ID": "HouseCode" 1846 }, 1847 { 1848 "Name": "UnitCode", 1849 "ID": "UnitCode" 1850 } 1851 ] 1852 } 1853 }, 1854 { 1503 1855 "ControlType": "label", 1504 1856 "Label": { … … 1507 1859 }, 1508 1860 "Display": { 1509 "Top": 170,1861 "Top": 200, 1510 1862 "Left": 25, 1511 1863 "Width": 75, … … 1517 1869 "ID": "RemoteId", 1518 1870 "Display": { 1519 "Top": 1 65,1871 "Top": 195, 1520 1872 "Left": 100, 1521 1873 "Width": 60, … … 1530 1882 }, 1531 1883 "Display": { 1532 "Top": 1 60,1884 "Top": 190, 1533 1885 "Left": 180, 1534 1886 "Width": 225, … … 1543 1895 }, 1544 1896 "Display": { 1545 "Top": 175,1897 "Top": 205, 1546 1898 "Left": 180, 1547 1899 "Width": 225, … … 1556 1908 }, 1557 1909 "Display": { 1558 "Top": 2 00,1910 "Top": 230, 1559 1911 "Left": 25, 1560 1912 "Width": 75, … … 1566 1918 "ID": "UnitCode2", 1567 1919 "Display": { 1568 "Top": 195,1920 "Top": 225, 1569 1921 "Left": 100, 1570 1922 "Width": 20, … … 1579 1931 }, 1580 1932 "Display": { 1581 "Top": 2 00,1933 "Top": 230, 1582 1934 "Left": 180, 1583 1935 "Width": 225, … … 1589 1941 "Label": { 1590 1942 "lang_tag": "cmd_add_switch_ac", 1591 "text": "Add Switch (AC)"1592 }, 1593 "Display": { 1594 "Top": 2 25,1943 "text": "Add AC Switch" 1944 }, 1945 "Display": { 1946 "Top": 255, 1595 1947 "Left": 100, 1596 1948 "Width": 150, … … 1616 1968 "Label": { 1617 1969 "lang_tag": "cmd_add_dimmer_ac", 1618 "text": "Add Dimmer (AC)"1619 }, 1620 "Display": { 1621 "Top": 2 25,1970 "text": "Add AC Dimmer" 1971 }, 1972 "Display": { 1973 "Top": 255, 1622 1974 "Left": 265, 1623 1975 "Width": 150, … … 1646 1998 }, 1647 1999 "Display": { 1648 "Top": 2 25,2000 "Top": 255, 1649 2001 "Left": 430, 1650 2002 "Width": 150, … … 1670 2022 "Label": { 1671 2023 "lang_tag": "cmd_add_switch_heu", 1672 "text": "Add Switch (HomeEasy EU)"1673 }, 1674 "Display": { 1675 "Top": 2 55,2024 "text": "Add HomeEasy EU Switch" 2025 }, 2026 "Display": { 2027 "Top": 285, 1676 2028 "Left": 100, 1677 2029 "Width": 200, … … 1697 2049 "Label": { 1698 2050 "lang_tag": "cmd_add_dimmer_heu", 1699 "text": "Add Dimmer (HomeEasy EU)"1700 }, 1701 "Display": { 1702 "Top": 2 55,2051 "text": "Add HomeEasy EU Dimmer" 2052 }, 2053 "Display": { 2054 "Top": 285, 1703 2055 "Left": 325, 1704 2056 "Width": 200, … … 1724 2076 "Label": { 1725 2077 "lang_tag": "cmd_add_switch_anslut", 1726 "text": "Add Switch (ANSLUT)"1727 }, 1728 "Display": { 1729 "Top": 285,2078 "text": "Add ANSLUT Switch" 2079 }, 2080 "Display": { 2081 "Top": 315, 1730 2082 "Left": 100, 1731 2083 "Width": 150, … … 1751 2103 "Label": { 1752 2104 "lang_tag": "cmd_add_dimmer_anslut", 1753 "text": "Add Dimmer (ANSLUT)"1754 }, 1755 "Display": { 1756 "Top": 285,2105 "text": "Add ANSLUT Dimmer" 2106 }, 2107 "Display": { 2108 "Top": 315, 1757 2109 "Left": 265, 1758 2110 "Width": 150, … … 1778 2130 "Label": { 1779 2131 "lang_tag": "cmd_add_switch_lwrf", 1780 "text": "Add Switch (LWRF)"1781 }, 1782 "Display": { 1783 "Top": 3 15,2132 "text": "Add LWRF Switch" 2133 }, 2134 "Display": { 2135 "Top": 345, 1784 2136 "Left": 100, 1785 2137 "Width": 150, … … 1805 2157 "Label": { 1806 2158 "lang_tag": "cmd_add_dimmer_lwrf", 1807 "text": "Add Dimmer (LWRF)"1808 }, 1809 "Display": { 1810 "Top": 3 15,2159 "text": "Add LWRF Dimmer" 2160 }, 2161 "Display": { 2162 "Top": 345, 1811 2163 "Left": 265, 1812 2164 "Width": 150, … … 1832 2184 "Label": { 1833 2185 "lang_tag": "cmd_add_wc_lwrf", 1834 "text": "Add Window Cover (LWRF)"1835 }, 1836 "Display": { 1837 "Top": 3 15,2186 "text": "Add LWRF Window Cover" 2187 }, 2188 "Display": { 2189 "Top": 345, 1838 2190 "Left": 430, 1839 2191 "Width": 195, … … 1862 2214 }, 1863 2215 "Display": { 1864 "Top": 3 50,2216 "Top": 380, 1865 2217 "Left": 25, 1866 2218 "Width": 75, … … 1871 2223 "ControlType": "input", 1872 2224 "ID": "SystemCode", 1873 "Display": {1874 "Top": 345,1875 "Left": 100,1876 "Width": 20,1877 "Height": 201878 }1879 },1880 {1881 "ControlType": "label",1882 "Label": {1883 "lang_tag": "system_code_help",1884 "text": "Decimal value from 1 to 16"1885 },1886 "Display": {1887 "Top": 350,1888 "Left": 140,1889 "Width": 225,1890 "Height": 201891 }1892 },1893 {1894 "ControlType": "label",1895 "Label": {1896 "lang_tag": "channel",1897 "text": "Channel"1898 },1899 "Display": {1900 "Top": 380,1901 "Left": 25,1902 "Width": 75,1903 "Height": 201904 }1905 },1906 {1907 "ControlType": "input",1908 "ID": "Channel",1909 2225 "Display": { 1910 2226 "Top": 375, … … 1917 2233 "ControlType": "label", 1918 2234 "Label": { 1919 "lang_tag": " channel_help",1920 "text": "Decimal value from 1 to 1 0"2235 "lang_tag": "system_code_help", 2236 "text": "Decimal value from 1 to 16" 1921 2237 }, 1922 2238 "Display": { … … 1928 2244 }, 1929 2245 { 2246 "ControlType": "label", 2247 "Label": { 2248 "lang_tag": "channel", 2249 "text": "Channel" 2250 }, 2251 "Display": { 2252 "Top": 410, 2253 "Left": 25, 2254 "Width": 75, 2255 "Height": 20 2256 } 2257 }, 2258 { 2259 "ControlType": "input", 2260 "ID": "Channel", 2261 "Display": { 2262 "Top": 405, 2263 "Left": 100, 2264 "Width": 20, 2265 "Height": 20 2266 } 2267 }, 2268 { 2269 "ControlType": "label", 2270 "Label": { 2271 "lang_tag": "channel_help", 2272 "text": "Decimal value from 1 to 10" 2273 }, 2274 "Display": { 2275 "Top": 410, 2276 "Left": 140, 2277 "Width": 225, 2278 "Height": 20 2279 } 2280 }, 2281 { 1930 2282 "ControlType": "button", 1931 2283 "Label": { 1932 2284 "lang_tag": "cmd_add_switch_koppla", 1933 "text": "Add Switch (Koppla)"1934 }, 1935 "Display": { 1936 "Top": 4 15,2285 "text": "Add Koppla Switch" 2286 }, 2287 "Display": { 2288 "Top": 445, 1937 2289 "Left": 100, 1938 2290 "Width": 150, … … 1958 2310 "Label": { 1959 2311 "lang_tag": "cmd_add_dimmer_koppla", 1960 "text": "Add Dimmer (Koppla)"1961 }, 1962 "Display": { 1963 "Top": 4 15,2312 "text": "Add Koppla Dimmer" 2313 }, 2314 "Display": { 2315 "Top": 445, 1964 2316 "Left": 265, 1965 2317 "Width": 150,
Note: See TracChangeset
for help on using the changeset viewer.