Skip to content

Releases: scriMillspaugh/sensorview-toolkit

MapView Editor v1.2.0

Choose a tag to compare

Device search (Ctrl+F)

Search across all maps by hex device ID — or by plain-language name when a database is loaded. Results jump to the map, center the view, and pulse the device. An empty search offers a same-map duplicate-ID check; adding or renaming to a duplicate ID warns without blocking.

MCP integration — let Claude build drawings

mcp_server.py is a Model Context Protocol server exposing editing tools to an AI assistant: list/read maps, add/move/remove devices, draw/delete zones, search, load .mvdb/.svdb, export, and a flip_devices_y repair tool. Tools speak image coordinates; coordinate-system flips are handled internally.

py -m pip install mcp
claude mcp add mapview -- py mcp_server.py

Live sync

The editor tracks a revision counter and the browser polls it — edits made by the MCP server (or any API client) appear in the open editor within ~2 seconds. Unsaved manual edits are never clobbered; the UI warns instead. Page refresh now restores the session.

Fixed: device markers rendered vertically mirrored

Device y is stored y-up in the .mvdb (same as zone WKT), but the editor had read it as y-down since 1.0.0 — every dot drew mirrored across the map's midline. Invisible while dots were anonymous; v1.1.0's labels exposed it. The editor now flips device y on read/write exactly as it does for zones. Stored data is untouched and stays SensorView-compatible. Devices placed with earlier versions of this editor were saved in the wrong frame — flip_devices_y repairs a map in one call.

Full details: CHANGELOG.md · docs/METHOD.md

🤖 Generated with Claude Code

MapView Editor v1.1.0

Choose a tag to compare

Read-only database labels

Load a SensorView database backup (.svdb, or a bare sensor.mdb) alongside the .mvdb to show plain-language device and zone names instead of raw hex IDs:

  • Names next to device markers, with a toolbar Labels show/hide toggle
  • Hover tooltips as Label (ID) — Model
  • Zone polygons show their zone name
  • Read-only label rows in the properties panel
  • Header badge reports match coverage (e.g. 42/45 devices matched)

Device-type dot colors & bigger dots

  • Dots are colored by device family — sensors, WallPods, power packs, power supplies, I/O interfaces, backbone — with a colorblind-safe palette and an on-map legend of the families present on the current floor
  • Dot radius now follows the map's own deviceScale setting (previously a fixed 5px), so markers are findable on large floorplans zoomed to fit

Safety

  • The database is opened read-only in its own temp directory and the connection is closed after reading — the source file is never modified, and the exported .mvdb is unchanged by this feature
  • The label feature needs the Microsoft Access Database Engine (same as the Label Editor); without it the tool shows a friendly message and map editing is unaffected

New endpoints: POST/GET/DELETE /api/labels. Full details in CHANGELOG.md and docs/METHOD.md.

🤖 Generated with Claude Code

Label Editor v1.1.0 (formerly Relabeler)

Choose a tag to compare

@scriMillspaugh scriMillspaugh released this 28 Jul 14:33

Note

Superseded — this tool is now the Label Editor.
The latest release is
Label Editor v1.2.0,
which ships as LabelEditor-v1.2.0.exe. Same tool, renamed and reorganized —
no change to how it reads, edits, or writes files.

If you are running this v1.1.0 build, its in-app "Labeling practices" link
points at a path that no longer exists. The document now lives at
label-editor/docs/LABELING.md.

Validation is now split into rules the BMS actually requires and recommendations
you can ignore, and the notes field is editable.

Full details: LABELING.md

Fixed

  • Zone names were capped at 20 characters; the column holds 50. One limit was
    applied to both tables, so valid zone names were rejected for 30 characters they
    didn't need. Limits are now per-kind, measured from the sensor.mdb schema:
    devices VARCHAR(20), zones VARCHAR(50), notes VARCHAR(200).

Changed

  • The floor-token check no longer blocks a write. It was a site convention
    ({BLDG}_{FLR}_{AREA}) enforced as hard as the real rules, which locked out
    anyone whose labels don't encode a floor in the second field. Now an advisory.
  • Hyphens are accepted. BACnet permits - as a delimiter; Acuity documents the
    underscore for nLight. Hyphens pass validation and raise an advisory.
  • Character validation now states the full BACnet restriction set — no spaces,
    symbols, slashes, math operators, or non-ASCII glyphs.
  • Advisories appear in their own block in the web UI and under NOTES in the CLI,
    which still exits 0.

Added

  • Notes are editable — UserComments on both devices and zones, 200 characters,
    free text. New Notes column in the table, an optional Notes column in the CSV
    template, and writes on Apply. Blank means unchanged; an unedited note is never
    rewritten. Length-checked only, since it isn't a BACnet object name.
  • LABELING.md — what the tools enforce versus what they recommend, with the
    schema evidence and a naming format that holds up in a BMS.

Why length validation matters

Access accepts an over-length write and silently truncates it — 30 characters in,
20 stored, no error raised. Truncation can also forge duplicates out of labels that
differed only past the cutoff. That is why the check happens before the write
rather than being left to the database.


Install

Download SensorViewRelabeler.exe, double-click, and it opens in your browser at
http://127.0.0.1:5000. Everything runs locally — your backup never leaves the PC.

  • Requires the free
    Microsoft Access Database Engine
    (64-bit), installed once per PC.
  • The exe is unsigned, so Windows SmartScreen may warn on first run — choose
    More info → Run anyway.

MapView Editor v1.0.1

Choose a tag to compare

A small cleanup on top of v1.0.0. No functional change to the editor — if
v1.0.0 is working for you, there is no need to re-download.

Changed

  • /api/version no longer returns repoPath. The field exposed the server's
    local filesystem path over the API and had no consumer — the header badge
    stopped displaying it in v1.0.0.

Everything else is identical to
v1.0.0.

Install

Download MapViewEditor.exe, double-click, and it opens in your browser at
http://localhost:5111. No Python and no extra dependencies.

The exe is unsigned, so Windows SmartScreen may warn on first run — choose
More info → Run anyway.

MapView Editor v1.0.0

Choose a tag to compare

Initial public release of the MapView Editor — a local, browser-based editor for
Acuity nLight SensorView .mvdb floorplan archives.

Everything runs on your own machine. Your export never leaves the PC, and the
original file is never modified — export always writes a new archive.

What it does

  • Floorplan canvas — pan and zoom, move/add/remove device markers, draw and
    reshape zone polygons, with a properties panel for device IDs, zone IDs, parent
    devices, and ports.
  • Map management — add, rename, and delete floor maps; replace floorplan PNGs.
  • Correct zone rendering — MapView stores zone polygons y-up while devices and
    the image are y-down. Zones are flipped on read and write, so they no longer
    render mirrored.
  • Lossless PNG optimization on export — indexed color when an image has ≤256
    colors, typically 55–60% smaller. Originals are kept whenever the optimized
    result would be larger.
  • Safe repack — the archive is rebuilt from the mapinfo index, so stray
    working files never end up inside it.
  • Version reporting — header badge, /api/version, and the startup banner.
    Git branch and commit are appended when running from a clone and omitted in the
    exe, where no repository exists.

Install

Download MapViewEditor.exe, double-click, and it opens in your browser at
http://localhost:5111. No Python and no extra dependencies — unlike the
Relabeler, this tool does not need the Access Database Engine.

The exe is unsigned, so Windows SmartScreen may warn on first run — choose
More info → Run anyway.

Notes

.mvdb files describe your building layout, so keep them off third-party
services. The editor binds to localhost and does all processing locally.

Format and pipeline details:
METHOD.md ·
Floorplan image guidance:
FLOORPLAN_STANDARD.md

Label Editor v1.2.0

Choose a tag to compare

The Relabeler is now the Label Editor. A rename and reorganization — nothing
changed about how the tool reads, edits, or writes your files. Upgrading is
optional; v1.1.0 keeps working.

Changed

  • Renamed to Label Editor. The tool folder is label-editor/, matching the
    MapView Editor convention. Release tags are now label-editor-vX.Y.Z; the
    earlier relabeler-v1.1.0 release stays as history.
  • The exe carries its version — LabelEditor-v1.2.0.exe instead of
    SensorViewRelabeler.exe. Two downloads in the same folder are now
    distinguishable without running them.
  • Entry point renamed app.py → server.py, matching the MapView Editor.
  • Documentation moved under label-editor/docs/. If you are running v1.1.0, its
    labeling link still works — a redirect was left at the old location.
  • The UI, --help, and --version all say "Label Editor".

Fixed

  • The example CSVs in examples/ were missing the Notes column, so they no
    longer matched the template the tool generates. Both templates now include it,
    with a note-only row showing that you can edit a note without renaming.

Install

Download LabelEditor-v1.2.0.exe, double-click, and it opens in your browser at
http://127.0.0.1:5000. Everything runs locally — your backup never leaves the PC.

  • Requires the free
    Microsoft Access Database Engine
    (64-bit), installed once per PC.
  • The exe is unsigned, so Windows SmartScreen may warn on first run — choose
    More info → Run anyway.

Labeling rules and the recommended naming format