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 cool discord bot, called Fifi

Fifi A cool discord bot, called Fifi This bot is the official server bot of Meme Studios discord server. This github repo is the code we use for the b

Fifi Discord Bot 3 Jun 08, 2021
Texting service to receive current air quality conditions and maps, powered by AirNow, Twilio, and AWS

The Air Quality Bot is generally available by texting a zip code (and optionally the word "map") to (415) 212-4229. The bot will respond with the late

Alex Laird 8 Oct 16, 2022
可基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本(支持多账号使用)签到列表: |爱奇艺|全民K歌|腾讯视频|有道云笔记|网易云音乐|一加手机社区官方论坛|百度贴吧|Bilibili|V2EX|咔叽网单|什么值得买|AcFun|天翼云盘|WPS|吾爱破解|芒果TV|联通营业厅|Fa米家|小米运动|百度搜索资源平台|每日天气预报|每日一句|哔咔漫画|和彩云|智友邦|微博|CSDN|王者营地|

每日签到集合 基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本 支持多账号使用 特别声明: 本仓库发布的脚本及其中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

87 Nov 12, 2022
This is the repository for HalpyBOT, the Hull Seals IRC Chatbot Assistant.

HalpyBOT 1.4.2 This is the repository for HalpyBOT, the Hull Seals IRC Chatbot Assistant. Description This repository houses all of the files required

The Hull Seals 3 Nov 03, 2022
Periodically check the manuscript state in the scholar one system and send email when finding a new state.

ScholarOne-manuscript-checker Periodically check the manuscript state in the scholar one system and send email when finding a new state. Parameters ne

2 Aug 18, 2022
A Discord bot made by QwertyIsCoding

QwertyBot QwertyBot A Discord bot made by QwertyIsCoding Explore the docs » View Demo . Report Bug . Request Feature About The Project This Discord bo

4 Oct 08, 2022
This is a discord bot, which tells you food recipes.

Discord Chef Bot You have a friend, familiy or other group / channel where the topic is the food? You cannot really decide what's for Saturday lunch?

2 Apr 25, 2022
Advanced and powerful Userbot written with telethon. ♥

Daisy-X-UB ☣️ The Most Super Powerfull UserBot ☣️ ⚡ †hê ∂αιѕу χ ⚡ Legendary AF Ꭰαιѕу χ This is a userbot made for telegram. I made this userbot with h

TeamDaisyX 31 Jul 30, 2021
A telegram bot that can upload telegram media files to anonfiles.com and give you direct download link

✯ AnonFilesBot ✯ Telegram Files to AnonFiles Upload Bot It will Also Give Direct Download Link Process : Fork This Repositry And Simply Cick On Heroku

Avishkar Patil 38 Dec 30, 2022
This Telegram bot allows you to create direct links with pre-filled text to WhatsApp Chats

WhatsApp API Bot Telegram bot to create direct links with pre-filled text for WhatsApp Chats You can check our bot here. The bot is based on the API p

RobotTrick • רובוטריק 17 Aug 20, 2022
Yok bentar lagi update Premium :( DI FOLLOW YA GUYS

SIMBF + PREMIUM PRINTAH PENGINSTALAN ON TERMUX $ pkg update && upgrade $ termux-setup-storage $ pkg install python $ pkg install git $ pip install bs4

Jeeck 21 Jan 14, 2022
An Python SDK for QQ based on mirai-api-http v2.

Argon 一个基于 graia-broadcast 和 mirai-api-http v2 的 Python SDK。 本项目适用于 mirai-api-http 2.0 以上版本。 目前仍处于开发阶段,内部接口可能会有较大的变化。 The Stasis / 停滞 为维持 GraiaProject

BlueGlassBlock 1 Oct 29, 2021
A robust, low-level connector for the Discord API

Bauxite Bauxite is a robust, low-level connector for the Discord API. What is Bauxite for? Bauxite is made for two main purposes: Creating higher-leve

1 Dec 04, 2021
A self-bot for discord, written in Python, which will send you notifications to your desktop if it detects an intruder on your discord server

A self-bot for discord, written in Python, which will send you notifications to your desktop if it detects an intruder on your discord server

LevPrav 1 Jan 11, 2022
The Best Multipurpose Discord Bot!

Polsu The Best Multipurpose Discord Bot! • Introduction • Screenshots • Setup • License Introduction Polsu is a Multipurpose Discord Bot. Polsu has a

Polsulpicien 1 Nov 09, 2021
The Fastest multi spambot of Telegram 🤞 🤞

Revil Spam Bot The Fastest multi spambot of Telegram 🤞 🤞 𝚂𝚄𝙿𝙿𝙾𝚁𝚃 🖤 ᴄʀᴇᴀᴛᴏʀ 🖤 ⚡ 𝓡𝓮𝓿𝓲𝓵 𝓗𝓾𝓷𝓽𝓮𝓻 𝔐𝔲𝔩𝔱𝔦 ẞø✞︎ ⚡ 𝓐 𝕾мοοτн 𝓐и∂ 𝕱

REVIL HUNTER 4 Dec 08, 2021
Unofficial WebApp for WhatsApp Web created in PyQt6

Unofficial WebApp for WhatsApp Web created in PyQt6 using PyQt6-WebEngine

Rafael Tosta Santos 126 Dec 20, 2022
GUI Pancakeswap V2 and Uniswap V3 trading client (and bot) MOST ADVANCE TRADING BOT SUPPORT WINDOWS LINUX MAC (BUY TOKEN ON LAUNCH)

GUI Pancakeswap 2 and Uniswap 3 SNIPER BOT 🏆 🥇 (MOST ADVANCE TRADING BOT SUPPORT WINDOWS LINUX MAC) (AUTO BUY TOKEN ON LAUNCH AFTER ADD LIQUIDITY) S

HYDRA 16 Dec 22, 2021
Python Client for Instagram API

This project is not actively maintained. Proceed at your own risk! python-instagram A Python 2/3 client for the Instagram REST and Search APIs Install

Facebook Archive 2.9k Dec 30, 2022
A PowerFull Telegram Mirror Bot.......

- [ DEAD REPO AND NO MORE UPDATE ] Slam Mirror Bot Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Interne

αвιנтн 2 Nov 09, 2021