• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zwave-js / zwave-js-ui / 20848380898
20%

Build:
DEFAULT BRANCH: master
Ran 09 Jan 2026 10:08AM UTC
Jobs 1
Files 69
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Jan 2026 10:07AM UTC coverage: 19.521% (-0.01%) from 19.532%
20848380898

push

github

web-flow
feat: add bypass option for association restrictions (#4512)

Z-Wave associations are currently blocked when certain compatibility
checks fail, including security class mismatches and unsupported command
classes. This prevents legitimate use cases where devices can work
around these restrictions (e.g., Fibaro FGKF-601 supports
per-association security mode configuration via parameter 29).

## Changes

### Backend (`api/lib/ZwaveClient.ts`)
- `addAssociations` now accepts `{ force: boolean }` option to bypass
association checks
- Logs warnings when associations are force-created
- Leverages upstream zwave-js controller support for forced associations

### Frontend (`src/components/dialogs/DialogAssociation.vue`)
- Adds "I know what I'm doing - bypass this check" checkbox for
bypassable errors
- Checkbox appears for these association check failures:
- `Forbidden_SecurityClassMismatch` - Devices have different security
classes
- `Forbidden_DestinationSecurityClassNotGranted` - Source node lacks
target's security class
- `Forbidden_NoSupportedCCs` - Target doesn't support source's command
classes
- Uses enum-based error detection (`canForceAssociation` computed
property)
- Enables ADD button when bypass is explicitly checked

### Frontend (`src/components/nodes-table/AssociationGroups.vue`)
- Passes `force` parameter through to backend API call

## UI Behavior

When attempting to create an association that fails compatibility
checks:

**Before:**
<img
src="https://github.com/user-attachments/assets/b85245c3-0884-4cbd-a692-e870e4a3dee2">

**After:**
A checkbox appears below the error message allowing expert users to
bypass the restriction with an explicit acknowledgment.

## Example

```javascript
// Backend API call with force option
await this.app.apiRequest('addAssociations', [
  sourceAddress,
  groupId,
  [targetAddress],
  { force: true }  // Bypass association checks
])
```

The upstream `Driver.controller.addAssociations()` method already
supports ... (continued)

334 of 443 branches covered (75.4%)

Branch coverage included in aggregate %.

0 of 19 new or added lines in 1 file covered. (0.0%)

4052 of 22025 relevant lines covered (18.4%)

1.14 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
19
0.0
0.0% api/lib/ZwaveClient.ts
Jobs
ID Job ID Ran Files Coverage
1 20848380898.1 09 Jan 2026 10:08AM UTC 69
19.52
GitHub Action Run
Source Files on build 20848380898
  • Tree
  • List 69
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • c1289e56 on github
  • Prev Build on master (#20779326840)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc