Smartthings Manufacturer ID and Product id

Hello im currently Writing a device type for the 2Gig Go Control panel. So far i have been able to communicate with the panel using zwave and trying to get it set up as a secondary controller i was Needing the true Z Wave Manufacturer ID and Product number as the panel requests it when you attempt to connect to it. The inclusion is almost there but i think that is part of the key i hope to see all the commands the device supports so that maybe we can have a fully intergrated alarm panel with smartthings. Thanks for any help!!!

I don’t quite understand. Does the panel require you to input the SmartThings hub’s manufacturer ID, or is this part of the device type handler that it needs to get the panel’s manufacturer ID?

It is part of the device type handler that gets the id. basically here is the code i have for it now.

def zwaveEvent(physicalgraph.zwave.commands.manufacturerspecificv2.ManufacturerSpecificGet cmd) {
	createEvent(descriptionText: "${device.displayName} SecurityNonceGet command", displayed: false)
	zwave.manufacturerspecificV2.ManufacturerSpecificReport(manufacturerId: 5555, productId: 574).format()		
}

Here is the event log when i added the device the problem is it parses the info immediatly so i cannot just add it to the system via the ide i have to do it via the android app which it puts it as a Zwave controller but the inclusion never completes because the default zwave controller device does not answer the questions being asked

2014-10-15 2:10:54.129 PM EDT

moments ago DEVICE Z-Wave Controller: SecurityCommandsSupportedGet() [secure] false
2014-10-15 2:10:54.080 PM EDT
moments ago DEVICE Z-Wave Controller: SecurityNonceGet() false
2014-10-15 2:10:47.013 PM EDT
moments ago DEVICE Z-Wave Controller: VersionGet() false
2014-10-15 2:10:39.979 PM EDT
moments ago DEVICE Z-Wave Controller: ManufacturerSpecificGet() false
2014-10-15 2:10:13.510 PM EDT
moments ago DEVICE Z-Wave Controller: SecurityNonceGet() false
2014-10-15 2:10:13.481 PM EDT
moments ago DEVICE Z-Wave Controller: SecurityCommandsSupportedReport(commandClassControl: [], commandClassSupport: [32, 114, 134, 152], reportsT… false
2014-10-15 2:10:10.800 PM EDT
moments ago DEVICE Z-Wave Controller: SecuritySchemeReport(supportedSecuritySchemes: 0) [secure] false
2014-10-15 2:10:10.786 PM EDT
moments ago DEVICE Z-Wave Controller: SecurityNonceGet() false
2014-10-15 2:10:09.630 PM EDT
moments ago DEVICE Z-Wave Controller: NetworkKeyVerify() [secure] false
2014-10-15 2:10:09.552 PM EDT
moments ago DEVICE Z-Wave Controller: SecurityNonceGet() false
2014-10-15 2:10:08.128 PM EDT
moments ago DEVICE Z-Wave Controller: SecuritySchemeReport(supportedSecuritySchemes: 0) false

The hub should automatically reply to ManufacturerSpecificGet, is it encapsulated somehow? What firmware version is on your hub?

well the firmware version is 000.009.00004 so im thinking that is quite old and needs an update

wow that is crazy crazy old

LOL ya hub was offline for a while just got it back online as im writing this device type for 2gig controller for my alarm panel just got the firmware updated via support email and am able to use the wick cheap light bulbs from HD so im up and running now to finish this device i got past that point now to get the inclusion working properly :smile:

Hi,

I have the 2gig go panel setup with alarm.com and is a secondary controller for my ST hub. Currently the only thing I can do is access my zwave deadbolt. Is your device type available now and what capabilities does it have?

Thx

At this moment i havent really been messing with it i need to get back to development on it if you would like to mess with what i have here is it it regs but you cant really do anything at this time

metadata {
        definition (name: "2Gig Z-Wave Controller", namespace: "dexslab", author: "SmartThings") {
        
        fingerprint deviceId:"0x0200"
        fingerprint inClusters:"0x86 0x72 0x98"
		
		}
	}
		
		
		
        def parse(String description){
            def result = null
            def cmd = zwave.parse(description)
            if (cmd) {
                result = zwaveEvent(cmd)
                log.debug "Parsed ${cmd} to ${result.inspect()}"
            } else {
                log.debug "Non-parsed event: ${description}"
            }
            return result
        }
		
	
		
	
		
	def zwaveEvent(physicalgraph.zwave.commands.securityv1.SecurityMessageEncapsulation cmd) {
			def encapsulatedCommand = cmd.encapsulatedCommand([0x20: 1,0x98: 1,0x86: 1,0x72: 2])
			log.debug "encapsulated: $encapsulatedCommand"
			if (encapsulatedCommand) {
				zwaveEvent(encapsulatedCommand)
			}
		}
        
    def zwaveEvent(physicalgraph.zwave.commands.securityv1.SecurityCommandsSupportedReport cmd) {
            state.sec = cmd.commandClassSupport.collect { String.format("%02X ", it) }.join()
		if (cmd.commandClassControl) {
			state.secCon = cmd.commandClassControl.collect { String.format("%02X ", it) }.join()
		}
		log.debug "Security command classes: $state.sec"
		createEvent(name:"secureInclusion", value:"success", descriptionText:"$device.displayText is securely included")
	}
	
	
	
	private secure(physicalgraph.zwave.Command cmd) {
		zwave.securityV1.securityMessageEncapsulation().encapsulate(cmd).format()
	}
    
    def zwaveEvent(physicalgraph.zwave.commands.securityv1.SecurityCommandsSupportedGet cmd) {
        secure(physicalgraph.zwave.commands.securityv1.SecurityCommandsSupportedReport(commandClassControl: [], commandClassSupport: [32, 114, 134, 152],reportsToFollow: 0))
    }
    
def zwaveEvent(physicalgraph.zwave.commands.manufacturerspecificv2.ManufacturerSpecificReport cmd) {
	def result = []

	def msr = String.format("%04X-%04X-%04X", cmd.manufacturerId, cmd.productTypeId, cmd.productId)
	log.debug "msr: $msr"
	updateDataValue("MSR", msr)

	result << createEvent(descriptionText: "$device.displayName MSR: $msr", isStateChange: false)
	result
}

    def zwaveEvent(physicalgraph.zwave.commands.versionv1.VersionReport cmd) {
	def fw = "${cmd.applicationVersion}.${cmd.applicationSubVersion}"
	updateDataValue("fw", fw)
	def text = "$device.displayName: firmware version: $fw, Z-Wave version: ${cmd.zWaveProtocolVersion}.${cmd.zWaveProtocolSubVersion}"
	createEvent(descriptionText: text, isStateChange: false)
}

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicGet cmd) {
            createEvent(descriptionText: "${device.displayName} Basic get command", displayed: false)            
        }

Any more progress on this? I’m trying to use the SmartThings Smart Home Monitor to control my Go!Control Alarm system. Can you please point me in the right direction? Will this code allow me to connect to the control panel and get or set status of the alarm? Also, what is the best way to setup z-wave devices with this setup? Do I add them to smartthings or Go!Control panel? Which provides the best / easiest connection?

Thanks in advance… :slight_smile:

I am also interested in this. I have my 2gig added as a secondary controller and all the zwave devices in ST get replicated to the 2gig panel, however, they never make it to alarm.com. I really want the ability to control from both ST and alarm.com as that would allow triggers based on the 2gig motion sensors and lock/thermostat control.

Anyone have this working?

if you would please share your code so i can see how you have it working cuz i cant even get it to recoginize the smartthings… for properly and get the devices replicated after i get that i will get a zwave device and try it out

I didn’t use any custom device types to get it to work, I just did a “Connect Thing” and then on the 2gig panel I did “learn controller” which made it a secondary controller.

hhhhhmmmmm weird i will go ahead and remove my code and see what happens then maybe then we can work on getting communication going :smiley:

What firmware are you on for the 2gig panel? Make sure to remove all devices from the 2gig panel and do a “reset controller” on the 2gig first.