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
A quick way to verify your Climate Hack.AI (2022) submission locally!

Climate Hack.AI (2022) Submission Validator This repository contains code that allows you to quickly validate your Climate Hack.AI (2022) submission l

Jeremy 3 Mar 03, 2022
A Python app to serve Conveyor room requests and run approvals through Slack

✨ CONVEYOR FOR SLACK ✨ This is a friendly little Python app that will allow you to integrate your instance of Conveyor with your Slack workspace. In o

Vivienne 4 Sep 27, 2021
A Telelgram Bot to Extract Text from an Image

Text-Scanner-OCR A Telelgram Bot to Extract Text from an Image Configs Vars API_KEY: Your API_KEY from OCR Space GROUP: Your Group Username without '@

ALBY 8 Feb 20, 2022
(unofficial) Googletrans: Free and Unlimited Google translate API for Python. Translates totally free of charge.

Googletrans Googletrans is a free and unlimited python library that implemented Google Translate API. This uses the Google Translate Ajax API to make

Suhun Han 3.2k Jan 04, 2023
RevSpotify is a fast, useful telegram bot to have Spotify music on Telegram.

RevSpotify A Telegram Bot that can download music from Spotify RevSpotify is a fast, useful telegram bot to have Spotify music on Telegram. ✨ Features

Alireza Shabani 12 Sep 12, 2022
iCloudPy is a simple iCloud webservices wrapper library written in Python

iCloudPy 🤟 Please star this repository if you end up using the library. It will help me continue supporting this product. 🙏 iCloudPy is a simple iCl

Mandar Patil 49 Dec 26, 2022
Credit Card And SK Checker Written In Python

Credit Card And SK Checker Written In Python

Rimuru Tempest 57 Jan 08, 2023
A Discord token grabber executing in a Microsoft Document.

🦊 Rage 🦊 Rage is a tool written in Python3 allowing you to inject a Python3 complete Discord token grabber (Riot) script in a Microsoft Document usi

Billy 73 Nov 03, 2022
StudyLion is a Discord bot that tracks members' study and work time while offering members to view their statistics and use productivity tools such as: To-do lists, Pomodoro timers, reminders, and much more.

StudyLion - Discord Productivity Bot StudyLion is a Discord bot that tracks members' study and work time while offering members the ability to view th

45 Dec 26, 2022
Most Simple & Powefull web3 Trade Bot (WINDOWS LINUX) Suport BSC ETH

Most Simple & Powefull Trade Bot (WINDOWS LINUX) What Are Some Pros And Cons Of Owning A Sniper Bot? While having a sniper bot is typically an advanta

GUI BOT 6 Jan 30, 2022
A simple Telegram bot which handles images in whole different way

zeroimagebot thezeroimagebot 🌟 I Can Edit Dimension Of An image which is required by @stickers 🌟 I Can Extract Text From An Image 🌟 !!! New Updates

RAVEEN KUMAR 4 Jul 01, 2021
Python script using Twitter API to change user banner to see 100DaysOfCode process.

100DaysOfCode - Automatic Banners 👩‍💻 Adds a number to your twitter banner indicating the number of days you have in the #100DaysOfCode challenge Se

Ingrid Echeverri 10 Jul 06, 2022
It is a useful project for developers that includes useful tools for Instagram

InstagramIG It is a useful project for developers that includes useful tools for Instagram Installation : pip install InstagramIG Logan Usage from In

Sidra ELEzz 14 Mar 14, 2022
A Python Client to View F1TV Content the right way

F1Hub is a terminal application running directly on your computer -- no connection to the website needed* *In theory. As of now, the F1TV website is needed for some content

kodos 3 Jun 14, 2022
PokemonGo-Bot - The Pokemon Go Bot, baking with community.

PokemonGo-Bot PokemonGo-Bot is a project created by the PokemonGoF team. Since no public API available for now, a patch to use HASH-Server was applied

3.8k Jan 08, 2023
Wordle-bot: A Discord bot to track you and your friends' Wordle scores.

wordle-bot A Discord bot to track you and your friends' Wordle scores, so you can see who's the best! To submit a score to wordle-bot, just paste the

Spencer Murray 8 Feb 16, 2022
VC-Music , Playing music without bot.

VC-Userbot A Telegram Userbot to play or streaming Audio and Video songs / files in Telegram Voice Chats. It's made with PyTgCalls and Pyrogram Requir

RioProjectX 8 Aug 04, 2022
Robot to convert files to direct links, hosting files on Telegram servers, unlimited and without restrictions

stream-cloud demo : downloader_star_bot Run : Docker : install docker , docker-compose set Environment or edit Config/init.py docker-compose up Heroku

53 Dec 21, 2022
ANKIT-OS/TG-SESSION-GENERATOR-BOTbisTG-SESSION-GENERATOR-BOT a special repository. Its Is A Telegram Bot To Generate String Session

ANKIT-OS/TG-SESSION-GENERATOR-BOTbisTG-SESSION-GENERATOR-BOT a special repository. Its Is A Telegram Bot To Generate String Session

ANKIT KUMAR 1 Dec 26, 2021
L3DAS22 challenge supporting API

L3DAS22 challenge supporting API This repository supports the L3DAS22 IEEE ICASSP Grand Challenge and it is aimed at downloading the dataset, pre-proc

L3DAS 38 Dec 25, 2022