v1.0.0
v1.0.0 (2024-11-30)
Breaking
- fix: Finalise release.
BREAKING CHANGE: Using IntEnum for constants.
Addressing members changed.
Corrected Names of following NodeProtocol entries:
- WMBUS -> WM_BUS
- HTTPAVM -> HTTP_AVM
- HTTPNETATMO -> HTTP_NETATMO
- HTTPKOUBACHI -> HTTP_KOUBACHI
- HTTPNEST -> HTTP_NEST
- IOCUBE -> IO_CUBE
- HTTPCCU2 -> HTTP_CCU_2
- HTTPUPN_P -> HTTP_UPN_P
- HTTPNUKI -> HTTP_NUKI
- HTTPSEMS -> HTTP_SEMS
- SIGMA_ZWAVE -> ZWAVE_V3
- HTTPWOLF -> HTTP_WOLF
- HTTPMY_STROM -> HTTP_MY_STROM
Refactored code to make it python-standard-conforming:
Homee attributes, that changed names:
- pingInterval -> ping_interval
- reconnectInterval -> reconnect_interval
- maxRetries -> max_retries
- shouldReconnect -> should_reconnect
- deviceId -> device_id
- shouldClose -> should_close
Some methods are now public - the old private versions log deprecation warnings.
Raw data of Homee Classes is now accessible through the .raw_data public attribute i.s.o .raw_data
To update the raw data, the method .set_data(data) is used. (e2e1848
)
- feat: use coroutines for Homee callbacks
BREAKING CHANGE: Homee callbacks need to be awaitable, i.e. async functions. Handleing callbacks in the event loop should provide a better development experience since most functions in the Homee api are async now. (99296e6
)
Chore
-
chore(Git): add homee json dump to gitignore (
9234d26
) -
chore(Git): ignore local testing script (
7dd4a11
) -
chore(CI): add version variable to config (
c34632a
) -
chore(CI): add workflow for semantic release (
c174217
) -
chore: adjust package structure for PyPi release (
ac0368f
) -
chore: add LICENSE (
d0ce035
)
Ci
- ci: update release workflow to latest versions (
785749f
)
Documentation
-
docs: use large badges in README (
370006b
) -
docs: mention Home Assistant homee integration in README (
d44c6b6
) -
docs: add link to websockets library in README (
5f42af6
) -
docs: update examples in README (
0177066
) -
docs: add badges ♥ (
a7e3a28
) -
docs: add install instructions and bump version (
f0208a5
) -
docs: add README (
8701f0a
)
Feature
-
feat: Add VIRTUAL_DEVICE as NodeProtocol 28 (
8030e3f
) -
feat: Add MAC Address to settings
This will add the MAC Address derived from HomeeID as homee.settings.mac_address (9a998ce
) -
feat: Add parsing of users and devices.
Adding support for homee users and their devices reported by the cube.
Available viaHomee.users
andHomee.devices
(0818f8c
) -
feat: parse warning message
This adds support for the warning message type in shich homee announces events or start and stop of certain modes. (86d63f5
) -
feat: Fix automatic reconnection (#12)
-
Remove expicit ping
Removing the ping-handler function and it's call, since websockets sends pings automatically and the function was causing async_io errors.
- Refine error handling and logging
Narrrow websocket exception hadnling to "ConnectionClosedError" from "ConnectionClosed" where feasible.
some logging changes
- expose attribute_map
Expose _attribute_map as public property, since it is used in hass-homee
- Tackle deprecations and lint warnings
- Replace typing.List with list
- remove unnecessary else:s
- use Callable from collections.abc
- refine logging
- log disconnect and reconnect once as per https://developers.home-assistant.io/docs/integration_quality_scale_index/
- use %s instead of f-strings in Log-statements as per HA style guide: https://developers.home-assistant.io/docs/development_guidelines/#use-new-style-string-formatting
-
fix typo
-
fix some nits
- make sure disconnect warning is only logged once.
- move logging of reconnect attempts to proper location. (
2db8f2f
)
-
feat: change get_attribute to update_attribute and add update_node (#9)
-
add function to get an update for an attribute
-
Change get_attribute to update_attribute and add update_node (
750bfef
) -
feat: add function to get an update for an attribute (#8) (
298b5af
) -
feat: add attribute options (#6)
Homee Attributes can have options, that will be exposed with this patch.
Options that are not present will have empty values. (81f339a
)
- feat: Change Logging to use nemd logger (#3)
This changes logging, so it uses a logger with (name), so logs can be identified easier.
This also will enable log configuration in Home Assistant. (40f32c4
)
- feat: add more constants to allow additional devices / profiles (#2)
- Update const.py
- Add AttributeTypes above 324
- Count up Version number
- v1.5.5 add attributes
- Add more constants
- Added constants found in https://github.com/stfnhmplr/homee-api/blob/main/lib/enums.js
- revert version number - will be done automatically
- revert version 1.5.5. change - will be done automatically. (
2914835
)
-
feat: add working reconnection logic during authentication (
235ea6f
) -
feat: enable automatic reconnection attempts (
ee3fb00
) -
feat: add manual websocket ping handler (
773caa0
) -
feat: handle
groups
,nodes
,group
andrelationship
message types (fddac28
) -
feat: manage groups, settings and relationships using model (
5650375
) -
feat: add
HomeeRelationship
model (21f2db0
) -
feat: add
HomeeOptions
model (45efe54
) -
feat: add
HomeeGroup
model (9d3759f
) -
feat: add
add_on_changed_listener()
toHomeeNode
to support better update handling (12cc3d1
) -
feat: add utility methods for getting nodes and atributes by id (
f43014c
) -
feat: support updating/adding nodes after receiving a 'nodes' message (
535602b
) -
feat: provide async disconnected event
await Homee.wait_until_disconnected()
can now be used to wait until the connection has been closed. (c019ef5
)
-
feat: port to websockets package (
1b578bc
) -
feat: raise unique exceptions while acquiring access token (
edac67b
)
Fix
-
fix: order of github release actions (
5592df0
) -
fix: deprecation in upload-artifacts action (
f89de1d
) -
fix: version number for current workflow (
47a786b
) -
fix: revert python-smantic-release to v7 (
4e56b3c
) -
fix: add package build to release action (
f6d3230
) -
fix: workflow checkout action (
75fb990
) -
fix: permissions for release workflow (
b063c91
) -
fix: release workflow 2nd try (
598e592
) -
fix: release workflow (
1d77638
) -
fix: Catch OS Level connection error (#14)
-
Remove expicit ping
Removing the ping-handler function and it's call, since websockets sends pings automatically and the function was causing async_io errors.
- Refine error handling and logging
Narrrow websocket exception hadnling to "ConnectionClosedError" from "ConnectionClosed" where feasible.
some logging changes
- expose attribute_map
Expose _attribute_map as public property, since it is used in hass-homee
- Tackle deprecations and lint warnings
- Replace typing.List with list
- remove unnecessary else:s
- use Callable from collections.abc
- refine logging
- log disconnect and reconnect once as per https://developers.home-assistant.io/docs/integration_quality_scale_index/
- use %s instead of f-strings in Log-statements as per HA style guide: https://developers.home-assistant.io/docs/development_guidelines/#use-new-style-string-formatting
-
fix typo
-
fix some nits
- make sure disconnect warning is only logged once.
- move logging of reconnect attempts to proper location.
- Deal with attributes without options
If trying to access options if the attribute has none leads to an error.
This fixes it.
- Now really deal with empty options
First attempt had a wrong idea.
- Add catch for OS ConnectionError
If a connection error throws at OS Level (e.g. 113 - No route to host), it was not caught. (06a15e4
)
-
fix: Fix error when HomeeAttribute has no options (#13)
-
Remove expicit ping
Removing the ping-handler function and it's call, since websockets sends pings automatically and the function was causing async_io errors.
- Refine error handling and logging
Narrrow websocket exception hadnling to "ConnectionClosedError" from "ConnectionClosed" where feasible.
some logging changes
- expose attribute_map
Expose _attribute_map as public property, since it is used in hass-homee
- Tackle deprecations and lint warnings
- Replace typing.List with list
- remove unnecessary else:s
- use Callable from collections.abc
- refine logging
- log disconnect and reconnect once as per https://developers.home-assistant.io/docs/integration_quality_scale_index/
- use %s instead of f-strings in Log-statements as per HA style guide: https://developers.home-assistant.io/docs/development_guidelines/#use-new-style-string-formatting
-
fix typo
-
fix some nits
- make sure disconnect warning is only logged once.
- move logging of reconnect attempts to proper location.
- Deal with attributes without options
If trying to access options if the attribute has none leads to an error.
This fixes it.
- Now really deal with empty options
First attempt had a wrong idea. (cbb67ae
)
-
fix: 'list' object is not an iterator & spaces in homee name (#11)
-
add function to get an update for an attribute
-
Change get_attribute to update_attribute and add update_node
-
Fix invalid state error
-
Add manual update functions to readme
-
fix list object is not an iterator
-
unquote homee_name
-
fix: Fix "'list' object is not an iterator" (#10)
-
add function to get an update for an attribute
-
Change get_attribute to update_attribute and add update_node
-
Fix invalid state error
-
Add manual update functions to readme (
87d90d1
) -
fix: fix version number in setup.py (
1f8fdb7
) -
fix: fix workflow and trigger release (
22e4c58
) -
fix: fix failure to reconnect on remote disconnect (#4) (
af09a42
) -
fix: fixed loop parameter in asyncio + tested (#1) (
1041e56
) -
fix: implement reconnects iteratively to avoid recursion problems (
52c2a6b
) -
fix: turn
on_reconnect
callback into coroutine (4fded37
) -
fix: reuse existing node, group and relationship instances after reconnect (
ead401b
) -
fix: improve ping handler shutdown (
5d69574
) -
fix: fix syntax and logic errors during reconnection (
b199f85
) -
fix: handle all exception types during authentication (
0da9005
) -
fix: remove legacy reconnection logic in
get_access_token
(52dd77a
) -
fix: fix unclosed client session error during authentication
Move the check of the access token to the top, so no client session is created if the token is still valid. (d7b5ca5
)
-
fix: decode strings in
HomeeGroup
(9db565e
) -
fix: fix exception handling bug that causes connection to close instantly (
050d1d0
) -
fix: fix websocket exceptions not getting handled correctly causing websocket to stay open (
624b383
) -
fix: add error handling to websocket receive and send handlers (
6e9f021
) -
fix: change value type in
set_value()
fromint
tofloat
(0974bac
) -
fix: use module relative imports (
4f33a6f
) -
fix: bump to v1.0.1 to avoid PyPI conflict (
573e700
)
Refactor
- refactor: remove unused import in model.py (
695b1f2
)
Style
Unknown
- Merge pull request #13 from Taraman17/dev
feat: change PyPi repo to pyhomee (4738828
)
-
Change workflow for pypi Trusted Publisher (
d85df53
) -
prepare change of pypi repo (
1c21a71
) -
Merge pull request FreshlyBrewedCode#31 from Taraman17/master
feat: Add parsing of users and devices. (df49ba0
)
- Merge pull request FreshlyBrewedCode#30 from Taraman17/master
fix: semantic release config (54b6004
)
- Delete setup.cfg
Delete the old config file. (b4ae220
)
- Update pyproject.toml
Config for writing version by semantic release (649867d
)
- Create pyproject.toml
Prepare new config for semantic release (be4105b
)
- Merge pull request #10 from FreshlyBrewedCode/master
Get fork up to date (2a01f0a
)
- Merge pull request FreshlyBrewedCode#29 from Taraman17/master
Add Support for warning message (92d3273
)
-
Merge branch 'FreshlyBrewedCode:master' into master (
3238a85
) -
Merge pull request FreshlyBrewedCode#28 from Taraman17/master
fix: deprecation in upload-artifacts action (3549088
)
- Merge pull request FreshlyBrewedCode#27 from Taraman17/master
setup new workflow again after fixes on pypi (b6b4ddf
)
-
setup new workflow again after fixes on pypi (
4cabdb1
) -
Merge pull request FreshlyBrewedCode#25 from Taraman17/master
fix: version number for current workflow (6d71930
)
- Merge pull request FreshlyBrewedCode#24 from Taraman17/master
fix: revert python-smantic-release to v7 (8784619
)
- Merge pull request FreshlyBrewedCode#23 from Taraman17/master
fix: add package build to release action (f282bd7
)
- Merge pull request FreshlyBrewedCode#22 from Taraman17/master
fix: workflow checkout action (7698e52
)
- Merge pull request FreshlyBrewedCode#21 from Taraman17/master
fix release workflow pypi token (fc93ce2
)
-
fix release workflow pypi token (
06d5103
) -
Merge pull request FreshlyBrewedCode#20 from Taraman17/master
fix: permissions for release workflow (99a38d2
)
- Merge pull request FreshlyBrewedCode#19 from Taraman17/master
fix: release workflow 2nd try (1b2a98e
)
- Merge pull request FreshlyBrewedCode#18 from Taraman17/master
fix: release workflow (7fe5760
)
- Merge pull request #17 from Taraman17/master
refactor: Change const classes to IntEnum, refactor code.
BREAKING CHANGE: Using IntEnum for constants.
Addressing members changed.
Corrected Names of following NodeProtocol entries:
WMBUS -> WM_BUS
HTTPAVM -> HTTP_AVM
HTTPNETATMO -> HTTP_NETATMO
HTTPKOUBACHI -> HTTP_KOUBACHI
HTTPNEST -> HTTP_NEST
IOCUBE -> IO_CUBE
HTTPCCU2 -> HTTP_CCU_2
HTTPUPN_P -> HTTP_UPN_P
HTTPNUKI -> HTTP_NUKI
HTTPSEMS -> HTTP_SEMS
SIGMA_ZWAVE -> ZWAVE_V3
HTTPWOLF -> HTTP_WOLF
HTTPMY_STROM -> HTTP_MY_STROM
Refactored code to make it python-standard-conforming:
Homee attributes, that changed names:
pingInterval -> ping_interval
reconnectInterval -> reconnect_interval
maxRetries -> max_retries
shouldReconnect -> should_reconnect
deviceId -> device_id
shouldClose -> should_close
Some methods are now public - the old private versions log deprecation warnings.
Raw data of Homee Classes is now accessible through the .raw_data public attribute i.s.o .raw_data
To update the raw data, the method .set_data(data) is used. (8a27aa0
)
-
tackle linter warnings part 3 - exceptions (
2aa0e07
) -
fix bug in update_attribute (
04202d7
) -
tackle linter warnings part 2 (
dafaf2d
) -
tackle linter warnings part 1 (
413ac86
) -
Use IntEnum for const classes (
895aa8c
) -
fix errors and add new constants from API (
b55bc5f
) -
Add logging of unsupported messages
This logs messages that are not understood by pymee, so we can see these and add support easier. (e519233
)