I just purchased and installed the AD2Pi for my 20p panel. Updated the webapp, the libraries, and the firmware to V2.2a.8.8. Scanned for devices - had to manually fix zone 10’s zone_id due to “Zones page has an error: ValueError: invalid literal for int() with base 10: '1\x03’” and manually add one zone. After that, everything seems to be working fine.
Next, I attempted the SmartThings integration using https://github.com/nutechsoftware/alarm ... martthings. I did manually update device_type.groovy and service_manager.groovy per https://community.smartthings.com/t/ala ... e/61902/61 thread entry. The error is on step 20 “Click Install”.
- Code: Select all
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: error java.lang.NullPointerException: Cannot invoke method minus() on null object
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: trace addExistingDevices, devices.find=uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da={port=1388, ssdpUSN=uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, devicetype=04, mac=B827EBDDB2DA, hub=bfde61bc-f43b-4d52-946d-8729e44e256d, ssdpTerm=urn:schemas-upnp-org:device:AlarmDecoder:1, ip=0A00011F}
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: trace devices=[uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da:[port:1388, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, devicetype:04, mac:B827EBDDB2DA, hub:bfde61bc-f43b-4d52-946d-8729e44e256d, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ip:0A00011F]]
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: trace addExistingDevices, getChildDevice(0A00011F:1388)
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: trace addExistingDevices: 0A00011F:1388
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: trace initialize
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:56:06 PM: debug Installed with settings: [selectedDevices:0A00011F:1388, shmIntegration:true, shmChangeSHMStatus:true, defaultSensorToClosed:true]
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace locationHandler: device already exists.. checking for changed values
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace locationHandler: description=devicetype:04, mac:B827EBDDB2DA, networkAddress:0A00011F, deviceAddress:1388, stringCount:04, ssdpPath:, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ssdpNTS:
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace locationHandler
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace locationHandler: device already exists.. checking for changed values
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace locationHandler: description=devicetype:04, mac:B827EBDDB2DA, networkAddress:0A00011F, deviceAddress:1388, stringCount:04, ssdpPath:, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ssdpNTS:
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace locationHandler
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace discover_alarmdecoder
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:55 PM: trace discover_devices: [port:1388, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, devicetype:04, mac:B827EBDDB2DA, hub:bfde61bc-f43b-4d52-946d-8729e44e256d, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ip:0A00011F]
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace locationHandler: device already exists.. checking for changed values
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace locationHandler: description=devicetype:04, mac:B827EBDDB2DA, networkAddress:0A00011F, deviceAddress:1388, stringCount:04, ssdpPath:, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ssdpNTS:
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace locationHandler
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace locationHandler: device already exists.. checking for changed values
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace locationHandler: description=devicetype:04, mac:B827EBDDB2DA, networkAddress:0A00011F, deviceAddress:1388, stringCount:04, ssdpPath:, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ssdpNTS:
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace locationHandler
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace discover_alarmdecoder
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:54 PM: trace discover_devices: [port:1388, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, devicetype:04, mac:B827EBDDB2DA, hub:bfde61bc-f43b-4d52-946d-8729e44e256d, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ip:0A00011F]
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace locationHandler: device already exists.. checking for changed values
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace locationHandler: description=devicetype:04, mac:B827EBDDB2DA, networkAddress:0A00011F, deviceAddress:1388, stringCount:04, ssdpPath:, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ssdpNTS:
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace locationHandler
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace locationHandler: device already exists.. checking for changed values
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace locationHandler: description=devicetype:04, mac:B827EBDDB2DA, networkAddress:0A00011F, deviceAddress:1388, stringCount:04, ssdpPath:, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ssdpNTS:
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace locationHandler
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace discover_alarmdecoder
ea456a3d-2b22-4f36-9f39-60ebc9c2ff37 9:55:52 PM: trace discover_devices: [port:1388, ssdpUSN:uuid:bcaeac05-0e52-11e6-8ca3-b827ebddb2da, devicetype:04, mac:B827EBDDB2DA, hub:bfde61bc-f43b-4d52-946d-8729e44e256d, ssdpTerm:urn:schemas-upnp-org:device:AlarmDecoder:1, ip:0A00011F]
It seems to me, the problem is the “urn-= “http://“ line because newDevice.value.ssdpPath is null per the log output above. Is this indicative of a deeper problem or should I just hardcode a value and if so, what.
service_manager.groovy
- Code: Select all
def addExistingDevices() {
log.trace "addExistingDevices: ${selectedDevices}"
def selected_devices = selectedDevices
if (selected_devices instanceof java.lang.String) {
selected_devices = [selected_devices]
}
selected_devices.each { dni ->
def d = getChildDevice(dni)
log.trace("addExistingDevices, getChildDevice(${dni})")
if (!d) {
log.trace("devices=${devices}")
def newDevice = state.devices.find { /*k, v -> k == dni*/ k, v -> dni == "${v.ip}:${v.port}" }
log.trace("addExistingDevices, devices.find=${newDevice}")
if (newDevice) {
// Set the device network ID so that hubactions get sent to the device parser.
state.ip = newDevice.value.ip
state.port = newDevice.value.port
state.hub = newDevice.value.hub
// Set URN for the child device
def urn = newDevice.value.ssdpPath
urn -= "http://"
state.urn = urn
// Create device and subscribe to it's zone-on/off events.
d = addChildDevice("alarmdecoder", "AlarmDecoder Network Appliance", "${state.ip}:${state.port}", newDevice?.value.hub, [name: "${state.ip}:${state.port}", label: "AlarmDecoder", completedSetup: true, data:[urn: state.urn]])
}
}
}
}
I appreciate any help.
Thanks,
Michael