Skip to content

Add WiZ security key support and local integration import - #1

Open
0x416d616e wants to merge 1 commit into
devfrom
ccr-652d978c-u19ohg
Open

0x416d616e wants to merge 1 commit into
devfrom
ccr-652d978c-u19ohg

Conversation

@0x416d616e

@0x416d616e 0x416d616e commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Newer WiZ firmware can be set to only accept verified controls, which
makes it reject unsigned setPilot commands (-32602). Commands then need
to be signed with the home security key from the WiZ app.

Store an optional signing key in the config entry and pass it to
pywizlight, which signs every request when it is set. Without a key,
commands stay unsigned, which works for homes that allow all controls.
The key can be entered when setting up a device manually, and changed
or removed with a new reconfigure step. It is redacted from
diagnostics.

The user step is now a menu that also offers importing the local
integration file exported from the WiZ app (format version 1.0). The
import adds the key to the configured devices listed in the file, and
starts discovery flows carrying the key and the WiZ app name for listed
devices that are not set up yet. This replaces pending discovery flows
without the key, including those of devices the network scan misses.
Device entries without a usable MAC address are skipped.

Entries updated by discovery or the manual step are reloaded by their
update listener when loaded, and reloaded right away otherwise.

Requires pywizlight with signing support (sbidy/pywizlight#216), which
is not released yet; the requirement still needs to be bumped.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

Newer WiZ firmware can be set to only accept verified controls, which
makes it reject unsigned setPilot commands (-32602). Commands then need
to be signed with the home security key from the WiZ app.

Store an optional signing key in the config entry and pass it to
pywizlight, which signs every request when it is set. Without a key,
commands stay unsigned, which works for homes that allow all controls.
The key can be entered when setting up a device manually, and changed
or removed with a new reconfigure step. It is redacted from
diagnostics.

The user step is now a menu that also offers importing the local
integration file exported from the WiZ app (format version 1.0). The
import adds the key to the configured devices listed in the file, and
starts discovery flows carrying the key and the WiZ app name for listed
devices that are not set up yet. This replaces pending discovery flows
without the key, including those of devices the network scan misses.
Device entries without a usable MAC address are skipped.

Entries updated by discovery or the manual step are reloaded by their
update listener when loaded, and reloaded right away otherwise.

Requires pywizlight with signing support (sbidy/pywizlight#216), which
is not released yet; the requirement still needs to be bumped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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