user documentation

Sensor Config Editor

Complete guide to configuring and managing sensor parameters using the web-based params.json editor.

Version 1.0  ·  params.json editor
Contents
01

Introduction

Sensor Config Editor is a browser-based application for editing the params.json configuration file, which describes a sensor network: devices, registers, rooms, value ranges, and notification schedules.

The editor runs entirely in the browser. No installation is required. All changes are held in memory and saved only when you explicitly export or push the file to a server.

What params.json contains The file describes: sensor states, report schedules, users and their contacts, room names, sensor types with units, value ranges, and a map of devices/registers linked to rooms, types, and ranges.
02

Getting started

Opening the editor

Open index.html in your browser (Chrome, Firefox, Edge, Safari) or go to the address provided by your administrator. No additional installation is needed.

Browser requirements Use a modern browser. Internet Explorer is not supported.

First launch

On first open, the editor loads with demo data from the params.json template. You can:

Saved preferences

The editor saves preferences in browser localStorage:

Important Config data is held only in memory and is not preserved when you close the tab. Always export or push to server before closing the browser.
03

Interface

Layout

ZoneDescription
Sidebar (left)Section navigation, copy/download buttons, theme and language toggles
TopbarCurrent section name, summary (devices · registers · users)
Work area (right)Current section content — cards, tables, forms

Navigation sections

SectionPurpose
Import JSONLoad a configuration file
DevicesManage devices and their registers
RoomsRoom list
Sensor typesSensor types and units
RangesAcceptable value ranges
SchedulesAutomated report schedules
UsersUser list and contacts
Export JSONView and download the final file
Server APIPush/pull config via HTTP

Mobile

On mobile the sidebar is hidden. Tap ☰ in the top-left to open it. It closes automatically when you select a section.

Sidebar footer buttons

ButtonAction
Theme (☀ / ☾)Cycle theme: auto → light → dark → auto
EN / RUSwitch interface language
CopyCopy current JSON to clipboard
DownloadDownload params.json to your computer
04

Import JSON

The Import JSON section lets you load an existing configuration file. Three methods are supported:

Method 1: drag and drop

1
Open the Import JSON section from the sidebar.
2
Drag your params.json from your computer into the dashed drop zone.
3
The zone highlights blue — release the file. The config loads automatically.

Method 2: file picker

1
Click the drop zone or the text inside it.
2
Your OS file dialog opens.
3
Select the file and click Open.

Method 3: paste JSON

1
Paste the file content into the «or paste JSON» field (Ctrl+V / Cmd+V).
2
Click Load JSON.
Required keys The file must contain all required keys: states, reports, users, rooms, types, ranges, params. If any are missing, a red error message will appear.
05

Devices & registers

The Devices section is the main working area. Each device is shown as a collapsible card. A summary at the top shows total devices, registers, rooms, and users.

Address format: HEX and DEC

Addresses are stored in hexadecimal. Switch the display between HEX and DEC using the toggle at the top of the section.

FormatExample
HEX0x08, 0x0003, 0x001c
DEC8, 3, 28
Switching format changes display only. The JSON file always stores addresses in HEX.

Register columns

ColumnValueHow to change
RegisterRegister addressSet at creation only
RoomWhich room this register belongs toDropdown list
TypeSensor typeDropdown list
RangeAcceptable value rangeDropdown list
NotifyWho gets notified on range breachClick user chips (blue = selected)
Delete registerDelete button

Adding a register

1
Click + add register at the bottom of the device card. A modal dialog opens.
2
Select the address format (HEX or DEC) using the toggle inside the dialog.
3
Enter the register address. A preview shows how the address will be stored. Green = valid and unique. Red = error or duplicate.
4
Select room, sensor type, and range from the dropdowns.
5
Optionally select notification users by clicking the name chips.
6
Click Add.

Adding a device

1
Click + add device at the bottom of the section.
2
Select address format and enter the device address (1 byte: 0x00–0xFF / 0–255).
3
Click Add. Then add registers to the new device card.
Deleting a device Click ✕ in the device card header and confirm. This removes the device and all its registers. The action cannot be undone — reload the original file to restore.
06

Rooms

Rooms are human-readable names that help identify which physical location a sensor register belongs to.

To delete a room, first reassign all registers that reference it in the Devices section.
07

Sensor types

A sensor type defines what a register measures. Each type has two fields:

FieldDescriptionExample
NamePhysical quantity nametemperature
SuffixUnit shown after the value °С, %, atm.
08

Ranges

A range sets the acceptable limits for a register. When a sensor value falls outside these limits, the system sends notifications to the selected users.

Each range has two optional fields: min and max. Leave a field blank to make the range one-sided:

FilledMeaning
min onlyAny value above min is acceptable
max onlyAny value below max is acceptable
BothValues between min and max are acceptable
Range indices (0, 1, 2…) are used as references in registers. Do not reorder ranges if registers are already configured without re-assigning them.
09

Report schedules

Schedules define the times of day when users receive automated reports on sensor status.

Schedule #0 The first schedule (index 0) is reserved and means «no reports». It cannot be deleted. Users assigned to schedule #0 receive no automatic notifications.

Adding a send time

1
Open the schedule card (not #0).
2
Click + time.
3
A time picker appears: two dropdowns for hours (00–23) and minutes (00–59). Select the desired time.
Always 24-hour format The time picker always uses 24-hour format (00:00 – 23:59) regardless of browser or OS locale settings.
10

Users

Users are contacts who receive notifications when sensor values go outside acceptable ranges.

FieldDescription
NameDisplay name (used in Devices section to select notification recipients)
PhonePhone number for SMS notifications
Report scheduleWhich report schedule applies to this user
11

Export JSON

The Export JSON section shows the current configuration as formatted JSON.

ButtonAction
CopyCopies JSON to clipboard. Button briefly shows «Copied!»
DownloadDownloads params.json to your computer

Both buttons are also available in the sidebar footer — accessible from any section without navigating here.

Addresses in the exported file are always written in HEX format (e.g. 0x08), regardless of the display mode selected in the editor.
12

Server API

The Server API section lets you load config from a remote server and save it back without manual file transfers.

Connection settings

FieldDescriptionExample
Server URLFull API endpoint addresshttp://192.168.1.100:8000/api/config
API KeySecret key sent as Bearer tokenmy-secret-key

Click 👁 next to the API Key field to show or hide the key. URL and key are saved to localStorage and restored on next open.

Buttons

ButtonMethodAction
GET configGETLoad config from server and apply it in the editor
POST configPOSTSend current config to server for storage

Status indicator

Idle
Waiting for action
Loading
Request in progress
Success
Operation completed
Error
Connection or auth problem
Authorization All requests include Authorization: Bearer <key> header. If no key is set, the header is omitted. Make sure the key matches the API_KEY in the server's .env file.
13

Theme & language

Theme

The theme button is in the sidebar footer. Cycles through:

ModeIconDescription
Auto☀ auto / ☾ autoFollows OS preference (light or dark)
LightForced light theme
DarkForced dark theme

Language

Click EN or RU in the sidebar footer. The interface switches immediately. The choice is saved in localStorage. On first open the language is determined by browser locale.

14

FAQ

Will my changes be lost on page refresh?

Yes. Config data is held in memory only and is not preserved between sessions. Always download the file or push it to the server before closing the tab.

Why can't I delete a room / type / range / user?

The item is used in one or more device registers. The warning modal lists all affected registers. Reassign those registers in the Devices section first, then retry deletion.

Why can't I delete a schedule?

The schedule is assigned to one or more users. The warning modal lists them. Reassign those users to a different schedule in the Users section first.

How do I enter address 0x0003 in DEC mode?

Enter 3. The editor automatically converts it to 0x0003 when saving.

I get a CORS error when connecting to the server

The server is not allowing requests from your origin. Ask the administrator to check the CORS_ORIGIN setting in the server's .env file. For development, CORS_ORIGIN=* allows all origins.

The Download button doesn't work

Make sure your browser is not blocking automatic downloads for this site. Allow downloads in browser settings. Alternatively, use the Copy button and paste the JSON into a text file manually.

Can I have multiple configs open at once?

Only in separate browser tabs. Each tab has its own independent config state.

How do I add a new device with no registers?

Use + add device, confirm, then the empty device card appears. Add registers to it with + add register.