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
Bot developed in python, 100% open-source, compatible with Windows and Linux.

Bombcrypto Bot [Family JOW] Bot desenvolvido em python, 100% do código é aberto, para aqueles que tenham conhecimento validarem que não existe nenhum

Renato Maia 71 Dec 20, 2022
Who are we? We are the Hunters of all Torrent in this world.🗡️.Fork from SlamDevs

MIRROR HUNTER This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive. Repo la

Anime Republic 130 May 28, 2022
Telegram Bot For Screenshot Generation.

Screenshotit_bot Telegram Bot For Screenshot Generation. Description An attempt to implement the screenshot generation of telegram files without downl

1 Nov 06, 2021
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
Hack WhatsApp Account Easily(Android)

X-Whatsapp Hack WhatsApp Account Easily(Android) HOW TO RUN 👇 (Termux) pkg update && pkg upgrade pkg install python pkg install git git clone https:/

KiLL3R_xRO 72 Dec 21, 2022
AWS Workmail Migration Tool

WMigrate A tool for migrating AWS Workmail Users and Groups cross region and cross accounts. It also creates user and group aliases and adds the users

NK 1 Oct 27, 2021
An open source API to validate the EU Covid Certificates / Green Certificates

Open Covid Certificate Validator This an open source API to validate EU Digital COVID Certificates. It receives a COVID certificate and validates it u

Merlin Schumacher 47 May 30, 2022
THE BEST INSTAGRAM AUTO LIKER GET MORE FOLLOWERS WITH THIS AUTOMATION

Hi 👋 , I'm Anandhu Ashok Developer making awesome things for awesome people 🚀 Connect with me: THE BEST INSTAGRAM AUTO LIKER GET MORE FOLLOWERS WITH

Anandhu Ashok 3 Jul 26, 2022
Configure your linux server and check for vulnerabilities with serverlla

serverlla Configure your linux server and check for vulnerabilities with serverlla. Serverlla has a menu with options and allows you to configure your

Dylan Meca 10 Feb 01, 2022
An API Client package to access the APIs for NBA.com

nba_api An API Client package to access the APIs for NBA.com Development Version: v1.1.9 nba_api is an API Client for www.nba.com. This package is mea

Swar Patel 1.4k Jan 01, 2023
This script books automatically a slot on Doctolib in one of the public vaccination centers in Berlin.

BOOKING IN BERLINS VACCINATION CENTERS This python script books automatically a slot on Doctolib in one of the public vaccination centers in Berlin. T

17 Jan 13, 2022
A simple Python wrapper for the archive.is capturing service

archiveis A simple Python wrapper for the archive.is capturing service. Installation pipenv install archiveis Python Usage Import it. import archi

Ben Welsh 157 Dec 28, 2022
A pyrogram simple bot for Educational purpose.

A pyrogram simple bot for Educational purpose. To Learn More check at @PyrogramBot or on Documentation Mandatory variables API_ID - Get It From my.tel

SpamShield 10 Dec 06, 2022
Discord Bot that can translate your text, count and reply to your messages with a personalised text

Discord Bot that can translate your text, count and reply to your messages with a personalised text

Grizz 2 Jan 26, 2022
The official Discord Python framework for thenewboston blockchain.

Project Setup Follow the steps below to set up the project on your environment. Mac Setup Homebrew requires the Xcode command-line tools from Apple's

Bucky Roberts 18 Jul 15, 2022
Create CDK projects with projen

The Projenator: I'll be back! Description This is a CDKv2 project that takes the grind out of setting up new cdk projects/implementations by using aut

Andrew 2 Dec 11, 2021
Jupyter notebooks and AWS CloudFormation template to show how Hudi, Iceberg, and Delta Lake work

Modern Data Lake Storage Layers This repository contains supporting assets for my research in modern Data Lake storage layers like Apache Hudi, Apache

Damon P. Cortesi 25 Oct 31, 2022
Pybt: a BaoTa panel python sdk

About Pybt is a BaoTa panel python sdk. Pybt 是一个宝塔面板API的Python版本sdk封装库。 公司很多服务器都装了宝塔面板,通过宝塔来部署、安装、维护一些服务,服务器的数量上以后,导致了维护的不方便,这个时候就想使用宝塔提供的API来开发一个运维平台

Adam Zhang 9 Dec 05, 2022
Twitter Analysis of MIUUL CEO

Twitter Analysis of MIUUL CEO Business Problem I got last @mvahitkeskin 184 twee

Çağrı Karadeniz 6 Mar 12, 2022
An open-source, multipurpose, configurable discord bot that does it all

Spacebot is an open source discord bot that is designed to be fun, easy to use, and replace every other discord bot out there!! Feel free to add a star ⭐ to the repository to promote the project!

Dhravya Shah 41 Dec 10, 2022