Python library to interact with a Z-Wave JS server.

Overview

zwave-js-server-python

Python library for communicating with zwave-js-server. Goal for this library is to replicate the structure and the events of Z-Wave JS 1:1. So it has a Driver, Controller and Node classes.

Trying it out

python3 -m zwave_js_server ws://localhost:3000

Or get the version of the server

python3 -m zwave_js_server ws://localhost:3000 --server-version

Or dump the state. Optionally add --event-timeout 5 if you want to listen 5 seconds extra for events.

python3 -m zwave_js_server ws://localhost:3000 --dump-state

Sending commands

try:
    result = await client.async_send_command({ "command": "start_listening" })
except zwave_js_server.client.FailedCommand as err:
    print("Command failed with", err.error_code)
Comments
  • How to ease migration to Z-Wave JS

    How to ease migration to Z-Wave JS

    Scope

    Issue to track ideas and problems for helping users migrate to Z-Wave JS from the other two older Z-Wave integrations in Home Assistant.

    • Please add your input in a new comment and we'll update the top post with important information.

    Known facts

    • Value id:s used in the integration entity unique_id are different between the 3 integrations, so we won't be able to use those. Entities can be matched using command class and endpoint/index values.
    • Battery nodes won't be picked up by z-wave js until they wake up for the first time after the migration (ozw would have had the same issue moving from zwave)
    • Command class support is different between the 3 integrations so some entities may not port over, or new entities will be discovered
    opened by MartinHjelmare 17
  • Make sure ValueNotification includes the latest event data

    Make sure ValueNotification includes the latest event data

    In #154 the order of operations for creating the ValueNotification was wrong and led to the value that came in the notification being returned as the value that we was previously in the state (see https://github.com/home-assistant/core/issues/47432). This fixes the order of operations.

    I could use some help writing some good test cases for this one, I don't think we have enough given all the issues that have occurred as we try to fix this

    opened by raman325 14
  • Add event model protocol

    Add event model protocol

    • Here's my take on library design model.
    • Please comment and criticize!
    • I've included just enough to show the concept I hope, based on the existing code. ~~- Names are hard. Eg I swapped Data for Gateway, but not sure about that one.~~

    Outline

    • The model package represents the pieces that together make up the Z-Wave network, controller and sent data.
    • The protocol enum and event handlers handles the actions of each model piece. What should happen when a message or event comes in to a piece in the model.
    opened by MartinHjelmare 12
  • Add configuration value tools and guard Node.async_set_value

    Add configuration value tools and guard Node.async_set_value

    A couple of changes in this PR:

    • There's a new Value subclass called ConfigurationValue which provides additional metadata about a configuration value.
    • Added node helper methods to get values for a specific command class and to get configuration values
    • Added guard logic to async_set_value for values that aren't writeable and for configuration values that are unbound in the metadata. Per AlCalzone, for unbound configuration values, we need to use the Configuration CC API directly instead of set_value which the library doesn't support yet

    I'm not sure if this is the best architectural approach to handle configuration values and am open to input there

    opened by raman325 9
  • Todos to finish before Home Assistant Core 2021.2.0b0

    Todos to finish before Home Assistant Core 2021.2.0b0

    Beta 0 will be released on January 27, 2021.

    • [ ] Fix light platform.
    • [x] https://github.com/home-assistant/core/issues/45284
    • [x] https://github.com/home-assistant/core/issues/45272
    • [x] Release add/remove node frontend part. https://github.com/home-assistant/frontend/pull/8174
    • [x] Update docs with recommended (for now) way to run the node server.
    • [x] Add add-on management in config flow.
    • [x] Release add-on.
    opened by MartinHjelmare 9
  • Update value ID schema from discussion

    Update value ID schema from discussion

    Before I go too much further, I wanted to ensure that everyone agrees with this approach per the discussion in #devs_zwave (https://discord.com/channels/330944238910963714/800356888827002880/816945787766308874). Assuming we are in agreement, I can work on updating tests and the corresponding changes in HA

    CC @AlCalzone @marcelveldt @MartinHjelmare

    breaking-change 
    opened by raman325 8
  • Increase max message size for dumps to support large networks

    Increase max message size for dumps to support large networks

    See https://discord.com/channels/330944238910963714/800356888827002880/893653844813299713 and https://github.com/zwave-js/zwavejs2mqtt/issues/1769 for context. We should push a new release with this change as upstream changes in a recent version of zwave-js caused the value list to increase significantly for some devices

    Will there be any issues on the HA side for large dumps? I took a look at the HomeAssistantView logic and I don't see any limits being applied.

    opened by raman325 7
  • Add utility function to bulk set partial config parameters

    Add utility function to bulk set partial config parameters

    This has been an in demand request for some time. The new function will either accept a raw integer value or a dictionary of {bitmask: value} and will convert the dictionary to the raw integer value before calling the node.set_value command. ~~The logic all works, what I am not sure of is if we can use node.set_value to bulk set parameters. I asked @petro to test this for me because I don't have any nodes with partial parameters~~ EDIT: Tests confirmed that we can in fact use node.set_value to bulk set parameters, so this PR is good to merge

    opened by raman325 7
  • Add hash magic method to driver, controller, nodes and values

    Add hash magic method to driver, controller, nodes and values

    As part of this discussion: https://github.com/home-assistant/core/pull/46673#discussion_r580845521 we realized that our representation for various models is not unique enough. This make controller, node, and value representations unique so they can be usefully hashed.

    Without this, you cannot use the zwave_js.set_config_parameter on entities from two different config entries with the same node ID

    opened by raman325 7
  • Fix handling node state

    Fix handling node state

    This fixes 2 issues:

    • On "node ready" event a full state of the node is dumped including values. The new values were not stored and thus HA discovery was failing when a new node was added to the mesh.
    • When a node is in the process of being added, first a partial node state is sent, missing most values. Once the interview progresses/completes these values come in. So basically all attributes for the Node model are optional to account for this behaviour.

    Fixes HA issue: https://github.com/home-assistant/core/issues/45631

    opened by marcelveldt 7
  • Handle reconnect to Z-Wave JS server

    Handle reconnect to Z-Wave JS server

    The client holds a driver object based on the initial received state. This object has listeners attached from Home Assistant.

    When we reconnect, the client now holds a driver object that no longer represents the latest state. We don't deal with this case.

    I can think of two options:

    1. We throw away the driverobject. Consumers of this lib will just have to re-initialize their stack + attach listeners. In the case of HA we would reload the config entry.
    2. We teach each model to update based on the latest state and add new events to indicate the consumer that they have to re-scan each model for latest data/values.
    opened by balloob 7
  • Feature Wishlist

    Feature Wishlist

    If you have a feature request that's not on the roadmap, add a comment here!

    Caveats:

    • This is open to all but not a support avenue, and support requests will be hidden as off topic
    • If you like an existing idea, add a +1 to that comment and do not add another one.
    opened by raman325 8
  • Add integration discovery schema tests

    Add integration discovery schema tests

    • Collect network dumps from all devices that have custom schemas. See the issues reported in the core repo.
    • Add tests for the discovery.py module in the integration and use the dumps to check that the schemas work.
    opened by MartinHjelmare 0
  • Add platinum quality scale level

    Add platinum quality scale level

    We almost qualify for the platinum level in the Home Assistant quality scale: https://developers.home-assistant.io/docs/integration_quality_scale_index

    Things left to do:

    • [ ] Add tests for light platform to reach plus average coverage ~96%. Remove the module from .coveragerc when done.
    • [ ] Add tests for sensor platform to reach plus average coverage ~96%. Remove the module from .coveragerc when done.
    • [ ] Update the quality scale item in manifest.json with "platinum" value.
    opened by MartinHjelmare 0
  • Integration Roadmap

    Integration Roadmap

    Roadmap for the Z-Wave JS integration. Note: for a list of all that is already supported see here.

    Remaining platform support/features

    Service calls

    Z-Wave control panel within Home Assistant (UI) for managing the Z-Wave nodes/network.

    • WS API Ready, awaiting frontend changes
      • [ ] Refresh Node (re-interview, refresh values, refresh CC values)
      • [ ] Replace Failed Node
      • [ ] Show node metadata on the device page (exclusion, inclusion, reset, wakeup, manual, device database URL)
      • [ ] Check for and install device config file updates
      • [ ] UI for managing node associations
      • [ ] Add support for changing wakeup time to config panel (separate CC from normal configuration)
    • Lib ready, WS API support missing
      • [ ] NVM backup and restore
      • [ ] Let users view, add, delete, and update provisioning entries
      • [ ] Node diagnostics (checking route health, testing power level, etc.)
      • [ ] Record events and commands, see options (in either case we can have a stop button to stop recording because we can see whether recording is enabled or not):
        • reload config entry after setting a parameter that tells the config entry to start recording when initializing the client during setup
        • Update the parameter live, downside is we miss past events
    • Z-Wave JS ready, lib support missing
    • zwave-js support missing
      • [ ] S2 multicast support
    • Unclear yet on what's needed
      • [ ] Some form of network health check, make it easier to point out dead nodes or nodes that are slow to respond or having communication failures.
      • [ ] Network visualization of the mesh (like ZHA)

    Note: Full configuration of the options are already available in the zwavejs2mqtt control panel.

    Other

    • [ ] Better documentation! (this will likely never be checked off unless and until the zwave-js project stops maturing)
    • [ ] Improve the Core config flow for add-on config options. Provide a list of USB devices to select device, and validate that security keys have the correct format.

    Finished

    • Services
      • [x] Set configuration parameter service.
      • [X] Poll node/value service.
      • [x] Bulk set partial configuration parameter service.
      • [x] Multicast support
      • [x] Reset meters
    • UI
      • [x] UI for updating node configuration settings
      • [x] Adjust logging level of zwave-js server from UI
      • [x] Subscribe to logs in the frontend
      • [x] Node specific page
      • [x] Log config update handling
      • [x] Heal network
      • [x] Show parameter number on node config page (most device manuals refer to parameter numbers instead of descriptions)
      • [x] Heal node
      • [x] Remove failed node
      • [x] metadata comments (e.g. known issues with the device)
      • [x] Controller statistics [2022.6]
      • [x] Node tx/rx statistics [2022.7]
      • [x] Node Firmware Updates [2022.7]
    • General
      • [x] Add sensor for node status (awake/asleep/dead/etc)
      • [x] SoundSwitch (siren) support [2021.8]
        • [x] Support setting default tone and volume [2021.9]
      • [x] Device conditions (config parameter state, any value state, node status) [2021.8]
      • [x] Device triggers for value notifications, notifications, and node status [2021.8]
      • [x] Protection Command Class (select entity?) [2021.9]
      • [x] Automation triggers (non-device) for any value update [2021.9]
      • [x] Device triggers for any value update [2021.9]
      • [x] Device actions [2021.10]
      • [x] Migration wizard from (deprecated) zwave integration [2021.10]
      • [x] S2 support [2021.10]
      • [x] QR code (SmartStart) inclusion [2021.12]
      • [x] Manual firmware updates [2022.7]
      • [x] Automatic firmware updates [2022.9]

    Obsolete

    • [ ] ~~Some sort of UI for configuring complex device settings, like notifications for Inovelli switches: https://nathanfiscus.github.io/inovelli-notification-calc/ or aeotec energy monitor reporting configs.~~ (solved by partial parameter service)
    • [ ] ~Migration wizard from ozw integration~ (based on current analytics and the low usage of the ozw component, we feel a migration wizard is significantly more effort than its worth)
    opened by cgarwood 24
  • consistent class and instance names

    consistent class and instance names

    We already had a few cases where the name "value" was confusing.

    Proposal:

    rename Node class to ZwaveNode and when referring to an instance of it, use zwave_node

    rename Value class to ZwaveValue and when referring to an instance of it, use zwave_value

    enhancement 
    opened by marcelveldt 0
Releases(0.43.1)
  • 0.43.1(Dec 2, 2022)

    What’s Changed

    • #528 - Bump zwave-js-server to 0.43.1 (@raman325)
    • #521 - Don't validate value on broadcast command (@raman325)
    • #522 - fix typing (@raman325)

    ⬆️ Dependencies

    17 changes
    • #527 - Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (@dependabot)
    • #526 - Bump pylint from 2.15.5 to 2.15.6 (@dependabot)
    • #525 - Bump flake8 from 5.0.4 to 6.0.0 (@dependabot)
    • #524 - Bump python-slugify from 6.1.2 to 7.0.0 (@dependabot)
    • #523 - Bump mypy from 0.982 to 0.991 (@dependabot)
    • #519 - Bump tox from 3.27.0 to 3.27.1 (@dependabot)
    • #517 - Bump tox from 3.26.0 to 3.27.0 (@dependabot)
    • #516 - Bump pytest from 7.1.3 to 7.2.0 (@dependabot)
    • #515 - Bump actions/upload-artifact from 3.1.0 to 3.1.1 (@dependabot)
    • #514 - Bump pylint from 2.15.4 to 2.15.5 (@dependabot)
    • #513 - Bump actions/download-artifact from 3.0.0 to 3.0.1 (@dependabot)
    • #512 - Bump release-drafter/release-drafter from 5.21.0 to 5.21.1 (@dependabot)
    • #509 - Bump pylint from 2.15.3 to 2.15.4 (@dependabot)
    • #511 - Bump actions/setup-python from 4.2.0 to 4.3.0 (@dependabot)
    • #510 - Bump mypy from 0.981 to 0.982 (@dependabot)
    • #508 - Bump black from 22.8.0 to 22.10.0 (@dependabot)
    • #507 - Bump actions/checkout from 3.0.2 to 3.1.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.43.0(Oct 3, 2022)

    What’s Changed

    • #504 - Bump zwave-js-server-python to 0.43.0 (@raman325)
    • #503 - Add support for zwave-js 10.3 and schema 24 (@raman325)

    ⬆️ Dependencies

    3 changes
    • #506 - Bump pytest-cov from 3.0.0 to 4.0.0 (@dependabot)
    • #505 - Bump mypy from 0.971 to 0.981 (@dependabot)
    • #502 - Bump aiohttp from 3.8.1 to 3.8.3 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.42.0(Sep 23, 2022)

    What’s Changed

    • #501 - Bump zwave-js-server-python to 0.42.0 (@raman325)
    • #495 - Allow upstream application to provide its user agent (@raman325)
    • #493 - Add new endpoint commands (@raman325)
    • #492 - Add missing parameters to node found event (@raman325)
    • #498 - Address review of InvalidServerVersion (@raman325)
    • #497 - Improve InvalidServerVersion exception and corresponding message (@raman325)
    • #489 - Pin github actions (@MartinHjelmare)
    • #488 - Bump pylint to 2.15.2 (@raman325)
    • #485 - Fix test assertions (@MartinHjelmare)
    • #484 - Clean pylint settings (@MartinHjelmare)
    • #483 - Run isort (@raman325)

    ⚠ Breaking Changes

    • #494 - async_get_state cmds return state instead of updating it (@raman325)
    • #487 - Drop python 3.8 support (@raman325)
    • #482 - Filter value ID dict data (@raman325)

    ⬆️ Dependencies

    5 changes
    • #500 - Bump codecov/codecov-action from 3.1.0 to 3.1.1 (@dependabot)
    • #499 - Bump pylint from 2.15.2 to 2.15.3 (@dependabot)
    • #496 - Bump release-drafter/release-drafter from 5.20.1 to 5.21.0 (@dependabot)
    • #491 - Bump pydantic from 1.10.1 to 1.10.2 (@dependabot)
    • #490 - Bump tox from 3.25.1 to 3.26.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.41.1(Sep 6, 2022)

    What’s Changed

    • #481 - Bump lib to 0.41.1 (@raman325)
    • #480 - Fix value updated logic (@raman325)

    ⬆️ Dependencies

    5 changes
    • #479 - Bump pydantic from 1.9.2 to 1.10.1 (@dependabot)
    • #478 - Bump colorlog from 6.6.0 to 6.7.0 (@dependabot)
    • #477 - Bump black from 22.6.0 to 22.8.0 (@dependabot)
    • #476 - Bump pytest from 7.1.2 to 7.1.3 (@dependabot)
    • #475 - Bump pylint from 2.14.5 to 2.15.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.41.0(Aug 27, 2022)

    What’s Changed

    • #474 - Bump version to 0.41.0 (@raman325)
    • #473 - Add support for zwave-js 10 (@raman325)

    ⬆️ Dependencies

    4 changes
    • #472 - Bump pydantic from 1.9.1 to 1.9.2 (@dependabot)
    • #471 - Bump flake8 from 5.0.2 to 5.0.4 (@dependabot)
    • #470 - Bump actions/setup-python from 4.1.0 to 4.2.0 (@dependabot)
    • #469 - Bump flake8 from 4.0.1 to 5.0.2 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.40.0(Jul 27, 2022)

    What’s Changed

    • #468 - Bump zwave-js-server-python to 0.40.0 (@raman325)
    • #465 - Add lib support to zwave-js 9.6.0 and upstream server changes (@raman325)
    • #464 - Always allow Basic CC during multicast set_value (@raman325)

    ⬆️ Dependencies

    7 changes
    • #467 - Bump mypy from 0.961 to 0.971 (@dependabot)
    • #466 - Bump pylint from 2.14.4 to 2.14.5 (@dependabot)
    • #463 - Bump actions/setup-python from 4.0.0 to 4.1.0 (@dependabot)
    • #461 - Bump tox from 3.25.0 to 3.25.1 (@dependabot)
    • #462 - Bump black from 22.3.0 to 22.6.0 (@dependabot)
    • #460 - Bump pylint from 2.14.3 to 2.14.4 (@dependabot)
    • #459 - Bump requests from 2.28.0 to 2.28.1 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.39.0(Jun 23, 2022)

    What’s Changed

    • #458 - Fix docstring (@raman325)
    • #457 - Bump zwave-js-server-python to 0.39.0 (@raman325)
    • #456 - Add support for new controller command (@raman325)

    ⬆️ Dependencies

    • #455 - Bump pylint from 2.14.1 to 2.14.3 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.38.0(Jun 19, 2022)

    What’s Changed

    • #454 - Bump lib to 0.38.0 (@raman325)
    • #453 - Add support for providing target for firmware (@raman325)
    • #452 - Add missing node.get_firmware_update_capabilities command (@raman325)
    • #446 - Add support for zwave-js 9.4 (@raman325)
    • #445 - Add support for node.get_firmware_update_progress command (@raman325)
    • #448 - Wait for result when aborting firmware update (@raman325)

    ⬆️ Dependencies

    3 changes
    • #450 - Bump pylint from 2.14.0 to 2.14.1 (@dependabot)
    • #449 - Bump requests from 2.27.1 to 2.28.0 (@dependabot)
    • #451 - Bump mypy from 0.960 to 0.961 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.37.2(Jun 11, 2022)

    What’s Changed

    • #447 - Bump zwave-js-server-python to 0.37.2 (@raman325)
    • #440 - Clean up tests (@raman325)
    • #441 - Fix firmware update logic (@raman325)
    • #438 - Add test coverage for remaining pydantic event models (@raman325)

    ⬆️ Dependencies

    3 changes
    • #444 - Bump actions/setup-python from 3 to 4.0.0 (@dependabot)
    • #439 - Bump pylint from 2.13.9 to 2.14.0 (@dependabot)
    • #437 - Bump mypy from 0.950 to 0.960 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.37.1(May 30, 2022)

    What’s Changed

    • #436 - Bump zwave-js-server-python 0.37.1 (@raman325)
    • #435 - Mypy performance fix (@cdce8p)
    • #433 - Update node and controller data when statistics are updated (@raman325)

    ⚠ Breaking Changes

    • #432 - Fix typos (@MartinHjelmare)
    • #434 - Pass Node instead of node ID into controller node commands (@raman325)
    Source code(tar.gz)
    Source code(zip)
  • 0.37.0(May 23, 2022)

    What’s Changed

    • #426 - Bump lib to 0.37.0 (@raman325)
    • #428 - Add model for controller inclusion aborted event (@raman325)
    • #421 - Update CheckConfigUpdates model (@raman325)
    • #415 - Add support for provisioning changes introduced in v9.2.1 (@raman325)
    • #424 - Get initial node statistics from state dump (@raman325)
    • #425 - Update RouteStatistics.as_dict (@raman325)
    • #422 - Switch RouteStatistics.route_failed_between from list to tuple (@raman325)
    • #420 - Add easy conversion to dict (@raman325)
    • #419 - Simplify any check (@raman325)
    • #418 - Validate command class on endpoint.invoke_cc_api command (@raman325)
    • #416 - Add py.typed (@MartinHjelmare)

    ⬆️ Dependencies

    6 changes
    • #430 - Bump pydantic from 1.9.0 to 1.9.1 (@dependabot)
    • #431 - Bump actions/upload-artifact from 3.0.0 to 3.1.0 (@dependabot)
    • #423 - Bump pylint from 2.13.8 to 2.13.9 (@dependabot)
    • #417 - Bump pylint from 2.13.7 to 2.13.8 (@dependabot)
    • #413 - Bump mypy from 0.942 to 0.950 (@dependabot)
    • #414 - Bump python-slugify from 6.1.1 to 6.1.2 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.36.1(Apr 30, 2022)

    What’s Changed

    • #412 - Bump lib to 0.36.1 (@raman325)
    • #411 - Fix invoke_cc_api bug (@raman325)

    ⬆️ Dependencies

    2 changes
    • #410 - Bump pylint from 2.13.5 to 2.13.7 (@dependabot)
    • #409 - Bump pytest from 7.1.1 to 7.1.2 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.36.0(Apr 23, 2022)

    What’s Changed

    • #408 - Bump lib to 0.36.0 (@raman325)
    • #397 - Add support for Multilevel Switch Notification (@reubenbijl)
    • #381 - Add support for zwave-js v9 (@raman325)

    ⬆️ Dependencies

    • #407 - Bump codecov/codecov-action from 3.0.0 to 3.1.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.35.3(Apr 21, 2022)

    What’s Changed

    • #406 - Bump zwave-js-server-python to 0.35.3 (@raman325)
    • #405 - Log a warning instead of raising for unrecognized notification CCs (@raman325)
    • #402 - Rename Association to AssociationAddress (@raman325)
    • #401 - Add repr, eq, and hash functions for Endpoint (@raman325)
    • #382 - Changes in controler association functions (@Dummy0815)
    • #393 - Fix release drafter breaking change label (@thecode)
    • #390 - Hide dependencies in release-drafter (@MartinHjelmare)
    • #388 - Fix LogMessageContextDataType typing (@raman325)

    ⬆️ Dependencies

    11 changes
    • #404 - Bump tox from 3.24.5 to 3.25.0 (@dependabot)
    • #403 - Bump pylint from 2.13.4 to 2.13.5 (@dependabot)
    • #400 - Bump codecov/codecov-action from 2.1.0 to 3.0.0 (@dependabot)
    • #399 - Bump pylint from 2.13.2 to 2.13.4 (@dependabot)
    • #398 - Bump black from 22.1.0 to 22.3.0 (@dependabot)
    • #395 - Bump pylint from 2.12.2 to 2.13.2 (@dependabot)
    • #394 - Bump mypy from 0.941 to 0.942 (@dependabot)
    • #392 - Bump mypy from 0.940 to 0.941 (@dependabot)
    • #391 - Bump pytest from 7.1.0 to 7.1.1 (@dependabot)
    • #386 - Bump mypy from 0.931 to 0.940 (@dependabot)
    • #385 - Bump pytest from 7.0.1 to 7.1.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.35.2(Mar 8, 2022)

    What’s Changed

    • #384 - Bump zwave-js-server-python to 0.35.2 (@raman325)
    • #383 - Handle node.isSecure = unknown (@raman325)
    • #380 - Bump actions/upload-artifact from 2.3.1 to 3.0.0 (@dependabot)
    • #379 - Bump actions/download-artifact from 2.1.0 to 3 (@dependabot)
    • #378 - Bump actions/setup-python from 2.3.2 to 3 (@dependabot)
    • #377 - Bump python-slugify from 6.0.1 to 6.1.1 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.35.1(Feb 22, 2022)

    What’s Changed

    • #374 - Bump the lib to 0.35.1 (@raman325)
    • #373 - Remove scripts package (@MartinHjelmare)
    • #372 - Make a copy of listeners (@bramkragten)
    • #371 - Fix compat device config type (@MartinHjelmare)
    • #370 - Bump python-slugify from 5.0.2 to 6.0.1 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.35.0(Feb 17, 2022)

    What’s Changed

    • #369 - Bump lib to 0.35.0 (@raman325)
    • #361 - Add strict validation via pydantic for all events (@raman325)
    • #368 - More refactoring (@raman325)
    • #367 - Refactor code (@raman325)
    • #366 - Bump pytest from 7.0.0 to 7.0.1 (@dependabot)
    • #365 - Bump pytest-aiohttp from 1.0.3 to 1.0.4 (@dependabot)
    • #363 - isort scripts folder (@raman325)
    • #362 - isort and clean up imports (@raman325)
    • #360 - Handle unrecognized notification types (@raman325)
    • #358 - Fix pytest-aiohttp deprecations (@MartinHjelmare)
    • #359 - Add comments to device config model for metadata (@raman325)
    • #357 - Bump pytest from 6.2.5 to 7.0.0 (@dependabot)
    • #356 - Bump actions/setup-python from 2.3.1 to 2.3.2 (@dependabot)
    • #354 - Update node state data when values get added/updated/removed (@raman325)
    • #355 - Bump black from 21.12b0 to 22.1.0 (@dependabot)
    • #353 - Bump pytest-aiohttp from 0.3.0 to 1.0.3 (@dependabot)
    • #352 - Bump pytest-timeout from 2.0.2 to 2.1.0 (@dependabot)
    • #350 - Update models for server schema 15 (@raman325)
    Source code(tar.gz)
    Source code(zip)
  • 0.34.0(Jan 19, 2022)

    What’s Changed

    • #349 - Bump lib to 0.34.0 (@raman325)
    • #343 - Add functionality to record messages between lib and server (@raman325)
    • #337 - Add new get state commands and update internal states accordingly (@raman325)
    • #341 - Add constants for Humidity Control CCs (@EiNSTeiN-)
    • #345 - Revert change to make Node subclass of Endpoint (@raman325)
    • #347 - Bump mypy from 0.930 to 0.931 (@dependabot)
    • #348 - Bump requests from 2.26.0 to 2.27.1 (@dependabot)
    • #346 - Add thermostat fan mode, off and state property constants (@EiNSTeiN-)
    • #344 - Refactor modules to shrink overall module size (@raman325)
    • #340 - Add script to run a mock server from a network state dump (@raman325)
    • #339 - Bump tox from 3.24.4 to 3.24.5 (@dependabot)
    • #338 - Bump mypy from 0.920 to 0.930 (@dependabot)
    • #328 - Add new commands and event handlers introduced in zwave-js 8.9.0 (@raman325)
    • #336 - Bump mypy from 0.910 to 0.920 (@dependabot)
    • #335 - Bump pytest-timeout from 2.0.1 to 2.0.2 (@dependabot)
    • #334 - Bump actions/upload-artifact from 2.3.0 to 2.3.1 (@dependabot)
    • #329 - Support additional properties for QRProvisioningInformation (@raman325)
    • #333 - Bump actions/upload-artifact from 2.2.4 to 2.3.0 (@dependabot)
    • #332 - Bump actions/download-artifact from 2.0.10 to 2.1.0 (@dependabot)
    • #331 - Bump pylint from 2.12.1 to 2.12.2 (@dependabot)
    • #330 - Bump black from 21.11b1 to 21.12b0 (@dependabot)
    • #327 - Bump actions/setup-python from 2.3.0 to 2.3.1 (@dependabot)
    • #326 - Bump pylint from 2.11.1 to 2.12.1 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.33.0(Nov 23, 2021)

    What’s Changed

    • #325 - Bump lib to 0.33.0 (@raman325)
    • #323 - Add controller.supports_feature cmd and additional validations (@raman325)
    • #324 - Bump black from 21.10b0 to 21.11b1 (@dependabot)
    • #322 - Bump actions/setup-python from 2.2.2 to 2.3.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.32.0(Nov 16, 2021)

    What’s Changed

    • #321 - Bump lib to 0.32.0 (@raman325)
    • #320 - Bump aiohttp from 3.8.0 to 3.8.1 (@dependabot)
    • #319 - Add unit sets for meters (@raman325)
    • #317 - Improve multilevel sensor constants script and add units map (@raman325)
    • #318 - Add support for Python 3.10 (@MartinHjelmare)
    • #316 - Remove time multisensor type from timestamp set (@raman325)
    • #315 - Handle upstream changes and new commands for Smart Start (@raman325)
    • #314 - Add context object to log message model (@raman325)
    • #313 - Bump black from 21.9b0 to 21.10b0 (@dependabot)
    • #312 - Bump aiohttp from 3.7.4.post0 to 3.8.0 (@dependabot)
    • #311 - Bump pytest-timeout from 2.0.0 to 2.0.1 (@dependabot)
    • #310 - Bump pytest-timeout from 1.4.2 to 2.0.0 (@dependabot)
    • #309 - Bump flake8 from 3.9.2 to 4.0.1 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.31.3(Oct 5, 2021)

    What’s Changed

    • #308 - Bump zwave-js-server-python to 0.31.3 (@raman325)
    • #307 - Disable max message size in WS client (@raman325)
    • #306 - Bump pytest-cov from 2.12.1 to 3.0.0 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.31.2(Oct 3, 2021)

    What’s Changed

    • #304 - Bump zwave-js-server-python to 0.31.2 (@raman325)
    • #302 - Add highest security class property to node (@raman325)
    • #305 - Support server side compression (@raman325)
    Source code(tar.gz)
    Source code(zip)
  • 0.31.1(Sep 22, 2021)

  • 0.31.0(Sep 22, 2021)

    What’s Changed

    • #298 - Bump min server version and lib version (@raman325)
    • #299 - Add constant for duration property (@raman325)
    • #294 - Bump pylint from 2.10.2 to 2.11.1 (@dependabot)
    • #297 - Wait for result when fetching lock usercodes (@raman325)
    • #296 - Bump tox from 3.24.3 to 3.24.4 (@dependabot)
    • #295 - Bump black from 21.8b0 to 21.9b0 (@dependabot)
    • #293 - Bump codecov/codecov-action from 2.0.3 to 2.1.0 (@dependabot)
    • #291 - Bump requests from 2.25.1 to 2.26.0 (@dependabot)
    • #292 - Bump pytest from 6.2.4 to 6.2.5 (@dependabot)
    • #290 - Bump python-slugify from 4.0.1 to 5.0.2 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.30.0(Sep 6, 2021)

    What’s Changed

    • #289 - Use "strategy" field name in controller inclusion (@kpine)
    • #282 - Add Multilevel Sensor CC scale enums and util functions (@raman325)
    • #287 - Fix typo in const module name (@raman325)
    Source code(tar.gz)
    Source code(zip)
  • 0.29.1(Aug 30, 2021)

    What’s Changed

    • #286 - Bump black from 21.7b0 to 21.8b0 (@dependabot)
    • #284 - Bump lib to 0.29.1 (@raman325)
    • #285 - Improve UnknownValueData exception messaging (@raman325)
    • #283 - Meter CC constant updates (@raman325)
    • #281 - Refactor constants (@raman325)
    • #280 - Bump codecov/codecov-action from 2.0.2 to 2.0.3 (@dependabot)
    • #277 - Add constants for wake up CC (@raman325)
    • #279 - Bump pylint from 2.9.6 to 2.10.2 (@dependabot)
    • #278 - Bump tox from 3.24.1 to 3.24.3 (@dependabot)
    • #276 - Rename energy meter type set (@raman325)
    • #275 - Change name of energy sensor type set (@raman325)
    Source code(tar.gz)
    Source code(zip)
  • 0.29.0(Aug 20, 2021)

    What’s Changed

    • #274 - Bump lib to 0.29.0 (@raman325)
    • #270 - Add CC specific utility functions (@raman325)
    • #273 - Remove dupe CC enum (@raman325)
    • #272 - Support schema 8 changes to zwave-js-server (@raman325)
    • #271 - isort test modules (@raman325)
    • #269 - Bump tox from 3.24.0 to 3.24.1 (@dependabot)
    • #268 - Bump pylint from 2.9.5 to 2.9.6 (@dependabot)
    • #267 - Add enums for sensor and meter types to match device class (@raman325)
    • #266 - Add additional constants for combined color value (@raman325)
    • #265 - Add additional constants (@raman325)
    • #263 - Bump pylint from 2.9.3 to 2.9.5 (@dependabot)
    • #264 - Bump codecov/codecov-action from 2.0.1 to 2.0.2 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.28.0(Jul 22, 2021)

    What’s Changed

    • #256 - Bump lib to 0.28.0 (@raman325)
    • #262 - Add support for new multicast commands and multicast setValue options (@raman325)
    • #257 - Update lock util functions to handle changes in zwave-js 8.0.0 (@raman325)
    • #261 - Bump codecov/codecov-action from 1.5.2 to 2.0.1 (@dependabot)
    • #260 - Add guards for Node.async_set_value (@raman325)
    • #259 - Bump tox from 3.23.1 to 3.24.0 (@dependabot)
    • #258 - Bump black from 21.6b0 to 21.7b0 (@dependabot)
    • #255 - Bugfix and code cleanup (@raman325)
    • #254 - Store heal network progress state (@raman325)
    • #253 - Store state of firmware update progress internally (@raman325)
    • #252 - Add new endpoint commands (@raman325)
    • #246 - Add controller/node statistics to model (@raman325)
    • #251 - Make node.endpoints a dict (@raman325)
    • #245 - Make Node a subclass of Endpoint (@raman325)
    • #250 - Add enum for Sound Switch CC toneId known values (@raman325)
    Source code(tar.gz)
    Source code(zip)
  • 0.27.1(Jul 11, 2021)

    What’s Changed

    • #248 - Bump lib to 0.27.1 (@raman325)
    • #249 - Update node's device_info property during a ready event (@kpine)
    • #247 - Handle value updated and added the same way (@raman325)
    • #244 - Bump pylint from 2.8.3 to 2.9.3 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
  • 0.27.0(Jun 28, 2021)

    What’s Changed

    • #243 - Bump lib version to 0.27.0 (@raman325)
    • #242 - add support for setValue options (@raman325)
    • #241 - Bump mypy from 0.902 to 0.910 (@dependabot)
    • #240 - Add support for Z-Wave JS 7.9 changes (@raman325)
    • #239 - Bump actions/upload-artifact from 2.2.3 to 2.2.4 (@dependabot)
    • #238 - Bump actions/download-artifact from 2.0.9 to 2.0.10 (@dependabot)
    • #237 - Bump mypy from 0.812 to 0.902 (@dependabot)
    • #236 - Bump black from 21.5b2 to 21.6b0 (@dependabot)
    • #235 - Bump codecov/codecov-action from 1.5.0 to 1.5.2 (@dependabot)
    • #234 - Bump pytest-cov from 2.12.0 to 2.12.1 (@dependabot)
    • #232 - Bump pylint from 2.8.2 to 2.8.3 (@dependabot)
    • #233 - Bump black from 21.5b1 to 21.5b2 (@dependabot)
    Source code(tar.gz)
    Source code(zip)
Owner
Home Assistant Libraries
Device libraries used by Home Assistant
Home Assistant Libraries
Python functions to run WASS stereo wave processing executables, and load and post process WASS output files.

wass-pyfuns Python functions to run the WASS stereo wave processing executables, and load and post process the WASS output files. General WASS (Waves

Mika Malila 3 May 13, 2022
GitPython is a python library used to interact with Git repositories.

Gitoxide: A peek into the future… I started working on GitPython in 2009, back in the days when Python was 'my thing' and I had great plans with it. O

null 3.8k Jan 3, 2023
A python library to interact with the EarnApp API

EarnApp.py Table of contents General info Documentation Setup General info A python library to interact with the EarnApp API. Documentation First, imp

null 3 Dec 14, 2022
Revolt.py - An async library to interact with the https://revolt.chat api.

Revolt.py An async library to interact with the https://revolt.chat api. This library will be focused on making bots and i will not implement anything

Zomatree 0 Oct 8, 2022
A library that revolutionizes the way people interact with NextDNS.

NextDNS-API An awesome way to interface with your NextDNS account - via Python! Explore the docs » Report Bug . Request Feature Table Of Contents Abou

null 34 Dec 7, 2022
Python API to interact with Uwazi

Python Uwazi API Quick Start To use the API install the requirements pip3 install -r requirements.txt and use it like this: uwazi_adapter = UwaziAdap

HURIDOCS 2 Dec 16, 2021
Autodrive is designed to make it as easy as possible to interact with the Google Drive and Sheets APIs via Python

Autodrive Autodrive is designed to make it as easy as possible to interact with the Google Drive and Sheets APIs via Python. It is especially designed

Chris Larabee 1 Oct 2, 2021
An async python wrapper to interact with the Steam API and its CMs

steam.py A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by discord.py and borrowing functionality fro

James Hilton-Balfe 90 Dec 15, 2022
Algofi Python SDK is useful for developers who want to programatically interact with the Algofi lending protocol

algofi-py-sdk Algofi Python SDK Documentation https://algofi-py-sdk.readthedocs.

Algofi 41 Dec 15, 2022
Stop writing scripts to interact with your APIs. Call them as CLIs instead.

Zum Stop writing scripts to interact with your APIs. Call them as CLIs instead. Zum (German word roughly meaning "to the" or "to" depending on the con

Daniel Leal 84 Nov 17, 2022
A small bot to interact with the reddit API. Get top viewers and update the sidebar widget.

LiveStream_Reddit_Bot Get top twitch and facebook stream viewers for a game and update the sidebar widget and old reddit sidebar to show your communit

Tristan Wise 1 Nov 21, 2021
Interact and easily use Google Chat room webhooks.

Chat Webhooks Easily interact and send messages with Google Chat's webhooks feature. This API is small, but should be a nice framework for working wit

BD103 2 Dec 13, 2021
This is a small package to interact with the OpenLigaDB API.

OpenLigaDB This is a small package to interact with the OpenLigaDB API. Installation Run the following to install: pip install openligadb Usage from o

null 1 Dec 31, 2021
A discord Server Bot made with Python, This bot helps people feel better by inspiring them with motivational quotes or by responding with a great message, also the users of the server can create custom messages by telling the bot with Commands.

A discord Server Bot made with Python, This bot helps people feel better by inspiring them with motivational quotes or by responding with a great message, also the users of the server can create custom messages by telling the bot with Commands.

Aran 1 Oct 13, 2021
Dns-Client-Server - Dns Client Server For Python

Dns-client-server DNS Server: supporting all types of queries and replies. Shoul

Nishant Badgujar 1 Feb 15, 2022
A bot to get Statistics like the Playercount from your Minecraft-Server on your Discord-Server

Hey Thanks for reading me. Warning: My English is not the best I have programmed this bot to show me statistics about the player numbers and ping of m

spaffel 12 Sep 24, 2022
This Server Cloner can clone the server you want with all the perms of roles in every particular channel.

Server-Cloner-with-perms ?? This Server Cloner can clone the server you want with all the perms of roles in every particular channel. Features Clone C

Gripz 0 Feb 17, 2022
A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes

A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes.

samet 4 Jul 23, 2022
Python Client Library to interface with the Phoenix Realtime Server

supabase-realtime-client Python Client Library to interface with the Phoenix Realtime Server This is a fork of the supabase community realtime client

Anand 2 May 24, 2022