I have been using this library for months to control my lights from a raspberry pi zero (thanks!). In the past few days it hasn't been working. I get the following traceback:
Traceback (most recent call last):
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 82, in send_packet
self.s.send(encrypted_packet)
AttributeError: 'bulb' object has no attribute 's'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "living_room_lights.py", line 47, in <module>
switch_lights(args.off)
File "living_room_lights.py", line 35, in switch_lights
bulb.set_state(power=pwr)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 187, in set_state
packet.sequence = self.get_sequence()
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 134, in get_sequence
return device.get_sequence(self)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 115, in get_sequence
response = self.send_packet(packet, True)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 131, in send_packet
return device.send_packet(self, packet, response)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 84, in send_packet
self.connect()
[the following lines repeated over and over]
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 128, in connect
return device.connect(self)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 66, in connect
self.update()
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 192, in update
response = self.get_status()
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 138, in get_status
packet.sequence = self.get_sequence()
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 134, in get_sequence
return device.get_sequence(self)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 115, in get_sequence
response = self.send_packet(packet, True)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 131, in send_packet
return device.send_packet(self, packet, response)
File "/home/pi/lights/env/lib/python3.5/site-packages/lakeside/__init__.py", line 73, in send_packet
cipher = AES.new(bytes(key), AES.MODE_CBC, bytes(iv))
[end repeated section]
File "/home/pi/lights/env/lib/python3.5/site-packages/Crypto/Cipher/AES.py", line 232, in new
return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
File "/home/pi/lights/env/lib/python3.5/site-packages/Crypto/Cipher/__init__.py", line 79, in _create_cipher
return modes[mode](factory, **kwargs)
File "/home/pi/lights/env/lib/python3.5/site-packages/Crypto/Cipher/_mode_cbc.py", line 293, in _create_cbc_cipher
return CbcMode(cipher_state, iv)
File "/home/pi/lights/env/lib/python3.5/site-packages/Crypto/Cipher/_mode_cbc.py", line 95, in __init__
self._state = VoidPointer()
File "/home/pi/lights/env/lib/python3.5/site-packages/Crypto/Util/_raw_api.py", line 251, in VoidPointer
return VoidPointer_ctypes()
RecursionError: maximum recursion depth exceeded
I'm using Python 3.5 with these packages installed.
astral==1.9.2
certifi==2018.11.29
chardet==3.0.4
idna==2.8
lakeside==0.11
pkg-resources==0.0.0
protobuf==3.6.1
pycryptodome==3.7.3
pytz==2018.9
PyYAML==3.13
requests==2.21.0
six==1.12.0
urllib3==1.24.1
I'm guessing this has something to do with Eufy changing their API. Has anyone else seen this and know how to fix it?