Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration Roadmap #56

Open
42 of 67 tasks
cgarwood opened this issue Jan 21, 2021 · 24 comments
Open
42 of 67 tasks

Integration Roadmap #56

cgarwood opened this issue Jan 21, 2021 · 24 comments

Comments

@cgarwood
Copy link
Contributor

cgarwood commented Jan 21, 2021

Roadmap for the Z-Wave JS integration.
Note: for a list of all that is already supported see here.

Open Tasks

General

  • Complete certification requirements [Board]

Maintenance

  • PEP 655: Improve TypedDict typing #590
  • Refactor discovery so that discovery logic for each platform lives in each platform - use Matter as a reference
  • Explore using stateful metadata parameter for value notification discovery in device triggers

Platform support/features

  • set date/time entity (when support for this entity type is added)
  • add is_opening and is_closing support for covers [PR]
  • Ensure that when secure inclusion fails, the reason is passed back to the user in the UI
  • Handle inclusion initiated outside of HA

Service calls

None

Z-Wave control panel (UI)

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)
  • UI for managing node associations
  • Add support for changing wakeup time to config panel (separate CC from normal configuration)
  • add rfRegion to device info for controller node

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
  • Controller hard reset

Z-Wave JS ready, lib support missing

None

zwave-js support missing

None

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

  • Set configuration parameter service.
  • Poll node/value service.
  • Bulk set partial configuration parameter service.
  • Multicast support
  • Reset meters

UI

  • UI for updating node configuration settings
  • Adjust logging level of zwave-js server from UI
  • Subscribe to logs in the frontend
  • Node specific page
  • Log config update handling
  • Heal network
  • Show parameter number on node config page (most device manuals refer to parameter numbers instead of descriptions)
  • Heal node
  • Remove failed node
  • metadata comments (e.g. known issues with the device)
  • QR code (SmartStart) inclusion [2021.12]
  • Controller statistics [2022.6]
  • Node tx/rx statistics [2022.7]
  • Node Firmware Updates [2022.7]
  • Controller firmware updates [2023.3]
  • DSK only QR code support [2023.3]

General

  • Add sensor for node status (awake/asleep/dead/etc)
  • SoundSwitch (siren) support [2021.8]
    • Support setting default tone and volume [2021.9]
  • Device conditions (config parameter state, any value state, node status) [2021.8]
  • Device triggers for value notifications, notifications, and node status [2021.8]
  • Protection Command Class (select entity) [2021.9]
  • Automation triggers (non-device) for any value update [2021.9]
  • Device triggers for any value update [2021.9]
  • Device actions [2021.10]
  • Migration wizard from (deprecated) zwave integration [2021.10]
  • S2 support [2021.10]
  • Automatic firmware updates [2022.9]
  • Manual idling buttons for notification CC values [2023.5]
  • perform optimistic state updates for multilevel switch entities [2023.6]
  • improve Indicator CC support [2023.6]
  • Controller and node statistics sensors [2023.6]
  • config parameter entities [2023.6]
  • Add support for window covering CC [[2023.6]]
  • add support for Energy Production CC [[2023.6]]
  • Add "identify" event handler to generate a persistent notification in HA
  • Add a lastSeen sensor

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)
@firstof9

This comment was marked as resolved.

@AlCalzone
Copy link
Contributor

Some sort of UI for configuring complex device settings, like notifications for Inovelli switches

Might not be necessary. We use partial params for this. Bulk-setting them (if necessary) is on the TODO list

Refresh Node

Should clarify what this means. Users confuse this with node.refreshInfo where zwave-js restarts the interview from zero - which might not be what users expect.

Network visualization of the mesh (like ZHA)

Might be worth to join forces: zwave-js/zwave-js-ui#384

@marcelveldt
Copy link
Contributor

Refresh Node

Should clarify what this means. Users confuse this with node.refreshInfo where zwave-js restarts the interview from zero - which might not be what users expect.

Yeah, we should probably add some warning there if we create that UI.

@jurgenweber

This comment was marked as off-topic.

@marcelveldt

This comment was marked as outdated.

@thundergreen

This comment has been minimized.

@jurgenweber

This comment has been minimized.

@steve28

This comment was marked as off-topic.

@scadaguru

This comment has been minimized.

@AlCalzone

This comment was marked as outdated.

@jef-pearlman

This comment was marked as outdated.

@MartinHjelmare

This comment was marked as outdated.

@AlCalzone
Copy link
Contributor

@cgarwood @marcelveldt I'd add "configure polling" to the list. zwave-js doesn't do that automatically, because it should be used very sparingly.
To make legacy devices work, zwavejs2mqtt allows users to enable scheduled polling on a per-value basis.

@marcelveldt

This comment was marked as outdated.

@robertsLando

This comment has been minimized.

@marcelveldt

This comment has been minimized.

@robertsLando

This comment has been minimized.

@marcelveldt

This comment has been minimized.

@robertsLando

This comment has been minimized.

@GrizzlyAK

This comment has been minimized.

@marcelveldt

This comment has been minimized.

@AlCalzone

This comment was marked as outdated.

@marcelveldt

This comment was marked as outdated.

@robertsLando

This comment was marked as outdated.

@home-assistant-libs home-assistant-libs locked as off-topic and limited conversation to collaborators Feb 4, 2021
@cgarwood cgarwood pinned this issue Feb 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests