Jump to content

Python control of MyQ Garage Doors


einstein.42

Recommended Posts

  • 1 month later...

Hi Einstein.42: this is great! I run all of my ad-hoc HA stuff on a Raspberry Pi, so I quickly scripted a CGI wrapper for your app - it's pretty ugly since it doesn't really handle output any more than it needs to so Apache won't barf - but it works for being called as a network resource. So, Keypadlinc with a garage button is good to go.

 

Also, if you or others are looking for a way to reflect the door status on the Keypadlinc in near real-time based on MYQ (instead of another sensor) you can use IFTTT now. I have my MYQ app configured to send an email alert if there is a door open or close event. I created a gmail label to capture those notifications. I then created an IFTTT rule which calls the maker channel to run my Get/Update status program on the ISY when new mail with that label comes in.

 

For safety, rather than immediately setting a specific status, the program runs the status command in your script and then turns the scene with the KPL button responder on/off accordingly. It doesn't matter if it was an open or close email, it's always handled the same way.

 

I also have a program which runs every 5 minutes to do the same just in case IFTTT or gmail is gummed up.

 

This way you can get near real-time status reflection if a native controller is used to open/close the door without hammering their API every few seconds.

 

Best,

 

-David

Link to comment
  • 4 months later...

Hi Einstein.42

You helped me integrate my garage door last December. I had issues because the python script was not compatible with my ISY firmaware version. Since then, you updated the script, it was running very smooth. Thanks again for all your help. I just wanted to make you aware that I believe there are new added features or updates on the my-garage.py script. I tried to use the new one this past weekend and it didn't work with my ISY. The odd part though was that, I was able to run the command via terminal and the garage would open or close depending which one I run. However, it is not working from the DSCLink relay server. Even including the full path it is still not working. I am not sure if you have any idea why its not working. The old one still works like a charm.

 

My current ISY version is 4.4.6. Hope this helps. 

 

I wonder if you received any feedback from anyone with the same issue.

 

Thanks again for your help.

 

-Larry

Edited by lsibarra
Link to comment

Hi einstein.42

I am not sure what log are you referring. How can i get or obtain the log? All the log I have was the one form the logs folder. I am not sure if this will help but this is all I am getting. I am new to linux and not sure what the command. Please let me know.

 

2016-06-30 15:48:37,067 INFO     ==================================STARTED==================================
2016-06-30 22:06:45,304 INFO     ==================================STARTED==================================
2016-06-30 22:06:46,756 INFO     gDoor is Closed. Last changed at Thu 30 Jun 2016 14:58:26
2016-06-30 22:06:46,787 INFO     Searching ISY Definitions for MyQ_gDoor
2016-06-30 22:06:46,788 INFO     State variable: MyQ_gDoor found with ID: 37
2016-06-30 22:06:46,801 INFO     Get_Var_State: init: 0 - val: 0
2016-06-30 22:06:46,801 INFO     ISY Get Var ID Return - id: 37 - varname: MyQ_gDoor - init: 0 - value: 0
2016-06-30 22:06:46,814 INFO     Get_Var_State: init: 0 - val: 0
2016-06-30 22:06:46,815 INFO     MyQ_gDoor is already set to 0
2016-06-30 23:23:14,427 INFO     ==================================STARTED==================================
 

Link to comment

Hi einstein.42

here's additional info that may help.

 

2016-07-01 18:17:00,818 INFO     ==================================STARTED==================================
2016-07-01 18:17:02,065 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 17:39:34
2016-07-01 18:17:02,076 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 18:17:02,077 ERROR    Traceback (most recent call last):
2016-07-01 18:17:02,077 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 18:17:02,077 ERROR    gdoor_main()
2016-07-01 18:17:02,078 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 18:17:02,078 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 18:17:02,078 ERROR    TypeError
2016-07-01 18:17:02,078 ERROR    :
2016-07-01 18:17:02,079 ERROR    'NoneType' object is not iterable
2016-07-01 18:17:29,316 INFO     ==================================STARTED==================================
2016-07-01 18:18:00,701 INFO     ==================================STARTED==================================
2016-07-01 18:18:02,302 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 18:18:02,303 ERROR    Traceback (most recent call last):
2016-07-01 18:18:02,303 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 18:18:02,304 ERROR    gdoor_main()
2016-07-01 18:18:02,304 ERROR      File "./myq-garage.py", line 332, in gdoor_main
2016-07-01 18:18:02,304 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 18:18:02,305 ERROR    TypeError
2016-07-01 18:18:02,305 ERROR    :
2016-07-01 18:18:02,305 ERROR    'NoneType' object is not iterable
2016-07-01 18:19:42,997 INFO     ==================================STARTED==================================
2016-07-01 18:19:45,111 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 18:19:45,111 ERROR    Traceback (most recent call last):
2016-07-01 18:19:45,111 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 18:19:45,112 ERROR    gdoor_main()
2016-07-01 18:19:45,112 ERROR      File "./myq-garage.py", line 332, in gdoor_main
2016-07-01 18:19:45,112 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 18:19:45,113 ERROR    TypeError
2016-07-01 18:19:45,113 ERROR    :
2016-07-01 18:19:45,113 ERROR    'NoneType' object is not iterable
2016-07-01 18:51:28,995 INFO     ==================================STARTED==================================
2016-07-01 18:51:30,559 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 18:20:04
2016-07-01 18:51:30,570 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 18:51:30,571 ERROR    Traceback (most recent call last):
2016-07-01 18:51:30,571 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 18:51:30,572 ERROR    gdoor_main()
2016-07-01 18:51:30,572 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 18:51:30,572 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 18:51:30,573 ERROR    TypeError
2016-07-01 18:51:30,573 ERROR    :
2016-07-01 18:51:30,573 ERROR    'NoneType' object is not iterable
2016-07-01 18:51:42,888 INFO     ==================================STARTED==================================
2016-07-01 19:04:05,072 INFO     ==================================STARTED==================================
2016-07-01 19:04:06,521 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 18:20:04
2016-07-01 19:04:06,532 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:04:06,532 ERROR    Traceback (most recent call last):
2016-07-01 19:04:06,533 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:04:06,533 ERROR    gdoor_main()
2016-07-01 19:04:06,533 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:04:06,534 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:04:06,534 ERROR    TypeError
2016-07-01 19:04:06,534 ERROR    :
2016-07-01 19:04:06,535 ERROR    'NoneType' object is not iterable
2016-07-01 19:04:18,276 INFO     ==================================STARTED==================================
2016-07-01 19:04:19,864 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:04:19,865 ERROR    Traceback (most recent call last):
2016-07-01 19:04:19,865 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:04:19,865 ERROR    gdoor_main()
2016-07-01 19:04:19,866 ERROR      File "./myq-garage.py", line 332, in gdoor_main
2016-07-01 19:04:19,866 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:04:19,866 ERROR    TypeError
2016-07-01 19:04:19,866 ERROR    :
2016-07-01 19:04:19,867 ERROR    'NoneType' object is not iterable
2016-07-01 19:04:35,597 INFO     ==================================STARTED==================================
2016-07-01 19:04:37,074 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 18:20:04
2016-07-01 19:04:37,085 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:04:37,086 ERROR    Traceback (most recent call last):
2016-07-01 19:04:37,086 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:04:37,086 ERROR    gdoor_main()
2016-07-01 19:04:37,087 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:04:37,087 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:04:37,087 ERROR    TypeError
2016-07-01 19:04:37,087 ERROR    :
2016-07-01 19:04:37,088 ERROR    'NoneType' object is not iterable
2016-07-01 19:05:07,169 INFO     ==================================STARTED==================================
2016-07-01 19:05:08,722 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:05:08,723 ERROR    Traceback (most recent call last):
2016-07-01 19:05:08,723 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:05:08,724 ERROR    gdoor_main()
2016-07-01 19:05:08,724 ERROR      File "./myq-garage.py", line 332, in gdoor_main
2016-07-01 19:05:08,724 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:05:08,725 ERROR    TypeError
2016-07-01 19:05:08,725 ERROR    :
2016-07-01 19:05:08,725 ERROR    'NoneType' object is not iterable
2016-07-01 19:05:14,282 INFO     ==================================STARTED==================================
2016-07-01 19:05:20,946 INFO     ==================================STARTED==================================
2016-07-01 19:05:32,137 INFO     ==================================STARTED==================================
2016-07-01 19:05:33,722 INFO     gDoor is Open. Last changed at Fri 01 Jul 2016 19:05:19
2016-07-01 19:05:33,733 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:05:33,735 ERROR    Traceback (most recent call last):
2016-07-01 19:05:33,735 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:05:33,736 ERROR    gdoor_main()
2016-07-01 19:05:33,736 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:05:33,737 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:05:33,737 ERROR    TypeError
2016-07-01 19:05:33,737 ERROR    :
2016-07-01 19:05:33,737 ERROR    'NoneType' object is not iterable
2016-07-01 19:05:47,071 INFO     ==================================STARTED==================================
2016-07-01 19:05:48,553 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:05:48,553 ERROR    Traceback (most recent call last):
2016-07-01 19:05:48,554 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:05:48,554 ERROR    gdoor_main()
2016-07-01 19:05:48,555 ERROR      File "./myq-garage.py", line 332, in gdoor_main
2016-07-01 19:05:48,555 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:05:48,555 ERROR    TypeError
2016-07-01 19:05:48,556 ERROR    :
2016-07-01 19:05:48,556 ERROR    'NoneType' object is not iterable
2016-07-01 19:05:56,133 INFO     ==================================STARTED==================================
2016-07-01 19:05:57,375 INFO     gDoor is Open. Last changed at Fri 01 Jul 2016 19:05:19
2016-07-01 19:05:57,386 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:05:57,386 ERROR    Traceback (most recent call last):
2016-07-01 19:05:57,386 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:05:57,387 ERROR    gdoor_main()
2016-07-01 19:05:57,387 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:05:57,388 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:05:57,388 ERROR    TypeError
2016-07-01 19:05:57,388 ERROR    :
2016-07-01 19:05:57,388 ERROR    'NoneType' object is not iterable
2016-07-01 19:06:02,995 INFO     ==================================STARTED==================================
2016-07-01 19:06:04,305 INFO     gDoor is Closing. Last changed at Fri 01 Jul 2016 19:05:57
2016-07-01 19:06:04,316 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:06:04,316 ERROR    Traceback (most recent call last):
2016-07-01 19:06:04,316 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:06:04,317 ERROR    gdoor_main()
2016-07-01 19:06:04,317 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:06:04,318 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:06:04,318 ERROR    TypeError
2016-07-01 19:06:04,318 ERROR    :
2016-07-01 19:06:04,318 ERROR    'NoneType' object is not iterable
2016-07-01 19:06:22,276 INFO     ==================================STARTED==================================
2016-07-01 19:06:23,672 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:06:23,683 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:06:23,684 ERROR    Traceback (most recent call last):
2016-07-01 19:06:23,684 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:06:23,684 ERROR    gdoor_main()
2016-07-01 19:06:23,685 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:06:23,685 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:06:23,685 ERROR    TypeError
2016-07-01 19:06:23,686 ERROR    :
2016-07-01 19:06:23,686 ERROR    'NoneType' object is not iterable
2016-07-01 19:06:36,476 INFO     ==================================STARTED==================================
2016-07-01 19:06:38,087 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:06:38,097 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:06:38,098 ERROR    Traceback (most recent call last):
2016-07-01 19:06:38,098 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:06:38,098 ERROR    gdoor_main()
2016-07-01 19:06:38,099 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:06:38,099 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:06:38,099 ERROR    TypeError
2016-07-01 19:06:38,100 ERROR    :
2016-07-01 19:06:38,100 ERROR    'NoneType' object is not iterable
2016-07-01 19:06:44,794 INFO     ==================================STARTED==================================
2016-07-01 19:06:46,207 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:06:46,218 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:06:46,218 ERROR    Traceback (most recent call last):
2016-07-01 19:06:46,219 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:06:46,219 ERROR    gdoor_main()
2016-07-01 19:06:46,219 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:06:46,220 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:06:46,220 ERROR    TypeError
2016-07-01 19:06:46,220 ERROR    :
2016-07-01 19:06:46,220 ERROR    'NoneType' object is not iterable
2016-07-01 19:06:56,389 INFO     ==================================STARTED==================================
2016-07-01 19:06:57,948 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:06:57,959 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:06:57,960 ERROR    Traceback (most recent call last):
2016-07-01 19:06:57,960 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:06:57,960 ERROR    gdoor_main()
2016-07-01 19:06:57,961 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:06:57,961 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:06:57,961 ERROR    TypeError
2016-07-01 19:06:57,961 ERROR    :
2016-07-01 19:06:57,962 ERROR    'NoneType' object is not iterable
2016-07-01 19:07:15,882 INFO     ==================================STARTED==================================
2016-07-01 19:07:17,188 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:07:17,198 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:07:17,199 ERROR    Traceback (most recent call last):
2016-07-01 19:07:17,199 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:07:17,199 ERROR    gdoor_main()
2016-07-01 19:07:17,200 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:07:17,200 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:07:17,200 ERROR    TypeError
2016-07-01 19:07:17,201 ERROR    :
2016-07-01 19:07:17,201 ERROR    'NoneType' object is not iterable
2016-07-01 19:08:14,673 INFO     ==================================STARTED==================================
2016-07-01 19:08:15,996 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:08:16,007 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:08:16,008 ERROR    Traceback (most recent call last):
2016-07-01 19:08:16,008 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:08:16,008 ERROR    gdoor_main()
2016-07-01 19:08:16,009 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:08:16,009 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:08:16,009 ERROR    TypeError
2016-07-01 19:08:16,010 ERROR    :
2016-07-01 19:08:16,010 ERROR    'NoneType' object is not iterable
2016-07-01 19:08:28,553 INFO     ==================================STARTED==================================
2016-07-01 19:08:29,929 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:08:29,939 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:08:29,940 ERROR    Traceback (most recent call last):
2016-07-01 19:08:29,940 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:08:29,941 ERROR    gdoor_main()
2016-07-01 19:08:29,941 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:08:29,941 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:08:29,941 ERROR    TypeError
2016-07-01 19:08:29,942 ERROR    :
2016-07-01 19:08:29,942 ERROR    'NoneType' object is not iterable
2016-07-01 19:08:33,393 INFO     ==================================STARTED==================================
2016-07-01 19:08:34,617 INFO     gDoor is Closed. Last changed at Fri 01 Jul 2016 19:06:07
2016-07-01 19:08:34,628 ERROR    Caught Exception in isy_get_var_id: ('Connection aborted.', error(111, 'Connection refused'))
2016-07-01 19:08:34,628 ERROR    Traceback (most recent call last):
2016-07-01 19:08:34,628 ERROR      File "./myq-garage.py", line 348, in <module>
2016-07-01 19:08:34,629 ERROR    gdoor_main()
2016-07-01 19:08:34,629 ERROR      File "./myq-garage.py", line 320, in gdoor_main
2016-07-01 19:08:34,630 ERROR    id, varname, init, value = isy_get_var_id(inst.name)
2016-07-01 19:08:34,630 ERROR    TypeError
2016-07-01 19:08:34,630 ERROR    :
2016-07-01 19:08:34,630 ERROR    'NoneType' object is not iterable
 

Link to comment
  • 3 weeks later...

Hi einstein,

 

Thank you for this, I have this working great on a windows box, I already have one running 24/7 so thought I'd try there first.

It runs great from the command line, but I'm having some issues getting ti to run as a scheduled task I'm still playing around, but anyone have any tips?

 

Marc

Link to comment
  • 1 month later...

Hello einstein,

 

I'm running the script with ISY set to False, and am getting the following:

 

When I issue './myq-garage.py status' I get no results and the following shows in the log:

2016-09-02 20:04:55,062 INFO     ==================================STARTED==================================
 
When I issue './myq-garage.py open garage' I also get no output but the following in the log:
2016-09-02 20:12:11,324 INFO     ==================================STARTED==================================
2016-09-02 20:12:13,262 ERROR    Traceback (most recent call last):
2016-09-02 20:12:13,264 ERROR      File "./myq-garage.py", line 344, in <module>
2016-09-02 20:12:13,267 ERROR    gdoor_main()
2016-09-02 20:12:13,269 ERROR      File "./myq-garage.py", line 333, in gdoor_main
2016-09-02 20:12:13,272 ERROR    print(doorname + ' not found in available doors.')
2016-09-02 20:12:13,275 ERROR    UnboundLocalError
2016-09-02 20:12:13,277 ERROR    :
2016-09-02 20:12:13,279 ERROR    local variable 'doorname' referenced before assignment
 
What's the problem here?
 
Thanks
Link to comment
  • 1 month later...

Having some trouble with the 2nd Place.  The first place is a normal chamberlain door with a door type of 2, The second place is a a Myq garage (adds myq to a non-chamberlain) and the door type is a 7 - which is not supported.

WIth no modifications of the code, I get the door status for the normal door and nothing for the 2nd place. I then added  a SUPPORT_DEVICE of 7 to the ones you had (2 and 5) and now I get the status of the door on the 2nd place, but I also get a line: 

 is Closed. Last changed at Sat 16 Jan 2016 02:49:26

With no name.

 

And from the log I see that the type 7 is getting door status for two doors - There are two devId that are one number off from each other.  I'm pretty sure that the myq garage supports two devices although I only have one connected - Maybe the door that isn't installed is still returning some info?

 

 

Editing - Worked on removing the blank door name.

 

I saw that the name was "" on the 2nd device on the 2nd place so I put a check in the python if the

if len(name) > 0:

    DOOR(id, name,state,time)

 

And that seemed to fix the door with the no name being reported

The number of devices was being returned as 2 but the 2nd device was not being used or setup.  Probably is a better way to do this - but this worked.

Edited by pastro50
Link to comment
  • 2 weeks later...

Hi einstein42,

I upgraded my ISY to 5.02 and using the nodelink 0.6.7 with the relay enabled to port 2405. However, I'm having issues with the myq-garage.py script. If I run it in terminal, it works just fine. However, if I run in from the ISY to send the command, it is not responding. Below is the error log I have.

 

Hope you can help me again and I hope its an easy fix.

 

Larry

 

2016-10-24 02:12:49,708 INFO     ==================================STARTED==================================
2016-10-24 02:12:50,657 WARNING  Unsupported device (Gateway) found, skipping
2016-10-24 02:12:52,150 INFO     Searching ISY Definitions for MyQ_gDoor
2016-10-24 02:12:52,151 INFO     State variable: MyQ_gDoor found with ID: 37
2016-10-24 02:12:52,169 INFO     Get_Var_State: init: 0 - val: 0
2016-10-24 02:12:52,169 INFO     ISY Get Var ID Return - id: 37 - varname: MyQ_gDoor - init: 0 - value: 0
2016-10-24 02:12:52,187 INFO     Get_Var_State: init: 0 - val: 0
2016-10-24 02:13:21,934 INFO     ==================================STARTED==================================
2016-10-24 02:13:22,784 WARNING  Unsupported device (Gateway) found, skipping
2016-10-24 02:13:24,631 INFO     Searching ISY Definitions for MyQ_gDoor
2016-10-24 02:13:24,632 INFO     State variable: MyQ_gDoor found with ID: 37
2016-10-24 02:13:24,650 INFO     Get_Var_State: init: 0 - val: 1
2016-10-24 02:13:24,650 INFO     ISY Get Var ID Return - id: 37 - varname: MyQ_gDoor - init: 0 - value: 1
2016-10-24 02:13:24,668 INFO     Get_Var_State: init: 0 - val: 1
2016-10-24 03:26:54,819 INFO     ==================================STARTED==================================
2016-10-24 03:27:06,919 INFO     ==================================STARTED==================================
2016-10-24 03:27:07,730 WARNING  Unsupported device (Gateway) found, skipping
2016-10-24 03:27:08,555 INFO     gDoor is Closed. Last changed at Mon 24 Oct 2016 02:40:41
2016-10-24 03:27:08,592 INFO     Searching ISY Definitions for MyQ_gDoor
2016-10-24 03:27:08,593 INFO     State variable: MyQ_gDoor found with ID: 37
2016-10-24 03:27:08,611 INFO     Get_Var_State: init: 0 - val: 0
2016-10-24 03:27:08,612 INFO     ISY Get Var ID Return - id: 37 - varname: MyQ_gDoor - init: 0 - value: 0
2016-10-24 03:27:08,629 INFO     Get_Var_State: init: 0 - val: 0
2016-10-24 03:27:08,630 INFO     MyQ_gDoor is already set to 0
2016-10-24 03:37:17,068 INFO     ==================================STARTED==================================
2016-10-24 03:37:18,089 WARNING  Unsupported device (Gateway) found, skipping
2016-10-24 03:37:19,373 INFO     Searching ISY Definitions for MyQ_gDoor
2016-10-24 03:37:19,374 INFO     State variable: MyQ_gDoor found with ID: 37
2016-10-24 03:37:19,392 INFO     Get_Var_State: init: 0 - val: 0
2016-10-24 03:37:19,393 INFO     ISY Get Var ID Return - id: 37 - varname: MyQ_gDoor - init: 0 - value: 0
2016-10-24 03:37:19,412 INFO     Get_Var_State: init: 0 - val: 0
2016-10-24 03:37:45,755 INFO     ==================================STARTED==================================
2016-10-24 03:37:46,979 WARNING  Unsupported device (Gateway) found, skipping
2016-10-24 03:37:48,171 INFO     Searching ISY Definitions for MyQ_gDoor
2016-10-24 03:37:48,172 INFO     State variable: MyQ_gDoor found with ID: 37
2016-10-24 03:37:48,190 INFO     Get_Var_State: init: 0 - val: 1
2016-10-24 03:37:48,191 INFO     ISY Get Var ID Return - id: 37 - varname: MyQ_gDoor - init: 0 - value: 1
2016-10-24 03:37:48,209 INFO     Get_Var_State: init: 0 - val: 1
Link to comment
  • 3 months later...

Welp. Looks like the 'unofficial API' caught up with us. MyQ has either removed or changed their API and blocked access to the one all of us we using. If anyone can find the new API documentation or if there is even an API at all please let me know. Until then this project is no longer viable. Please take a moment to thank Chamberlain and Liftmaster for their lack of community support. 

Link to comment

Hi einstein.42,

I really appreciate you looking into this so quickly. It is unfortunate that these companies are not willing to support our community here at Universal Devices. However, I would like to thank you for putting this together for us. It was quite a ride for me for two years to be able to control my garage door with my ISY. I really appreciate all the updates and support you've provided here.

 

If there is no API available for this, do you have any recommendation or the best solution to control/monitor my garage door?

 

Thanks again,

Larry

Link to comment

Welp. Looks like the 'unofficial API' caught up with us. MyQ has either removed or changed their API and blocked access to the one all of us we using. If anyone can find the new API documentation or if there is even an API at all please let me know. Until then this project is no longer viable. Please take a moment to thank Chamberlain and Liftmaster for their lack of community support. 

 

My CGI script still works (at least for me), every time they change something I have to use Fiddler to sniff SSL traffic iOS app sends to MyQ to figure out what changed.

  • Like 1
Link to comment

Just Fiddler :)

 

P.S. I really recommend that you save off the token in a temp file, it's good for about 1 hour, at least that is how the iOS app does it. What's the point of getting a new one every 5 minutes?

Edited by xKing
Link to comment

Hi einstein.42,

I was running the commands via network resource module in ISY using the relay server from io_guy's NodeLink Server. I setup the relay command in ISY as follows:

 

Command Type: tcp, Host: <rpi_id_address>, Port: 2405, Mode: C Escaped

 

However, it is currently not working with the script. Therefore, I tried to bypass the config.ini file and entered all the information directly to your myq-garage.py script. Doing it this way, I was able to get the garage to respond from the ISY command via network resource module.

 

Do you have any idea why it is not working with the config.ini file? Both files (myq-garage.py and the config.ini permission is set to 0755).

 

Thanks,

Larry

Link to comment

I would assume because it doesn't know where to find the config.ini because it isn't run from that local directory by NodeLink server. 

 

Someone else merged in that config.ini stuff, I never had much of a taste for it. You should be fine the way it is.

 

xKing, I dug into fiddler and I get a totally different AppID from my ipad that what you had. Thought that was odd.

Link to comment
Guest
This topic is now closed to further replies.

×
×
  • Create New...