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
Forked from 0x36 on github who then rewrote the ida_kernelcache python framework

Forked from 0x36 on github who then rewrote the ida_kernelcache python framework. Sadly 0x36 doesn't seem to have push updates to the project and it took me a very long time to figure out why this wa

Turnerhackz1 6 Dec 13, 2022
Aria/qBittorrent Telegram mirror/leech bot

This is a Telegram Bot written in Python for mirroring files on the Internet to your Google Drive or Telegram. Based on python-aria-mirror-bot Feature

28 Dec 25, 2022
Pack up to 3MB of data into a tweetable PNG polyglot file.

tweetable-polyglot-png Pack up to 3MB of data into a tweetable PNG polyglot file. See it in action here: https://twitter.com/David3141593/status/13719

David Buchanan 2.4k Dec 29, 2022
Python wrapper for the Intercom API.

python-intercom Not officially supported Please note that this is NOT an official Intercom SDK. The third party that maintained it reached out to us t

Intercom 215 Dec 22, 2022
A discord bot for checking what linked profiles a user has to their Ubisoft account

ubisoft_discord_profiles A Discord bot for checking what linked profiles a user has to their Ubisoft account. This can be setup using an enviromental

Andrei 1 Dec 17, 2021
Zendesk Ticket Viewer is a lightweight commandline client for fetching and displaying tickets from a Zendesk account provided by the user

Zendesk Ticket Viewer is a lightweight commandline client for fetching and displaying tickets from a Zendesk account provided by the user.

Parthesh Soni 1 Jan 24, 2022
A part of HyRiver software stack for accessing hydrology data through web services

Package Description Status PyNHD Navigate and subset NHDPlus (MR and HR) using web services Py3DEP Access topographic data through National Map's 3DEP

Taher Chegini 51 Dec 10, 2022
A chatbot on Telegram using technologies of cloud computing.

Chatbot This project is about a chatbot on Telegram to study the cloud computing. You can refer to the project of chatbot-deploy which is conveinent f

Jeffery 4 Apr 24, 2022
Injector/automatic translator (using deepL API) for Tsukihime Remake

deepLuna Extractor/Editor/Translator/Injector for Tsukihime Remake About deepLuna, from "deepL", the machine translation service, and "Luna", the name

30 Dec 15, 2022
A Python module for communicating with the Twilio API and generating TwiML.

twilio-python The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio AP

Twilio 1.6k Jan 05, 2023
Python client library for Bigcommerce API

Bigcommerce API Python Client Wrapper over the requests library for communicating with the Bigcommerce v2 API. Install with pip install bigcommerce or

BigCommerce 81 Dec 26, 2022
Telegram Music Bot for YouTube/SoundCloud/Mixcloud

Telegram Music Bot Telegram Music Bot for YouTube/SoundCloud/Mixcloud This bot downloads and sends the audio when someone send a YouTube/SoundCloud/Mi

Calls Music 76 Jan 02, 2023
dex.guru python sdk

dexguru-sdk.py dexguru-sdk.py allows you to access dex.guru public methods from your async python scripts. Installation To install latest version, jus

DexGuru 17 Dec 06, 2022
Awslogs - AWS CloudWatch logs for Humans™

awslogs awslogs is a simple command line tool for querying groups, streams and events from Amazon CloudWatch logs. One of the most powerful features i

Jorge Bastida 4.5k Dec 30, 2022
Client library for accessing IQM quantum computers

IQM Client Client-side library for connecting to an IQM quantum computer. Installation IQM client is not intended to be used directly by human users.

IQM 10 Dec 21, 2022
Бот Telegram для Школы в Капотне (ЦО № 1858)

co1858 Telegram Bot Активно разрабатывался в 2015-2016 году как учебный проект, с целью научиться создавать ботов для Telegram. Бот автоматически парс

Ilya Pavlov 4 Aug 30, 2022
Fully automated YouTube Channel. Using Reddit and YouTube API.

Fully Automated YouTube Shorts Channel This code will show you how to setup and fully autmated YouTube Channel. Content is gathered from Reddit using

Jacob Lower 96 Dec 25, 2022
This is a simple program that uses Python and pyTwitchAPI to retrieve the list of users in a streamer's chat and then checks each one of these users to see if they follow the broadcaster or not

This is a simple program that uses Python and pyTwitchAPI to retrieve the list of users in a streamer's chat and then checks each one of these users to see if they follow the broadcaster or not

RwinShow 57 Dec 18, 2022
Python wrapper for CoWin API's

Cowin Tracker Python API wrapper for CoWin, India's digital platform launched by the government to help citizens register themselves for the vaccinati

Saiprasad Balasubramanian 43 Jun 11, 2022
OAN Music - Highly advanced User Music Bot

ཧᜰ꙰ꦿ➢𝐎𝐀𝐍༒☛ 🎧 Advanced 𝐎𝐀𝐍 Music bot. 🔗 𝐏𝐨𝐰𝐞𝐫𝐞𝐝 𝐛𝐲 : ➢𝐀ttitude

Attitude king 5 Feb 25, 2022