ST & Linear’s GD00Z-1 Z-Wave garage door controller

Did you ever find a work around for this I am having the same problem?

So I am really interested in this solution as I just stumbled on to it. Before I go and drop a 100 bucks on it, can anyone confirm that the device still works with smart things and how much coding would I need to do to make it work or does it work out of the box? I am a super noob to smartthings.

I installed the GD00Z-4 (Linear branded version from amazon) last night. Took about a half hour before the open/close sensor synced. I spent zero time in the IDE or with any code. Just worked.

I purchased the unit from Lowes, and it took longer to wire it up and connect it to my obscure garage door opener than it did to configure the code in ide. Just make sure you open and close it a couple of times. I’m still dealing with an issue of getting it to appear correctly on a secondary account, but the primary works perfectly.

Thats good to know, I was looking at the one on amazon as I believe it was a little cheaper. Did you have any issues seeing it from other users?

I have SmartThings set up at a vacation rental house that I manage — no other users. Sorry.

I received a detailed email from Linear technical support regarding my problems of being in the ‘unknown’ state. For some reason the detector wasn’t linked with the Linear hub so a simple one button push on the hub and tilting the senor got it to work.

The only problem I’m seeing now is that the sensor is not updating the status of the garage door after sending an open/closed command. I manually have to hit the refresh button to verify the status. Anyone else having this problem?

Other than that it is working well with SS.

@duncan ,

I wonder if you got around to testing the code you have a link to? I get errors when I try to create a device type with the code. Appreciate any updates you have. Thx.

Cheers.

You shouldn’t need to create a device type anymore, the GD00Z should be assigned the correct device type when you add it.

That code is for a SmartApp to control the device. If you get an error using that code for a SmartApp post it here.

@duncan so I see the benefits to the linear gd004 but I want to know the practicality of it. I mean because it seems like some people have had trouble with automation and geofence arrive and departure rules with the linear gd004s, and would like remote, via phone, and automated opening and closing, via presence sense Currently I have mimolite relay with ecolink tilt sensor and would love to incorporate a system that is uniform in approach and design like the linear gd004, however if geofencing arrival and departure rules are not yet avaliable with linear gd004 I would rather have my system now. Thoughts you guys? Anyone able to get the linear garage door opener functioning using arrival/departure presence rules?

Presence detection is not reliable with smartthings. Period. Not with the linear garage door solution. Not with anything.

The linear device is an integrated ul approved solution that works as a stand alone device. Hacking together different sensors and relying on a wireless hub to make sure everything flows is foolhardy.

@codytruscott I understand presence detection isnt reliable yet, however my question is directed to people who have tried either relay+tilt or linear gd004 or both and found one more effective than the other. Or possibly problems that one setup has versus the other. Presence detection is dependent on alot of things, but fortunately I have had great luck so far at least with mobile phone presence. I havent yet tried the presence tag that came with st starter kit so I can’t comment on that.

@duncan, thanks so much for all of your contributions. I currently have the GD00Z-4 connected and functioning great, and I am considering getting that smart app you linked going, but I don’t use presence sensors for cars. Would it work with Mobile phone presence sensors? How much modification would that take?

@duncan any update on the work to get the Linear opener working with Doors & Locks? I’m having great success with my Linear GD00Z-1, save for the lack of control in Doors & Locks.

Thanks for your continuing fantastic support!

I have updated the smartapp duncan enhanced to add the ability to close the garage door at a specified time each day if open (mostly used to make sure it is closed at night)…

I could not find any other way to ensure this, and this is really the reason for me to get this device.

1 Like

@schwark nice work. my question to you is have you tried Scotin Pollock smart app called “garage after dark?” it allows for closing of garage door at a specified time each night after sunset and even allows an optional rule to put an offset time after sunset. Now what i am wondering is there currently a smart app that can trigger garage doors to close if open when house changes into “night” mode, probably not since i remember reading that ST doesn’t have garage door “door” functionality. Please correct me if i am wrongs guys, thank you.

here is Scotin Pollock smart app code. I have not tried it myself yet. Will test tonight.

/**

  • Garage After Dark
  • Author: Scottin Pollock
  • Date: 2014-06-15
  • 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.
    */

definition(
name: “Garage After Dark”,
namespace: “soletc.com”,
author: “Scotin Pollock”,
description: “Closes Garage and sends notification when garage door is open during sunset times.”,
category: “My Apps”,
iconUrl: “https://s3.amazonaws.com/smartapp-icons/Meta/garage_contact.png”,
iconX2Url: “https://s3.amazonaws.com/smartapp-icons/Meta/garage_contact@2x.png
)

preferences {
section(“Close if garage door is open…”) {
input “contact1”, “capability.contactSensor”, title: "Which Sensor?"
input “theDoor”, “capability.switch”, title: “Which Door?”
}
section (“Sunset offset (optional)…”) {
input “sunsetOffsetValue”, “text”, title: “HH:MM”, required: false
input “sunsetOffsetDir”, “enum”, title: “Before or After”, required: false, metadata: [values: [“Before”,“After”]]
}
section (“Zip code (optional, defaults to location coordinates)…”) {
input “zipCode”, “text”, title: “Zip Code”, required: false
}
section( “Notifications” ) {
input “sendPushMessage”, “enum”, title: “Send a push notification?”, metadata:[values:[“Yes”, “No”]], required: false
input “message”, “text”, title: “Message to send…”, required: false
}
}

def installed() {
initialize()
}

def updated() {
unschedule()
initialize()
}

def initialize() {
scheduleAstroCheck()
astroCheck()
}

def scheduleAstroCheck() {
def min = Math.round(Math.floor(Math.random() * 60))
def exp = "0 $min * * * ?"
log.debug "$exp"
schedule(exp, astroCheck) // check every hour since location can change without event?
state.hasRandomSchedule = true
}

def astroCheck() {
if (!state.hasRandomSchedule && state.riseTime) {
log.info "Rescheduling random astro check"
unschedule(“astroCheck”)
scheduleAstroCheck()
}
def s = getSunriseAndSunset(zipCode: zipCode, sunriseOffset: sunriseOffset, sunsetOffset: sunsetOffset)

def now = new Date()
def setTime = s.sunset
log.debug "setTime: $setTime"
if (state.setTime != setTime.time) {
state.setTime = setTime.time

unschedule(“sunsetHandler”)

if (setTime.after(now)) {
log.info "scheduling sunset handler for $setTime"
runOnce(setTime, sunsetHandler)
}
}
}

def sunsetHandler() {
log.info "Executing sunset handler"
def Gdoor = checkGarage()
if (Gdoor == “open”) {
send(message)
theDoor.off()
}
unschedule(“sunsetHandler”) // Temporary work-around for scheduling bug
}

private send(msg) {
if ( sendPushMessage != “No” ) {
log.debug( “sending push message” )
sendPush( message )
}

log.debug message
}

def checkGarage(evt) {
def latestValue = contact1.currentContact
}

private getSunsetOffset() {
sunsetOffsetValue ? (sunsetOffsetDir == “Before” ? “-$sunsetOffsetValue” : sunsetOffsetValue) : null
}

Great apps! But would you modify the app to treat departure and arrival separately? It would be nice to have ability to close door on departure, but not to open on arrival and vice versa.

@schwark - thanks for the app!

Having said that - I’m a little disappointed in SmartThings in relation to what I refer to as “consumer ready”. I spent quite a lot of time on trying to find a hub that would work with my Windows Phone, wife’s Android and son’s IOS . I only found a few and SmartThings seemed to to be the top AND it did not use proprietary devices. Got the hub, had to contact support because I loaded the app before buying the hub (ST support is superb!), thought i had my head wrapped around the way the app was structured and started installing devices. Garage door was at the top of the list. I can code. I repair electronics. I was not looking to do this in my leisure so I decided to go with the GD00Z because it was a complete solution. What I found was that it wasn’t fully implemented by ST. I thought maybe its a new device and they need time. After looking around here I see that it seems a lot of things are not “officially” supported and you are expected to code your own apps or device types. While I appreciate the ability to do this I don’t want to do it on what I consider the basics.

In short add my name in support of adding the GD00Z as a device that can be automated like a relay or switch.

4 Likes

@schwark or anyone else that is good at coding. can you please check this code and help me fix it if need be? I revised schwark’s code for people with relay+contact sensor. the code i have below i wanted to also make it so I don’t have notifications pushed, and would rather have message sent to certain phone number, so if anyone can help me i would be very appreciative. Thank you

here is the link to my code. https://gist.github.com/tenzingsherpa/094abe9fe2aecd668b47

I wasn’t happy with the current state of the “z-wave garage door opener.” In particular, it really irritated me that it wasn’t showing up as a shortcut in “doors & locks.” (It also bothered me that it didn’t seem to refresh it’s own status on it’s own.)

So, having absolutely no experience with groovy (even though I was born in the 70’s and that really sounds like a 70’s term), and really having no clue what I was doing, I did what any developer does: I started tinkering.

First, created a new device type based on the existing z-wave garage door opener and added a polling capability and a poll() method. The method just duplicates the code in the exiting refresh() method. Saved it, published to myself, and changed my device type. It seems to work. nice.

Next, I tried to figure out what I’d need to do in order to make it look like ST’s (odd) impression of a garage door opener. It appears that the shortcut code depends on there being a “switch”, so I blindly added a “switch” capability, and on/off methods (that duplicate the open/close methods that already existed.) Save/publish, and nothing broke. :wink:

Fired up the android app, went into “doors & locks”, tapped the ‘gear’ icon, and added a “door.” The key seemed to be adding a “open and close it remotely” selection (and then selecting the garage door device that now had a “switch” capability.) Once I did that, exited the android app and came back… suddenly I had what APPEARS to be a valid and functional shortcut.

Sadly, this isn’t quite done yet. While it might work, I get the impression from the ST ide docs that I need to have attributes for on/off. In particular, it has “Switch – [“on”,“off”]”

I have no idea how to add that attribute (and have it actually reflect the open/close state of the door.) I tried looking in the “z-wave switch” device type code to get an idea of what’s needed, but the only places I’m finding something that might be what I need to do are in the “simulator” section (and I don’t care about simulating a garage door), and in the tiles definitions (and I don’t want an on/off tile - I’m good with the open/opening/closed/closing tile.)

So, given the z-wave garage door opener device type code, how can I grant the code a “Switch – [“on”,“off”]” attribute?

Once I have that answer, I’d be happy to make this device type available to others…

Take care
Gary