You can also automate this by running this code:
local masterID = 299 -- change with yours
-- master
luup.attr_set("device_file", "D_ComboDevice1.xml", masterID)
luup.attr_set("device_json", "D_ComboDevice1.json", masterID)
luup.attr_set("device_type", "urn:schemas-micasaverde-com:device:ComboDevice:1", masterID)
luup.variable_set("urn:micasaverde-com:serviceId:ZWaveDevice1", "BasicSetCapabilities", "00=Ue1,FF=Te1,2=Ue2,1=Te2", masterID)
luup.variable_set("urn:micasaverde-com:serviceId:ZWaveDevice1", "VariablesSet", "20-IN1 mode,1d,1,21-IN2 mode,1d,1,52-IN2 value for ON,2d,1,54-IN2 value for OFF,2d,2,67-temp change external channel,2d,3,68-temp periodical report,2d,60", masterID)
luup.variable_set("urn:micasaverde-com:serviceId:ZWaveDevice1", "AssociationSet", "1,1.0,2.0", masterID)
luup.variable_set("urn:micasaverde-com:seraviceId:ZWaveDevice1", "PollSettings", "0", masterID) -- no polling
luup.variable_set("urn:micasaverde-com:serviceId:HaDevice1", "ChildrenSameRoom", "0", masterID) -- if you want to freely move children in other rooms
luup.devices[masterID].subcategory_num = 11
luup.devices[masterID].category_num = 0
-- children
for deviceNo, d in pairs(luup.devices) do
local parent = d.device_num_parent or -1
if parent == masterID then
local altid = luup.attr_get("altid", deviceNo)
-- fix binary sensors
if altid == "e1" or altid == "e2" then
luup.attr_set("device_file", "D_MotionSensor1.xml", deviceNo)
luup.attr_set("device_json", "D_MotionSensor1.json", deviceNo)
luup.attr_set("device_type", "urn:schemas-micasaverde-com:device:MotionSensor:1", deviceNo)
d.category_num = 4
d.subcategory_num = 8
elseif altid == "m1" or altid == "e7" or altid == "e8" or altid == "e9" or altid == "e10" then
luup.attr_set("device_file", "D_TemperatureSensor1.xml", deviceNo)
luup.attr_set("device_json", "D_TemperatureSensor1.json", deviceNo)
luup.attr_set("device_type", "urn:schemas-micasaverde-com:device:TemperatureSensor:1", deviceNo)
d.category_num = 18
d.subcategory_num = 0
luup.attr_set("invisible", "0", deviceNo)
else
-- hide all
luup.attr_set("invisible", "1", deviceNo)
end
end
end
This will set all the things discussed previously in one shot. You just need to reload LuuP engine.
Temperarure will not report correctly from external endpoints, but I guess it’s probably a limitation of the way Vera’s handling Sensor Multilevel Reports, so we’re basically out of luck here. But it’s working OK as a substitute of a binary sensor.