Skip to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

0.1.4 dynamic profile fails on PG3x 3.4.25/IoX 6.1.2

Featured Replies

### Environment

- KiddeSmokeDet: 0.1.4 Standard / Production
- Branch: RELEASE260428
- PG3x: 3.4.25
- IoX: 6.1.2
- udi_interface: 3.4.7
- Controller: eisy
- Detector: Kidde DETECT / EssWFAC
- Node address: d1029477

### Problem

The dynamic JSON profile fails to load. The nodes are created and driver updates are successfully reported to PG3/IoX, but the IoX Admin Console cannot render the node definitions properly.

The Admin Console shows unresolved NLS labels such as:

[NLS-10:ND-setup-NAME]

and:

[NLS-10:ND-kiddealarm_v6_4-NAME]

The node detail panels are otherwise blank.

### Relevant log errors

At startup:

interface:updateJsonProfile: Sending profile update request to Polyglot.

interface:updateJsonProfile: Update profile request failed: No error message provided

nodes:_update_dynamic_profile: Dynamic profile update failed

RuntimeError: Update profile request failed: Unknown error

PG3 also displays:

Dynamic profile update failed. Check PG3x/IoX compatibility.

Using the PG3 "Load Profile" button, restarting the node server, closing the Admin Console, and reopening a fresh Admin Console does not resolve the issue.

### Node creation / ADDNODEDONE is working

The node lifecycle itself appears healthy after a clean reinstall.

The controller receives ADDNODEDONE:

nodes:handle_addnode_done: ADDNODEDONE received for controller node

The detector is then discovered and added as:

Adding node Log Cabin(d1029477)

PG3 subsequently returns the child node and the plugin logs:

nodes:handle_addnode_done: Applying deferred device update after ADDNODEDONE for d1029477

The plugin then successfully reports the detector drivers to PG3/IoX, including battery state, online status, model, life remaining, and last-seen time.

So this does not appear to be an ADDNODEDONE or node-address problem. The failure appears limited to the dynamic JSON profile/NLS loading.

### Smoke alarm test

Before deleting the trial installation and installing the perpetual license, I performed a real smoke test using canned smoke. At that time the Kidde nodes were rendering normally in the IoX Admin Console.

While the physical detector was alarming, the Kidde API returned:

"smoke_alarm": true

and the node server reported:

Kidde dataset refresh complete: devices=1 events=0 alarms=1

The Kidde Monitors controller alarm count changed to 1 in IoX and later returned to 0 when the alarm cleared.

The individual Log Cabin node did not show the alarm state during that test because the node server was still logging that updates were being deferred until ADDNODEDONE.

The command path did work: issuing Hush from the ISY mobile app successfully sent the Hush command through the node server to the physical detector.

After reinstalling KiddeSmokeDet under the perpetual license, the ADDNODEDONE lifecycle now completes correctly and the Log Cabin child node receives its driver updates. However, the dynamic JSON profile now fails to load, leaving unresolved NLS labels and blank node detail panels in the IoX Admin Console.

I have not repeated the smoke test since the perpetual reinstall because the current issue is the failed dynamic profile rendering.

Please let me know if there is additional debug output I can provide or another profile-loading method you would like me to test.
  • Author

Resolved — root cause was the IoX node-server database schema, not KiddeSmokeDet.

Environment:

  • IoX 6.1.2_7

  • PG3x 3.4.25

  • KiddeSmokeDet 0.1.4 Standard/Production

The Kidde node server was installed in slot 6. Its IoX node-server database:

NSDB_0010_0006.DB

was at:

PRAGMA user_version=0

while the other current node-server databases were schema version 2.

Dynamic JSON profile updates failed in IoX with:

SQL Error : Replacing editor in database failed : table Editor has no column named inlineNlstable

Comparing the v0 and v2 schemas showed that the slot-6 database was using the older NSDB structure and was missing multiple fields required by the current profile parser, including desc and inlineNls.

The slot-6 database contained no profile rows, so with IoX stopped I backed it up and replaced it with an empty schema-v2 NSDB. After restarting IoX and the unmodified KiddeSmokeDet 0.1.4 plugin, the dynamic profile loaded successfully:

Dynamic profile updated with 8 Kidde alarm nodedef variants

The slot-6 database then populated normally (9 NodeDef, 10 Editor, 100 NodeDefStatus, 9 AcceptsCommand), and the IoX Admin Console now renders the Kidde nodes and labels correctly.

So in this case the [NLS-10:...] rendering problem was caused by an obsolete IoX NSDB schema for that node-server slot, rather than by the KiddeSmokeDet profile definition itself.

I have retained the original slot-6 database and can provide additional schema/log details if useful.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.