gaggle331 / home-assistant-kevo Goto Github PK
View Code? Open in Web Editor NEWKevo Custom Component for Home Assistant
Kevo Custom Component for Home Assistant
Good afternoon,
My front door works but it stops working when I add my other door in the config. Is there anything I can do on my end to make this code support two locks at the same time? Thanks in advance.
Created in inquiry to Keyvo support in hopes they will look at this page and help the community with this challenge.
I've installed per the read me file, but I'm unable to find any mention of Kevo in Home Assistant. I have kevo plus directory located in config/custom_components, and I have the proper lines in configuration.yaml, edited with my information.
Do I need to do anything else, other than restarting Home Assistant?
Is it working for you?
Hi.
I installed the integration via HACS and added the suggested config into configuration.yaml. After a restart I'm seeing this in the logs and the integration isn't able to get the status of the locks or control them.
2021-11-14 22:21:45 ERROR (MainThread) [homeassistant.helpers.entity] Update for lock.kitchen_door fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 438, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 625, in async_device_update
raise exc
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/kevo_plus/lock.py", line 98, in update
File "/usr/local/lib/python3.9/site-packages/pykevoplus/init.py", line 108, in _wrapped
return method(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/pykevoplus/init.py", line 272, in GetBoltState
self.Refresh()
File "/usr/local/lib/python3.9/site-packages/pykevoplus/init.py", line 108, in _wrapped
return method(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/pykevoplus/init.py", line 223, in Refresh
raise KevoError("Error getting lock info: {}".format(info_result.text))
pykevoplus.KevoError: Error getting lock info: {"status":"500","error":"Internal Server Error"}
Any ideas what could be causing this?
Thanks!
After installing the integration via HACS I added:
lock:
- platform: kevo_plus
email: USER
password: PWD
locks:
- lock_id: ID
max_retries: 3
retry_delay: 2
As soon as I add this the Check Configuration button just spins and spins and never says my config is valid nor reports an error. I'm new to HA, is this sample config still valid in 2022.6.4?
2020-06-13 21:37:28 WARNING (MainThread) [homeassistant.components.lock] LockDevice is deprecated, modify KevoDevice to extend LockEntity
My be present in older versions but only got around to installing this....
If I get a chance I'll try to work out what changes are needed but python is not my strength.
Appear Home Assistant now requires a version, currently I'm on HA 2021.3.4
No 'version' key in the manifest file for custom integration 'kevo_plus'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'kevo_plus'
hopefully should just require a simple version key in the manifest file, I'll submit a Pull request once I confirm.
I have a Kevo Plus and 3 Kwikset Kevo (Gen 2) locks.
I'm using the forked version (1.4.0) of this integration (https://github.com/dcmeglio/home-assistant-kevo) and currently on HA 2024.6.1
For many months, when triggering a lock, I will sometimes get a failure and the error below logged. I can usually re-trigger the lock a few seconds later and it works fine, so it seems to be a sporadic issue at best.
Thought I'd log it for reference in case others are seeing it in their logs, or a dev sees an opportunity to improve the current code.
2024-06-11 18:25:18.138 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140668574167488] Unexpected exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/default.py", line 373, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 216, in handle_async_request
raise exc from None
File "/usr/local/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 196, in handle_async_request
response = await connection.handle_async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
raise exc
File "/usr/local/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpcore/_async/connection.py", line 122, in _connect
stream = await self._network_backend.connect_tcp(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
return await self._backend.connect_tcp(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
with map_exceptions(exc_map):
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2741, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2784, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 977, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1049, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/lock/__init__.py", line 229, in async_handle_lock_service
await self.async_lock(**self.add_default_code(kwargs))
File "/config/custom_components/kevo_plus/lock.py", line 69, in async_lock
await self._device.lock()
File "/usr/local/lib/python3.12/site-packages/aiokevoplus/__init__.py", line 654, in lock
return await self._api._api_post(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiokevoplus/__init__.py", line 215, in _api_post
headers = await self.__get_headers()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiokevoplus/__init__.py", line 176, in __get_headers
snonce = await self.__get_server_nonce()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiokevoplus/__init__.py", line 161, in __get_server_nonce
res = await client.post(
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1892, in post
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1574, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1661, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1689, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1763, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectTimeout
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.