Telguard GDC1 just saying unknown, need help, thanks

That’s what I was looking for!

I just updated the code to address that (I hope).

I updated the way each section is called from the tile (on and off, vs just push), and added code to each section (on and off) to send the right commands to the device).

BTW - the code needs a little clean up once we’re all done hacking this apart…

What’s interesting with the data in your log files is I don’t see where contact state is being sent, just as in the other device type you tried.

We should be seeing “command: 2001, payload: FF” for open and “command: 2001, payload: 00” for closed. I wonder what needs to be tweaked for the device to start sending that info. I bet it’s a configuration value. Let me do some more digging on that.

From testing on my end. The device will send a power command to the garage door if and only if the sensor is closed.

I noticed something with your device type. My device no longer blinks blue and alarms. i wonder if your device type code is bypassing something the device expects to be happening during a normal command. Is that behavior of blinking and alarming something your device type code is supposed to handle or is there a special command that we need to be using.

Ok, looks like more homework needs done. From their website, it’s just a regular switch:

The GDC1 is based off one of the fundamental command classes in Z-Wave home automation, the binary switch (i.e. light switch). This means that the GDC1 will seamlessly integrate with nearly any Z-Wave based system ever sold that supports light switches. Turn the GDC1 "off" to close the garage door and "on" to open it without sacrificing functionality or safety.

Also, the video on how to hook up to ST works using using the default “Z-wave switch” and selecting the icon for a garage door:

http://www.telguard.com/home/Products/Residential/GDC1 (look for Adding the GDC1 to SmartThings)

Even though that was for the previous version of the app, I wonder if the current version of ST works the same. Haveyou tried that?

Infuriating, I saw all of that and I tried using just the open close switch device type. But I guess maybe the sensor was a little out of place. that seems to open/close it correctly. Let me experiment and see if the device is workign as expected. Things like sending a close command when the garage is in a half way open state. (there is supposed to be funcitonality where it tries 2 times to close it).

Edit: Yep, seems that the device is handling all the special logic for blinking and alarming when it is going to close. I wasn’t able to test the 2 times stuff because the device is working too good. If i open the garage with my wall button, then the phone detects the contact sensor change and it shows my button as on. I actually may not be able to test that scenario because it might be a scenario where the system somehow got hung up/confused and that is just it fixing itself lol.

Thanks for your help, I just didn’t realize the On/Off stuff only works once the contact sensor is setup. I wanted to just test my wiring first (which we now know I did wrong in the first place). And the moment that failed I went on a search for the device type stuff. i only did that because i remember reading about a lot of people being upset with hub v2 functionality losing the garage stuff.

Now to find or develop apps that interact with a simple switch as if it was the garage door.

No worries at all. I wish I had one so I could help you out. I eventually want to get one. I wish I knew what was happening behind the scenes in the ST app after watching that video. They must be changing the device type to “Z-Wave Garage Door Opener”.

Well, i think the problem with that video is it is showing Hub v1 UI. Which apparently supported garage door stuff better than v2. So I think really what was happening was it was just changing the icon and maybe giving it special decorators for garage door apps.

I still would be interested in a device type that has better interaction with some smartapps that are expecting a fancy garage door and not just a simple switch. But right now i can say if those smartapps are even a thing right now, maybe they handle simple switches as doors just fine.

Actually, I am probably going to look into making a device type that is just purely a switch that has a couple special tiles that say open/close instead of on/off.

Yep, wasn’t sure how they may have changed between hub versions, but you have me motivated to give this device a try. I’m setting up my old v1 hub for my parents, and this would be a good device for them - siren and lights are helpful at their age.

I was so sure the mimolite device type would work, but as we found, and as I read more, it really is just a switch. So it the mimolite, but then again, the mimo does a whole lot more.

I’d be curious on your progress, and as I pursue my options I’ll keep you posted. Between what’s already been done, and a little more effort, something will develop.

Here is the code, I used to make a slightly tweaked app page. All I have done is added a few buttons and made the buttons/toggles represent better (pictures and text).

This device type stuff is nice. I want to go in and adjust multiple of my device types (thermostat especially) to improve my tiles. I am not a fan of the toggle style, would prefer a straight up turn on heat, turn on cool, etc.

http://pastebin.com/g5hgYHBL

Cool, I’ll take a look. Here’s my thermo device type if you want more examples without the toggles:

https://raw.githubusercontent.com/constjs/SmartThings-Devices/master/thermostat.v7.device.groovy


Very cool, i will look into this. This might actually help me reveal if my thermostat has the auto mode. I think it does but it wasn’t something that was obvious based on the default thermostat lol.

1 Like

If anyone is still looking for a modified device type that looks good using the Telguard GDC1, I’ve modified the basic z-wave switch type to look like a garage door opener. I’m OCD like that lol. Anyway, I’ve never worked with smart things code before, but I was at least able to get it to look like I wanted. Feel free to improve upon it. Hope it helps someone.

/**

  • Copyright 2015 SmartThings
  • Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  •  http://www.apache.org/licenses/LICENSE-2.0
    
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.

*/
metadata {
definition (name: “GDC1 Garage Door Opener”, namespace: “Telguard”, author: “bledford”) {
capability "Actuator"
capability "Indicator"
capability "Switch"
capability "Polling"
capability "Refresh"
capability “Sensor”

	fingerprint inClusters: "0x25"
}

// simulator metadata
simulator {
	status "on":  "command: 2003, payload: FF"
	status "off": "command: 2003, payload: 00"

	// reply messages
	reply "2001FF,delay 100,2502": "command: 2503, payload: FF"
	reply "200100,delay 100,2502": "command: 2503, payload: 00"
}

// tile definitions
tiles(scale: 2) {
	multiAttributeTile(name:"switch", type: "lighting", width: 6, height: 4, canChangeIcon: false){
		tileAttribute ("device.switch", key: "PRIMARY_CONTROL") {
			attributeState "on", label: 'Open', action: "switch.off", icon: "st.doors.garage.garage-open", backgroundColor: "#ffa81e"
			attributeState "off", label: 'Closed', action: "switch.on", icon: "st.doors.garage.garage-closed", backgroundColor: "#79b821"
		}
	}

	standardTile("refresh", "device.switch", width: 2, height: 2, inactiveLabel: false, decoration: "flat") {
		state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"
	}

	main "switch"
	details(["switch","refresh","indicator"])
}

}

def parse(String description) {
def result = null
def cmd = zwave.parse(description, [0x20: 1, 0x70: 1])
if (cmd) {
result = createEvent(zwaveEvent(cmd))
}
if (result?.name == ‘hail’ && hubFirmwareLessThan(“000.011.00602”)) {
result = [result, response(zwave.basicV1.basicGet())]
log.debug “Was hailed: requesting state update”
} else {
log.debug “Parse returned ${result?.descriptionText}”
}
return result
}

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicReport cmd) {
[name: “switch”, value: cmd.value ? “on” : “off”, type: “physical”]
}

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicSet cmd) {
[name: “switch”, value: cmd.value ? “on” : “off”, type: “physical”]
}

def zwaveEvent(physicalgraph.zwave.commands.switchbinaryv1.SwitchBinaryReport cmd) {
[name: “switch”, value: cmd.value ? “on” : “off”, type: “digital”]
}

def zwaveEvent(physicalgraph.zwave.commands.configurationv1.ConfigurationReport cmd) {
def value = "when off"
if (cmd.configurationValue[0] == 1) {value = “when on”}
if (cmd.configurationValue[0] == 2) {value = “never”}
[name: “indicatorStatus”, value: value, display: false]
}

def zwaveEvent(physicalgraph.zwave.commands.hailv1.Hail cmd) {
[name: “hail”, value: “hail”, descriptionText: “Switch button was pressed”, displayed: false]
}

def zwaveEvent(physicalgraph.zwave.commands.manufacturerspecificv2.ManufacturerSpecificReport cmd) {
if (state.manufacturer != cmd.manufacturerName) {
updateDataValue(“manufacturer”, cmd.manufacturerName)
}
}

def zwaveEvent(physicalgraph.zwave.Command cmd) {
// Handles all Z-Wave commands we aren’t interested in
[:]
}

def on() {
delayBetween([
zwave.basicV1.basicSet(value: 0xFF).format(),
zwave.switchBinaryV1.switchBinaryGet().format()
])
}

def off() {
delayBetween([
zwave.basicV1.basicSet(value: 0x00).format(),
zwave.switchBinaryV1.switchBinaryGet().format()
])
}

def poll() {
delayBetween([
zwave.switchBinaryV1.switchBinaryGet().format(),
zwave.manufacturerSpecificV1.manufacturerSpecificGet().format()
])
}

def refresh() {
delayBetween([
zwave.switchBinaryV1.switchBinaryGet().format(),
zwave.manufacturerSpecificV1.manufacturerSpecificGet().format()
])
}

def indicatorWhenOn() {
sendEvent(name: “indicatorStatus”, value: “when on”, display: false)
zwave.configurationV1.configurationSet(configurationValue: [1], parameterNumber: 3, size: 1).format()
}

def indicatorWhenOff() {
sendEvent(name: “indicatorStatus”, value: “when off”, display: false)
zwave.configurationV1.configurationSet(configurationValue: [0], parameterNumber: 3, size: 1).format()
}

def indicatorNever() {
sendEvent(name: “indicatorStatus”, value: “never”, display: false)
zwave.configurationV1.configurationSet(configurationValue: [2], parameterNumber: 3, size: 1).format()
}

def invertSwitch(invert=true) {
if (invert) {
zwave.configurationV1.configurationSet(configurationValue: [1], parameterNumber: 4, size: 1).format()
}
else {
zwave.configurationV1.configurationSet(configurationValue: [0], parameterNumber: 4, size: 1).format()
}
}

In case you are interested I just release the Telguard GDC1 device type that I created and have been using in my own SmartThings environment. The code is here https://github.com/mjarends/SmartThingsPublic/tree/master/devicetypes/mjarends/telguard-garage-door-switch.src

Cameron,

If you want to PM me, I can get you all the details you need on this device and clear up any outstanding questions.

One of the better things about the GDC1 being a binary switch with Garage Door Safety logic is that as a switch it does open it up to more integrations. For example, I can use it with Amazon Alexa and say “Turn off garage.” and other integrations that are limited to Switches and not supported by the Moving Barrier Command Class.

This offer is open to you and other if you want the real details. I hate having guess what’s going on so I thought I would offer access to the source.

I’d love to see an official device type adopted and would be willing to pay the person that gets it done and does it well.

Regards,
Shawn

I’m wondering if anyone else on this thread has experienced the same issue with the Telguard GDC1. I have two of the devices installed currently.

In April one of the devices started to not report the open event back to SmartThings. To reproduce the issue I can open the door via the SmartThings application or the wall switch, the door will open and the GDC1 does not report the open event back to SmartThings (verified via the SmartThings live event log). On the GDC1 unit the light is flashing indicating that unit knows the door is open. To fix the issue I need to unplug the unit and plug it back in. After the unit works correctly for a few weeks until the issue happens again.

The same issues have not occurred with the 2nd unit. The 2nd unit is also paired with SmartThings, uses the same device type and is 20 feet farther from the SmartThings hub.

These are actually MimoLite devices from FortrezZ in Telguard clothes. I have had that same issue with one of my MimoLites, so I sent it back for repair. It received a firmware update and has been perfect ever since. Heres’ the discussion on the MimoLite, so maybe your Telguard could be addressed the same way?

Thanks for the heads up. I have reached out to the vendor I purchased it from and Telguard to see if I can get the unit updated/replaced.

I am not a programmer.Can you help me using this device type for my Telguard GDC1 Garage door opener.?