Skip to content

v1.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 30 Nov 23:35
· 8 commits to master since this release

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 via Homee.users and Homee.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
  • 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)
  • 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 and relationship 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() to HomeeNode 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
  • 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
  • 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

closes #7 (1a8dcc1)

  • 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() from int to float (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

  • style: remove old comments (b54e1d7)

  • style: reformat code with black (daf3e65)

Unknown

  • Merge pull request #13 from Taraman17/dev

feat: change PyPi repo to pyhomee (4738828)

feat: Add parsing of users and devices. (df49ba0)

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)

Add Support for warning message (92d3273)

fix: deprecation in upload-artifacts action (3549088)

setup new workflow again after fixes on pypi (b6b4ddf)

fix: version number for current workflow (6d71930)

fix: revert python-smantic-release to v7 (8784619)

fix: add package build to release action (f282bd7)

fix: workflow checkout action (7698e52)

fix release workflow pypi token (fc93ce2)

fix: permissions for release workflow (99a38d2)

fix: release workflow 2nd try (1b2a98e)

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)