[RELEASE] Zooz Garage Door Opener

Perfect! I knew it would be something simple. Thanks.

I've used the Zooz multirelay and Zooz app for quite some time -- works great. I've noticed, however, that the following edge-cases create problems:

  • if the door is "opening", and a open command is issued, the garage door closes.
  • if the door is "closing", and a close command is issued, the garage door opens.

Huh? Weird. FWIW if the first command is automated and the second is physical, the problem does NOT occur. This problem occurs only when the second command is automated irrespective of whether the first was physical or system-generated.

And truthfully, 90%+ of the time it doesn't matter. The real problem typically occurs when a member of the family, often just out of habit, manually presses the garage door opener right before some automation commands the door. This double-command essentially reverses the movement. e.g., Manual Open followed by Automate Open produces a Close, which can create mayhem.

I've been able to duplicate this easily. I've tried problem solving with the Auto Off timer in the app and the switch type in the device driver, but I haven't figured out the formula for success. Clearly, I could manage this at the app level by preventing garage door commands while the door is moving, but before I do that, I'm wondering if there's a better way.

Ideas?

Not really. Think about a normal one button garage door opener. If it's in motion and you tap the button it will go in the opposite direction.

That is probably the only way, by adding a check if the door is already "opening" and open is pushed, then ignore it, and same for closing/close. Open and close both send the same momentary button push signal to the operator which is why it will reverse the direction on some doors (on mine it will stop first then another push will reverse it).

Depending on your open/close sensor, you still could run into an issue if you close it via a traditional GD remote. The hub may not know right away the door is moving if you use a top mounted tilt sensor (most common setup). While the sensor is still horizontal if you send closed on the hub end it would send another signal causing the door to stop (or reverse).

Perhaps so. But still, I would think that the driver would intercept the momentary push and not allow the garage to do the opposite of the command. Seems neither safe, nor logical. But perhaps I'm missing it.

yeah that's what I'm doing, thanx

I just installed a Zooz 3 Relay on my garage door with a Zooz Tilt/shock sensor and connected it to Alexa.

I added the passcode feature and like that when I ask it to open the door, it asks for the code. However, as close is the same closing of the relay and it doesn't ask for the code.. I see a security issue. Is there a way so close only activates when the the XS sensor reports closed?

I assume you mean so it will only close the door if the sensor reports the door is opened?

I just tested mine on Alexa and Siri, told them to close the garage when it was already closed. Nothing happens. I will check the driver code but I suspect if the door is already in the closed state the driver ignores a close command.

Now if somehow the app got confused and the virtual door was in the "open" state even though it was closed, then yes, using the close command would in fact open it.

Starts at line 308 in zooz-garage-door-opener-app.groovy
This is where it checks to see if the command is different from current status

void handleDigitalOpenCloseCommand(doorStatus) {
	logTrace "handleDigitalOpenCloseCommand(${doorStatus})"

	String newContactStatus = (doorStatus == "opening" ? "open" : "closed")
	String oldDoorStatus = childDoorOpener?.currentValue("door")
	String oldContactStatus = settings?.contactSensor?.currentValue("contact")

	if ((newContactStatus != oldContactStatus) || (newContactStatus != oldDoorStatus)) {
		sendDoorEvents(doorStatus)
		runIn(operatingDelaySetting, turnOnRelaySwitch)
	}
	else {
		logDebug "The Door is already ${newContactStatus}"
	}

	runIn((operatingDelaySetting + operatingDurationSetting), checkDoorStatus)
}

So.. I said it backwards.

Is there a way to only OPEN the door when the XS sensor reports it is closed. Right now when Closed, if I tell Alexa to close the door, it opens.

I do see that code block above in my app code.
I applied the most recent Hubitat upgrade yesterday, so I'll try it again today

If its already open why would you want to open it? I believe you mean you only want to open the door if it is currently in a closed state. The sensor should be setup so it reports open when the door IS open, and closed when it is closed.

The code I showed above is in the App code named "Zooz Garage Door Opener App"


Here is some more details, for testing you need to be in the device with the "Zooz Garage Door" type, which the app should have created for you. This should also be the only device you link to automations, etc... Do not use the ZEN16 device directly, the app will handle sending the commands to the ZEN16 device.

So from that device, my door is closed and it looks like this:
image

If I have debug logging on and press the Close button it logs this message:
image

If yours is not working this way you have something configured incorrectly.

1 Like

Grrr.. can't type this for some reason.
i REALLY meant:
Is there a way to only OPEN the door when the XS sensor reports it is CLOSED.

I added an extra line of logDebug above sendDoorEvents(doorStatus) in the snippet you sent and tested this morning. Specificly: "The Door is currently ${newContactStatus}"

I then ran a number of tests and everything is working correctly.

I think I was going to fast for the sensor and/or Hubitat to recognize the door was closed. i.e. I closed the door and as soon as it was down I attempted to close it again with Alexa. It sent the open before the sensor indicated it was closed to Hubitat.

As long as I wait 5-10 seconds after it closes it works as I had wanted it to. By watching the live logs in Hubitat, I could see that it took that long for the dubug line of "Garage Door - door is closed" to appear.

Thanks for your help (even though I was not clear, you help me diagnose it)
FYI I did pull out the extra logDebug line after I was done

Next is figuring out if there is a way to tell if it is left open when not at home.

1 Like

You can use the built in Notifications app to set up a really simple persistent reminder the door is open. Unless you leave it open a lot while at home, then this would be very annoying.

If you only want to run something like this while not at home, you would need to do it in Rule Machine probably so you can add a check on a presence sensor before running it.

I have installed the Zen17 relay device/app/drivers. Everything is working very well.

I use the device that Zooz has created for Hubitat to control the garage doors...my question is with Google home integration. For some reason Google Home refuses to sync the virtual garage door device that Zooz created. I can add the relay to google home and control the door that way. Unfortunately, I have to say Hey Google, turn on garage door to open and close. I have created a routine in google to change the phrasing (one for opening and one for closing).

I am wondering if there is a better way to integrate the garage door in google??

The way I do it is to use the Google Home Community App to connect the Virtual Garage Door device that is created to Google. You can identify it as a garage door in the Google Home Community App. I have been using this for about a year and can tell Google to open and close the door plus ask Google if the door is open or closed.

1 Like

I still using this setup to control my garage door on Hubitat and link it to Apple Homekit via Homebridge.

Now since Hubitat added an beta Homekit app and I moved all of my devices except the door locks and garage door since I read that Apple won't allow it if they wanted to be certificated and one way to getting around to it is to use virtual switches.

Can anyone explain how that works and will it still be recognized as a garage door on Homekit with a Garage door icon that show it either open or closed? I like how it looks on Homekit icon when it's open or closed or is it going to look like a plain switch or bulb icon which I don't really want.

I set this up and its working great. Thank you to those who created and those who have posted here with instructions.

My wall switch has a button that activates the light on my opener. I do not immediately see any special wiring that does this. Does anyone know how it works? Can this light be automated some how?

1 Like

I think that light button is wireless to the opener. My wall switch has a light button and a vacation mode lockout switch. Neither feature has wires to the opener, so I'm guessing they must be wireless.

I'm not aware of any way to "access" that control for automation.

1 Like

Have there been any update to this app?

My tilt sensor status seem to be stuck opened and it would switch to closed after an half an hour or so but I am not sure what causing it to stay stuck open. I am still troubleshooting it.

I am using one of the orignal zooz relay switch to operate the garage door and as a z wave repeater from my understanding that it have a built in repeater. I do see green blinking light on my sensor and I am not sure if it having trouble reaching to the hub because it does depend on zooz relay to repeat the signal back.

The zooz relay is near kitchen light switch and the tilt sensor is on the garage door like about 15 feet away from zooz relay switch.

The tilt sensor battery is at 80 percent now and I don't think it the battery.

No this app has not been updated.

If you have the eco link tilt sensor they have a ball sensor which has been known to get stuck. So that could be the problem, the sensor may actually be getting stuck.

I think you are right and the sensor is getting stuck. When I shake it then it would work temporary and get stuck again.

Do you know if there are any other better and newer tilt sensor? I am Googling right now for one.