Skip to content

Initial commit - #1

Merged
MarkParker5 merged 29 commits into
masterfrom
develop
Oct 7, 2026
Merged

MarkParker5 merged 29 commits into
masterfrom
develop

Conversation

@Hexa-Hexagon

Copy link
Copy Markdown
Collaborator

No description provided.

@Hexa-Hexagon Hexa-Hexagon self-assigned this Aug 27, 2026
Hexa-Hexagon and others added 12 commits August 28, 2026 10:57
…essage into unpair and added identify for v1 devices
…#2)

Bumps the python-deps group with 1 update: [zwave-js-server-python](https://github.com/home-assistant-libs/zwave-js-server-python).


Updates `zwave-js-server-python` from 0.73.0 to 0.73.1
- [Release notes](https://github.com/home-assistant-libs/zwave-js-server-python/releases)
- [Commits](home-assistant-libs/zwave-js-server-python@0.73.0...0.73.1)

---
updated-dependencies:
- dependency-name: zwave-js-server-python
  dependency-version: 0.73.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Comment thread majordom_zwave/controller.py Outdated
Comment thread majordom_zwave/controller.py Outdated
Comment thread .gitignore

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the gitignore should be changed, especially reduced so heavily

Comment thread pyproject.toml
Comment thread pyproject.toml
Comment thread README.md Outdated
Comment thread README.md

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the results of the manual testing with real hardware and a commercial device

dependabot Bot and others added 10 commits September 17, 2026 05:56
Bumps the python-deps group with 2 updates: [ruff](https://github.com/astral-sh/ruff) and [ty](https://github.com/astral-sh/ty).


Updates `ruff` from 0.16.6 to 0.16.7
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.16.6...0.16.7)

Updates `ty` from 0.0.78 to 0.0.80
- [Release notes](https://github.com/astral-sh/ty/releases)
- [Changelog](https://github.com/astral-sh/ty/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ty@0.0.78...0.0.80)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.16.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-deps
- dependency-name: ty
  dependency-version: 0.0.80
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- License under PolyForm Noncommercial, like the other integrations
- Bump zwave-js-server-python to 0.74 and dependencies with known vulnerabilities
- Add the release workflow
zwave-js's mock controller and devices behind a real zwave-js-server:
pairing (S2 PIN/DSK), state, commands, identify, availability,
reconnection and unpairing, including their failure paths.
Every command class zwave-js knows is hosted by a mock device, protocol
plumbing, or explained; each hosted one must map exactly as reviewed
against the parameter UX docs (names, buckets, units, main tile), pass
the SDK's parameter audit and round-trip its writable values. Mock
devices with every sensor, meter, notification, setpoint and mode
variant; drift checks for value types and units; sleeping-device, QR,
SmartStart, keypad and notification scenarios; a monthly canary on the
latest zwave-js, zwave-js-server and zwave-js-server-python.
- Provision SmartStart devices, unprovision them when unpaired
- Report keypad entries and codes, Notification CC events, remote
  dimming, low battery and radio tests as event parameters
- Curate the user bucket, hide unreviewed CCs, name values for people
- Write-only actions are buttons; settings of everyday CCs are settings
- Every zwave-js unit is mapped, converted or deliberately plain
- Read values back after an unconfirmed set
@MarkParker5

Copy link
Copy Markdown
Member

New

  • SmartStart: scanning a SmartStart QR code provisions the device; unpairing it removes the provisioning entry.
  • Events: keypad entries (and the entered code, hidden), Notification CC events with their details, remote dimming, low battery, radio test results.
  • Writable values are read back when the device didn't confirm a set.

Parameter UX (reviewed against the parameter UX docs for every command class)

  • Names are written for people ("Door", "Electric energy", "Heating setpoint"), unique per device.
  • A curated user bucket: no device shows more than 8 user parameters; diagnostics and config are settings; unreviewed command classes are hidden but still available to automations.
  • Write-only actions are buttons; every zwave-js unit is mapped, converted, or deliberately plain.

Coverage

  • Every command class zwave-js knows is either hosted by a mock device, protocol plumbing, or explained. Each hosted one must map exactly as reviewed, pass the SDK parameter audit, and round-trip its writable values.
  • Monthly canary against the latest zwave-js / zwave-js-server / zwave-js-server-python: new command classes, value types or units fail until they are supported.

@MarkParker5
MarkParker5 merged commit ca7d0cc into master Oct 7, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
release — 896b7a4c Deployed Oct 7, 2026 by MarkParker5 via Publish to PyPI #1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants