UI5 Mysensors library 2.0 gateway issues
-
Well, it iterates over all vera devices (
luup.devices) and checks if anyone is has the current device as parent... which means it is a child device.For each child device it adds it to the array. The problem here is that it shouldn't find any child devices.. thus the availableIds should all be filled with false.
Maybe you could add some debug logging in the section I pointed out to see what kind of devices it picks up?
-
I am more than interested in trying, I just need a little guidance on how to do that.
In the nextAvailiableRadioId() function I could do the following before it searches for an ID, I am just not sure what code to use to find out what device is defined for that ID.
for i=1,255 do if (availableIds[i] == false) then --add code to log what device is holding this spot end end -
It might be more interesting if you'd add some logging in this area, which should appear in the log when you reload the luup engine:
https://github.com/mysensors/Vera/blob/development/L_Arduino.lua#L682-L687v contains the device. See what it contains under "variable: devices" here:
http://wiki.micasaverde.com/index.php/Luup_Lua_extensions -
OK, so here is what I did:
-- build an lookup table for child device ids (altid -> id) local lastDev = 0 for k, v in pairs(luup.devices) do -- for debugging only remove for production run for k2, v2 in pairs(v) do if (k ~= lastDev) then luup.log("Device #" .. k .. ":" .. k2 .. "=" .. tostring(v2)) else luup.log(" " .. k2 .. "=" .. tostring(v2)) end lastDev = k end -- end debugging -- if I am the parent device if v.device_num_parent == ARDUINO_DEVICE then childIdLookupTable[v.id] = k local split = v.id:split(";") local radioId = tonumber(split[1]) availableIds[radioId] = false; end endI did this to show me every attribute of every device that the system sees. After the luup engine restarts, I get this in the logs:
50 12/27/16 15:58:48.117 luup_log:19: Initialising One Wire Server <0x76be5520> 50 12/27/16 15:58:48.221 luup_log:27: Arduino plugin: loading library L_Arduino ... <0x76be5520> 50 12/27/16 15:58:48.239 luup_log:27: Arduino plugin: library L_Arduino loaded <0x76be5520> 50 12/27/16 15:58:48.239 luup_log:27: Arduino: urn:upnp-arduino-cc:serviceId:arduino1,PluginVersion, 1.5, 27 <0x76be5520> 50 12/27/16 15:58:48.239 luup_log:27: Arduino: Trying for a serial connection <0x76be5520> 50 12/27/16 15:58:48.240 luup_log:27: Arduino: Serial port is connected <0x76be5520> 50 12/27/16 15:58:48.240 luup_log:27: Arduino: Baud is 115200 <0x76be5520> 50 12/27/16 15:58:48.240 luup_log:27: Device #1:mac= <0x76be5520> 50 12/27/16 15:58:48.241 luup_log:27: category_num=19 <0x76be5520> 50 12/27/16 15:58:48.241 luup_log:27: description=ZWave <0x76be5520> 50 12/27/16 15:58:48.241 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.242 luup_log:27: id= <0x76be5520> 50 12/27/16 15:58:48.242 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.242 luup_log:27: ip= <0x76be5520> 50 12/27/16 15:58:48.242 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.242 luup_log:27: udn=uuid:4d494342-5342-5645-0001-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.243 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.243 luup_log:27: invisible=true <0x76be5520> 50 12/27/16 15:58:48.243 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.243 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.243 luup_log:27: device_num_parent=0 <0x76be5520> 50 12/27/16 15:58:48.243 luup_log:27: device_type=urn:schemas-micasaverde-com:device:ZWaveNetwork:1 <0x76be5520> 50 12/27/16 15:58:48.244 luup_log:27: Device #2:mac=000D6F000C5BC6E6 <0x76be5520> 50 12/27/16 15:58:48.244 luup_log:27: category_num=0 <0x76be5520> 50 12/27/16 15:58:48.244 luup_log:27: description=Zigbee Network <0x76be5520> 50 12/27/16 15:58:48.244 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.245 luup_log:27: id= <0x76be5520> 50 12/27/16 15:58:48.245 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.245 luup_log:27: ip= <0x76be5520> 50 12/27/16 15:58:48.245 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.245 luup_log:27: udn=uuid:4d494342-5342-5645-0002-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.246 luup_log:27: subcategory_num=-1 <0x76be5520> 50 12/27/16 15:58:48.246 luup_log:27: invisible=true <0x76be5520> 50 12/27/16 15:58:48.246 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.246 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.246 luup_log:27: device_num_parent=0 <0x76be5520> 50 12/27/16 15:58:48.247 luup_log:27: device_type=urn:schemas-micasaverde-com:device:ZigbeeNetwork:1 <0x76be5520> 50 12/27/16 15:58:48.247 luup_log:27: Device #3:mac=B4:A5:EF:ED:58:1D <0x76be5520> 50 12/27/16 15:58:48.247 luup_log:27: category_num=0 <0x76be5520> 50 12/27/16 15:58:48.247 luup_log:27: description=Bluetooth Network <0x76be5520> 50 12/27/16 15:58:48.247 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.247 luup_log:27: id= <0x76be5520> 50 12/27/16 15:58:48.248 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.248 luup_log:27: ip= <0x76be5520> 50 12/27/16 15:58:48.248 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.248 luup_log:27: udn=uuid:4d494342-5342-5645-0003-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.249 luup_log:27: subcategory_num=-1 <0x76be5520> 50 12/27/16 15:58:48.249 luup_log:27: invisible=true <0x76be5520> 50 12/27/16 15:58:48.249 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.249 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.249 luup_log:27: device_num_parent=0 <0x76be5520> 50 12/27/16 15:58:48.249 luup_log:27: device_type=urn:schemas-micasaverde-com:device:BluetoothNetwork:1 <0x76be5520> 50 12/27/16 15:58:48.250 luup_log:27: Device #20:mac= <0x76be5520> 50 12/27/16 15:58:48.250 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.250 luup_log:27: description=Bar South Temp <0x76be5520> 50 12/27/16 15:58:48.250 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.250 luup_log:27: id=FE0000047CE7AE28:Temperature <0x76be5520> 50 12/27/16 15:58:48.251 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.251 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.251 luup_log:27: room_num=10 <0x76be5520> 50 12/27/16 15:58:48.251 luup_log:27: udn=uuid:4d494342-5342-5645-0014-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.251 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.252 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.252 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.252 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.252 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.252 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.253 luup_log:27: Device #21:mac= <0x76be5520> 50 12/27/16 15:58:48.253 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.253 luup_log:27: description=Guest Bedroom Temp <0x76be5520> 50 12/27/16 15:58:48.253 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.253 luup_log:27: id=9A02146426ECFF28:Temperature <0x76be5520> 50 12/27/16 15:58:48.254 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.254 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.254 luup_log:27: room_num=9 <0x76be5520> 50 12/27/16 15:58:48.254 luup_log:27: udn=uuid:4d494342-5342-5645-0015-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.254 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.255 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.255 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.255 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.255 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.255 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.256 luup_log:27: Device #22:mac= <0x76be5520> 50 12/27/16 15:58:48.256 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.256 luup_log:27: description=Office Temp <0x76be5520> 50 12/27/16 15:58:48.256 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.257 luup_log:27: id=C80000047D69C028:Temperature <0x76be5520> 50 12/27/16 15:58:48.257 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.257 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.257 luup_log:27: room_num=7 <0x76be5520> 50 12/27/16 15:58:48.257 luup_log:27: udn=uuid:4d494342-5342-5645-0016-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.258 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.258 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.258 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.258 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.258 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.258 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.259 luup_log:27: Device #23:mac= <0x76be5520> 50 12/27/16 15:58:48.259 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.259 luup_log:27: description=Master Bedroom Temp <0x76be5520> 50 12/27/16 15:58:48.259 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.259 luup_log:27: id=5602146472A5FF28:Temperature <0x76be5520> 50 12/27/16 15:58:48.260 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.260 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.260 luup_log:27: room_num=8 <0x76be5520> 50 12/27/16 15:58:48.260 luup_log:27: udn=uuid:4d494342-5342-5645-0017-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.260 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.261 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.261 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.261 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.261 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.261 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.262 luup_log:27: Device #24:mac= <0x76be5520> 50 12/27/16 15:58:48.262 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.262 luup_log:27: description=Kitchen Hall Temp <0x76be5520> 50 12/27/16 15:58:48.262 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.262 luup_log:27: id=9E000003A827AF28:Temperature <0x76be5520> 50 12/27/16 15:58:48.263 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.263 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.263 luup_log:27: room_num=3 <0x76be5520> 50 12/27/16 15:58:48.263 luup_log:27: udn=uuid:4d494342-5342-5645-0018-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.263 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.264 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.264 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.264 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.264 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.264 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.265 luup_log:27: Device #25:mac= <0x76be5520> 50 12/27/16 15:58:48.265 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.265 luup_log:27: description=Bar North Temp <0x76be5520> 50 12/27/16 15:58:48.265 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.265 luup_log:27: id=7A000003A7472828:Temperature <0x76be5520> 50 12/27/16 15:58:48.266 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.266 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.266 luup_log:27: room_num=10 <0x76be5520> 50 12/27/16 15:58:48.266 luup_log:27: udn=uuid:4d494342-5342-5645-0019-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.266 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.267 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.267 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.267 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.267 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.267 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.268 luup_log:27: Device #26:mac= <0x76be5520> 50 12/27/16 15:58:48.268 luup_log:27: category_num=17 <0x76be5520> 50 12/27/16 15:58:48.268 luup_log:27: description=Outside Temp <0x76be5520> 50 12/27/16 15:58:48.268 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.268 luup_log:27: id=F60000047DA93228:Temperature <0x76be5520> 50 12/27/16 15:58:48.269 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.269 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.269 luup_log:27: room_num=13 <0x76be5520> 50 12/27/16 15:58:48.269 luup_log:27: udn=uuid:4d494342-5342-5645-001a-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.269 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.269 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.270 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.270 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.270 luup_log:27: device_num_parent=19 <0x76be5520> 50 12/27/16 15:58:48.270 luup_log:27: device_type=urn:schemas-micasaverde-com:device:TemperatureSensor:1 <0x76be5520> 50 12/27/16 15:58:48.270 luup_log:27: Device #27:mac= <0x76be5520> 50 12/27/16 15:58:48.271 luup_log:27: category_num=0 <0x76be5520> 50 12/27/16 15:58:48.271 luup_log:27: description=MySensors Plugin <0x76be5520> 50 12/27/16 15:58:48.271 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.271 luup_log:27: id= <0x76be5520> 50 12/27/16 15:58:48.271 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.272 luup_log:27: ip= <0x76be5520> 50 12/27/16 15:58:48.272 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.272 luup_log:27: udn=uuid:4d494342-5342-5645-001b-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.272 luup_log:27: subcategory_num=-1 <0x76be5520> 50 12/27/16 15:58:48.272 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.273 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.273 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.273 luup_log:27: device_num_parent=0 <0x76be5520> 50 12/27/16 15:58:48.273 luup_log:27: device_type=urn:schemas-arduino-cc:device:arduino:1 <0x76be5520> 50 12/27/16 15:58:48.273 luup_log:27: Device #5:mac= <0x76be5520> 50 12/27/16 15:58:48.274 luup_log:27: category_num=0 <0x76be5520> 50 12/27/16 15:58:48.274 luup_log:27: description=Serial_Portlist_2144272085 <0x76be5520> 50 12/27/16 15:58:48.274 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.274 luup_log:27: id=50009936 <0x76be5520> 50 12/27/16 15:58:48.274 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.275 luup_log:27: ip=127.0.0.1 <0x76be5520> 50 12/27/16 15:58:48.275 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.275 luup_log:27: udn=uuid:4d494342-5342-5645-0005-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.275 luup_log:27: subcategory_num=-1 <0x76be5520> 50 12/27/16 15:58:48.275 luup_log:27: invisible=true <0x76be5520> 50 12/27/16 15:58:48.276 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.276 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.276 luup_log:27: device_num_parent=0 <0x76be5520> 50 12/27/16 15:58:48.276 luup_log:27: device_type=urn:micasaverde-org:device:SerialPortRoot:1 <0x76be5520> 50 12/27/16 15:58:48.276 luup_log:27: Device #4:mac= <0x76be5520> 50 12/27/16 15:58:48.277 luup_log:27: category_num=14 <0x76be5520> 50 12/27/16 15:58:48.277 luup_log:27: description=_Scene Controller <0x76be5520> 50 12/27/16 15:58:48.277 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.277 luup_log:27: id=1 <0x76be5520> 50 12/27/16 15:58:48.277 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.278 luup_log:27: ip= <0x76be5520> 50 12/27/16 15:58:48.278 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.278 luup_log:27: udn=uuid:4d494342-5342-5645-0004-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.278 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.278 luup_log:27: invisible=true <0x76be5520> 50 12/27/16 15:58:48.278 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.279 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.279 luup_log:27: device_num_parent=1 <0x76be5520> 50 12/27/16 15:58:48.279 luup_log:27: device_type=urn:schemas-micasaverde-com:device:SceneController:1 <0x76be5520> 50 12/27/16 15:58:48.279 luup_log:27: Device #6:mac= <0x76be5520> 50 12/27/16 15:58:48.279 luup_log:27: category_num=13 <0x76be5520> 50 12/27/16 15:58:48.280 luup_log:27: description=pl2303 <0x76be5520> 50 12/27/16 15:58:48.280 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.280 luup_log:27: id=usb-xhci-hcd-1.1 <0x76be5520> 50 12/27/16 15:58:48.280 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.280 luup_log:27: ip=127.0.0.1 <0x76be5520> 50 12/27/16 15:58:48.281 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.281 luup_log:27: udn=uuid:4d494342-5342-5645-0006-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.281 luup_log:27: subcategory_num=0 <0x76be5520> 50 12/27/16 15:58:48.281 luup_log:27: invisible=true <0x76be5520> 50 12/27/16 15:58:48.281 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.282 luup_log:27: embedded=true <0x76be5520> 50 12/27/16 15:58:48.282 luup_log:27: device_num_parent=5 <0x76be5520> 50 12/27/16 15:58:48.282 luup_log:27: device_type=urn:micasaverde-org:device:SerialPort:1 <0x76be5520> 50 12/27/16 15:58:48.282 luup_log:27: Device #19:mac= <0x76be5520> 50 12/27/16 15:58:48.282 luup_log:27: category_num=0 <0x76be5520> 50 12/27/16 15:58:48.283 luup_log:27: description=OWServer <0x76be5520> 50 12/27/16 15:58:48.283 luup_log:27: user= <0x76be5520> 50 12/27/16 15:58:48.283 luup_log:27: id= <0x76be5520> 50 12/27/16 15:58:48.283 luup_log:27: pass= <0x76be5520> 50 12/27/16 15:58:48.283 luup_log:27: ip=192.168.1.11 <0x76be5520> 50 12/27/16 15:58:48.284 luup_log:27: room_num=0 <0x76be5520> 50 12/27/16 15:58:48.284 luup_log:27: udn=uuid:4d494342-5342-5645-0013-000002fb1750 <0x76be5520> 50 12/27/16 15:58:48.284 luup_log:27: subcategory_num=-1 <0x76be5520> 50 12/27/16 15:58:48.284 luup_log:27: invisible=false <0x76be5520> 50 12/27/16 15:58:48.284 luup_log:27: hidden=false <0x76be5520> 50 12/27/16 15:58:48.285 luup_log:27: embedded=false <0x76be5520> 50 12/27/16 15:58:48.285 luup_log:27: device_num_parent=0 <0x76be5520> 50 12/27/16 15:58:48.285 luup_log:27: device_type=urn:cd-jackson-com:device:OWServer:1 <0x76be5520> 50 12/27/16 15:58:48.286 luup_log:27: Arduino: Sending: 0;0;3;0;2;Get Version <0x76be5520> 50 12/27/16 15:58:49.066 luup_log:27: Arduino: Log: TSP:MSG:READ 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0: <0x739e5520> 50 12/27/16 15:58:49.067 luup_log:27: Arduino: Sending: 255;255;3;0;4;1 <0x739e5520> 50 12/27/16 15:58:50.547 luup_log:27: Arduino: Log: TSP:SANCHK:OK <0x739e5520> 50 12/27/16 15:58:51.085 luup_log:27: Arduino: Log: TSP:MSG:READ 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0: <0x739e5520> 50 12/27/16 15:58:51.086 luup_log:27: Arduino: Sending: 255;255;3;0;4;2 <0x739e5520>The highest device # it shows is 27 which doesn't even come close to hitting the 254 mark. I am baffled.
-
So here is the code now:
-- build an lookup table for child device ids (altid -> id) local lastDev = 0 for k, v in pairs(luup.devices) do -- for debugging only remove for production run for k2, v2 in pairs(v) do if (k ~= lastDev) then luup.log("Device #" .. k .. ":" .. k2 .. "=" .. tostring(v2)) else luup.log(" " .. k2 .. "=" .. tostring(v2)) end lastDev = k end -- end debugging -- if I am the parent device if v.device_num_parent == ARDUINO_DEVICE then childIdLookupTable[v.id] = k local split = v.id:split(";") local radioId = tonumber(split[1]) availableIds[radioId] = false; end end for i=1, MAX_RADIO_ID do log("id #" .. i .. ": " .. (availableIds[i] and "TRUE" or "FALSE")); endJust doing:
log(availableIds[i]);crashed the script because the log method apparently couldn't handle boolean values. So I had it print the ID number and used a ternary operator to display true or false. I think that use of a ternary is correct for lua. Anyways, here is the log:
50 12/27/16 19:45:33.285 luup_log:27: Device #19:mac= <0x77383520> 50 12/27/16 19:45:33.285 luup_log:27: category_num=0 <0x77383520> 50 12/27/16 19:45:33.285 luup_log:27: description=OWServer <0x77383520> 50 12/27/16 19:45:33.285 luup_log:27: user= <0x77383520> 50 12/27/16 19:45:33.286 luup_log:27: id= <0x77383520> 50 12/27/16 19:45:33.286 luup_log:27: pass= <0x77383520> 50 12/27/16 19:45:33.286 luup_log:27: ip=192.168.1.11 <0x77383520> 50 12/27/16 19:45:33.286 luup_log:27: room_num=0 <0x77383520> 50 12/27/16 19:45:33.286 luup_log:27: udn=uuid:4d494342-5342-5645-0013-000002fb1750 <0x77383520> 50 12/27/16 19:45:33.286 luup_log:27: subcategory_num=-1 <0x77383520> 50 12/27/16 19:45:33.287 luup_log:27: invisible=false <0x77383520> 50 12/27/16 19:45:33.287 luup_log:27: hidden=false <0x77383520> 50 12/27/16 19:45:33.287 luup_log:27: embedded=false <0x77383520> 50 12/27/16 19:45:33.287 luup_log:27: device_num_parent=0 <0x77383520> 50 12/27/16 19:45:33.287 luup_log:27: device_type=urn:cd-jackson-com:device:OWServer:1 <0x77383520> 50 12/27/16 19:45:33.288 luup_log:27: Arduino: id #1: TRUE <0x77383520> 50 12/27/16 19:45:33.288 luup_log:27: Arduino: id #2: TRUE <0x77383520> 50 12/27/16 19:45:33.288 luup_log:27: Arduino: id #3: TRUE <0x77383520> 50 12/27/16 19:45:33.288 luup_log:27: Arduino: id #4: TRUE <0x77383520> 50 12/27/16 19:45:33.289 luup_log:27: Arduino: id #5: TRUE <0x77383520> 50 12/27/16 19:45:33.289 luup_log:27: Arduino: id #6: TRUE <0x77383520> 50 12/27/16 19:45:33.289 luup_log:27: Arduino: id #7: TRUE <0x77383520> 50 12/27/16 19:45:33.289 luup_log:27: Arduino: id #8: TRUE <0x77383520> 50 12/27/16 19:45:33.289 luup_log:27: Arduino: id #9: TRUE <0x77383520> 50 12/27/16 19:45:33.290 luup_log:27: Arduino: id #10: TRUE <0x77383520> 50 12/27/16 19:45:33.290 luup_log:27: Arduino: id #11: TRUE <0x77383520> 50 12/27/16 19:45:33.290 luup_log:27: Arduino: id #12: TRUE <0x77383520> 50 12/27/16 19:45:33.290 luup_log:27: Arduino: id #13: TRUE <0x77383520> 50 12/27/16 19:45:33.291 luup_log:27: Arduino: id #14: TRUE <0x77383520> 50 12/27/16 19:45:33.291 luup_log:27: Arduino: id #15: TRUE <0x77383520> 50 12/27/16 19:45:33.291 luup_log:27: Arduino: id #16: TRUE <0x77383520> 50 12/27/16 19:45:33.291 luup_log:27: Arduino: id #17: TRUE <0x77383520> 50 12/27/16 19:45:33.292 luup_log:27: Arduino: id #18: TRUE <0x77383520> 50 12/27/16 19:45:33.292 luup_log:27: Arduino: id #19: TRUE <0x77383520> 50 12/27/16 19:45:33.292 luup_log:27: Arduino: id #20: TRUE <0x77383520> 50 12/27/16 19:45:33.292 luup_log:27: Arduino: id #21: TRUE <0x77383520> 50 12/27/16 19:45:33.292 luup_log:27: Arduino: id #22: TRUE <0x77383520> 50 12/27/16 19:45:33.293 luup_log:27: Arduino: id #23: TRUE <0x77383520> 50 12/27/16 19:45:33.293 luup_log:27: Arduino: id #24: TRUE <0x77383520> 50 12/27/16 19:45:33.293 luup_log:27: Arduino: id #25: TRUE <0x77383520> 50 12/27/16 19:45:33.293 luup_log:27: Arduino: id #26: TRUE <0x77383520> 50 12/27/16 19:45:33.294 luup_log:27: Arduino: id #27: TRUE <0x77383520> 50 12/27/16 19:45:33.294 luup_log:27: Arduino: id #28: TRUE <0x77383520> 50 12/27/16 19:45:33.294 luup_log:27: Arduino: id #29: TRUE <0x77383520> 50 12/27/16 19:45:33.294 luup_log:27: Arduino: id #30: TRUE <0x77383520> 50 12/27/16 19:45:33.294 luup_log:27: Arduino: id #31: TRUE <0x77383520> 50 12/27/16 19:45:33.295 luup_log:27: Arduino: id #32: TRUE <0x77383520> 50 12/27/16 19:45:33.295 luup_log:27: Arduino: id #33: TRUE <0x77383520> 50 12/27/16 19:45:33.295 luup_log:27: Arduino: id #34: TRUE <0x77383520> 50 12/27/16 19:45:33.295 luup_log:27: Arduino: id #35: TRUE <0x77383520> 50 12/27/16 19:45:33.295 luup_log:27: Arduino: id #36: TRUE <0x77383520> 50 12/27/16 19:45:33.296 luup_log:27: Arduino: id #37: TRUE <0x77383520> 50 12/27/16 19:45:33.296 luup_log:27: Arduino: id #38: TRUE <0x77383520> 50 12/27/16 19:45:33.296 luup_log:27: Arduino: id #39: TRUE <0x77383520> 50 12/27/16 19:45:33.296 luup_log:27: Arduino: id #40: TRUE <0x77383520> 50 12/27/16 19:45:33.296 luup_log:27: Arduino: id #41: TRUE <0x77383520> 50 12/27/16 19:45:33.297 luup_log:27: Arduino: id #42: TRUE <0x77383520> 50 12/27/16 19:45:33.297 luup_log:27: Arduino: id #43: TRUE <0x77383520> 50 12/27/16 19:45:33.297 luup_log:27: Arduino: id #44: TRUE <0x77383520> 50 12/27/16 19:45:33.297 luup_log:27: Arduino: id #45: TRUE <0x77383520> 50 12/27/16 19:45:33.297 luup_log:27: Arduino: id #46: TRUE <0x77383520> 50 12/27/16 19:45:33.298 luup_log:27: Arduino: id #47: TRUE <0x77383520> 50 12/27/16 19:45:33.298 luup_log:27: Arduino: id #48: TRUE <0x77383520> 50 12/27/16 19:45:33.298 luup_log:27: Arduino: id #49: TRUE <0x77383520> 50 12/27/16 19:45:33.298 luup_log:27: Arduino: id #50: TRUE <0x77383520> 50 12/27/16 19:45:33.298 luup_log:27: Arduino: id #51: TRUE <0x77383520> 50 12/27/16 19:45:33.299 luup_log:27: Arduino: id #52: TRUE <0x77383520> 50 12/27/16 19:45:33.299 luup_log:27: Arduino: id #53: TRUE <0x77383520> 50 12/27/16 19:45:33.299 luup_log:27: Arduino: id #54: TRUE <0x77383520> 50 12/27/16 19:45:33.299 luup_log:27: Arduino: id #55: TRUE <0x77383520> 50 12/27/16 19:45:33.299 luup_log:27: Arduino: id #56: TRUE <0x77383520> 50 12/27/16 19:45:33.300 luup_log:27: Arduino: id #57: TRUE <0x77383520> 50 12/27/16 19:45:33.300 luup_log:27: Arduino: id #58: TRUE <0x77383520> 50 12/27/16 19:45:33.300 luup_log:27: Arduino: id #59: TRUE <0x77383520> 50 12/27/16 19:45:33.300 luup_log:27: Arduino: id #60: TRUE <0x77383520> 50 12/27/16 19:45:33.301 luup_log:27: Arduino: id #61: TRUE <0x77383520> 50 12/27/16 19:45:33.301 luup_log:27: Arduino: id #62: TRUE <0x77383520> 50 12/27/16 19:45:33.301 luup_log:27: Arduino: id #63: TRUE <0x77383520> 50 12/27/16 19:45:33.301 luup_log:27: Arduino: id #64: TRUE <0x77383520> 50 12/27/16 19:45:33.302 luup_log:27: Arduino: id #65: TRUE <0x77383520> 50 12/27/16 19:45:33.302 luup_log:27: Arduino: id #66: TRUE <0x77383520> 50 12/27/16 19:45:33.302 luup_log:27: Arduino: id #67: TRUE <0x77383520> 50 12/27/16 19:45:33.302 luup_log:27: Arduino: id #68: TRUE <0x77383520> 50 12/27/16 19:45:33.302 luup_log:27: Arduino: id #69: TRUE <0x77383520> 50 12/27/16 19:45:33.303 luup_log:27: Arduino: id #70: TRUE <0x77383520> 50 12/27/16 19:45:33.303 luup_log:27: Arduino: id #71: TRUE <0x77383520> 50 12/27/16 19:45:33.303 luup_log:27: Arduino: id #72: TRUE <0x77383520> 50 12/27/16 19:45:33.303 luup_log:27: Arduino: id #73: TRUE <0x77383520> 50 12/27/16 19:45:33.303 luup_log:27: Arduino: id #74: TRUE <0x77383520> 50 12/27/16 19:45:33.304 luup_log:27: Arduino: id #75: TRUE <0x77383520> 50 12/27/16 19:45:33.304 luup_log:27: Arduino: id #76: TRUE <0x77383520> 50 12/27/16 19:45:33.304 luup_log:27: Arduino: id #77: TRUE <0x77383520> 50 12/27/16 19:45:33.304 luup_log:27: Arduino: id #78: TRUE <0x77383520> 50 12/27/16 19:45:33.304 luup_log:27: Arduino: id #79: TRUE <0x77383520> 50 12/27/16 19:45:33.304 luup_log:27: Arduino: id #80: TRUE <0x77383520> 50 12/27/16 19:45:33.305 luup_log:27: Arduino: id #81: TRUE <0x77383520> 50 12/27/16 19:45:33.305 luup_log:27: Arduino: id #82: TRUE <0x77383520> 50 12/27/16 19:45:33.305 luup_log:27: Arduino: id #83: TRUE <0x77383520> 50 12/27/16 19:45:33.305 luup_log:27: Arduino: id #84: TRUE <0x77383520> 50 12/27/16 19:45:33.306 luup_log:27: Arduino: id #85: TRUE <0x77383520> 50 12/27/16 19:45:33.306 luup_log:27: Arduino: id #86: TRUE <0x77383520> 50 12/27/16 19:45:33.306 luup_log:27: Arduino: id #87: TRUE <0x77383520> 50 12/27/16 19:45:33.306 luup_log:27: Arduino: id #88: TRUE <0x77383520> 50 12/27/16 19:45:33.306 luup_log:27: Arduino: id #89: TRUE <0x77383520> 50 12/27/16 19:45:33.307 luup_log:27: Arduino: id #90: TRUE <0x77383520> 50 12/27/16 19:45:33.307 luup_log:27: Arduino: id #91: TRUE <0x77383520> 50 12/27/16 19:45:33.307 luup_log:27: Arduino: id #92: TRUE <0x77383520> 50 12/27/16 19:45:33.307 luup_log:27: Arduino: id #93: TRUE <0x77383520> 50 12/27/16 19:45:33.307 luup_log:27: Arduino: id #94: TRUE <0x77383520> 50 12/27/16 19:45:33.308 luup_log:27: Arduino: id #95: TRUE <0x77383520> 50 12/27/16 19:45:33.308 luup_log:27: Arduino: id #96: TRUE <0x77383520> 50 12/27/16 19:45:33.308 luup_log:27: Arduino: id #97: TRUE <0x77383520> 50 12/27/16 19:45:33.308 luup_log:27: Arduino: id #98: TRUE <0x77383520> 50 12/27/16 19:45:33.308 luup_log:27: Arduino: id #99: TRUE <0x77383520> 50 12/27/16 19:45:33.309 luup_log:27: Arduino: id #100: TRUE <0x77383520> 50 12/27/16 19:45:33.309 luup_log:27: Arduino: id #101: TRUE <0x77383520> 50 12/27/16 19:45:33.309 luup_log:27: Arduino: id #102: TRUE <0x77383520> 50 12/27/16 19:45:33.309 luup_log:27: Arduino: id #103: TRUE <0x77383520> 50 12/27/16 19:45:33.309 luup_log:27: Arduino: id #104: TRUE <0x77383520> 50 12/27/16 19:45:33.310 luup_log:27: Arduino: id #105: TRUE <0x77383520> 50 12/27/16 19:45:33.310 luup_log:27: Arduino: id #106: TRUE <0x77383520> 50 12/27/16 19:45:33.310 luup_log:27: Arduino: id #107: TRUE <0x77383520> 50 12/27/16 19:45:33.310 luup_log:27: Arduino: id #108: TRUE <0x77383520> 50 12/27/16 19:45:33.310 luup_log:27: Arduino: id #109: TRUE <0x77383520> 50 12/27/16 19:45:33.311 luup_log:27: Arduino: id #110: TRUE <0x77383520> 50 12/27/16 19:45:33.311 luup_log:27: Arduino: id #111: TRUE <0x77383520> 50 12/27/16 19:45:33.311 luup_log:27: Arduino: id #112: TRUE <0x77383520> 50 12/27/16 19:45:33.311 luup_log:27: Arduino: id #113: TRUE <0x77383520> 50 12/27/16 19:45:33.312 luup_log:27: Arduino: id #114: TRUE <0x77383520> 50 12/27/16 19:45:33.312 luup_log:27: Arduino: id #115: TRUE <0x77383520> 50 12/27/16 19:45:33.312 luup_log:27: Arduino: id #116: TRUE <0x77383520> 50 12/27/16 19:45:33.312 luup_log:27: Arduino: id #117: TRUE <0x77383520> 50 12/27/16 19:45:33.313 luup_log:27: Arduino: id #118: TRUE <0x77383520> 50 12/27/16 19:45:33.313 luup_log:27: Arduino: id #119: TRUE <0x77383520> 50 12/27/16 19:45:33.313 luup_log:27: Arduino: id #120: TRUE <0x77383520> 50 12/27/16 19:45:33.313 luup_log:27: Arduino: id #121: TRUE <0x77383520> 50 12/27/16 19:45:33.313 luup_log:27: Arduino: id #122: TRUE <0x77383520> 50 12/27/16 19:45:33.314 luup_log:27: Arduino: id #123: TRUE <0x77383520> 50 12/27/16 19:45:33.314 luup_log:27: Arduino: id #124: TRUE <0x77383520> 50 12/27/16 19:45:33.314 luup_log:27: Arduino: id #125: TRUE <0x77383520> 50 12/27/16 19:45:33.314 luup_log:27: Arduino: id #126: TRUE <0x77383520> 50 12/27/16 19:45:33.314 luup_log:27: Arduino: id #127: TRUE <0x77383520> 50 12/27/16 19:45:33.315 luup_log:27: Arduino: id #128: TRUE <0x77383520> 50 12/27/16 19:45:33.315 luup_log:27: Arduino: id #129: TRUE <0x77383520> 50 12/27/16 19:45:33.315 luup_log:27: Arduino: id #130: TRUE <0x77383520> 50 12/27/16 19:45:33.315 luup_log:27: Arduino: id #131: TRUE <0x77383520> 50 12/27/16 19:45:33.315 luup_log:27: Arduino: id #132: TRUE <0x77383520> 50 12/27/16 19:45:33.316 luup_log:27: Arduino: id #133: TRUE <0x77383520> 50 12/27/16 19:45:33.316 luup_log:27: Arduino: id #134: TRUE <0x77383520> 50 12/27/16 19:45:33.316 luup_log:27: Arduino: id #135: TRUE <0x77383520> 50 12/27/16 19:45:33.316 luup_log:27: Arduino: id #136: TRUE <0x77383520> 50 12/27/16 19:45:33.316 luup_log:27: Arduino: id #137: TRUE <0x77383520> 50 12/27/16 19:45:33.317 luup_log:27: Arduino: id #138: TRUE <0x77383520> 50 12/27/16 19:45:33.317 luup_log:27: Arduino: id #139: TRUE <0x77383520> 50 12/27/16 19:45:33.317 luup_log:27: Arduino: id #140: TRUE <0x77383520> 50 12/27/16 19:45:33.317 luup_log:27: Arduino: id #141: TRUE <0x77383520> 50 12/27/16 19:45:33.318 luup_log:27: Arduino: id #142: TRUE <0x77383520> 50 12/27/16 19:45:33.318 luup_log:27: Arduino: id #143: TRUE <0x77383520> 50 12/27/16 19:45:33.318 luup_log:27: Arduino: id #144: TRUE <0x77383520> 50 12/27/16 19:45:33.318 luup_log:27: Arduino: id #145: TRUE <0x77383520> 50 12/27/16 19:45:33.318 luup_log:27: Arduino: id #146: TRUE <0x77383520> 50 12/27/16 19:45:33.318 luup_log:27: Arduino: id #147: TRUE <0x77383520> 50 12/27/16 19:45:33.319 luup_log:27: Arduino: id #148: TRUE <0x77383520> 50 12/27/16 19:45:33.319 luup_log:27: Arduino: id #149: TRUE <0x77383520> 50 12/27/16 19:45:33.319 luup_log:27: Arduino: id #150: TRUE <0x77383520> 50 12/27/16 19:45:33.319 luup_log:27: Arduino: id #151: TRUE <0x77383520> 50 12/27/16 19:45:33.319 luup_log:27: Arduino: id #152: TRUE <0x77383520> 50 12/27/16 19:45:33.320 luup_log:27: Arduino: id #153: TRUE <0x77383520> 50 12/27/16 19:45:33.320 luup_log:27: Arduino: id #154: TRUE <0x77383520> 50 12/27/16 19:45:33.320 luup_log:27: Arduino: id #155: TRUE <0x77383520> 50 12/27/16 19:45:33.320 luup_log:27: Arduino: id #156: TRUE <0x77383520> 50 12/27/16 19:45:33.320 luup_log:27: Arduino: id #157: TRUE <0x77383520> 50 12/27/16 19:45:33.321 luup_log:27: Arduino: id #158: TRUE <0x77383520> 50 12/27/16 19:45:33.321 luup_log:27: Arduino: id #159: TRUE <0x77383520> 50 12/27/16 19:45:33.321 luup_log:27: Arduino: id #160: TRUE <0x77383520> 50 12/27/16 19:45:33.321 luup_log:27: Arduino: id #161: TRUE <0x77383520> 50 12/27/16 19:45:33.322 luup_log:27: Arduino: id #162: TRUE <0x77383520> 50 12/27/16 19:45:33.322 luup_log:27: Arduino: id #163: TRUE <0x77383520> 50 12/27/16 19:45:33.322 luup_log:27: Arduino: id #164: TRUE <0x77383520> 50 12/27/16 19:45:33.322 luup_log:27: Arduino: id #165: TRUE <0x77383520> 50 12/27/16 19:45:33.323 luup_log:27: Arduino: id #166: TRUE <0x77383520> 50 12/27/16 19:45:33.323 luup_log:27: Arduino: id #167: TRUE <0x77383520> 50 12/27/16 19:45:33.323 luup_log:27: Arduino: id #168: TRUE <0x77383520> 50 12/27/16 19:45:33.323 luup_log:27: Arduino: id #169: TRUE <0x77383520> 50 12/27/16 19:45:33.323 luup_log:27: Arduino: id #170: TRUE <0x77383520> 50 12/27/16 19:45:33.324 luup_log:27: Arduino: id #171: TRUE <0x77383520> 50 12/27/16 19:45:33.324 luup_log:27: Arduino: id #172: TRUE <0x77383520> 50 12/27/16 19:45:33.324 luup_log:27: Arduino: id #173: TRUE <0x77383520> 50 12/27/16 19:45:33.324 luup_log:27: Arduino: id #174: TRUE <0x77383520> 50 12/27/16 19:45:33.324 luup_log:27: Arduino: id #175: TRUE <0x77383520> 50 12/27/16 19:45:33.325 luup_log:27: Arduino: id #176: TRUE <0x77383520> 50 12/27/16 19:45:33.325 luup_log:27: Arduino: id #177: TRUE <0x77383520> 50 12/27/16 19:45:33.325 luup_log:27: Arduino: id #178: TRUE <0x77383520> 50 12/27/16 19:45:33.325 luup_log:27: Arduino: id #179: TRUE <0x77383520> 50 12/27/16 19:45:33.326 luup_log:27: Arduino: id #180: TRUE <0x77383520> 50 12/27/16 19:45:33.326 luup_log:27: Arduino: id #181: TRUE <0x77383520> 50 12/27/16 19:45:33.326 luup_log:27: Arduino: id #182: TRUE <0x77383520> 50 12/27/16 19:45:33.326 luup_log:27: Arduino: id #183: TRUE <0x77383520> 50 12/27/16 19:45:33.326 luup_log:27: Arduino: id #184: TRUE <0x77383520> 50 12/27/16 19:45:33.327 luup_log:27: Arduino: id #185: TRUE <0x77383520> 50 12/27/16 19:45:33.327 luup_log:27: Arduino: id #186: TRUE <0x77383520> 50 12/27/16 19:45:33.327 luup_log:27: Arduino: id #187: TRUE <0x77383520> 50 12/27/16 19:45:33.327 luup_log:27: Arduino: id #188: TRUE <0x77383520> 50 12/27/16 19:45:33.327 luup_log:27: Arduino: id #189: TRUE <0x77383520> 50 12/27/16 19:45:33.328 luup_log:27: Arduino: id #190: TRUE <0x77383520> 50 12/27/16 19:45:33.328 luup_log:27: Arduino: id #191: TRUE <0x77383520> 50 12/27/16 19:45:33.328 luup_log:27: Arduino: id #192: TRUE <0x77383520> 50 12/27/16 19:45:33.328 luup_log:27: Arduino: id #193: TRUE <0x77383520> 50 12/27/16 19:45:33.328 luup_log:27: Arduino: id #194: TRUE <0x77383520> 50 12/27/16 19:45:33.329 luup_log:27: Arduino: id #195: TRUE <0x77383520> 50 12/27/16 19:45:33.329 luup_log:27: Arduino: id #196: TRUE <0x77383520> 50 12/27/16 19:45:33.329 luup_log:27: Arduino: id #197: TRUE <0x77383520> 50 12/27/16 19:45:33.329 luup_log:27: Arduino: id #198: TRUE <0x77383520> 50 12/27/16 19:45:33.329 luup_log:27: Arduino: id #199: TRUE <0x77383520> 50 12/27/16 19:45:33.330 luup_log:27: Arduino: id #200: TRUE <0x77383520> 50 12/27/16 19:45:33.330 luup_log:27: Arduino: id #201: TRUE <0x77383520> 50 12/27/16 19:45:33.330 luup_log:27: Arduino: id #202: TRUE <0x77383520> 50 12/27/16 19:45:33.330 luup_log:27: Arduino: id #203: TRUE <0x77383520> 50 12/27/16 19:45:33.330 luup_log:27: Arduino: id #204: TRUE <0x77383520> 50 12/27/16 19:45:33.331 luup_log:27: Arduino: id #205: TRUE <0x77383520> 50 12/27/16 19:45:33.331 luup_log:27: Arduino: id #206: TRUE <0x77383520> 50 12/27/16 19:45:33.331 luup_log:27: Arduino: id #207: TRUE <0x77383520> 50 12/27/16 19:45:33.331 luup_log:27: Arduino: id #208: TRUE <0x77383520> 50 12/27/16 19:45:33.331 luup_log:27: Arduino: id #209: TRUE <0x77383520> 50 12/27/16 19:45:33.332 luup_log:27: Arduino: id #210: TRUE <0x77383520> 50 12/27/16 19:45:33.332 luup_log:27: Arduino: id #211: TRUE <0x77383520> 50 12/27/16 19:45:33.332 luup_log:27: Arduino: id #212: TRUE <0x77383520> 50 12/27/16 19:45:33.332 luup_log:27: Arduino: id #213: TRUE <0x77383520> 50 12/27/16 19:45:33.333 luup_log:27: Arduino: id #214: TRUE <0x77383520> 50 12/27/16 19:45:33.333 luup_log:27: Arduino: id #215: TRUE <0x77383520> 50 12/27/16 19:45:33.333 luup_log:27: Arduino: id #216: TRUE <0x77383520> 50 12/27/16 19:45:33.333 luup_log:27: Arduino: id #217: TRUE <0x77383520> 50 12/27/16 19:45:33.333 luup_log:27: Arduino: id #218: TRUE <0x77383520> 50 12/27/16 19:45:33.334 luup_log:27: Arduino: id #219: TRUE <0x77383520> 50 12/27/16 19:45:33.334 luup_log:27: Arduino: id #220: TRUE <0x77383520> 50 12/27/16 19:45:33.334 luup_log:27: Arduino: id #221: TRUE <0x77383520> 50 12/27/16 19:45:33.334 luup_log:27: Arduino: id #222: TRUE <0x77383520> 50 12/27/16 19:45:33.334 luup_log:27: Arduino: id #223: TRUE <0x77383520> 50 12/27/16 19:45:33.335 luup_log:27: Arduino: id #224: TRUE <0x77383520> 50 12/27/16 19:45:33.335 luup_log:27: Arduino: id #225: TRUE <0x77383520> 50 12/27/16 19:45:33.335 luup_log:27: Arduino: id #226: TRUE <0x77383520> 50 12/27/16 19:45:33.335 luup_log:27: Arduino: id #227: TRUE <0x77383520> 50 12/27/16 19:45:33.335 luup_log:27: Arduino: id #228: TRUE <0x77383520> 50 12/27/16 19:45:33.336 luup_log:27: Arduino: id #229: TRUE <0x77383520> 50 12/27/16 19:45:33.336 luup_log:27: Arduino: id #230: TRUE <0x77383520> 50 12/27/16 19:45:33.336 luup_log:27: Arduino: id #231: TRUE <0x77383520> 50 12/27/16 19:45:33.336 luup_log:27: Arduino: id #232: TRUE <0x77383520> 50 12/27/16 19:45:33.336 luup_log:27: Arduino: id #233: TRUE <0x77383520> 50 12/27/16 19:45:33.337 luup_log:27: Arduino: id #234: TRUE <0x77383520> 50 12/27/16 19:45:33.337 luup_log:27: Arduino: id #235: TRUE <0x77383520> 50 12/27/16 19:45:33.337 luup_log:27: Arduino: id #236: TRUE <0x77383520> 50 12/27/16 19:45:33.337 luup_log:27: Arduino: id #237: TRUE <0x77383520> 50 12/27/16 19:45:33.338 luup_log:27: Arduino: id #238: TRUE <0x77383520> 50 12/27/16 19:45:33.338 luup_log:27: Arduino: id #239: TRUE <0x77383520> 50 12/27/16 19:45:33.338 luup_log:27: Arduino: id #240: TRUE <0x77383520> 50 12/27/16 19:45:33.338 luup_log:27: Arduino: id #241: TRUE <0x77383520> 50 12/27/16 19:45:33.338 luup_log:27: Arduino: id #242: TRUE <0x77383520> 50 12/27/16 19:45:33.338 luup_log:27: Arduino: id #243: TRUE <0x77383520> 50 12/27/16 19:45:33.339 luup_log:27: Arduino: id #244: TRUE <0x77383520> 50 12/27/16 19:45:33.339 luup_log:27: Arduino: id #245: TRUE <0x77383520> 50 12/27/16 19:45:33.339 luup_log:27: Arduino: id #246: TRUE <0x77383520> 50 12/27/16 19:45:33.339 luup_log:27: Arduino: id #247: TRUE <0x77383520> 50 12/27/16 19:45:33.339 luup_log:27: Arduino: id #248: TRUE <0x77383520> 50 12/27/16 19:45:33.340 luup_log:27: Arduino: id #249: TRUE <0x77383520> 50 12/27/16 19:45:33.340 luup_log:27: Arduino: id #250: TRUE <0x77383520> 50 12/27/16 19:45:33.340 luup_log:27: Arduino: id #251: TRUE <0x77383520> 50 12/27/16 19:45:33.340 luup_log:27: Arduino: id #252: TRUE <0x77383520> 50 12/27/16 19:45:33.340 luup_log:27: Arduino: id #253: TRUE <0x77383520> 50 12/27/16 19:45:33.341 luup_log:27: Arduino: id #254: TRUE <0x77383520> 50 12/27/16 19:45:33.341 luup_log:27: Arduino: id #255: TRUE <0x77383520> 50 12/27/16 19:45:33.342 luup_log:27: Arduino: Sending: 0;0;3;0;2;Get Version <0x77383520> 50 12/27/16 19:45:36.719 luup_log:27: Arduino: Log: TSP:MSG:READ 255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0: <0x74183520> 50 12/27/16 19:45:36.721 luup_log:27: Arduino: Log: TSP:MSG:BC <0x74183520> 50 12/27/16 19:45:36.724 luup_log:27: Arduino: Log: TSP:MSG:FPAR REQ (sender=255) <0x74183520> 50 12/27/16 19:45:36.727 luup_log:27: Arduino: Log: TSP:CHKUPL:OK <0x74183520> 50 12/27/16 19:45:36.729 luup_log:27: Arduino: Log: TSP:MSG:GWL OK <0x74183520> 50 12/27/16 19:45:37.738 luup_log:27: Arduino: Log: TSP:MSG:SEND 0-0-255-255 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=bc:0 <0x74183520> -
OK, here is another code change I did for testing. I added some logging to the nextAvailableRadioId() method which when I ran it brought up some questions in my head. Here is the code:
local function nextAvailiableRadioId() for i=1,255 do if (availableIds[i] == true) then availableIds[i] = false log("Setting next available radio ID to " .. i) return i end end log("No available IDs") return 255 endI started the luup engine with the node powered off (battery disconnected). I waited a bit for the engine to initialize and then plugged in the battery. Below is the log as I see it with some annotations:
If any of the annotations in the screen shot are incorrect, please correct me. Now for my questions:- Shouldn't the nextAvailiableRadioId() method only be called when in inclusion mode? Clearly there were a few requests which tried to assign out IDs prior to my starting inclusion.
- It appears that the node is not responding to the node ID response. What should I see in the serial monitor from the debug information in the node debug log to tell if it receives the response and if it responds back?
- If a node doesn't respond back that it accepted that node ID, should the plugin mark that ID as unavailable? Clearly that is what is happening. Is there even a way to tell if the node responds back saying that it got the ID?
- Is the availableIds[] array of 255 items only for the MySensors plugin, or is it global to all the plugins?
I think the main part in this test is that the node is not accepting the ID given to it by Vera. When I ran Domoticz, I had no trouble with ID assignments. The next part though is to see what happens once the node parent ID is accepted and presentation starts. I am wondering if I am going to run into the same issues I ran into when I statically set the node ID.
-
nextAvailiableRadioId will be called if an id request comes in (even if inclusion mode is off). The array is not global. It's one array per gatewateway.
I wonder why https://github.com/mysensors/Vera/blob/development/L_Arduino.lua#L299-L307 does not return the first available id in your setup.
-
nextAvailiableRadioId will be called if an id request comes in (even if inclusion mode is off). The array is not global. It's one array per gatewateway.
I wonder why https://github.com/mysensors/Vera/blob/development/L_Arduino.lua#L299-L307 does not return the first available id in your setup.
@hek said:
I wonder why https://github.com/mysensors/Vera/blob/development/L_Arduino.lua#L299-L307 does not return the first available id in your setup.
My point was that it DOES in fact return ID 1, which is the first available ID. If you look at my notations on the screen shot next to "Plugged battery in here" you will see it. But when the node doesn't accept that ID it makes another ID request, which then the Vera plugin tries to hand out another ID. Since it already tried to hand out ID 1, it moves on to attempting to hand out ID 2. This also gets no response from the node to accept it. If I leave the node plugged in searching for an ID, the plugin will run through all 255 IDs in the availableIds[] array at which point the nextAvailiableRadioId() method will log "No available IDs" because it had gone through all of the IDs and filled the array with false values. This is what brought up this question:
- If a node doesn't respond back that it accepted that node ID, should the plugin mark that ID as unavailable? Clearly that is what is happening. Is there even a way to tell if the node responds back saying that it got the ID?
The way I see it, if the node does an ID request and the plugin tries to hand one out but the node does not respond that it accepted it (for whatever reason), the plugin should notify the user that there was a request that wasn't accepted. And that is why I asked this question:
- It appears that the node is not responding to the node ID response. What should I see in the serial monitor from the debug information in the node debug log to tell if it receives the response and if it responds back?
Knowing the answer to that will help with what I think should be the next logical step, and that is to figure out if the node receives the ID handed to it by the Vera plugin and if so, is the node processing it correctly.
-
When I first set up the gateway for Domoticz I had a standard nRF24L01+ radio. for that I had a 4.7uf cap mounted on the newbie PCB. I later switched it with a NRF24L01+PA+LNA that I had from another node project and that had a 10uf cap mounted across the power rails right on the radio. This whole setup worked perfectly in Donoticz. Domoticz handed out the IDs fine. The node I am testing was added to my Domoticz setup after switching to the PA+LNA radio. Here is an image of my Vera setup.
If you look at the gateway board, you can see the caps. One is purple and mounted to the PCB next to the radio connector. The other one is black and mounted on top of the radio. Since parallel capacitance adds, that should be about 14.7uf of capacitance at the radio.What should I see in the serial monitor on the node when the gateway responds?
-
I meant what should I see in the serial monitor? This is what is being reported:
TSM:INIT TSM:RADIO:OK TSM:FPAR TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc: TSP:MSG:READ 0-0-255 s=255,c=3,t=8,pt=1,l=1,sg=0:0 TSP:MSG:FPAR RES (ID=0, dist=0) TSP:MSG:PAR OK (ID=0, dist=1) TSM:FPAR:OK TSM:ID TSP:MSG:SEND 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSM:ID TSP:MSG:SEND 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSM:ID TSP:MSG:SEND 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=ok: TSM:ID TSP:MSG:SEND 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=ok: !TSM:CHKID:FAIL (ID=255) !TSM:FAILURE TSM:PDTI am guessing I should see something like "TSP:MSG:READ..."
-
@dbemowsk said:
TSP:MSG:READ 0-0-255 s=255,c=3,t=8,pt=1,l=1,sg=0:0
I know there is somewhere that explains this format seen in the serial monitor, but I can't remember where. The serial API message structure page explains the format that you referred to (255;255;3;0;4;<new node id>), but I need to understand what the s, c, pt, l , sg, ft and st all mean, as well as other information seen in the serial monitor.
-
Just a note. The debug page explains s, c, p, pt, l and sg, but it doesn't explain ft and st. I would assume that an st=ok means that the transmission was successful, but unsure on what ft is. maybe that could be added to the troubleshooting page.
EDIT: my appologies, I see it on the transport messages page.