I confirm as well. Fixed in 0.92.2
Just ran my update docker script and works like a charm.
All good here on 0.92.2 also. Man, I love this project and the people who work on it. So good.
Fixed here as well !!
Love that it is fixed, not sure why it is not mentioned in the release notes.
Any custom component requires a 'init.py file.
It is, actually, however cryptically. It’s this one:
- Fix authentication issue (@ehendrix23 - #23600) (myq docs)
My MyQ stopped working again. Is anyone else working ?
Mine is still working, just tested this right now.
I knew i had not changed anything in HA so i asked here in the forums and see that its still working. Then i decided to factory reset the device and it now works.
Thanks for responding.
Looks like they’ve changed something in their Auth setup again and broken the component. Hopefully we can fix this pretty quickly again.
Errors are back again…
Home Assistant
0.96.5
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 126, in _async_setup_platform
SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
return fut.result()
File "/usr/src/homeassistant/homeassistant/components/myq/cover.py", line 43, in async_setup_platform
myq = await login(username, password, brand, websession)
File "/usr/local/lib/python3.7/site-packages/pymyq/api.py", line 293, in login
await api.authenticate(username, password)
File "/usr/local/lib/python3.7/site-packages/pymyq/api.py", line 228, in authenticate
await self._get_security_token()
File "/usr/local/lib/python3.7/site-packages/pymyq/api.py", line 244, in _get_security_token
login_request=True,
File "/usr/local/lib/python3.7/site-packages/pymyq/api.py", line 153, in _request
return await resp.json(content_type=None)
File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 1036, in json
return loads(stripped.decode(encoding))
File "/usr/local/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
I have exactly the same error. Worked as late as yesterday, and I’ve not changed anything since then.
I see that the problem has been picked up on github: https://github.com/arraylabs/pymyq/issues/22
yep broke for me as well
Not working here either
Please share, I’d dump MyQ in a blink of an eye for a more reliable solution. Ever since they changed the app a few months back the sensor on my main garage door has been crap. Several times per week it will tells me that the door is still open when it’s not. That’s not even a home assistant thing, the native app gives the incorrect state. It’s to the point I just assume it’s not going to work. I did try the the Best Buy brand (can’t remember the name off the top of my head) as a possible solution but that was a sad pit of misery. I didn’t mind having to hardwire into my opener but I couldn’t ever get the silly thing to connect to HomeKit, i tired it every which way but no luck. So God knows I didn’t even get close to HA. if you have a good solution i’d love to hear it.
It takes a bit of soldering skills but what I did was inspired by other threads here and elsewhere on the interwebs.
You need a Sonoff Basic, a NodeMCU, an HC-SR04 ultrasonic distance sensor, a 5v USB PS and a spare remote for your garage door. And the associated mounting accessories for the nodeMCU & US sensor. I had a couple of mini bread boards already that I got from Amazon in a 6 pack for pretty cheap.
I wish I would have taken pictures of my steps to get it working but I didn’t so it’s going to be a bit clumsy trying to describe things. I’ll do my best tho.
I originally used a sonoff basic because I bought a bunch of them so I had one to use. If I was to do it again I would have used a Sonoff SV and turned it into a dry contact relay as this guy is doing in this video:
But I didn’t so here is what I did:
You need to open up the Sonoff Basic (older style with solder traces). This what should look like originally:
You will need to cut/remove the solder traces on the bottom as indicated on the picture below (not my picture - mine isn’t that shoddy…):
Then turn the board over and cut the traces on the top of the board in the same location as in the picture below (long yellowish section along the bottom & the yellowish section just to the left of the right hand terminal block):
It’s kind of hard to see so here is one that kind of points it out a bit better:
Basically what you doing is completely disconnecting the relay contact pin from the hot input terminal and disconnecting the neutral line between the input & output terminals. Use a multimeter to verify that they are no longer connected.
Then you will connect a jumper between the neutral solder trace and the relay contact pin on the bottom of the board indicated by the circle:
After you are done with that then reassemble the Sonoff and flash it with whichever firmware you prefer (I use ESPHome - code below).
Then disassemble your spare remote and using a multimeter determine which pins on the switch are closed when you push the button. Solder a wire onto each of those switch pins on the remote. Connect those wires to the output terminals on the Sonoff.
Connect power to the Sonoff input terminals. Once it boots up then when you push the button on the sonoff and the relay turns on the garage door should operate. hit the button again to turn the relay off. If it works then congratulations you’ve just simulated a button press & release on the remote with the Sonoff!
Then for the door position you will connect the HC-SR04 US Sensor to the NodeMCU like this:
Flash the NodeMCU with your firmware of choice (again I use ESPHome - code below).
Then you will mount the US sensor on the ceiling of your garage with the US sensor pointing at the floor and so that the garage door blocks the US sensor when open & unblocks it when closed.
Sonoff ESPHome Code:
esphome:
name: ----node name here-
platform: ESP8266
board: esp01_1m
board_flash_mode: dout
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_pwd
reboot_timeout: 0s
fast_connect: true
manual_ip:
static_ip: ----ip address here-
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable logging
logger:
# Enable Home Assistant API
api:
reboot_timeout: 0s
ota:
binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
id: button
on_press:
- switch.toggle: relay_template
on_multi_click:
- timing:
- ON for at most 0.5s
- OFF for at most 0.5s
- ON for at most 0.5s
- OFF for at most 0.5s
- ON for at most 0.5s
- OFF for at most 0.5s
- ON for at most 0.5s
- OFF for at least 0.2s
then:
- switch.turn_on: restart_sonoff
switch:
- platform: gpio
pin: GPIO12
id: relay
- platform: template
name: ----friendly name here-
id: relay_template
lambda: |-
if (id(relay).state) {
return true;
} else {
return false;
}
turn_on_action:
- light.turn_on: status_led
- switch.turn_on: relay
turn_off_action:
- light.turn_off: status_led
- switch.turn_off: relay
- platform: restart
id: restart_sonoff
output:
- platform: esp8266_pwm
id: basic_green_led
pin:
number: GPIO13
inverted: True
light:
- platform: monochromatic
output: basic_green_led
id: status_led
default_transition_length: 1ms # controls the light fade/transition time
text_sensor:
- platform: version
name: ----friendly_name here- ESPHome Version
sensor:
- platform: wifi_signal
name: ----friendly_name here- WiFi Signal Strength
update_interval: 60s
Ultrasonic sensor Code:
esphome:
name: ----Node_Name_here-
platform: ESP8266
board: nodemcuv2
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_pwd
fast_connect: true
manual_ip:
static_ip: ----IP_address_here-
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
sensor:
- platform: ultrasonic
trigger_pin: D4
echo_pin: D3
name: ----Friendly_name _here-
- platform: wifi_signal
name: ----same friendly_name here- WiFi Signal Strength
update_interval: 60s
text_sensor:
- platform: version
name: ----Same freindly name here- ESPHome Version
then in HA you create a momentary switch:
automation:
- alias: Toggle Garage Door South Switch
initial_state: 'on'
trigger:
platform: state
entity_id: switch.garage_door_south_sonoff_operator
to: 'on'
for:
seconds: 1
action:
service: homeassistant.turn_off
entity_id: switch.garage_door_south_sonoff_operator
and a template cover to put it all together:
cover:
- platform:
covers:
south_garage_door_sonoff:
friendly_name: 'South Garage Door'
value_template: "{{ states.sensor.south_garage_door_position_sensor.state | int < 38 }}"
open_cover:
service: switch.turn_on
entity_id: switch.garage_door_north_operator_switch
close_cover:
service: switch.turn_on
entity_id: switch.garage_door_north_operator_switch
stop_cover:
service: switch.turn_on
entity_id: switch.garage_door_south_sonoff_operator
icon_template: >
{% if states.sensor.south_garage_door_position_sensor.state | int < 38 %}
mdi:garage-open
{% else %}
mdi:garage
{% endif %}
Obviously you’ll need to use your details in the automations & cover codes.
Good luck!
If your MyQ is not working follow these steps. This is the method I have been using for a while now on multiple versions of HA, I am currently running 0.100.3.
switch to your homeassistant user then
edit your manifest.json file located at:
/opt/homeassistant/lib/python3.8/site-packages/homeassistant/components/myq
and change
"pymyq==2.0.0" to "pymyq==2.0.1"
This will tell HA to use the correct version of the software.
Additionally, if this does not work right off the bat, ensure your have the pymyq software installed with pip3.
#pymyq (2.0.1) - Python package for controlling MyQ-Enabled Garage Door
pip3 install pymyq
and none of that works in hassio or in Docker installs