Garage Door Openers not working with Routines

garagedooropener
routines

(Brian) #1

I have been using my 2 Garadget garagedoor opener devices, integrated with my SmartThings 2.0 hub for a while now.

However recently (maybe associated with the last Hub update, I’m not sure), I have noticed that the routines that I have to ensure my Garage doors are closed at night, no longer actually close my garage doors.

These routines DO other things, (like turn off lights, lock doors, change the mode), and those other things happen just fine. But the garage doors don’t close.

Also notable, the doors get their status reported just fine in the mobile app, and hub. And the buttons on the app to directly open/close the garage door also work just fine. (ie. I can push the button on the UI for the specific device to open and close the doors and they work)

So I created a NEW routine to exclusively open the garage door (seperate from the one that does other things too), and it also does nothing/doesn’t work.

I am at a loss at this point. I’ve even logged into the IDE to try to watch the logs, but I don’t really get any meaingful information from the logs when I launch the routines.

Does anyone have any idea how to help/what I can do to figure out how to get these work again?

Thanks,
-Brian


[RELEASE] ST_Anything v2.9.2 - Arduino/ESP8266/ESP32 to ST via ThingShield, Ethernet, or WiFi
(www.rboyapps.com - Make your home your butler!) #2

Reboot your hub and do a Z-Wave repair, it’s possible that your commands just getting lost of the routine is timing out (common issue). Are you using the stock device handler or a custom device handler.


(Brian) #3

Thanks RBoy, I tried that.

Its a custom device handler. But, as I indicated, it is working otherwise. It reports status properly, and will open-close the garage door when I use the buttons in the SmartThings mobile application.

I’ve looked at the code, it has properly implemented the ‘open()’ and ‘close()’ procedures for garagedoor openers. and they work, when called.

But they do not appear to get called when I include doing so in a routine.

Do you know if there is a way to debug a routine, or get any sort of debug output/monitoring of what a routing is doing when it is running?

-Brian


(www.rboyapps.com - Make your home your butler!) #4

Does it work with the stock ST device handler? Alternatively, try to implement a on / off method and add the capability switch and control it as switch. The only way to debug a routine is to look at the IDE logs and see what’s happening.

Alternatively, if you have access to the RBoy Apps you can use our custom garage door handler which has all those modifications already done.


(Brian) #5

So, there is an on() and off() routines in the DH as well. they basically jsut call open() and close() respectively, with some extra debug information so you know on() and off() were actually what were called.

I tried looking at the logs in the IDE for the Routines, and they don’t show anything when they are run, except for some HHExecute() thing, that doesn’t really provide any kind of useful information.

I was curious if you knew of some kind of trick to get more meaningful debug logs out of routines? I don’t see any kind of debug output log for anything meaningful, and didn’t know if I just needed to set a config option somewhere to see them.

-Brian


(www.rboyapps.com - Make your home your butler!) #6

Not really, that’s about it. Just check your routine if it has any condition setup, like specific modes to operate in etc which may prevent it from running. The other way would be to create backup for your routines in CoRE which can check if the garage door closed or not when the routine executed and if not then go in and close it.

This is actually a common enough of a problem that we built an app to do this.


(Brian) #7

I’m starting to think there may just be a problem with ST hub and GarageDoors.

So I checked the DH, and as I said, it had on() and off() functions, and was actually already setup with the ‘switch’ capability.

So anyway, I adjusted by routine to treat the garage doors like switches instead of garage doors (to turn ‘off’ the switch “Garage Door West” instead of closing Garage Door west… and viola! It works.

Which is totally weird.

I mean, the device is clearly setup properly as a Garage door, as it shows up under that option for Routine configuration. But the garage door functions open() and close() never get called.

Anyway, I’ve fixed my routines by treating the garage door like a switch. This feels totally bogus … but whatever, hopefully this helps someone

Thanks for the assist, RBoy.


(Ventz) #8

@btrenbeath - Can you post an example of your solution? I am in the exact same boat.

On a side note - I believe this is definitely a bug with Smart Things. It’s essentially not accepting the “Garage Door” spec.

I have the following:

capability "Actuator"
capability "Door Control"
capability "Garage Door Control"
capability "Contact Sensor"
capability "Refresh"
capability "Sensor"
    tiles {
    
		standardTile("toggle", "device.door", width: 3, height: 3) {
			state("closed", label:'${name}', action:"door control.open", icon:"st.doors.garage.garage-closed", backgroundColor:"#00A0DC", nextState:"opening")
			state("open", label:'${name}', action:"door control.close", icon:"st.doors.garage.garage-open", backgroundColor:"#e86d13", nextState:"closing")
			state("opening", label:'${name}', icon:"st.doors.garage.garage-closed", backgroundColor:"#e86d13")
			state("closing", label:'${name}', icon:"st.doors.garage.garage-open", backgroundColor:"#00A0DC")
			
		}
   
		standardTile("open", "device.door", inactiveLabel: false, decoration: "flat") {
			state "open", label:'open', action:"door control.open", icon:"st.doors.garage.garage-opening"
		}
		standardTile("close", "device.door", inactiveLabel: false, decoration: "flat") {
			state "close", label:'close', action:"door control.close", icon:"st.doors.garage.garage-closing"
		}

		main "toggle"
		details(["toggle", "open", "close"])
	}
def on() {
	log.debug "Executing 'open'"
    sendToDevice()
    sendEvent(name: "door", value: "open")
}

def off() {
	log.debug "Executing 'close'"
    sendToDevice()
    sendEvent(name: "door", value: "close")
}
// I am using a particle photon to toggle the door w/ a relay switch.
private sendToDevice() {
	httpPost(
		uri: "https://api.particle.io/v1/devices/${deviceID}/door",
        body: [access_token: token],  
	) {response -> log.debug (response.data)}
    //body: [access_token: token, command: cmd], 
}

(Brian) #9

Hey ventz,

So, to match what I did, you need to add:

 capability "Switch" 

to your device handler. Then the device will show up in the Routine builder as if it were a switch. And, from what I can tell, you can turn it ‘On’ to open your door, and ‘Off’ to close it.

hope that helps


(Ventz) #10

@btrenbeath - Thank you! Worked perfectly!


(Jess) #11

@btrenbeath Thank you so much! I actually made an account just so say thank you. Your work around worked great. Its been driving me crazy. I really need to login to the coding for all this smart stuff. See what its really capable of. :slight_smile: