wb-2609 changelog
Wiren Board vendor packages
atecc-util 0.4.13-wb101 → 0.6.0
ATECC508A/608A configuration utility based on cryptoauthlib
- Take the cross-stack chip lock for the whole run to serialize access with other cryptoauthlib users (such as the OpenSSL engine), and park the chip with a real Sleep on exit to wipe any latched fault state
- Port for Debian 13
libateccssl1.1 0.2.6-wb102 → 0.4.2
ATECC508A/608A engine for OpenSSL 1.1.x
- ateccssl: keep the engine's shared EC_KEY_METHOD (and ECDSA/pkey methods) for the process lifetime instead of freeing them in eccx08_finish; the method is a process singleton, and freeing it while an SSL_CTX still holds a key that references it is a use-after-free on teardown (fatal SIGSEGV on the OpenSSL 1.1 line, see 0.2.6-wb102; latent here under OpenSSL 3)
- cryptoauthlib: bump the bundled library to current master
- ateccssl: park the chip with Sleep instead of Idle at session end; latched chip states (RNG health-test 0x08, corrupted idle) no longer survive between sessions
- ateccssl: serialize all chip users with a robust shared-memory mutex (frozen name sourced from cryptoauthlib, publish-after-init creation)
- ateccssl: cure and retry once on a latched RNG health test instead of failing the session
- ateccssl: fix segfault from a half-built ECDSA_SIG on release failure
- ateccssl: fix memory leaks and a borrowed-EVP_PKEY free on the key and sign paths
- ateccssl: add runtime-toggleable diagnostics (ATECC_DIAG=1) and human-readable errors in the OpenSSL error queue
- cryptoauthlib: robust wake sequence (retries with backoff, cure of an abandoned-awake chip, drain of stale response frames)
- Port for Debian 13
libwbmqtt1-5 5.6.0-wb102 → 5.7.3
Wiren Board MQTT abstraction layer and utils library
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
libwbmqtt1-5-dev 5.6.0-wb102 → 5.7.3
Development files for libwbmqtt1
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
libwbmqtt1-5-test-utils 5.6.0-wb102 → 5.7.3
Development files for testing libwbmqtt1-based projects
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
modbus-utils 1.3.2 → 1.4.0
CLI utilities to work with Modbus devices
- Port for Debian 13
modbus-utils-rpc 1.2.5 → 1.3.2
Wiren Board modbus utility using RPC (python 3)
- Add bash completions
- Fix pylint
- Add response_timeout parameter to modbus_client_rpc
mqtt-tools 1.4.5 → 1.4.6
Command-line tools for MQTT
- mqtt-upload-dump: fix truncated last message in a dump without a trailing newline
- mqtt-upload-dump: don't hang on a dump containing no messages
python3-mqttrpc 1.3.5 → 1.3.9
Reference MQTT-RPC implementation
- Add bash completions
- Fix dependencies
- Fix dependencies, no functional changes
- Fix pylint
python3-wb-common 2.2.6 → 2.3.0
Wiren Board common library
- Port for Debian 13
- Adopt PEP440, update debhelper compat level
python3-wb-mcu-fw-updater 1.14.4 → 1.16.0
Wiren Board modbus devices firmware update and modbus bindings python libraries (python 3)
- update-all: update an outdated bootloader even when the firmware is already current, instead of only reporting it afterwards. The bootloader is checked first for every device; if the released one is newer it is flashed (which also re-flashes the released firmware, because a bootloader flash erases the app) without a separate prompt. Applying a bootloader that would roll the firmware or the bootloader back still requires --allow-downgrade; otherwise it is reported and nothing is flashed. A bootloader is only touched when a released firmware exists to restore the app. Devices found stuck in the bootloader get the released bootloader too, before their firmware is restored.
- bootloader updates: pick the actual version from the released boot/by-signature/release-versions.yaml (keyed by signature and the controller's release suite, testing or stable) and compare with the version in the device -- same source of truth as firmwares. update-bl now defaults to the release lookup instead of latest.txt.
- bootloader rollback now works like firmwares.
- recover: take the brute-force fw_signatures candidate list from release-versions.yaml instead of the fw_signatures.txt index, which is being retired. Only signatures with a released firmware are tried now (the rest could not be flashed back anyway), so recovering an unknown-signature device no longer prompts to pull an unreleased master build for every non-released signature
- update-all: skip devices with errors during update
serial-tool 1.2.4 → 1.2.5
interactive hex serial port console
- Report malformed hex input instead of crashing
- Validate data bits setting
- Do not enter interactive mode on an empty --batch argument
task-wb-base-system 1.20.9 → 1.21.0
Wiren Board base system packages
- Port for Debian 13
task-wb-common-pkgs 1.20.9 → 1.21.0
Wiren Board common packages
- Port for Debian 13
wb-ble-tesliot 1.1.3 → 1.1.4
TESLiOT BLE Sensors <==> MQTT bridge for Wiren Board.
- postinst: use try-restart and ignore restart failures
wb-cc2652p-flasher 1.1.0 → 1.2.0
Texas Instruments CC13xx/CC2538/CC26xx SoC firmware update utility
- Port for Debian 13
wb-cli 1.8.5 → 1.8.15
Command-line interface to a Wiren Board controller
- No functional changes. wb-plc plugin bumped to 1.13.2: new wb-serial reference i18n-naming.md — translation-key conventions shared by device templates and json-editor/confed schemas (the displayed English text is the key by default; synthetic keys for the template title and for long or shared strings), en/ru capitalization rules, and the config-key <-> translation-key <-> enum-value <-> label coherence check.
- wb-plc plugin bumped to 1.13.1. wb-serial diagnostics-deep: the response_timeout_ms / guard_interval_us line now cross-links to the wb-dev "Constants that mirror controller settings" rule. Follow-up to the wb-dev mirrored-constants PR.
- wb-plc plugin bumped to 1.13.0. wb-dev: new "Constants that mirror controller settings" section — a value owned by a controller/driver setting (port response timeout, baud rate, poll interval) must be read from its source or exposed as a service setting, not hardcoded; a field omitted from the owner's config means the owner's default applies (e.g. wb-mqtt-serial response_timeout_ms).
- wb-plc plugin bumped to 1.12.0. New wb-rca skill: root-cause investigation methodology for WB field problems and regressions — reproduce on a test stand, ground claims in git/upstream, A/B-test versions, prove, and file a proof-backed bug report; ships a worked-case reference (mosquitto #3192 counter-leak, systemd BindsTo). Also added the missing wb-mod-slots row to the README skills table.
- codestyle: bump submodule 9be03b5 -> 6162cb6 (remove embedded-team codestyle, pylint support for Python 3.13).
- wb-plc/wb-zigbee: fix converter-detection probe — unescape pipe in grep -E alternation (\| → |) so the probe correctly detects whether wb-mqtt-zigbee or wb-zigbee2mqtt is installed.
- wb-plc plugin bumped to 1.11.1. wb-serial template-format reference: the deprecated wb-mqtt-serial measurement control types (voltage, current, power, temperature, ...) are now flagged as deprecated in favour of type:"value" + units, the canonical example no longer uses "voltage", and the units guidance points at the conventions unit table (deg C, not the degree-symbol form). INT-1154.
- .gitmodules: codestyle submodule now uses an HTTPS URL instead of SSH. Claude Code installs the wb-plc plugin over HTTPS, so the SSH submodule failed with "Permission denied (publickey)" for anyone without a GitHub SSH key. codestyle is public, so HTTPS needs no auth.
- No functional changes. wb-plc plugin bumped to 1.11.0 (new skill wb-mod-slots: repurpose MOD slots via wb-hwconf-helper — raw UART or bit-banged I2C on slot pins, with per-board capability matrix and pinout). CI stage "Check version has bumped" requires a .deb release on every PR; follow-up to relax that for plugin-only changes.
- Fix serial wb-fw / fw-params "Validation failed": iter_devices now coerces a string slave_id to int and expands a register-code baud_rate (real/100, e.g. 96/1152) to the real rate before the RPC.
- serial wb-fw check: rewrite human-mode render. ERROR rows go to a dedicated `errors (N):` block with full untruncated messages; version cells with garbage from the RPC (raw bytes, S3 404 bodies) collapse to "?" instead of breaking the table.
wb-cloud-agent 1.8.1-wb100 → 1.8.2
Wiren Board Cloud agent
- Fix package removal when mosquitto is stopped
wb-configs 3.50.2-wb100 → 3.53.0
Default common config files for Wiren Board
- Remove obsolete rsyslog configs
- Fix installation of armhf libs on arm64 from trixie-backports
- Create ntpsec user after upgrade with FIT
- wb-configs-early: make config copies durable before removing originals (temp name + sync + atomic rename)
- Disable PMF for Wi-Fi access point for RTL8723BU
- Cleanup apt preferences
- Install libcurl4-openssl-dev from backports
- Fix mosquitto override config
- postinst: use try-restart and ignore restart failures
- Remove obsolete lirc and nfc configs
- Create missed users after upgrade with FIT
- Move services overrides from /etc to /usr/lib
- Move ssh host keys generation from wb-utils
- Remove debian-upstream.list
- Fix fix_nm_ap_ssid.sh
- Port for Debian 13
wb-dauerhaft-pro added 1.0.7
Wiren Board MQTT driver for Dauerhaft PRO RS-485 actuators
wb-device-manager 1.25.4 → 1.25.5
Wiren Board modbus devices manager
- Fix pylint
wb-diag-collect 1.9.8 → 1.10.2
Wirenboard collector of data and logs
- Increase wb-release log lines count to 5000
- Add /etc/wb-mqtt-snmp.conf
- Port for Debian 13
wb-ec-firmware 2.1.1 → 2.3.1
Wiren Board Embedded Controller firmware and installer
- revert internal VBAT charging: the charging algorithm doesn't work as needed
- remove VBAT voltage and charging status from regmap
- Port for Debian 13
- add VBAT charging
- add VBAT voltage to regmap
- add VBAT charging status to regmap
wb-essential 1.20.9 → 1.21.0
Wirenboard essential packages
- Port for Debian 13
wb-homeui-backend 2.208.1-wb102 → 2.248.1
Wiren Board Web UI web interface
- Rename factory reset buttons
- Add error state display for devices
- Rename unixtime control type to local_time
- Fix device card expanding on hover when the cell history icon appears
- Temporarily disable custom column layout when a device type filter is active
- Show the terminal on-screen key panel only on devices without a physical keyboard: it was shown on any touch-capable machine, a touchscreen laptop included
- Add user role description
- Fix emoji rendering in rules console
- Add emoji font fallbacks to the CSS font stack
- Add "Ctrl + `" global shortcut to toggle the console panel
- Persist console panel open/close state and active tab across page reloads
- Fix info popup's transparency
- Add custom font management for SVG dashboards
- Ask for confirmation before rereading device settings when they have unsaved changes, instead of discarding the entered values without a question
- Fix a needless login prompt when opening the controller over HTTP: the session was checked before the redirect to HTTPS, on the host whose cookie does not apply
- Show the loader during the HTTPS check only if it takes longer than a second, and name the certificate issuing separately from the check itself
- Do not fall back to an unencrypted connection once the switch to HTTPS has started: going back to the HTTP page restarts the switch instead of serving the app there
- Fix create first user logic
- Fix create first user flow without setup https
- Fix DALI bus monitor showing a reply that never arrived or arrived corrupted as a successful value: "no response" and framing errors are now marked as errors
- Keep 2000 lines in the DALI bus monitor instead of 500
- Fix broken result of DALI manual commands for which the absence of a reply is itself an answer: such commands now show "no response" plus the decoded value
- Fix channel patterns like +/+ disappearing from MQTT history settings
- Show "Nothing found" in dropdowns instead of an empty box
- Fix cell fraction after zero
- Fix disabled input background
- Fix scroll on logs page: filters stick at the top, only log entries scroll
- Fix active tab background in JSON editor (config pages)
- Improve disabled switch contrast in dark theme
- Use monospace font in console panel update component
- Validate theme value from localStorage against Theme enum
- Let cloud tunnels through service gates from loopback
- Exempt cloud tunnel requests from the service gate rate limit
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Add sorting to text dashboards and devices
- Add terminal
- Recreate wb-webui.conf and wb-homeui-backend.conf on startup if the existing file is empty
- Remove Wiren Board Cloud branding from Russian cloud status strings
- Fix History page not loading device topics on direct navigation
- Fix collapsing serial port selecting port tab instead of keeping device tab selected
- Fix duplicate devices created when re-scanning the serial bus after adding devices without saving
- Add opt-in new json-schema-editor for configs via the wb-json-editor flag
- Update autocomplete snippet
- Fix collapsing colour temperature slider in DALI bus editor
- Update completions
- Fix colour temperature limits in DALI group and broadcast editors
- Fix history load on page refresh
- Fix history update info on static filter
- Fix svg relayout of svg dashboards
- Fix svg dashboards
- Add DALI group to devices filter
- Add custom template tag
- Repair default dashboards poisoned by the 2.237.0-2.238.0 baseline migration bug: force-sync a known-poisoned baseline hash to the current default regardless of live content
- config editor: keep the vertical tab list readable when the form is short
- fix device name translations
- json-schema-editor: add readme
- Support external menu links: custom-menu items can carry isExternal, openInNewTab and requiredRole; a safe post-login external return
- Add service gates: one JSON in gates.d (package-installed in /usr/share, admin-owned in /etc/wb-homeui, /etc wins on a name clash) puts a loopback service behind the homeui login; nginx configs and menu items are rendered by the backend and follow the effective HTTPS mode, with nginx -t validation and rollback (wb-homeui-gates CLI to check/apply)
- Raise the /auth/check rate limit to 1000 req/min per client and cache gate auth answers in nginx; per-IP limit_req (900/min) on gate ports
- Fix Zigbee devices being grouped under Modbus in the devices filter
- Serve the main UI over TLS whenever the certificate file loads, even when expired (browser warns, channel stays encrypted). Fall back to HTTP only when the file is missing or unreadable and reissue fails; HTTPS returns automatically once a usable certificate is written. Certificate writes are atomic.
- Pin logout/console buttons in menu
- Fix colors
- Request an HTTPS certificate immediately when enabling HTTPS in settings, and fix the certificate status banner getting stuck on a stale status
- Add themes
- Reconcile default dashboards seeded before baseline hashing existed: sync unrenamed ones to the current default instead of permanently treating them as user-edited
- Custom menu: read drop-ins from three per-origin dirs (package /usr/share, generated /var/lib, user /etc/wb-homeui/custom-menu) and persist /etc/wb-homeui across firmware updates via wb-configs
- Fix datetimepicker select logic
- Keep device name and MQTT id when switching device template
- wb-dynamic-type: update options keys
- Scroll to active dropdown option on open
- Fix HTML in json-editor schema descriptions
- Remove typo
- Fix device icon on mobile resolution
- Fix install
- Add bash completions
- Fix mosquitto override config
- Show the firmware-update banner when only a newer bootloader is available
- Serve dashboards from the HTTP backend (wb.homeui_backend) instead of confed: a lightweight index without inline SVG, lazy per-dashboard SVG GET, and atomic PUT writes that preserve inline svg.current
- Move board detection, initial config seeding and default-dashboard reconciliation into the backend service; drop generate-system-config.sh
- Switch the dashboards UI to the HTTP backend (lazy SVG, load/SVG error states) and remove the now-unused wb-webui.conf confed schema
- Make the config editor tab list scroll on its own
- rules: update autocompletes
- Fix wb-dynamic-type field resetting saved color and text on scenario reopen
- Add wb-dynamic-type json-editor widget for scenario output value
- Encode special characters in rule editor URLs
- DALI: keep renamed device names on page load instead of overwriting them with a retained scan result
- Fix the rule's opening with slashes
- Add logs filters to url
- Fix json editor responsive table width
- Add drawer component
- Move widget modals to drawer
- Add widget edit prevent close logic
- Pin add control button
- Fix mosquitto ACL file permissions
- DALI: render the bus monitor as a global console tab with address filter and save-to-file
- DALI: add a per-bus "Save to syslog" toggle
- Add Claude Code agent guidance (CLAUDE.md) and project rules
- Add backend dev tooling config (pyproject, requirements, venv bootstrap)
- Refactor console panel to a per-tab toolbar and content API
- Device name in tab list (device manager)
- Add console tabs overflow logic
- Disable button on loading
- Add split parameter for on_off capability in the Alice integration page
- Add retrievable option for capabilities and properties
- Add reportable option for capabilities and properties
- Fix CellAlert test to expect success variant for falsy value
- Fix displaying read errors for alarm controls
- Add tests
- Fix json-editor horizontal tabs
- Add posibility to disable widget cell
- Fix alice errors on save
- Fix DALI colour temperature slider to follow the device's current Coolest/Warmest limits live. The slider steps in 100 K.
- Fix rule prevent leave on save
- Fix edit with dropdown
- Fix json-editor's default enum translations
- Update ci
- Fix searching for a disconnected device: the found device is now selectable, so its connection settings (e.g. baud rate) can be re-applied
- Add page name in title
- Add a device type filter and icons to the Devices page
- Fix logout return state url
- Add popup component
- Add rule edit prevent leave page hook
- Add return button to history page
- Fix history mobile layout
- Fix endless loader on device scan add
- Device manager — add disabled device icon and tooltip
- Add second password field to approve current password
- Add restore password link to login page
- Use pre-defined DH group ffdhe2048 recommended by the IETF
- Add mode capability to the Alice integration page
- Require nodejs>=22
- Port for Debian 13
- Move from angular to react
- Move from webpack to vite
- Update routes
- Add help link to page header
- Update json editor styles
- Fix all typescript and eslint errors
- Fix default svg colors
- Hide dropdown arrow for readonly fields on DALI settings page
- Fix DALI device scenes settings editor scroll bug
- Fix pylint
- Add select ability for autocomplete fields
- Upgrade logs page
- Refactor Alice device-capabilities by splitting it by capability type
- Make Alice capability labels clickable
- Update config editor page
- Add toggle capability to the Alice integration page
- Ask for confirmation before rebooting the controller from the device panel
- Add DALI bus manual command entry with catalog and autocomplete
- Add Kelvin input to DALI color temperature editor
- Fix missing title and description for autocomplete fields
- Return tests for fw-utils
- Update system page
- Move update/reset process logs to console component
- Unify autocomplete fields
wb-hwconf-manager 1.71.6 → 1.72.2
Provides infrastructure for hardware re-configuration via Device Tree overlays
- Add util-linux-extra to dependencies
- Fix dependencies
- Port for Debian 13
wb-mcu-fw-flasher 1.6.1 → 1.7.1
Firmware update tool for Wiren Board Modbus devices (WB-M*)
- Edit README.md
- Port for Debian 13
wb-mcu-fw-updater 1.14.4 → 1.16.0
Wiren Board modbus devices firmware update tool (python 3)
- update-all: update an outdated bootloader even when the firmware is already current, instead of only reporting it afterwards. The bootloader is checked first for every device; if the released one is newer it is flashed (which also re-flashes the released firmware, because a bootloader flash erases the app) without a separate prompt. Applying a bootloader that would roll the firmware or the bootloader back still requires --allow-downgrade; otherwise it is reported and nothing is flashed. A bootloader is only touched when a released firmware exists to restore the app. Devices found stuck in the bootloader get the released bootloader too, before their firmware is restored.
- bootloader updates: pick the actual version from the released boot/by-signature/release-versions.yaml (keyed by signature and the controller's release suite, testing or stable) and compare with the version in the device -- same source of truth as firmwares. update-bl now defaults to the release lookup instead of latest.txt.
- bootloader rollback now works like firmwares.
- recover: take the brute-force fw_signatures candidate list from release-versions.yaml instead of the fw_signatures.txt index, which is being retired. Only signatures with a released firmware are tried now (the rest could not be flashed back anyway), so recovering an unknown-signature device no longer prompts to pull an unreleased master build for every non-released signature
- update-all: skip devices with errors during update
wb-modbus-ext-scanner 1.4.0+wb100 → 1.5.1
Scanner utility for extended Wiren Board Modbus protocol
- Disable XON/XOFF flow control on the serial port, it silently dropped 0x11 and 0x13 bytes from responses
- Set data bits and stop bits explicitly instead of inheriting them
- Wait for a response with a timeout instead of waiting forever
- Check the address in a response to avoid matching a false frame start
- Port for Debian 13
wb-mqtt-adc 2.7.1 → 2.8.3
Wiren Board Smart Home MQTT ADC driver compatible with HomA conventions
- Improve stop flag: make it atomic
- Fix busy loop on channel read errors: a failed measurement is retried a few times in place, and if it keeps failing the cycle is rescheduled instead of being retried without any delay
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-alice 0.10.0+wb100 → 0.13.4
Yandex smart home with Alice to MQTT for Wiren Board controllers
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Fix relative range commands - the increment from Yandex was set as the value
- Change min version for homeui
- Fix nginx 502 caused by upstream "certificate chain too long" - set proxy_ssl_verify_depth to accept the current alice.wirenboard.com cert chain
- Add support for split parameter on on_off capability
- Add support for retrievable flag for capabilities and properties
- Add support for reportable flag for capabilities and properties
- Change min version for homeui
- Add support for Yandex Smart Home mode capability
- Change min version for homeui
- Add support for Yandex Smart Home toggle capability
- Add static analysis to the project and CI pipeline
- Reformat the code with the static analysis tools
wb-mqtt-co2mon 1.1.4 → 1.2.0
WB MQTT driver for MasterKit MT8057 CO2 sensor
- Port for Debian 13
wb-mqtt-confed 1.16.7-wb100 → 1.18.2
Wiren Board Configuration Editor Backend
- Fix crash on Save RPC request without content field
- Use go 1.26 compiler
- Update dependencies
- Fix postinst script
- Update wbgo.so
- Fix ntp config migration
- Add ntpsec to dependencies
- Fix postinst script
- Bump github.com/wirenboard/wbgong to 0.7.3
- Port for Debian 13
wb-mqtt-dac 1.2.6 → 1.2.7
IIO DAC driver
- postinst: use try-restart and ignore restart failures
wb-mqtt-dali 1.12.0 → 1.20.3
MQTT DALI bridge for Wiren Board
- Fix changing and clearing a device's short address: some devices ignored the command that used to be sent and silently kept their old address. The new address is now programmed the way the device search does it and read back from the device.
- A short address change the device does not confirm is no longer applied: the settings page shows the address the device really has instead of the requested one.
- Resetting a device now always removes it from the configuration. If its short address could not be cleared, a warning is logged — run a device search to pick the device up again, it keeps the address it holds.
- Fix the device search losing a device from the config when another device on the bus has the same random address. The device lost its custom name and MQTT id and came back as a new one. Now it stays in the config and only the duplicate is found as a new device.
- Describe the device search and address assignment logic in the README.
- Fix the device search sending a duplicate COMPARE for every device it finds — the bus monitor showed two identical COMPARE lines in a row.
- Fix an error instead of a result when a device stays silent in answer to a "yes"/"no" query: silence now reads as "no".
- Fix device reset not always clearing the short address and re-reading the settings.
- Show a query left without an answer in the bus monitor: on a "yes"/"no" query silence reads as "False", on any other query as "no response".
- Fix the bus monitor showing one and the same record instead of the frames actually on the bus.
- Fix devices being polled more often than the configured interval after a dimming or a command sent from outside the service.
- Clean up /etc/wb-mqtt-dali.conf on purge
- Fix DT8 colour polling: a failing colour read no longer restarts in place at the head of the poll round (blocking other devices on the bus and hammering the failing read). A finished or failed read cycle now leaves the round and is retried after the poll interval, like the other periodic reads.
- Internal cleanup of the control-state representation: the per-control /meta/error value is now a typed ControlError flag (READ/WRITE) instead of a free string, and ControlInfo carries a single ControlState object (meta, value, error) instead of separate fields. Behaviour on the bus is unchanged — /meta/error still publishes the same r/w flag strings.
- Harden the settings-parameter apply path: every handler's read/write now returns the full, independent value of its key, so the fragile recursive deep-merge is replaced with a plain dict update. Behaviour is unchanged; this removes a class of bugs where stale sub-fields lingered or a handler's internal state leaked into the published params.
- Fix colour-temperature-limit fields on group and broadcast settings forms
- Apply own and foreign commands from a single bus-observation path: writable setpoints (wanted_level, dapc, set_rgb/white/colour_temperature) now stay in sync with the actual value of their quantity, including after foreign commands, instead of freezing; legacy identify publishes the levels the lamp really goes to; a standing /meta/error=r no longer flickers or gets reset by prediction while the bus is busy; and wanted_level is published as an integer percent.
- Fix DALI 2 colour scene membership against MASK. A colour scene that changes the colour but leaves the brightness unchanged (MASK level) is now kept enabled instead of turning its "Part of the scene" switch off, and disabling a colour scene now removes the gear from it (REMOVE FROM SCENE, clearing both the level and colour-type registers) instead of leaving a still-active colour-only scene that reappeared as enabled.
- Add bilingual (en/ru) descriptions to the DALI 2 occupancy sensor (type 3) deadtime, hold and report timer parameters, clarifying what each one affects.
- Translate config parameter descriptions: a parameter's description is now registered in the schema translations for both locales under a short, content-derived key, instead of being emitted as a single untranslated string.
- Add a per-bus "bus_monitor_syslog_enabled" option that mirrors the bus monitor lines to the controller log in addition to the MQTT topic.
- Rework the bus monitor line format: join request and response on one line, render decoded commands as copy-pasteable Bus/SendCommand expressions, drop redundant frame descriptors, and document the topic and every line variant in the README.
- Make the command expression formatter total over the command registry.
- Render decoded DALI 2 events in the bus monitor using the same A
/I /G token syntax as commands instead of python-dali's raw repr. - Add optional "mqtt_id" and "name" device fields to the configuration schema.
- Remove the unused, always-null "stage" field from the commissioning progress message.
- Rework the README and add docs/editor_rpc.md documenting the supported device types, MQTT topics and RPC API; drop the AsyncAPI spec.
- Reset the button pressed state on short, double and long-press events, not only on the button-released event.
- Bind the colour temperature sliders to the device's live Coolest/Warmest limits via min_limit/max_limit dotted paths instead of static minimum/maximum.
- Fix aiomqtt compatibility
- Update event latency test
- Update priority starvation test
- Use quiescent mode when reading devices info after bus scan
- Always send Terminate when the bus scan fails, so control gear does not stay withdrawn until the INITIALISE timeout.
- Fix crash and incorrect value when decoding general purpose sensor measurement events.
- Return a syntax-error result instead of closing the connection on a malformed Lunatone IoT DALI frame.
- Roll back cleanly when bus start-up fails after driver initialization, instead of leaking the driver and getting stuck.
- Always resolve pending control-write requests if an unexpected error occurs while processing a control batch.
- Guard parsing of DALI reply payloads so malformed or empty replies fail fast instead of waiting for the command timeout.
- Fix bus traffic monitor dropping frames reordered across the full gateway queue depth (e.g. on a device ring-buffer wrap) and publishing them out of order.
- On MQTT broker disconnect, cancel in-flight tasks and tolerate a bus still initializing, instead of terminating the service.
- Replace an assert with an explicit error when querying device types (no asserts in production code).
- Add code-review-orchestrator skill and adapt the project workflow, rules and docs to it.
- Port for Debian 13
- Fix device parameters being wiped from cache after SetDevice.
- Add e2e test for event handling latency.
- Fix pylint
- Add e2e test for parallel execution of bus scan on 3 buses
- Fix tests memory leak
- Report fine-grained commissioning progress while reading mandatory device parameters after the bus scan (was previously frozen at 81%).
- Fix DT51 parameters layout in homeui
- Add support for frame priorities.
- Use appropriate priorities for internal commands.
- Add command line option for setting priority of CLI commands.
- Decrease CPU load
- Fix bus monitor commands order display
- Fail commissioning with a clear error when a device cannot be assigned a short address (bus has more than 64 devices, or PROGRAM SHORT ADDRESS is not confirmed by VERIFY/QUERY). Previously such cases could silently corrupt the commissioning result.
- Add DT51 (energy reporting device): publish active energy/power controls and read DT51 memory banks (202 mandatory; 203/204 picked up if apparent/loadside reporting is supported). Energy reads are chunked into preemptable subbatches like DT-8 colour.
- Fix DT-8 / DT51 chunked polls stalling ~1 s between subbatches.
- Handle gateway reset
- Use DALI-2 instead of DALI2 in naming and logs
- Add Bus/SendCommand RPC for sending arbitrary DALI command batches on a running bus
- Add Bus/ListCommands RPC exposing the catalog of supported DALI commands
- Rework CLI --send-command to use expression syntax: --command "Name(A
, I , data)"; remove --address/--group/--broadcast/--data flags - Show address and instance hints in --list-commands category headers
wb-mqtt-db 2.9.3 → 2.11.0
Wiren Board database logger
- Use system-wide sqlitecpp
- Clean up /etc/wb-mqtt-db.conf on purge
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Check that libsqlite3 is built with SQLITE_ENABLE_UPDATE_DELETE_LIMIT
- Unsubscribe from watched topics before disconnecting on stop to avoid "Broken pipe" error in mosquitto log
- Port for Debian 13
wb-mqtt-db-cli 1.4.8 → 1.5.0
CLI for wb-mqtt-db
- Add bash completions
- Fix --decimal-places: formatting failed with an error, zero places were ignored
- Fix --from/--to handling: timezone offset was dropped, shifting the requested range
- Print informational messages to stderr, keeping CSV output on stdout clean
- Exit with non-zero code if the backend fails to process a request in time
- Update debianization. No functional changes
wb-mqtt-gpio 2.16.3 → 2.18.3
Wiren Board Smart Home MQTT generic GPIO driver compatible with HomA conventions
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Remove obsolete wb-modules.service dependency
- Add mosquitto.service dependency to ensure that mosquitto is started before wb-mqtt-gpio
- Fix phantom counter increments on idle inputs: a pulse is now counted only when the input level actually holds for the debounce time.
- Fix all inputs disappearing when a counter is configured on a GPIO chip without interrupt support (e.g. wbec-gpio MOD inputs)
- Port for Debian 13
wb-mqtt-homeui 2.208.1-wb102 → 2.248.1
Wiren Board Web UI web interface
- Rename factory reset buttons
- Add error state display for devices
- Rename unixtime control type to local_time
- Fix device card expanding on hover when the cell history icon appears
- Temporarily disable custom column layout when a device type filter is active
- Show the terminal on-screen key panel only on devices without a physical keyboard: it was shown on any touch-capable machine, a touchscreen laptop included
- Add user role description
- Fix emoji rendering in rules console
- Add emoji font fallbacks to the CSS font stack
- Add "Ctrl + `" global shortcut to toggle the console panel
- Persist console panel open/close state and active tab across page reloads
- Fix info popup's transparency
- Add custom font management for SVG dashboards
- Ask for confirmation before rereading device settings when they have unsaved changes, instead of discarding the entered values without a question
- Fix a needless login prompt when opening the controller over HTTP: the session was checked before the redirect to HTTPS, on the host whose cookie does not apply
- Show the loader during the HTTPS check only if it takes longer than a second, and name the certificate issuing separately from the check itself
- Do not fall back to an unencrypted connection once the switch to HTTPS has started: going back to the HTTP page restarts the switch instead of serving the app there
- Fix create first user logic
- Fix create first user flow without setup https
- Fix DALI bus monitor showing a reply that never arrived or arrived corrupted as a successful value: "no response" and framing errors are now marked as errors
- Keep 2000 lines in the DALI bus monitor instead of 500
- Fix broken result of DALI manual commands for which the absence of a reply is itself an answer: such commands now show "no response" plus the decoded value
- Fix channel patterns like +/+ disappearing from MQTT history settings
- Show "Nothing found" in dropdowns instead of an empty box
- Fix cell fraction after zero
- Fix disabled input background
- Fix scroll on logs page: filters stick at the top, only log entries scroll
- Fix active tab background in JSON editor (config pages)
- Improve disabled switch contrast in dark theme
- Use monospace font in console panel update component
- Validate theme value from localStorage against Theme enum
- Let cloud tunnels through service gates from loopback
- Exempt cloud tunnel requests from the service gate rate limit
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Add sorting to text dashboards and devices
- Add terminal
- Recreate wb-webui.conf and wb-homeui-backend.conf on startup if the existing file is empty
- Remove Wiren Board Cloud branding from Russian cloud status strings
- Fix History page not loading device topics on direct navigation
- Fix collapsing serial port selecting port tab instead of keeping device tab selected
- Fix duplicate devices created when re-scanning the serial bus after adding devices without saving
- Add opt-in new json-schema-editor for configs via the wb-json-editor flag
- Update autocomplete snippet
- Fix collapsing colour temperature slider in DALI bus editor
- Update completions
- Fix colour temperature limits in DALI group and broadcast editors
- Fix history load on page refresh
- Fix history update info on static filter
- Fix svg relayout of svg dashboards
- Fix svg dashboards
- Add DALI group to devices filter
- Add custom template tag
- Repair default dashboards poisoned by the 2.237.0-2.238.0 baseline migration bug: force-sync a known-poisoned baseline hash to the current default regardless of live content
- config editor: keep the vertical tab list readable when the form is short
- fix device name translations
- json-schema-editor: add readme
- Support external menu links: custom-menu items can carry isExternal, openInNewTab and requiredRole; a safe post-login external return
- Add service gates: one JSON in gates.d (package-installed in /usr/share, admin-owned in /etc/wb-homeui, /etc wins on a name clash) puts a loopback service behind the homeui login; nginx configs and menu items are rendered by the backend and follow the effective HTTPS mode, with nginx -t validation and rollback (wb-homeui-gates CLI to check/apply)
- Raise the /auth/check rate limit to 1000 req/min per client and cache gate auth answers in nginx; per-IP limit_req (900/min) on gate ports
- Fix Zigbee devices being grouped under Modbus in the devices filter
- Serve the main UI over TLS whenever the certificate file loads, even when expired (browser warns, channel stays encrypted). Fall back to HTTP only when the file is missing or unreadable and reissue fails; HTTPS returns automatically once a usable certificate is written. Certificate writes are atomic.
- Pin logout/console buttons in menu
- Fix colors
- Request an HTTPS certificate immediately when enabling HTTPS in settings, and fix the certificate status banner getting stuck on a stale status
- Add themes
- Reconcile default dashboards seeded before baseline hashing existed: sync unrenamed ones to the current default instead of permanently treating them as user-edited
- Custom menu: read drop-ins from three per-origin dirs (package /usr/share, generated /var/lib, user /etc/wb-homeui/custom-menu) and persist /etc/wb-homeui across firmware updates via wb-configs
- Fix datetimepicker select logic
- Keep device name and MQTT id when switching device template
- wb-dynamic-type: update options keys
- Scroll to active dropdown option on open
- Fix HTML in json-editor schema descriptions
- Remove typo
- Fix device icon on mobile resolution
- Fix install
- Add bash completions
- Fix mosquitto override config
- Show the firmware-update banner when only a newer bootloader is available
- Serve dashboards from the HTTP backend (wb.homeui_backend) instead of confed: a lightweight index without inline SVG, lazy per-dashboard SVG GET, and atomic PUT writes that preserve inline svg.current
- Move board detection, initial config seeding and default-dashboard reconciliation into the backend service; drop generate-system-config.sh
- Switch the dashboards UI to the HTTP backend (lazy SVG, load/SVG error states) and remove the now-unused wb-webui.conf confed schema
- Make the config editor tab list scroll on its own
- rules: update autocompletes
- Fix wb-dynamic-type field resetting saved color and text on scenario reopen
- Add wb-dynamic-type json-editor widget for scenario output value
- Encode special characters in rule editor URLs
- DALI: keep renamed device names on page load instead of overwriting them with a retained scan result
- Fix the rule's opening with slashes
- Add logs filters to url
- Fix json editor responsive table width
- Add drawer component
- Move widget modals to drawer
- Add widget edit prevent close logic
- Pin add control button
- Fix mosquitto ACL file permissions
- DALI: render the bus monitor as a global console tab with address filter and save-to-file
- DALI: add a per-bus "Save to syslog" toggle
- Add Claude Code agent guidance (CLAUDE.md) and project rules
- Add backend dev tooling config (pyproject, requirements, venv bootstrap)
- Refactor console panel to a per-tab toolbar and content API
- Device name in tab list (device manager)
- Add console tabs overflow logic
- Disable button on loading
- Add split parameter for on_off capability in the Alice integration page
- Add retrievable option for capabilities and properties
- Add reportable option for capabilities and properties
- Fix CellAlert test to expect success variant for falsy value
- Fix displaying read errors for alarm controls
- Add tests
- Fix json-editor horizontal tabs
- Add posibility to disable widget cell
- Fix alice errors on save
- Fix DALI colour temperature slider to follow the device's current Coolest/Warmest limits live. The slider steps in 100 K.
- Fix rule prevent leave on save
- Fix edit with dropdown
- Fix json-editor's default enum translations
- Update ci
- Fix searching for a disconnected device: the found device is now selectable, so its connection settings (e.g. baud rate) can be re-applied
- Add page name in title
- Add a device type filter and icons to the Devices page
- Fix logout return state url
- Add popup component
- Add rule edit prevent leave page hook
- Add return button to history page
- Fix history mobile layout
- Fix endless loader on device scan add
- Device manager — add disabled device icon and tooltip
- Add second password field to approve current password
- Add restore password link to login page
- Use pre-defined DH group ffdhe2048 recommended by the IETF
- Add mode capability to the Alice integration page
- Require nodejs>=22
- Port for Debian 13
- Move from angular to react
- Move from webpack to vite
- Update routes
- Add help link to page header
- Update json editor styles
- Fix all typescript and eslint errors
- Fix default svg colors
- Hide dropdown arrow for readonly fields on DALI settings page
- Fix DALI device scenes settings editor scroll bug
- Fix pylint
- Add select ability for autocomplete fields
- Upgrade logs page
- Refactor Alice device-capabilities by splitting it by capability type
- Make Alice capability labels clickable
- Update config editor page
- Add toggle capability to the Alice integration page
- Ask for confirmation before rebooting the controller from the device panel
- Add DALI bus manual command entry with catalog and autocomplete
- Add Kelvin input to DALI color temperature editor
- Fix missing title and description for autocomplete fields
- Return tests for fw-utils
- Update system page
- Move update/reset process logs to console component
- Unify autocomplete fields
wb-mqtt-iec104 1.2.0 → 1.3.1
Wiren Board MQTT to IEC 60870-5-104 gateway
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-knx 1.13.4 → 1.14.1
Wiren Board MQTT to KNX gateway
- Fix use-after-free and null dereference when sending a telegram while knxd is disconnected
- Fix double free of the knxd connection on service stop
- Fix 4-octet unsigned fields of JSON datapoints always reading as zero
- Fix non-ASCII characters corrupting JSON string fields
- Port for Debian 13
wb-mqtt-logs 1.5.5 → 1.6.0
Wiren Board journald to MQTT gateway
- Port for Debian 13
- Fix build with gcc14
- Improve logging
- Fix order of dmesg log entries in RPC Load response
wb-mqtt-mbgate 1.8.8 → 1.9.2
Wiren Board MQTT to Modbus gateway
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Port for Debian 13
wb-mqtt-opcua 1.3.1-wb101 → 1.5.1
Wiren Board MQTT to OPC UA gateway
- Fix crash on writing a string value from an OPC UA client
- Use system-wide open62541
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Recreate config on package install if the existing file is empty
- Fix memory leak
- Port for Debian 13
wb-mqtt-rfblinds 1.0.4 → 1.0.5
Somfy and Dooya devices integration
- Fix pylint
wb-mqtt-serial 2.248.1-wb107 → 2.268.0
Wiren Board Smart Home MQTT serial protocol driver
- Evaluate declaration conditions in device/Set and device/Load RPC: a channel or parameter is written and a parameter is read by the declaration whose condition is true, so condition variants with different scales are converted right (wb-mai6, wb-mai2-cc, oni-plc-w-ema-06u00). device/Set evaluates the conditions over the request values and reads the missing condition parameters from the device. An item with false conditions is skipped by device/Set and is not included in the device/Load answer, an item with several matching declarations rejects the request
- Skip a readonly or unknown parameter in a device/Set request instead of rejecting the request
- Reject writing a read only channel in device/Set by the register type too, not only by the "readonly" key: a write to an input or discrete register used to reach the device and fail there
- Require numbers as device/Set parameter values, like the device configuration schema does
- Do not fail device/Load and device/Set when a condition parameter got no value: the device does not support the register or the value matches the "error_value", "unsupported_value" or Wiren Board 0xFFFE marker. The conditions over it are evaluated with an undefined value like in the web interface: comparisons are false, "!=" is true, "isDefined" is false
- Return "unsupported" in the device/Load answer only for an item whose own register was not read, list only channels in the readonly array and read only the condition parameters of the requested items
- Check the Wiren Board 0xFFFE marker in device/LoadConfig before resolving conditions, a parameter depending on an unsupported register is not resolved by the number 65534
- Remove the register address from the readonly heating_options parameter of the WBE2-I-OPENTHERM fw 1.7.3 template, readonly parameters only organize the web interface
- Restore continuous read register value after RPC requests
- Add wb_time_sync_interval device parameter
- Rename unixtime control type to local_time
- Do not write continuous read register if continuous read is already enabled
- Check that declarations of a parameter used in conditions read and convert the register identically. A device template violating the rule is rejected on first use and on templates/Upload
- Clear fw-update RPC and firmware update state topics on service stop
- Fix offset descriptions in templates with multisensor 1-Wire support (WB-MS v.2, WB-MIR v.3, WB-M1W2 v.3)
- Fix Carel template titles
- Add temperature offset registers for templates with multisensor 1-Wire support (WB-MS v.2, WB-MIR v.3, WB-M1W2 v.3)
- Clarify max_read_registers applies to coils and discrete inputs too
- Fix templates/Upload RPC numeric channel enum values validation
- Fix device/Load RPC failure for WB devices with enum channels
- Move firmware release indexes download from port thread to RPC thread
- Finish unifying displayed UI texts across the remaining WB families (display-only): WB-MAO4 (mao4, mao4-20ma, mao4-20ma-fw-2.9), WB-MDM3, WB-MSW (v3/v4/v4_lora), WB-MIR (v2/v2-buttons/v3/v3-fw-4.35) — Serial Number, Firmware Version, Supply Voltage, Min Supply/MCU Voltage Since Startup; RU "одиночных нажатий"; for WB-MAO4 the press-counter display is aligned (Short->Single, Shortlong) via translations only — channel names (MQTT topics) are unchanged. Also add the missing Serial Number / Firmware Version display texts to the WB-MAO4/MDM3/LED/MRGBW-D fw-variant templates from the earlier migration, and fix a "воспроизведена" typo in WB-MSW/MIR descriptions. Only current (g-wb) templates. Validate.dat unchanged.
- Unify displayed UI texts across several WB families (display-only): WB-MAI (MAI11/MAI2-CC/MAI6), WB-MIO, WB-UPS v.3, WB-DALI, WB-MCM8, WB-MS v.2, WB-MWAC (MWAC/MWAC2/MWAC2 ver.2), WB-M1W2, WB-LED, WB-MRGBW-D. Canonical texts — Serial Number, Firmware Version, Supply Voltage, Min Supply Voltage Since Startup, Min MCU Voltage Since Startup; RU "одиночных нажатий" for the single-press counter; fix a Cyrillic homoglyph ("сhange"->"change") in the WB-MWAC/WB-MWAC2 safety-behaviour enum title. Only current (g-wb) templates are touched. Channel names (MQTT topics) are not changed — backward compatible, Validate.dat unchanged.
- WB-MR relay family templates (WB-MR3, WB-MR6C/-NC/CU/v.3, WB-MRM2-mini/NO, WB-MRM2-mini/NC, WB-MRWM2): unify displayed UI texts for entities named differently across templates — Serial Number, Firmware Version, Supply Voltage, Min Supply Voltage Since Startup, Min MCU Voltage Since Startup; RU "одиночных нажатий" for the single-press counter; fix a Cyrillic homoglyph ("сhange"→"change") in the WB-MRWM2 safety-behaviour enum title. Only current (g-wb) templates are touched; obsolete g-wb-old ones are left as is. Channel names (MQTT topics) are not changed — backward compatible, Validate.dat unchanged.
- WB-MAO4, WB-MDM3, WB-MRGBW-D, WB-LED templates: unify UI texts for entities that are named differently across the templates, translate placeholder group titles, fix the WB-MAO4 safety group carrying the power-up description, and drop 8 duplicate unused group ids in WB-LED
- Fix deps
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Add buttons functionality to WB-MCM8HV template
- Bring WB-MCM8HV template in line with WB-STD-001/002/003
- Regenerate config if the existing one is empty
- Fix endless fast modbus events reading from the flooding device
- Fix clang-tidy, no functional changes
- Fix clang-format, no functional changes
- Clarify timeouts and register reading documentation
- Fix write retry on a disconnected device
- config/Load RPC: device types with the active template loaded from the user templates directory are marked with "user-defined" flag
- New templates/Upload and templates/Delete RPC methods to manage user defined device templates
- Files watcher handles file moves (mv) in templates directories
- Convert numeric channel enum values to strings
- Fix possible crash on live reload of a device template file with a unique device type
- ONOKOM templates update (external contribution): - add GR-5-MB-B and PN-1-MB-B device templates - add "External air temperature" channel to all devices (gated by the "Allow the use of an external temperature sensor" setting, off by default) - add "Idu count" channel translation for VRF devices - add error-data channels to the ME-1-MB-B template - refresh the remaining non-deprecated ONOKOM templates
- Take the released bootloader version from boot/by-signature/release-versions.yaml by the
controller's release suite (testing/stable), mirroring firmwares, instead of the
suite-agnostic bootloader/by-signature/
/main/latest.txt - fw-update GetFirmwareInfo: stop reporting garbage for third-party devices. Sanitize the firmware and bootloader version strings read from the device (printable ASCII only) so raw bytes no longer leak into fw/bootloader; treat an empty or non-printable firmware signature as "no signature" and skip the release-server lookup (no more bogus by-signature// requests); report can_update only when the release server actually offers a firmware or bootloader for the device
- Carel µC2SE template: move integer registers to the stable holding region (base 1000, available on WB-REF-U firmware 1.6.0+); add Digital Output 1-5 status channels
- config-wb-ups-v3.json.jinja: remove trailing comma after the last debug group; it produced invalid JSON and broke template-dump regeneration (TDeviceTemplatesTest.Validate). Regenerate the stable register dump
- config-wb-ups-v3.json.jinja: Add battery charge level raw channel
- Add ip address pattern to port schema
- MAP templates: Add peak detection period parameter and instant U/I values
- Add new templates for WB-LED and WB-MRGBW-D (fw 3.8):
- Add encoder support
- Add configurable dimming step for short presses
- Add 2CCT output mode (WB-LED)
- Change switch actions config order to channel -> action (WB-LED)
- Add smooth dimming control from remote buttons
- Add duplicate control channels with auto-on
- Add new templates for WB-MDM3 (fw 2.12) and WB-MAO4 (fw 2.9):
- Add encoder support
- Add configurable dimming step for short presses
- Add smooth dimming control from remote buttons
- Add duplicate control channels with auto-on
- MWAC templates: Add buzzer beep duration parameter
- Add Carel µC2SE and IR33 templates (via WB-REF-U)
- Port for Debian 13
- Fix WB-LED and WB-MRGBW-D fw3 templates: use 'sporadic' type for some output registers
- Add continue_polling_on_illegal_modbus_exception device configuration option. It keeps registers that return ILLEGAL_DATA_VALUE in polling instead of excluding them.
- config-wb-mrwm2.json.jinja: Add timer functions
- MR templates: Add condition for restart delay
wb-mqtt-smartweb 1.5.0 → 1.6.1
Wiren Board MQTT SmartWeb driver.
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-snmp 1.5.0 → 1.6.1
Wiren Board MQTT to SNMP gateway
- Use go 1.26 compiler
- Port for Debian 13
wb-mqtt-urri 1.2.8 → 1.2.9
Wiren Board URRI receiver (MQTT driver)
- Fix pylint
wb-mqtt-w1 2.3.1 → 2.4.1
Wiren Board MQTT 1-Wire driver
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-waterius added 1.0.0
Send Wiren Board meter readings to the Waterius cloud
wb-mqtt-zigbee 1.4.3 → 1.4.11
Wiren Board Zigbee2MQTT bridge
- Harden MQTT handlers against malformed payloads (non-UTF-8, unexpected JSON shape, deeply nested or oversized) so a bad message can no longer crash the daemon
- Reject device renames to names containing MQTT wildcards/separators, which could hijack a device's topic subscription
- Give every device whose ID collides after name sanitization (e.g. "lamp.1" vs "lamp 1") an IEEE-suffixed ID, leaving the ambiguous ID unpublished, so retained topics and commands can no longer be clobbered or misrouted. The ID layout depends only on the current device list, so it stays the same across restarts
- Keep devices and their availability intact across renames and ID changes
- Strip control characters from the zigbee2mqtt log text before publishing it to the bridge Log control
- Fix postinst script
- Report device availability via WB meta/error: an unreachable device gets a device-level error ("r" for read-only devices, "rw" when it also has writable controls), cleared automatically when the device is back online
- Flag the bridge device with meta/error "rw" while zigbee2mqtt is offline/errored, cleared when it is back online
- Register an MQTT Last Will so the broker flags the bridge device with meta/error if the service dies unexpectedly (crash/kill); cleared on restart
- Drop the model from the device card name once the device is renamed in zigbee2mqtt: show "{model} {friendly_name}" only while unnamed (friendly_name equals the IEEE address), otherwise just the user's chosen name
- Add a readonly "Model" control to every device card
- Show the device model in the WB device card: use "{model} {friendly_name}"
- Add power_source control to the device card with Russian translations
- Convert battery voltage/current from milli-units (mV/mA) to V/A in the card
- Add control and device meta subtopics for HomeAssistant discovery
- Update Russian translations
- Add Russian titles for common zigbee device controls
wb-nm-helper 1.37.1 → 1.39.0
Wirenboard network configuration backend for wb-mqtt-confed.
- Convert python3-wb-nm-helper into transitional dummy package
- Disable PMF for Wi-Fi access point for RTL8723BU
- Recover connectivity after NM deactivates the current connection
- Restart wb-mqtt-nm-helper on failure
- Migrate from pycares to dnspython
wb-node-red added 1.0.3
Node-RED for Wiren Board controllers (native)
wb-rules 2.40.0-wb100 → 2.46.5
Wiren Board Rule Engine
- Notify.sendSMS: fix a vulnerability that let the message text or the recipient number run arbitrary commands on the controller; allow double quotes and non-BMP characters in the message
- A control write of a value that cannot be converted to the control's datatype is now reported to the rule debug console (both getControl("dev/ctrl").setValue(...) and dev["dev/ctrl"] = ...); previously it went only to syslog and was invisible in the web UI. The write is still ignored and the rule keeps running, so this is NOT a backward-incompatible change - it just makes the mistake visible. A rejected write also no longer updates the engine's cached value for that control.
- Reduce CPU usage of control reads and writes: the object returned for dev[...] is now built once per control, and its methods once at startup, instead of both being rebuilt on every access
- Fix unbounded memory growth with timer-driven rules that write controls
- Use go 1.26 compiler
- Update dependencies
- Notify: fix sendSMS()
- Fix trackMqtt callback not firing on script reload when another script tracks the same topic
- Notify: enhance sendTelegramMessage to accept additional options
- Fix disabled cron rules being re-enabled on script reload
- Update wbgo.so
- StorableObject: hide technical _psself field from Object.keys() and Object.keys().forEach(), matching the behavior already present in for-in
- Fix memory leak with startTicker
- Notify: fix garbled emoji (and other non-BMP characters) in sendEmail subject and body by encoding them as proper UTF-8 base64 instead of Duktape's CESU-8
- Notify: sendEmail/sendSMS/sendWebhook/sendTelegramMessage accept an optional callback(err) reporting the send result; when given, the caller owns error handling, otherwise the error is logged as before
- Editor: reject saving hidden files and ignore them in the directory watcher
- Port for Debian 13
- trackMqtt: pass 'retained' and 'qos' parameters to callback function
- Add VK, MAX, Matrix, WeChat Work and generic HTTP webhook recipient types for Alarms
wb-rules-system 1.13.5 → 1.13.8
Default system rules for Wiren Board
- Fix findings of the wb-rules type checker (checkJs) in the shipped rules: - power-class-battery: declare psName (was an implicit global) - buzzer: compute PWM period/duty with an explicit integer truncation instead of parseInt(number) (ES5, works on every wb-rules version) - hwmon: do not redeclare nodeName with a different type in one function - system, system_time, wbmz-battery: annotate cell specs as ControlsSpec so they type-check against the wb-rules control types
- hwmon: Add GPU Temperature translation
- postinst: use try-restart and ignore restart failures
wb-scenarios 1.9.0 → 1.10.2
Scenarios for Wiren Board
- Declare implicit globals (ok in light-control, id in translit) found by wb-rules checkJs
- Fix JSDoc inaccuracies found by wb-rules checkJs, no runtime changes
- Merge the two action tables into table-handling-actions.mod.js
- Fix light-control: split lightOn command/status, deterministic startup, gate door timer during motion
- Add auto-off delay to schedule and astronomical timer
- schema: rename wb-dynamic-type options keys
- Add Set Color and Set Text output actions to light-control
- postinst: use try-restart and ignore restart failures
- Add Set Color and Set Text for output actions via wb-dynamic-type widget
- Fix light-control: stop clearing already-fired countdown timers
- Update channel-map: added inversion checkbox
- Update thermostat: update PID translations
- Update pid-controller: update translations
- Update periodic-timer: initialization
wb-suite 1.20.9 → 1.21.0
Wirenboard vendor software set
- Port for Debian 13
wb-tsgo added 7.1.0~dev.20260813
TypeScript compiler (Microsoft typescript-go)
wb-update-manager 1.4.0 → 1.5.2
Wirenboard software updates and release management tool
- Fix crash on relative --log-filename path
- Fix locale detection in obsolete repositories update tip
- Add bash completion
- Port for Debian 13
wb-utils 4.27.8-wb100 → 4.28.6
Wiren Board command-line utils
- wb-gsm: wait for modem to report OFF before switching off power FET
- wb-run-update: fix progress bar size when checking hash of non-rootfs blob
- Grant permissions to install_update.web.flags to www-user user
- Fix noise output during upgrade with FIT
- Move ssh host keys generation to wb-configs
- Don't wipe /mnt/data during upgrade with fit-image
- Don't allow rollback from trixie to bullseye without factoryreset
- Port for Debian 13
wb-vout-watchdog added 1.1.0
Wiren Board Vout undervoltage watchdog
u-boot-tools-wb 2:2025.04+wb1.1.5-wb102 → 2:2025.04+wb1.1.8
companion tools for Das U-Boot bootloader
- wb8: expose strap-detected DRAM type and probed size as /chosen/wb-dram
- add LPDDR4X 16Gb DRAM profile, selected by the LPDDR4X strap
- fix LRADC strap read so the LPDDR4X strap is detected
- add DST eye-scan DRAM characterisation, exposed via /chosen/wb-dram-dst
- Pull 38071cb changes to our main branch
u-boot-wb8 2:2025.04+wb1.1.5-wb102 → 2:2025.04+wb1.1.8
Das U-Boot bootloader for Wiren Board 8 (image)
- wb8: expose strap-detected DRAM type and probed size as /chosen/wb-dram
- add LPDDR4X 16Gb DRAM profile, selected by the LPDDR4X strap
- fix LRADC strap read so the LPDDR4X strap is detected
- add DST eye-scan DRAM characterisation, exposed via /chosen/wb-dram-dst
- Pull 38071cb changes to our main branch
task-wirenboard-wb8 1.20.9 → 1.21.0
Wiren Board 8 specific packages
- Port for Debian 13
wb-hdmi 1.20.9 → 1.21.0
Wiren Board 8 HDMI packages (legacy Xorg runtime)
- Port for Debian 13
wb-hdmi-wayland 1.20.9 → 1.21.0
Wiren Board 8 HDMI packages (Sway runtime)
- Port for Debian 13
gir1.2-mbim-1.0 removed 1.28.0-1~bpo11+1
gir1.2-qmi-1.0 removed 1.32.0-1~bpo11+1
gir1.2-qrtr-1.0 removed 1.2.2-1~bpo11+1
libmbim-glib-dev removed 1.28.0-1~bpo11+1
libmbim-glib4 removed 1.28.0-1~bpo11+1
libmbim-proxy removed 1.28.0-1~bpo11+1
libmbim-utils removed 1.28.0-1~bpo11+1
libmosquitto-dev removed 2.0.20-1-wb103
libmosquitto1 removed 2.0.20-1-wb103
libmosquittopp-dev removed 2.0.20-1-wb103
libmosquittopp1 removed 2.0.20-1-wb103
libqmi-glib-dev removed 1.32.0-1~bpo11+1
libqmi-glib5 removed 1.32.0-1~bpo11+1
libqmi-proxy removed 1.32.0-1~bpo11+1
libqmi-utils removed 1.32.0-1~bpo11+1
libqrtr-glib-dev removed 1.2.2-1~bpo11+1
libqrtr-glib0 removed 1.2.2-1~bpo11+1
libsigrok4 removed 0.5.2-3+wb104
libsigrokcxx4 removed 0.5.2-3+wb104
libsigrokdecode4 removed 0.5.3-4
mobile-broadband-provider-info removed 20230416-1
mosquitto removed 2.0.20-1-wb103
mosquitto-clients removed 2.0.20-1-wb103
mosquitto-dev removed 2.0.20-1-wb103
python-gsmmodem-new removed 1:0.11
python3-asyncio-mqtt removed 0.10.0-wb101-1
python3-intelhex removed 2.3.0-1
python3-paho-socket removed 0.0.3-3
python3-wb-mqtt-metrics removed 0.5.0
python3-wb-nm-helper removed 1.37.1
python3-wb-update-manager removed 1.4.0
sigrok-cli removed 0.7.2-1
wb-mqtt-zabbix removed 0.2
Contrib packages
- comerr-dev (common error description library - headers and static libraries) 2.1-1.46.2-2+wb1 → 2.1-1.47.2-3+wb100
- containerd.io (An open and reliable container runtime) added 2.2.4-1~debian.13~trixie
- docker-ce (Docker: the open-source application container engine) added 5:29.5.2-1~debian.13~trixie+wb101
- docker-ce-cli (Docker CLI: the open-source application container engine) added 5:29.5.2-1~debian.13~trixie
- docker-compose-plugin (Docker Compose (V2) plugin for the Docker CLI.) added 5.1.4-1~debian.13~trixie
- e2fsck-static (statically-linked version of the ext2/ext3/ext4 filesystem checker) 1.46.2-2+wb1 → 1.47.2-3+wb100
- e2fsprogs (ext2/ext3/ext4 file system utilities) 1.46.2-2+wb1 → 1.47.2-3+wb100
- e2fsprogs-l10n (ext2/ext3/ext4 file system utilities - translations) 1.46.2-2+wb1 → 1.47.2-3+wb100
- flash-simcom-a76xx (Simcom modem flash utility) 1.1.2 → 1.2.0
- frpc (A fast reverse proxy - client package) 0.62.1-3-gb168dfea-wb3 → 0.62.1-3-gb168dfea-wb4
- frps (A fast reverse proxy - server package) 0.62.1-3-gb168dfea-wb3 → 0.62.1-3-gb168dfea-wb4
- fuse2fs (ext2 / ext3 / ext4 file system driver for FUSE) 1.46.2-2+wb1 → 1.47.2-3+wb100
- gir1.2-modemmanager-1.0 (GObject introspection data for modemmanager) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- gir1.2-nm-1.0 (GObject introspection data for the libnm library) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- knxd (daemon to access the KNX bus) 0.14.74-1+wb100 → 0.14.74-1+wb101
- knxd-dev (development files for knxd) 0.14.74-1+wb100 → 0.14.74-1+wb101
- knxd-tools (tools to use knxd) 0.14.74-1+wb100 → 0.14.74-1+wb101
- libcom-err2 (common error description library) 1.46.2-2+wb1 → 1.47.2-3+wb100
- libext2fs-dev (ext2/ext3/ext4 file system libraries - headers and static libraries) 1.46.2-2+wb1 → 1.47.2-3+wb100
- libext2fs2t64 (ext2/ext3/ext4 file system libraries) added 1.47.2-3+wb100
- libmm-glib-dev (D-Bus service for managing modems - library development files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmm-glib-doc (D-Bus service for managing modems - library documentation) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmm-glib0 (D-Bus service for managing modems - shared libraries) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmodbus-dev (development files for the Modbus protocol library) 3.1.6-wb2 → 3.1.11-2+wb100
- libmodbus5 (library for the Modbus protocol) 3.1.6-wb2 → 3.1.11-2+wb100
- libnm-dev (GObject-based client library for NetworkManager (development files)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- libnm0 (GObject-based client library for NetworkManager) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- libsigrok-dev (sigrok hardware driver library - development files) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- libsigrok4t64 (sigrok hardware driver library - shared library) added 0.5.2-5.1+wb105
- libsigrokcxx-dev (sigrok C++ bindings - development files) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- libsigrokcxx4t64 (sigrok hardware driver library - shared library) added 0.5.2-5.1+wb105
- libss2 (command-line interface parsing library) 1.46.2-2+wb1 → 1.47.2-3+wb100
- logsave (save the output of a command in a log file) 1.46.2-2+wb1 → 1.47.2-3+wb100
- modemmanager (D-Bus service for managing modems) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- modemmanager-dev (D-Bus service for managing modems - development files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- modemmanager-doc (D-Bus service for managing modems - documentation files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- mqttui (Subscribe to a MQTT Topic or publish something quickly from the terminal) 0.23.0-1 → 0.24.0-1
- network-manager (network management framework (daemon and userspace tools)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-config-connectivity-debian (NetworkManager configuration to enable connectivity checking) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-dev (network management framework (development files)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-l10n (network management framework (translation files)) added 1.52.1-1-wb100
- python3-sigrok (libsigrok Python 3 bindings) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- ss-dev (command-line interface parsing library - headers and static libraries) 2.0-1.46.2-2+wb1 → 2.0-1.47.2-3+wb100
- tailscale (The easiest, most secure, cross platform way to use WireGuard + oauth2 + 2FA/SSO) 1.98.2 → 1.102.1
- wb-welrok (Wiren Board MQTT Driver for Welrok thermostat) 0.0.20 → 0.1.13
- z-way-server (Trident IoT Z-Way Smart Home Gateway) 4.1.1-lws16 → 5.0.2-309-g78fdef5f~trixie-1
- zigbee2mqtt (Zigbee to MQTT bridge (package by Wiren Board team)) 2.10.0-wb101 → 2.13.0-wb101
- wb-sway (i3-compatible Wayland compositor) 1.5+wb103 → 1.10.1-2+wb100
- wb-sway-kiosk (Wiren Board kiosk runtime for sway) 1.5+wb103 → 1.10.1-2+wb100
Wiren Board vendor packages
atecc-util 0.4.13-wb101 → 0.6.0
ATECC508A/608A configuration utility based on cryptoauthlib
- Take the cross-stack chip lock for the whole run to serialize access with other cryptoauthlib users (such as the OpenSSL engine), and park the chip with a real Sleep on exit to wipe any latched fault state
- Port for Debian 13
libateccssl1.1 0.2.6-wb102 → 0.4.2
ATECC508A/608A engine for OpenSSL 1.1.x
- ateccssl: keep the engine's shared EC_KEY_METHOD (and ECDSA/pkey methods) for the process lifetime instead of freeing them in eccx08_finish; the method is a process singleton, and freeing it while an SSL_CTX still holds a key that references it is a use-after-free on teardown (fatal SIGSEGV on the OpenSSL 1.1 line, see 0.2.6-wb102; latent here under OpenSSL 3)
- cryptoauthlib: bump the bundled library to current master
- ateccssl: park the chip with Sleep instead of Idle at session end; latched chip states (RNG health-test 0x08, corrupted idle) no longer survive between sessions
- ateccssl: serialize all chip users with a robust shared-memory mutex (frozen name sourced from cryptoauthlib, publish-after-init creation)
- ateccssl: cure and retry once on a latched RNG health test instead of failing the session
- ateccssl: fix segfault from a half-built ECDSA_SIG on release failure
- ateccssl: fix memory leaks and a borrowed-EVP_PKEY free on the key and sign paths
- ateccssl: add runtime-toggleable diagnostics (ATECC_DIAG=1) and human-readable errors in the OpenSSL error queue
- cryptoauthlib: robust wake sequence (retries with backoff, cure of an abandoned-awake chip, drain of stale response frames)
- Port for Debian 13
libwbmqtt1-5 5.6.0-wb102 → 5.7.3
Wiren Board MQTT abstraction layer and utils library
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
libwbmqtt1-5-dev 5.6.0-wb102 → 5.7.3
Development files for libwbmqtt1
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
libwbmqtt1-5-test-utils 5.6.0-wb102 → 5.7.3
Development files for testing libwbmqtt1-based projects
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
modbus-utils 1.3.2 → 1.4.0
CLI utilities to work with Modbus devices
- Port for Debian 13
modbus-utils-rpc 1.2.5 → 1.3.2
Wiren Board modbus utility using RPC (python 3)
- Add bash completions
- Fix pylint
- Add response_timeout parameter to modbus_client_rpc
mqtt-tools 1.4.5 → 1.4.6
Command-line tools for MQTT
- mqtt-upload-dump: fix truncated last message in a dump without a trailing newline
- mqtt-upload-dump: don't hang on a dump containing no messages
python3-mqttrpc 1.3.5 → 1.3.9
Reference MQTT-RPC implementation
- Add bash completions
- Fix dependencies
- Fix dependencies, no functional changes
- Fix pylint
python3-wb-common 2.2.6 → 2.3.0
Wiren Board common library
- Port for Debian 13
- Adopt PEP440, update debhelper compat level
python3-wb-mcu-fw-updater 1.14.4 → 1.16.0
Wiren Board modbus devices firmware update and modbus bindings python libraries (python 3)
- update-all: update an outdated bootloader even when the firmware is already current, instead of only reporting it afterwards. The bootloader is checked first for every device; if the released one is newer it is flashed (which also re-flashes the released firmware, because a bootloader flash erases the app) without a separate prompt. Applying a bootloader that would roll the firmware or the bootloader back still requires --allow-downgrade; otherwise it is reported and nothing is flashed. A bootloader is only touched when a released firmware exists to restore the app. Devices found stuck in the bootloader get the released bootloader too, before their firmware is restored.
- bootloader updates: pick the actual version from the released boot/by-signature/release-versions.yaml (keyed by signature and the controller's release suite, testing or stable) and compare with the version in the device -- same source of truth as firmwares. update-bl now defaults to the release lookup instead of latest.txt.
- bootloader rollback now works like firmwares.
- recover: take the brute-force fw_signatures candidate list from release-versions.yaml instead of the fw_signatures.txt index, which is being retired. Only signatures with a released firmware are tried now (the rest could not be flashed back anyway), so recovering an unknown-signature device no longer prompts to pull an unreleased master build for every non-released signature
- update-all: skip devices with errors during update
serial-tool 1.2.4 → 1.2.5
interactive hex serial port console
- Report malformed hex input instead of crashing
- Validate data bits setting
- Do not enter interactive mode on an empty --batch argument
task-wb-base-system 1.20.9 → 1.21.0
Wiren Board base system packages
- Port for Debian 13
task-wb-common-pkgs 1.20.9 → 1.21.0
Wiren Board common packages
- Port for Debian 13
wb-ble-tesliot 1.1.3 → 1.1.4
TESLiOT BLE Sensors <==> MQTT bridge for Wiren Board.
- postinst: use try-restart and ignore restart failures
wb-cc2652p-flasher 1.1.0 → 1.2.0
Texas Instruments CC13xx/CC2538/CC26xx SoC firmware update utility
- Port for Debian 13
wb-cli 1.8.5 → 1.8.15
Command-line interface to a Wiren Board controller
- No functional changes. wb-plc plugin bumped to 1.13.2: new wb-serial reference i18n-naming.md — translation-key conventions shared by device templates and json-editor/confed schemas (the displayed English text is the key by default; synthetic keys for the template title and for long or shared strings), en/ru capitalization rules, and the config-key <-> translation-key <-> enum-value <-> label coherence check.
- wb-plc plugin bumped to 1.13.1. wb-serial diagnostics-deep: the response_timeout_ms / guard_interval_us line now cross-links to the wb-dev "Constants that mirror controller settings" rule. Follow-up to the wb-dev mirrored-constants PR.
- wb-plc plugin bumped to 1.13.0. wb-dev: new "Constants that mirror controller settings" section — a value owned by a controller/driver setting (port response timeout, baud rate, poll interval) must be read from its source or exposed as a service setting, not hardcoded; a field omitted from the owner's config means the owner's default applies (e.g. wb-mqtt-serial response_timeout_ms).
- wb-plc plugin bumped to 1.12.0. New wb-rca skill: root-cause investigation methodology for WB field problems and regressions — reproduce on a test stand, ground claims in git/upstream, A/B-test versions, prove, and file a proof-backed bug report; ships a worked-case reference (mosquitto #3192 counter-leak, systemd BindsTo). Also added the missing wb-mod-slots row to the README skills table.
- codestyle: bump submodule 9be03b5 -> 6162cb6 (remove embedded-team codestyle, pylint support for Python 3.13).
- wb-plc/wb-zigbee: fix converter-detection probe — unescape pipe in grep -E alternation (\| → |) so the probe correctly detects whether wb-mqtt-zigbee or wb-zigbee2mqtt is installed.
- wb-plc plugin bumped to 1.11.1. wb-serial template-format reference: the deprecated wb-mqtt-serial measurement control types (voltage, current, power, temperature, ...) are now flagged as deprecated in favour of type:"value" + units, the canonical example no longer uses "voltage", and the units guidance points at the conventions unit table (deg C, not the degree-symbol form). INT-1154.
- .gitmodules: codestyle submodule now uses an HTTPS URL instead of SSH. Claude Code installs the wb-plc plugin over HTTPS, so the SSH submodule failed with "Permission denied (publickey)" for anyone without a GitHub SSH key. codestyle is public, so HTTPS needs no auth.
- No functional changes. wb-plc plugin bumped to 1.11.0 (new skill wb-mod-slots: repurpose MOD slots via wb-hwconf-helper — raw UART or bit-banged I2C on slot pins, with per-board capability matrix and pinout). CI stage "Check version has bumped" requires a .deb release on every PR; follow-up to relax that for plugin-only changes.
- Fix serial wb-fw / fw-params "Validation failed": iter_devices now coerces a string slave_id to int and expands a register-code baud_rate (real/100, e.g. 96/1152) to the real rate before the RPC.
- serial wb-fw check: rewrite human-mode render. ERROR rows go to a dedicated `errors (N):` block with full untruncated messages; version cells with garbage from the RPC (raw bytes, S3 404 bodies) collapse to "?" instead of breaking the table.
wb-cloud-agent 1.8.1-wb100 → 1.8.2
Wiren Board Cloud agent
- Fix package removal when mosquitto is stopped
wb-configs 3.50.2-wb100 → 3.53.0
Default common config files for Wiren Board
- Remove obsolete rsyslog configs
- Fix installation of armhf libs on arm64 from trixie-backports
- Create ntpsec user after upgrade with FIT
- wb-configs-early: make config copies durable before removing originals (temp name + sync + atomic rename)
- Disable PMF for Wi-Fi access point for RTL8723BU
- Cleanup apt preferences
- Install libcurl4-openssl-dev from backports
- Fix mosquitto override config
- postinst: use try-restart and ignore restart failures
- Remove obsolete lirc and nfc configs
- Create missed users after upgrade with FIT
- Move services overrides from /etc to /usr/lib
- Move ssh host keys generation from wb-utils
- Remove debian-upstream.list
- Fix fix_nm_ap_ssid.sh
- Port for Debian 13
wb-dauerhaft-pro added 1.0.7
Wiren Board MQTT driver for Dauerhaft PRO RS-485 actuators
wb-device-manager 1.25.4 → 1.25.5
Wiren Board modbus devices manager
- Fix pylint
wb-diag-collect 1.9.8 → 1.10.2
Wirenboard collector of data and logs
- Increase wb-release log lines count to 5000
- Add /etc/wb-mqtt-snmp.conf
- Port for Debian 13
wb-ec-firmware 2.1.1 → 2.3.1
Wiren Board Embedded Controller firmware and installer
- revert internal VBAT charging: the charging algorithm doesn't work as needed
- remove VBAT voltage and charging status from regmap
- Port for Debian 13
- add VBAT charging
- add VBAT voltage to regmap
- add VBAT charging status to regmap
wb-essential 1.20.9 → 1.21.0
Wirenboard essential packages
- Port for Debian 13
wb-homeui-backend 2.208.1-wb102 → 2.248.1
Wiren Board Web UI web interface
- Rename factory reset buttons
- Add error state display for devices
- Rename unixtime control type to local_time
- Fix device card expanding on hover when the cell history icon appears
- Temporarily disable custom column layout when a device type filter is active
- Show the terminal on-screen key panel only on devices without a physical keyboard: it was shown on any touch-capable machine, a touchscreen laptop included
- Add user role description
- Fix emoji rendering in rules console
- Add emoji font fallbacks to the CSS font stack
- Add "Ctrl + `" global shortcut to toggle the console panel
- Persist console panel open/close state and active tab across page reloads
- Fix info popup's transparency
- Add custom font management for SVG dashboards
- Ask for confirmation before rereading device settings when they have unsaved changes, instead of discarding the entered values without a question
- Fix a needless login prompt when opening the controller over HTTP: the session was checked before the redirect to HTTPS, on the host whose cookie does not apply
- Show the loader during the HTTPS check only if it takes longer than a second, and name the certificate issuing separately from the check itself
- Do not fall back to an unencrypted connection once the switch to HTTPS has started: going back to the HTTP page restarts the switch instead of serving the app there
- Fix create first user logic
- Fix create first user flow without setup https
- Fix DALI bus monitor showing a reply that never arrived or arrived corrupted as a successful value: "no response" and framing errors are now marked as errors
- Keep 2000 lines in the DALI bus monitor instead of 500
- Fix broken result of DALI manual commands for which the absence of a reply is itself an answer: such commands now show "no response" plus the decoded value
- Fix channel patterns like +/+ disappearing from MQTT history settings
- Show "Nothing found" in dropdowns instead of an empty box
- Fix cell fraction after zero
- Fix disabled input background
- Fix scroll on logs page: filters stick at the top, only log entries scroll
- Fix active tab background in JSON editor (config pages)
- Improve disabled switch contrast in dark theme
- Use monospace font in console panel update component
- Validate theme value from localStorage against Theme enum
- Let cloud tunnels through service gates from loopback
- Exempt cloud tunnel requests from the service gate rate limit
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Add sorting to text dashboards and devices
- Add terminal
- Recreate wb-webui.conf and wb-homeui-backend.conf on startup if the existing file is empty
- Remove Wiren Board Cloud branding from Russian cloud status strings
- Fix History page not loading device topics on direct navigation
- Fix collapsing serial port selecting port tab instead of keeping device tab selected
- Fix duplicate devices created when re-scanning the serial bus after adding devices without saving
- Add opt-in new json-schema-editor for configs via the wb-json-editor flag
- Update autocomplete snippet
- Fix collapsing colour temperature slider in DALI bus editor
- Update completions
- Fix colour temperature limits in DALI group and broadcast editors
- Fix history load on page refresh
- Fix history update info on static filter
- Fix svg relayout of svg dashboards
- Fix svg dashboards
- Add DALI group to devices filter
- Add custom template tag
- Repair default dashboards poisoned by the 2.237.0-2.238.0 baseline migration bug: force-sync a known-poisoned baseline hash to the current default regardless of live content
- config editor: keep the vertical tab list readable when the form is short
- fix device name translations
- json-schema-editor: add readme
- Support external menu links: custom-menu items can carry isExternal, openInNewTab and requiredRole; a safe post-login external return
- Add service gates: one JSON in gates.d (package-installed in /usr/share, admin-owned in /etc/wb-homeui, /etc wins on a name clash) puts a loopback service behind the homeui login; nginx configs and menu items are rendered by the backend and follow the effective HTTPS mode, with nginx -t validation and rollback (wb-homeui-gates CLI to check/apply)
- Raise the /auth/check rate limit to 1000 req/min per client and cache gate auth answers in nginx; per-IP limit_req (900/min) on gate ports
- Fix Zigbee devices being grouped under Modbus in the devices filter
- Serve the main UI over TLS whenever the certificate file loads, even when expired (browser warns, channel stays encrypted). Fall back to HTTP only when the file is missing or unreadable and reissue fails; HTTPS returns automatically once a usable certificate is written. Certificate writes are atomic.
- Pin logout/console buttons in menu
- Fix colors
- Request an HTTPS certificate immediately when enabling HTTPS in settings, and fix the certificate status banner getting stuck on a stale status
- Add themes
- Reconcile default dashboards seeded before baseline hashing existed: sync unrenamed ones to the current default instead of permanently treating them as user-edited
- Custom menu: read drop-ins from three per-origin dirs (package /usr/share, generated /var/lib, user /etc/wb-homeui/custom-menu) and persist /etc/wb-homeui across firmware updates via wb-configs
- Fix datetimepicker select logic
- Keep device name and MQTT id when switching device template
- wb-dynamic-type: update options keys
- Scroll to active dropdown option on open
- Fix HTML in json-editor schema descriptions
- Remove typo
- Fix device icon on mobile resolution
- Fix install
- Add bash completions
- Fix mosquitto override config
- Show the firmware-update banner when only a newer bootloader is available
- Serve dashboards from the HTTP backend (wb.homeui_backend) instead of confed: a lightweight index without inline SVG, lazy per-dashboard SVG GET, and atomic PUT writes that preserve inline svg.current
- Move board detection, initial config seeding and default-dashboard reconciliation into the backend service; drop generate-system-config.sh
- Switch the dashboards UI to the HTTP backend (lazy SVG, load/SVG error states) and remove the now-unused wb-webui.conf confed schema
- Make the config editor tab list scroll on its own
- rules: update autocompletes
- Fix wb-dynamic-type field resetting saved color and text on scenario reopen
- Add wb-dynamic-type json-editor widget for scenario output value
- Encode special characters in rule editor URLs
- DALI: keep renamed device names on page load instead of overwriting them with a retained scan result
- Fix the rule's opening with slashes
- Add logs filters to url
- Fix json editor responsive table width
- Add drawer component
- Move widget modals to drawer
- Add widget edit prevent close logic
- Pin add control button
- Fix mosquitto ACL file permissions
- DALI: render the bus monitor as a global console tab with address filter and save-to-file
- DALI: add a per-bus "Save to syslog" toggle
- Add Claude Code agent guidance (CLAUDE.md) and project rules
- Add backend dev tooling config (pyproject, requirements, venv bootstrap)
- Refactor console panel to a per-tab toolbar and content API
- Device name in tab list (device manager)
- Add console tabs overflow logic
- Disable button on loading
- Add split parameter for on_off capability in the Alice integration page
- Add retrievable option for capabilities and properties
- Add reportable option for capabilities and properties
- Fix CellAlert test to expect success variant for falsy value
- Fix displaying read errors for alarm controls
- Add tests
- Fix json-editor horizontal tabs
- Add posibility to disable widget cell
- Fix alice errors on save
- Fix DALI colour temperature slider to follow the device's current Coolest/Warmest limits live. The slider steps in 100 K.
- Fix rule prevent leave on save
- Fix edit with dropdown
- Fix json-editor's default enum translations
- Update ci
- Fix searching for a disconnected device: the found device is now selectable, so its connection settings (e.g. baud rate) can be re-applied
- Add page name in title
- Add a device type filter and icons to the Devices page
- Fix logout return state url
- Add popup component
- Add rule edit prevent leave page hook
- Add return button to history page
- Fix history mobile layout
- Fix endless loader on device scan add
- Device manager — add disabled device icon and tooltip
- Add second password field to approve current password
- Add restore password link to login page
- Use pre-defined DH group ffdhe2048 recommended by the IETF
- Add mode capability to the Alice integration page
- Require nodejs>=22
- Port for Debian 13
- Move from angular to react
- Move from webpack to vite
- Update routes
- Add help link to page header
- Update json editor styles
- Fix all typescript and eslint errors
- Fix default svg colors
- Hide dropdown arrow for readonly fields on DALI settings page
- Fix DALI device scenes settings editor scroll bug
- Fix pylint
- Add select ability for autocomplete fields
- Upgrade logs page
- Refactor Alice device-capabilities by splitting it by capability type
- Make Alice capability labels clickable
- Update config editor page
- Add toggle capability to the Alice integration page
- Ask for confirmation before rebooting the controller from the device panel
- Add DALI bus manual command entry with catalog and autocomplete
- Add Kelvin input to DALI color temperature editor
- Fix missing title and description for autocomplete fields
- Return tests for fw-utils
- Update system page
- Move update/reset process logs to console component
- Unify autocomplete fields
wb-hwconf-manager 1.71.6 → 1.72.2
Provides infrastructure for hardware re-configuration via Device Tree overlays
- Add util-linux-extra to dependencies
- Fix dependencies
- Port for Debian 13
wb-mcu-fw-flasher 1.6.1 → 1.7.1
Firmware update tool for Wiren Board Modbus devices (WB-M*)
- Edit README.md
- Port for Debian 13
wb-mcu-fw-updater 1.14.4 → 1.16.0
Wiren Board modbus devices firmware update tool (python 3)
- update-all: update an outdated bootloader even when the firmware is already current, instead of only reporting it afterwards. The bootloader is checked first for every device; if the released one is newer it is flashed (which also re-flashes the released firmware, because a bootloader flash erases the app) without a separate prompt. Applying a bootloader that would roll the firmware or the bootloader back still requires --allow-downgrade; otherwise it is reported and nothing is flashed. A bootloader is only touched when a released firmware exists to restore the app. Devices found stuck in the bootloader get the released bootloader too, before their firmware is restored.
- bootloader updates: pick the actual version from the released boot/by-signature/release-versions.yaml (keyed by signature and the controller's release suite, testing or stable) and compare with the version in the device -- same source of truth as firmwares. update-bl now defaults to the release lookup instead of latest.txt.
- bootloader rollback now works like firmwares.
- recover: take the brute-force fw_signatures candidate list from release-versions.yaml instead of the fw_signatures.txt index, which is being retired. Only signatures with a released firmware are tried now (the rest could not be flashed back anyway), so recovering an unknown-signature device no longer prompts to pull an unreleased master build for every non-released signature
- update-all: skip devices with errors during update
wb-modbus-ext-scanner 1.4.0+wb100 → 1.5.1
Scanner utility for extended Wiren Board Modbus protocol
- Disable XON/XOFF flow control on the serial port, it silently dropped 0x11 and 0x13 bytes from responses
- Set data bits and stop bits explicitly instead of inheriting them
- Wait for a response with a timeout instead of waiting forever
- Check the address in a response to avoid matching a false frame start
- Port for Debian 13
wb-mqtt-adc 2.7.1 → 2.8.3
Wiren Board Smart Home MQTT ADC driver compatible with HomA conventions
- Improve stop flag: make it atomic
- Fix busy loop on channel read errors: a failed measurement is retried a few times in place, and if it keeps failing the cycle is rescheduled instead of being retried without any delay
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-alice 0.10.0+wb100 → 0.13.4
Yandex smart home with Alice to MQTT for Wiren Board controllers
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Fix relative range commands - the increment from Yandex was set as the value
- Change min version for homeui
- Fix nginx 502 caused by upstream "certificate chain too long" - set proxy_ssl_verify_depth to accept the current alice.wirenboard.com cert chain
- Add support for split parameter on on_off capability
- Add support for retrievable flag for capabilities and properties
- Add support for reportable flag for capabilities and properties
- Change min version for homeui
- Add support for Yandex Smart Home mode capability
- Change min version for homeui
- Add support for Yandex Smart Home toggle capability
- Add static analysis to the project and CI pipeline
- Reformat the code with the static analysis tools
wb-mqtt-co2mon 1.1.4 → 1.2.0
WB MQTT driver for MasterKit MT8057 CO2 sensor
- Port for Debian 13
wb-mqtt-confed 1.16.7-wb100 → 1.18.2
Wiren Board Configuration Editor Backend
- Fix crash on Save RPC request without content field
- Use go 1.26 compiler
- Update dependencies
- Fix postinst script
- Update wbgo.so
- Fix ntp config migration
- Add ntpsec to dependencies
- Fix postinst script
- Bump github.com/wirenboard/wbgong to 0.7.3
- Port for Debian 13
wb-mqtt-dac 1.2.6 → 1.2.7
IIO DAC driver
- postinst: use try-restart and ignore restart failures
wb-mqtt-dali 1.12.0 → 1.20.3
MQTT DALI bridge for Wiren Board
- Fix changing and clearing a device's short address: some devices ignored the command that used to be sent and silently kept their old address. The new address is now programmed the way the device search does it and read back from the device.
- A short address change the device does not confirm is no longer applied: the settings page shows the address the device really has instead of the requested one.
- Resetting a device now always removes it from the configuration. If its short address could not be cleared, a warning is logged — run a device search to pick the device up again, it keeps the address it holds.
- Fix the device search losing a device from the config when another device on the bus has the same random address. The device lost its custom name and MQTT id and came back as a new one. Now it stays in the config and only the duplicate is found as a new device.
- Describe the device search and address assignment logic in the README.
- Fix the device search sending a duplicate COMPARE for every device it finds — the bus monitor showed two identical COMPARE lines in a row.
- Fix an error instead of a result when a device stays silent in answer to a "yes"/"no" query: silence now reads as "no".
- Fix device reset not always clearing the short address and re-reading the settings.
- Show a query left without an answer in the bus monitor: on a "yes"/"no" query silence reads as "False", on any other query as "no response".
- Fix the bus monitor showing one and the same record instead of the frames actually on the bus.
- Fix devices being polled more often than the configured interval after a dimming or a command sent from outside the service.
- Clean up /etc/wb-mqtt-dali.conf on purge
- Fix DT8 colour polling: a failing colour read no longer restarts in place at the head of the poll round (blocking other devices on the bus and hammering the failing read). A finished or failed read cycle now leaves the round and is retried after the poll interval, like the other periodic reads.
- Internal cleanup of the control-state representation: the per-control /meta/error value is now a typed ControlError flag (READ/WRITE) instead of a free string, and ControlInfo carries a single ControlState object (meta, value, error) instead of separate fields. Behaviour on the bus is unchanged — /meta/error still publishes the same r/w flag strings.
- Harden the settings-parameter apply path: every handler's read/write now returns the full, independent value of its key, so the fragile recursive deep-merge is replaced with a plain dict update. Behaviour is unchanged; this removes a class of bugs where stale sub-fields lingered or a handler's internal state leaked into the published params.
- Fix colour-temperature-limit fields on group and broadcast settings forms
- Apply own and foreign commands from a single bus-observation path: writable setpoints (wanted_level, dapc, set_rgb/white/colour_temperature) now stay in sync with the actual value of their quantity, including after foreign commands, instead of freezing; legacy identify publishes the levels the lamp really goes to; a standing /meta/error=r no longer flickers or gets reset by prediction while the bus is busy; and wanted_level is published as an integer percent.
- Fix DALI 2 colour scene membership against MASK. A colour scene that changes the colour but leaves the brightness unchanged (MASK level) is now kept enabled instead of turning its "Part of the scene" switch off, and disabling a colour scene now removes the gear from it (REMOVE FROM SCENE, clearing both the level and colour-type registers) instead of leaving a still-active colour-only scene that reappeared as enabled.
- Add bilingual (en/ru) descriptions to the DALI 2 occupancy sensor (type 3) deadtime, hold and report timer parameters, clarifying what each one affects.
- Translate config parameter descriptions: a parameter's description is now registered in the schema translations for both locales under a short, content-derived key, instead of being emitted as a single untranslated string.
- Add a per-bus "bus_monitor_syslog_enabled" option that mirrors the bus monitor lines to the controller log in addition to the MQTT topic.
- Rework the bus monitor line format: join request and response on one line, render decoded commands as copy-pasteable Bus/SendCommand expressions, drop redundant frame descriptors, and document the topic and every line variant in the README.
- Make the command expression formatter total over the command registry.
- Render decoded DALI 2 events in the bus monitor using the same A
/I /G token syntax as commands instead of python-dali's raw repr. - Add optional "mqtt_id" and "name" device fields to the configuration schema.
- Remove the unused, always-null "stage" field from the commissioning progress message.
- Rework the README and add docs/editor_rpc.md documenting the supported device types, MQTT topics and RPC API; drop the AsyncAPI spec.
- Reset the button pressed state on short, double and long-press events, not only on the button-released event.
- Bind the colour temperature sliders to the device's live Coolest/Warmest limits via min_limit/max_limit dotted paths instead of static minimum/maximum.
- Fix aiomqtt compatibility
- Update event latency test
- Update priority starvation test
- Use quiescent mode when reading devices info after bus scan
- Always send Terminate when the bus scan fails, so control gear does not stay withdrawn until the INITIALISE timeout.
- Fix crash and incorrect value when decoding general purpose sensor measurement events.
- Return a syntax-error result instead of closing the connection on a malformed Lunatone IoT DALI frame.
- Roll back cleanly when bus start-up fails after driver initialization, instead of leaking the driver and getting stuck.
- Always resolve pending control-write requests if an unexpected error occurs while processing a control batch.
- Guard parsing of DALI reply payloads so malformed or empty replies fail fast instead of waiting for the command timeout.
- Fix bus traffic monitor dropping frames reordered across the full gateway queue depth (e.g. on a device ring-buffer wrap) and publishing them out of order.
- On MQTT broker disconnect, cancel in-flight tasks and tolerate a bus still initializing, instead of terminating the service.
- Replace an assert with an explicit error when querying device types (no asserts in production code).
- Add code-review-orchestrator skill and adapt the project workflow, rules and docs to it.
- Port for Debian 13
- Fix device parameters being wiped from cache after SetDevice.
- Add e2e test for event handling latency.
- Fix pylint
- Add e2e test for parallel execution of bus scan on 3 buses
- Fix tests memory leak
- Report fine-grained commissioning progress while reading mandatory device parameters after the bus scan (was previously frozen at 81%).
- Fix DT51 parameters layout in homeui
- Add support for frame priorities.
- Use appropriate priorities for internal commands.
- Add command line option for setting priority of CLI commands.
- Decrease CPU load
- Fix bus monitor commands order display
- Fail commissioning with a clear error when a device cannot be assigned a short address (bus has more than 64 devices, or PROGRAM SHORT ADDRESS is not confirmed by VERIFY/QUERY). Previously such cases could silently corrupt the commissioning result.
- Add DT51 (energy reporting device): publish active energy/power controls and read DT51 memory banks (202 mandatory; 203/204 picked up if apparent/loadside reporting is supported). Energy reads are chunked into preemptable subbatches like DT-8 colour.
- Fix DT-8 / DT51 chunked polls stalling ~1 s between subbatches.
- Handle gateway reset
- Use DALI-2 instead of DALI2 in naming and logs
- Add Bus/SendCommand RPC for sending arbitrary DALI command batches on a running bus
- Add Bus/ListCommands RPC exposing the catalog of supported DALI commands
- Rework CLI --send-command to use expression syntax: --command "Name(A
, I , data)"; remove --address/--group/--broadcast/--data flags - Show address and instance hints in --list-commands category headers
wb-mqtt-db 2.9.3 → 2.11.0
Wiren Board database logger
- Use system-wide sqlitecpp
- Clean up /etc/wb-mqtt-db.conf on purge
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Check that libsqlite3 is built with SQLITE_ENABLE_UPDATE_DELETE_LIMIT
- Unsubscribe from watched topics before disconnecting on stop to avoid "Broken pipe" error in mosquitto log
- Port for Debian 13
wb-mqtt-db-cli 1.4.8 → 1.5.0
CLI for wb-mqtt-db
- Add bash completions
- Fix --decimal-places: formatting failed with an error, zero places were ignored
- Fix --from/--to handling: timezone offset was dropped, shifting the requested range
- Print informational messages to stderr, keeping CSV output on stdout clean
- Exit with non-zero code if the backend fails to process a request in time
- Update debianization. No functional changes
wb-mqtt-gpio 2.16.3 → 2.18.3
Wiren Board Smart Home MQTT generic GPIO driver compatible with HomA conventions
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Remove obsolete wb-modules.service dependency
- Add mosquitto.service dependency to ensure that mosquitto is started before wb-mqtt-gpio
- Fix phantom counter increments on idle inputs: a pulse is now counted only when the input level actually holds for the debounce time.
- Fix all inputs disappearing when a counter is configured on a GPIO chip without interrupt support (e.g. wbec-gpio MOD inputs)
- Port for Debian 13
wb-mqtt-homeui 2.208.1-wb102 → 2.248.1
Wiren Board Web UI web interface
- Rename factory reset buttons
- Add error state display for devices
- Rename unixtime control type to local_time
- Fix device card expanding on hover when the cell history icon appears
- Temporarily disable custom column layout when a device type filter is active
- Show the terminal on-screen key panel only on devices without a physical keyboard: it was shown on any touch-capable machine, a touchscreen laptop included
- Add user role description
- Fix emoji rendering in rules console
- Add emoji font fallbacks to the CSS font stack
- Add "Ctrl + `" global shortcut to toggle the console panel
- Persist console panel open/close state and active tab across page reloads
- Fix info popup's transparency
- Add custom font management for SVG dashboards
- Ask for confirmation before rereading device settings when they have unsaved changes, instead of discarding the entered values without a question
- Fix a needless login prompt when opening the controller over HTTP: the session was checked before the redirect to HTTPS, on the host whose cookie does not apply
- Show the loader during the HTTPS check only if it takes longer than a second, and name the certificate issuing separately from the check itself
- Do not fall back to an unencrypted connection once the switch to HTTPS has started: going back to the HTTP page restarts the switch instead of serving the app there
- Fix create first user logic
- Fix create first user flow without setup https
- Fix DALI bus monitor showing a reply that never arrived or arrived corrupted as a successful value: "no response" and framing errors are now marked as errors
- Keep 2000 lines in the DALI bus monitor instead of 500
- Fix broken result of DALI manual commands for which the absence of a reply is itself an answer: such commands now show "no response" plus the decoded value
- Fix channel patterns like +/+ disappearing from MQTT history settings
- Show "Nothing found" in dropdowns instead of an empty box
- Fix cell fraction after zero
- Fix disabled input background
- Fix scroll on logs page: filters stick at the top, only log entries scroll
- Fix active tab background in JSON editor (config pages)
- Improve disabled switch contrast in dark theme
- Use monospace font in console panel update component
- Validate theme value from localStorage against Theme enum
- Let cloud tunnels through service gates from loopback
- Exempt cloud tunnel requests from the service gate rate limit
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Add sorting to text dashboards and devices
- Add terminal
- Recreate wb-webui.conf and wb-homeui-backend.conf on startup if the existing file is empty
- Remove Wiren Board Cloud branding from Russian cloud status strings
- Fix History page not loading device topics on direct navigation
- Fix collapsing serial port selecting port tab instead of keeping device tab selected
- Fix duplicate devices created when re-scanning the serial bus after adding devices without saving
- Add opt-in new json-schema-editor for configs via the wb-json-editor flag
- Update autocomplete snippet
- Fix collapsing colour temperature slider in DALI bus editor
- Update completions
- Fix colour temperature limits in DALI group and broadcast editors
- Fix history load on page refresh
- Fix history update info on static filter
- Fix svg relayout of svg dashboards
- Fix svg dashboards
- Add DALI group to devices filter
- Add custom template tag
- Repair default dashboards poisoned by the 2.237.0-2.238.0 baseline migration bug: force-sync a known-poisoned baseline hash to the current default regardless of live content
- config editor: keep the vertical tab list readable when the form is short
- fix device name translations
- json-schema-editor: add readme
- Support external menu links: custom-menu items can carry isExternal, openInNewTab and requiredRole; a safe post-login external return
- Add service gates: one JSON in gates.d (package-installed in /usr/share, admin-owned in /etc/wb-homeui, /etc wins on a name clash) puts a loopback service behind the homeui login; nginx configs and menu items are rendered by the backend and follow the effective HTTPS mode, with nginx -t validation and rollback (wb-homeui-gates CLI to check/apply)
- Raise the /auth/check rate limit to 1000 req/min per client and cache gate auth answers in nginx; per-IP limit_req (900/min) on gate ports
- Fix Zigbee devices being grouped under Modbus in the devices filter
- Serve the main UI over TLS whenever the certificate file loads, even when expired (browser warns, channel stays encrypted). Fall back to HTTP only when the file is missing or unreadable and reissue fails; HTTPS returns automatically once a usable certificate is written. Certificate writes are atomic.
- Pin logout/console buttons in menu
- Fix colors
- Request an HTTPS certificate immediately when enabling HTTPS in settings, and fix the certificate status banner getting stuck on a stale status
- Add themes
- Reconcile default dashboards seeded before baseline hashing existed: sync unrenamed ones to the current default instead of permanently treating them as user-edited
- Custom menu: read drop-ins from three per-origin dirs (package /usr/share, generated /var/lib, user /etc/wb-homeui/custom-menu) and persist /etc/wb-homeui across firmware updates via wb-configs
- Fix datetimepicker select logic
- Keep device name and MQTT id when switching device template
- wb-dynamic-type: update options keys
- Scroll to active dropdown option on open
- Fix HTML in json-editor schema descriptions
- Remove typo
- Fix device icon on mobile resolution
- Fix install
- Add bash completions
- Fix mosquitto override config
- Show the firmware-update banner when only a newer bootloader is available
- Serve dashboards from the HTTP backend (wb.homeui_backend) instead of confed: a lightweight index without inline SVG, lazy per-dashboard SVG GET, and atomic PUT writes that preserve inline svg.current
- Move board detection, initial config seeding and default-dashboard reconciliation into the backend service; drop generate-system-config.sh
- Switch the dashboards UI to the HTTP backend (lazy SVG, load/SVG error states) and remove the now-unused wb-webui.conf confed schema
- Make the config editor tab list scroll on its own
- rules: update autocompletes
- Fix wb-dynamic-type field resetting saved color and text on scenario reopen
- Add wb-dynamic-type json-editor widget for scenario output value
- Encode special characters in rule editor URLs
- DALI: keep renamed device names on page load instead of overwriting them with a retained scan result
- Fix the rule's opening with slashes
- Add logs filters to url
- Fix json editor responsive table width
- Add drawer component
- Move widget modals to drawer
- Add widget edit prevent close logic
- Pin add control button
- Fix mosquitto ACL file permissions
- DALI: render the bus monitor as a global console tab with address filter and save-to-file
- DALI: add a per-bus "Save to syslog" toggle
- Add Claude Code agent guidance (CLAUDE.md) and project rules
- Add backend dev tooling config (pyproject, requirements, venv bootstrap)
- Refactor console panel to a per-tab toolbar and content API
- Device name in tab list (device manager)
- Add console tabs overflow logic
- Disable button on loading
- Add split parameter for on_off capability in the Alice integration page
- Add retrievable option for capabilities and properties
- Add reportable option for capabilities and properties
- Fix CellAlert test to expect success variant for falsy value
- Fix displaying read errors for alarm controls
- Add tests
- Fix json-editor horizontal tabs
- Add posibility to disable widget cell
- Fix alice errors on save
- Fix DALI colour temperature slider to follow the device's current Coolest/Warmest limits live. The slider steps in 100 K.
- Fix rule prevent leave on save
- Fix edit with dropdown
- Fix json-editor's default enum translations
- Update ci
- Fix searching for a disconnected device: the found device is now selectable, so its connection settings (e.g. baud rate) can be re-applied
- Add page name in title
- Add a device type filter and icons to the Devices page
- Fix logout return state url
- Add popup component
- Add rule edit prevent leave page hook
- Add return button to history page
- Fix history mobile layout
- Fix endless loader on device scan add
- Device manager — add disabled device icon and tooltip
- Add second password field to approve current password
- Add restore password link to login page
- Use pre-defined DH group ffdhe2048 recommended by the IETF
- Add mode capability to the Alice integration page
- Require nodejs>=22
- Port for Debian 13
- Move from angular to react
- Move from webpack to vite
- Update routes
- Add help link to page header
- Update json editor styles
- Fix all typescript and eslint errors
- Fix default svg colors
- Hide dropdown arrow for readonly fields on DALI settings page
- Fix DALI device scenes settings editor scroll bug
- Fix pylint
- Add select ability for autocomplete fields
- Upgrade logs page
- Refactor Alice device-capabilities by splitting it by capability type
- Make Alice capability labels clickable
- Update config editor page
- Add toggle capability to the Alice integration page
- Ask for confirmation before rebooting the controller from the device panel
- Add DALI bus manual command entry with catalog and autocomplete
- Add Kelvin input to DALI color temperature editor
- Fix missing title and description for autocomplete fields
- Return tests for fw-utils
- Update system page
- Move update/reset process logs to console component
- Unify autocomplete fields
wb-mqtt-iec104 1.2.0 → 1.3.1
Wiren Board MQTT to IEC 60870-5-104 gateway
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-knx 1.13.4 → 1.14.1
Wiren Board MQTT to KNX gateway
- Fix use-after-free and null dereference when sending a telegram while knxd is disconnected
- Fix double free of the knxd connection on service stop
- Fix 4-octet unsigned fields of JSON datapoints always reading as zero
- Fix non-ASCII characters corrupting JSON string fields
- Port for Debian 13
wb-mqtt-logs 1.5.5 → 1.6.0
Wiren Board journald to MQTT gateway
- Port for Debian 13
- Fix build with gcc14
- Improve logging
- Fix order of dmesg log entries in RPC Load response
wb-mqtt-mbgate 1.8.8 → 1.9.2
Wiren Board MQTT to Modbus gateway
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Port for Debian 13
wb-mqtt-opcua 1.3.1-wb101 → 1.5.1
Wiren Board MQTT to OPC UA gateway
- Fix crash on writing a string value from an OPC UA client
- Use system-wide open62541
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Recreate config on package install if the existing file is empty
- Fix memory leak
- Port for Debian 13
wb-mqtt-rfblinds 1.0.4 → 1.0.5
Somfy and Dooya devices integration
- Fix pylint
wb-mqtt-serial 2.248.1-wb107 → 2.268.0
Wiren Board Smart Home MQTT serial protocol driver
- Evaluate declaration conditions in device/Set and device/Load RPC: a channel or parameter is written and a parameter is read by the declaration whose condition is true, so condition variants with different scales are converted right (wb-mai6, wb-mai2-cc, oni-plc-w-ema-06u00). device/Set evaluates the conditions over the request values and reads the missing condition parameters from the device. An item with false conditions is skipped by device/Set and is not included in the device/Load answer, an item with several matching declarations rejects the request
- Skip a readonly or unknown parameter in a device/Set request instead of rejecting the request
- Reject writing a read only channel in device/Set by the register type too, not only by the "readonly" key: a write to an input or discrete register used to reach the device and fail there
- Require numbers as device/Set parameter values, like the device configuration schema does
- Do not fail device/Load and device/Set when a condition parameter got no value: the device does not support the register or the value matches the "error_value", "unsupported_value" or Wiren Board 0xFFFE marker. The conditions over it are evaluated with an undefined value like in the web interface: comparisons are false, "!=" is true, "isDefined" is false
- Return "unsupported" in the device/Load answer only for an item whose own register was not read, list only channels in the readonly array and read only the condition parameters of the requested items
- Check the Wiren Board 0xFFFE marker in device/LoadConfig before resolving conditions, a parameter depending on an unsupported register is not resolved by the number 65534
- Remove the register address from the readonly heating_options parameter of the WBE2-I-OPENTHERM fw 1.7.3 template, readonly parameters only organize the web interface
- Restore continuous read register value after RPC requests
- Add wb_time_sync_interval device parameter
- Rename unixtime control type to local_time
- Do not write continuous read register if continuous read is already enabled
- Check that declarations of a parameter used in conditions read and convert the register identically. A device template violating the rule is rejected on first use and on templates/Upload
- Clear fw-update RPC and firmware update state topics on service stop
- Fix offset descriptions in templates with multisensor 1-Wire support (WB-MS v.2, WB-MIR v.3, WB-M1W2 v.3)
- Fix Carel template titles
- Add temperature offset registers for templates with multisensor 1-Wire support (WB-MS v.2, WB-MIR v.3, WB-M1W2 v.3)
- Clarify max_read_registers applies to coils and discrete inputs too
- Fix templates/Upload RPC numeric channel enum values validation
- Fix device/Load RPC failure for WB devices with enum channels
- Move firmware release indexes download from port thread to RPC thread
- Finish unifying displayed UI texts across the remaining WB families (display-only): WB-MAO4 (mao4, mao4-20ma, mao4-20ma-fw-2.9), WB-MDM3, WB-MSW (v3/v4/v4_lora), WB-MIR (v2/v2-buttons/v3/v3-fw-4.35) — Serial Number, Firmware Version, Supply Voltage, Min Supply/MCU Voltage Since Startup; RU "одиночных нажатий"; for WB-MAO4 the press-counter display is aligned (Short->Single, Shortlong) via translations only — channel names (MQTT topics) are unchanged. Also add the missing Serial Number / Firmware Version display texts to the WB-MAO4/MDM3/LED/MRGBW-D fw-variant templates from the earlier migration, and fix a "воспроизведена" typo in WB-MSW/MIR descriptions. Only current (g-wb) templates. Validate.dat unchanged.
- Unify displayed UI texts across several WB families (display-only): WB-MAI (MAI11/MAI2-CC/MAI6), WB-MIO, WB-UPS v.3, WB-DALI, WB-MCM8, WB-MS v.2, WB-MWAC (MWAC/MWAC2/MWAC2 ver.2), WB-M1W2, WB-LED, WB-MRGBW-D. Canonical texts — Serial Number, Firmware Version, Supply Voltage, Min Supply Voltage Since Startup, Min MCU Voltage Since Startup; RU "одиночных нажатий" for the single-press counter; fix a Cyrillic homoglyph ("сhange"->"change") in the WB-MWAC/WB-MWAC2 safety-behaviour enum title. Only current (g-wb) templates are touched. Channel names (MQTT topics) are not changed — backward compatible, Validate.dat unchanged.
- WB-MR relay family templates (WB-MR3, WB-MR6C/-NC/CU/v.3, WB-MRM2-mini/NO, WB-MRM2-mini/NC, WB-MRWM2): unify displayed UI texts for entities named differently across templates — Serial Number, Firmware Version, Supply Voltage, Min Supply Voltage Since Startup, Min MCU Voltage Since Startup; RU "одиночных нажатий" for the single-press counter; fix a Cyrillic homoglyph ("сhange"→"change") in the WB-MRWM2 safety-behaviour enum title. Only current (g-wb) templates are touched; obsolete g-wb-old ones are left as is. Channel names (MQTT topics) are not changed — backward compatible, Validate.dat unchanged.
- WB-MAO4, WB-MDM3, WB-MRGBW-D, WB-LED templates: unify UI texts for entities that are named differently across the templates, translate placeholder group titles, fix the WB-MAO4 safety group carrying the power-up description, and drop 8 duplicate unused group ids in WB-LED
- Fix deps
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Add buttons functionality to WB-MCM8HV template
- Bring WB-MCM8HV template in line with WB-STD-001/002/003
- Regenerate config if the existing one is empty
- Fix endless fast modbus events reading from the flooding device
- Fix clang-tidy, no functional changes
- Fix clang-format, no functional changes
- Clarify timeouts and register reading documentation
- Fix write retry on a disconnected device
- config/Load RPC: device types with the active template loaded from the user templates directory are marked with "user-defined" flag
- New templates/Upload and templates/Delete RPC methods to manage user defined device templates
- Files watcher handles file moves (mv) in templates directories
- Convert numeric channel enum values to strings
- Fix possible crash on live reload of a device template file with a unique device type
- ONOKOM templates update (external contribution): - add GR-5-MB-B and PN-1-MB-B device templates - add "External air temperature" channel to all devices (gated by the "Allow the use of an external temperature sensor" setting, off by default) - add "Idu count" channel translation for VRF devices - add error-data channels to the ME-1-MB-B template - refresh the remaining non-deprecated ONOKOM templates
- Take the released bootloader version from boot/by-signature/release-versions.yaml by the
controller's release suite (testing/stable), mirroring firmwares, instead of the
suite-agnostic bootloader/by-signature/
/main/latest.txt - fw-update GetFirmwareInfo: stop reporting garbage for third-party devices. Sanitize the firmware and bootloader version strings read from the device (printable ASCII only) so raw bytes no longer leak into fw/bootloader; treat an empty or non-printable firmware signature as "no signature" and skip the release-server lookup (no more bogus by-signature// requests); report can_update only when the release server actually offers a firmware or bootloader for the device
- Carel µC2SE template: move integer registers to the stable holding region (base 1000, available on WB-REF-U firmware 1.6.0+); add Digital Output 1-5 status channels
- config-wb-ups-v3.json.jinja: remove trailing comma after the last debug group; it produced invalid JSON and broke template-dump regeneration (TDeviceTemplatesTest.Validate). Regenerate the stable register dump
- config-wb-ups-v3.json.jinja: Add battery charge level raw channel
- Add ip address pattern to port schema
- MAP templates: Add peak detection period parameter and instant U/I values
- Add new templates for WB-LED and WB-MRGBW-D (fw 3.8):
- Add encoder support
- Add configurable dimming step for short presses
- Add 2CCT output mode (WB-LED)
- Change switch actions config order to channel -> action (WB-LED)
- Add smooth dimming control from remote buttons
- Add duplicate control channels with auto-on
- Add new templates for WB-MDM3 (fw 2.12) and WB-MAO4 (fw 2.9):
- Add encoder support
- Add configurable dimming step for short presses
- Add smooth dimming control from remote buttons
- Add duplicate control channels with auto-on
- MWAC templates: Add buzzer beep duration parameter
- Add Carel µC2SE and IR33 templates (via WB-REF-U)
- Port for Debian 13
- Fix WB-LED and WB-MRGBW-D fw3 templates: use 'sporadic' type for some output registers
- Add continue_polling_on_illegal_modbus_exception device configuration option. It keeps registers that return ILLEGAL_DATA_VALUE in polling instead of excluding them.
- config-wb-mrwm2.json.jinja: Add timer functions
- MR templates: Add condition for restart delay
wb-mqtt-smartweb 1.5.0 → 1.6.1
Wiren Board MQTT SmartWeb driver.
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-snmp 1.5.0 → 1.6.1
Wiren Board MQTT to SNMP gateway
- Use go 1.26 compiler
- Port for Debian 13
wb-mqtt-urri 1.2.8 → 1.2.9
Wiren Board URRI receiver (MQTT driver)
- Fix pylint
wb-mqtt-w1 2.3.1 → 2.4.1
Wiren Board MQTT 1-Wire driver
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-waterius added 1.0.0
Send Wiren Board meter readings to the Waterius cloud
wb-mqtt-zigbee 1.4.3 → 1.4.11
Wiren Board Zigbee2MQTT bridge
- Harden MQTT handlers against malformed payloads (non-UTF-8, unexpected JSON shape, deeply nested or oversized) so a bad message can no longer crash the daemon
- Reject device renames to names containing MQTT wildcards/separators, which could hijack a device's topic subscription
- Give every device whose ID collides after name sanitization (e.g. "lamp.1" vs "lamp 1") an IEEE-suffixed ID, leaving the ambiguous ID unpublished, so retained topics and commands can no longer be clobbered or misrouted. The ID layout depends only on the current device list, so it stays the same across restarts
- Keep devices and their availability intact across renames and ID changes
- Strip control characters from the zigbee2mqtt log text before publishing it to the bridge Log control
- Fix postinst script
- Report device availability via WB meta/error: an unreachable device gets a device-level error ("r" for read-only devices, "rw" when it also has writable controls), cleared automatically when the device is back online
- Flag the bridge device with meta/error "rw" while zigbee2mqtt is offline/errored, cleared when it is back online
- Register an MQTT Last Will so the broker flags the bridge device with meta/error if the service dies unexpectedly (crash/kill); cleared on restart
- Drop the model from the device card name once the device is renamed in zigbee2mqtt: show "{model} {friendly_name}" only while unnamed (friendly_name equals the IEEE address), otherwise just the user's chosen name
- Add a readonly "Model" control to every device card
- Show the device model in the WB device card: use "{model} {friendly_name}"
- Add power_source control to the device card with Russian translations
- Convert battery voltage/current from milli-units (mV/mA) to V/A in the card
- Add control and device meta subtopics for HomeAssistant discovery
- Update Russian translations
- Add Russian titles for common zigbee device controls
wb-nm-helper 1.37.1 → 1.39.0
Wirenboard network configuration backend for wb-mqtt-confed.
- Convert python3-wb-nm-helper into transitional dummy package
- Disable PMF for Wi-Fi access point for RTL8723BU
- Recover connectivity after NM deactivates the current connection
- Restart wb-mqtt-nm-helper on failure
- Migrate from pycares to dnspython
wb-node-red added 1.0.3
Node-RED for Wiren Board controllers (native)
wb-rules 2.40.0-wb100 → 2.46.5
Wiren Board Rule Engine
- Notify.sendSMS: fix a vulnerability that let the message text or the recipient number run arbitrary commands on the controller; allow double quotes and non-BMP characters in the message
- A control write of a value that cannot be converted to the control's datatype is now reported to the rule debug console (both getControl("dev/ctrl").setValue(...) and dev["dev/ctrl"] = ...); previously it went only to syslog and was invisible in the web UI. The write is still ignored and the rule keeps running, so this is NOT a backward-incompatible change - it just makes the mistake visible. A rejected write also no longer updates the engine's cached value for that control.
- Reduce CPU usage of control reads and writes: the object returned for dev[...] is now built once per control, and its methods once at startup, instead of both being rebuilt on every access
- Fix unbounded memory growth with timer-driven rules that write controls
- Use go 1.26 compiler
- Update dependencies
- Notify: fix sendSMS()
- Fix trackMqtt callback not firing on script reload when another script tracks the same topic
- Notify: enhance sendTelegramMessage to accept additional options
- Fix disabled cron rules being re-enabled on script reload
- Update wbgo.so
- StorableObject: hide technical _psself field from Object.keys() and Object.keys().forEach(), matching the behavior already present in for-in
- Fix memory leak with startTicker
- Notify: fix garbled emoji (and other non-BMP characters) in sendEmail subject and body by encoding them as proper UTF-8 base64 instead of Duktape's CESU-8
- Notify: sendEmail/sendSMS/sendWebhook/sendTelegramMessage accept an optional callback(err) reporting the send result; when given, the caller owns error handling, otherwise the error is logged as before
- Editor: reject saving hidden files and ignore them in the directory watcher
- Port for Debian 13
- trackMqtt: pass 'retained' and 'qos' parameters to callback function
- Add VK, MAX, Matrix, WeChat Work and generic HTTP webhook recipient types for Alarms
wb-rules-system 1.13.5 → 1.13.8
Default system rules for Wiren Board
- Fix findings of the wb-rules type checker (checkJs) in the shipped rules: - power-class-battery: declare psName (was an implicit global) - buzzer: compute PWM period/duty with an explicit integer truncation instead of parseInt(number) (ES5, works on every wb-rules version) - hwmon: do not redeclare nodeName with a different type in one function - system, system_time, wbmz-battery: annotate cell specs as ControlsSpec so they type-check against the wb-rules control types
- hwmon: Add GPU Temperature translation
- postinst: use try-restart and ignore restart failures
wb-scenarios 1.9.0 → 1.10.2
Scenarios for Wiren Board
- Declare implicit globals (ok in light-control, id in translit) found by wb-rules checkJs
- Fix JSDoc inaccuracies found by wb-rules checkJs, no runtime changes
- Merge the two action tables into table-handling-actions.mod.js
- Fix light-control: split lightOn command/status, deterministic startup, gate door timer during motion
- Add auto-off delay to schedule and astronomical timer
- schema: rename wb-dynamic-type options keys
- Add Set Color and Set Text output actions to light-control
- postinst: use try-restart and ignore restart failures
- Add Set Color and Set Text for output actions via wb-dynamic-type widget
- Fix light-control: stop clearing already-fired countdown timers
- Update channel-map: added inversion checkbox
- Update thermostat: update PID translations
- Update pid-controller: update translations
- Update periodic-timer: initialization
wb-suite 1.20.9 → 1.21.0
Wirenboard vendor software set
- Port for Debian 13
wb-tsgo added 7.1.0~dev.20260813
TypeScript compiler (Microsoft typescript-go)
wb-update-manager 1.4.0 → 1.5.2
Wirenboard software updates and release management tool
- Fix crash on relative --log-filename path
- Fix locale detection in obsolete repositories update tip
- Add bash completion
- Port for Debian 13
wb-utils 4.27.8-wb100 → 4.28.6
Wiren Board command-line utils
- wb-gsm: wait for modem to report OFF before switching off power FET
- wb-run-update: fix progress bar size when checking hash of non-rootfs blob
- Grant permissions to install_update.web.flags to www-user user
- Fix noise output during upgrade with FIT
- Move ssh host keys generation to wb-configs
- Don't wipe /mnt/data during upgrade with fit-image
- Don't allow rollback from trixie to bullseye without factoryreset
- Port for Debian 13
wb-vout-watchdog added 1.1.0
Wiren Board Vout undervoltage watchdog
wb-bootlet-wb7x 5.10.35-wb182-fs1.5.4-deb11-202512150209 → 5.10.35-wb182-fs1.5.5-deb11-202604271427
FIT bootlet images, Wiren Board 7 (bootlet)
u-boot-tools-wb 2:2025.04+wb1.1.5-wb101 → 2:2025.04+wb1.1.8
companion tools for Das U-Boot bootloader
- wb8: expose strap-detected DRAM type and probed size as /chosen/wb-dram
- add LPDDR4X 16Gb DRAM profile, selected by the LPDDR4X strap
- fix LRADC strap read so the LPDDR4X strap is detected
- add DST eye-scan DRAM characterisation, exposed via /chosen/wb-dram-dst
- Pull 38071cb changes to our main branch
u-boot-wb7 2:2025.04+wb1.1.5-wb101 → 2:2025.04+wb1.1.8
Das U-Boot bootloader for Wiren Board 7 (image)
- wb8: expose strap-detected DRAM type and probed size as /chosen/wb-dram
- add LPDDR4X 16Gb DRAM profile, selected by the LPDDR4X strap
- fix LRADC strap read so the LPDDR4X strap is detected
- add DST eye-scan DRAM characterisation, exposed via /chosen/wb-dram-dst
- Pull 38071cb changes to our main branch
gir1.2-mbim-1.0 removed 1.28.0-1~bpo11+1
gir1.2-qmi-1.0 removed 1.32.0-1~bpo11+1
gir1.2-qrtr-1.0 removed 1.2.2-1~bpo11+1
libmbim-glib-dev removed 1.28.0-1~bpo11+1
libmbim-glib4 removed 1.28.0-1~bpo11+1
libmbim-proxy removed 1.28.0-1~bpo11+1
libmbim-utils removed 1.28.0-1~bpo11+1
libmosquitto-dev removed 2.0.20-1-wb103
libmosquitto1 removed 2.0.20-1-wb103
libmosquittopp-dev removed 2.0.20-1-wb103
libmosquittopp1 removed 2.0.20-1-wb103
libqmi-glib-dev removed 1.32.0-1~bpo11+1
libqmi-glib5 removed 1.32.0-1~bpo11+1
libqmi-proxy removed 1.32.0-1~bpo11+1
libqmi-utils removed 1.32.0-1~bpo11+1
libqrtr-glib-dev removed 1.2.2-1~bpo11+1
libqrtr-glib0 removed 1.2.2-1~bpo11+1
libsigrok4 removed 0.5.2-3+wb104
libsigrokcxx4 removed 0.5.2-3+wb104
libsigrokdecode4 removed 0.5.3-4
mobile-broadband-provider-info removed 20230416-1
mosquitto removed 2.0.20-1-wb103
mosquitto-clients removed 2.0.20-1-wb103
mosquitto-dev removed 2.0.20-1-wb103
python-gsmmodem-new removed 1:0.11
python3-asyncio-mqtt removed 0.10.0-wb101-1
python3-intelhex removed 2.3.0-1
python3-paho-socket removed 0.0.3-3
python3-wb-mqtt-metrics removed 0.5.0
python3-wb-nm-helper removed 1.37.1
python3-wb-update-manager removed 1.4.0
sigrok-cli removed 0.7.2-1
wb-mqtt-zabbix removed 0.2
Contrib packages
- comerr-dev (common error description library - headers and static libraries) 2.1-1.46.2-2+wb1 → 2.1-1.47.2-3+wb100
- containerd.io (An open and reliable container runtime) added 2.2.4-1~debian.13~trixie
- docker-ce (Docker: the open-source application container engine) added 5:29.5.2-1~debian.13~trixie+wb101
- docker-ce-cli (Docker CLI: the open-source application container engine) added 5:29.5.2-1~debian.13~trixie
- docker-compose-plugin (Docker Compose (V2) plugin for the Docker CLI.) added 5.1.4-1~debian.13~trixie
- e2fsck-static (statically-linked version of the ext2/ext3/ext4 filesystem checker) 1.46.2-2+wb1 → 1.47.2-3+wb100
- e2fsprogs (ext2/ext3/ext4 file system utilities) 1.46.2-2+wb1 → 1.47.2-3+wb100
- e2fsprogs-l10n (ext2/ext3/ext4 file system utilities - translations) 1.46.2-2+wb1 → 1.47.2-3+wb100
- flash-simcom-a76xx (Simcom modem flash utility) 1.1.2 → 1.2.0
- frpc (A fast reverse proxy - client package) 0.62.1-3-gb168dfea-wb3 → 0.62.1-3-gb168dfea-wb4
- frps (A fast reverse proxy - server package) 0.62.1-3-gb168dfea-wb3 → 0.62.1-3-gb168dfea-wb4
- fuse2fs (ext2 / ext3 / ext4 file system driver for FUSE) 1.46.2-2+wb1 → 1.47.2-3+wb100
- gir1.2-modemmanager-1.0 (GObject introspection data for modemmanager) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- gir1.2-nm-1.0 (GObject introspection data for the libnm library) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- knxd (daemon to access the KNX bus) 0.14.74-1+wb100 → 0.14.74-1+wb101
- knxd-dev (development files for knxd) 0.14.74-1+wb100 → 0.14.74-1+wb101
- knxd-tools (tools to use knxd) 0.14.74-1+wb100 → 0.14.74-1+wb101
- libcom-err2 (common error description library) 1.46.2-2+wb1 → 1.47.2-3+wb100
- libext2fs-dev (ext2/ext3/ext4 file system libraries - headers and static libraries) 1.46.2-2+wb1 → 1.47.2-3+wb100
- libext2fs2t64 (ext2/ext3/ext4 file system libraries) added 1.47.2-3+wb100
- libmm-glib-dev (D-Bus service for managing modems - library development files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmm-glib-doc (D-Bus service for managing modems - library documentation) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmm-glib0 (D-Bus service for managing modems - shared libraries) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmodbus-dev (development files for the Modbus protocol library) 3.1.6-wb2 → 3.1.11-2+wb100
- libmodbus5 (library for the Modbus protocol) 3.1.6-wb2 → 3.1.11-2+wb100
- libnm-dev (GObject-based client library for NetworkManager (development files)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- libnm0 (GObject-based client library for NetworkManager) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- libsigrok-dev (sigrok hardware driver library - development files) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- libsigrok4t64 (sigrok hardware driver library - shared library) added 0.5.2-5.1+wb105
- libsigrokcxx-dev (sigrok C++ bindings - development files) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- libsigrokcxx4t64 (sigrok hardware driver library - shared library) added 0.5.2-5.1+wb105
- libss2 (command-line interface parsing library) 1.46.2-2+wb1 → 1.47.2-3+wb100
- logsave (save the output of a command in a log file) 1.46.2-2+wb1 → 1.47.2-3+wb100
- modemmanager (D-Bus service for managing modems) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- modemmanager-dev (D-Bus service for managing modems - development files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- modemmanager-doc (D-Bus service for managing modems - documentation files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- mqttui (Subscribe to a MQTT Topic or publish something quickly from the terminal) 0.23.0-1 → 0.24.0-1
- network-manager (network management framework (daemon and userspace tools)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-config-connectivity-debian (NetworkManager configuration to enable connectivity checking) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-dev (network management framework (development files)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-l10n (network management framework (translation files)) added 1.52.1-1-wb100
- python3-sigrok (libsigrok Python 3 bindings) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- ss-dev (command-line interface parsing library - headers and static libraries) 2.0-1.46.2-2+wb1 → 2.0-1.47.2-3+wb100
- tailscale (The easiest, most secure, cross platform way to use WireGuard + oauth2 + 2FA/SSO) 1.98.2 → 1.102.1
- wb-welrok (Wiren Board MQTT Driver for Welrok thermostat) 0.0.20 → 0.1.13
- z-way-server (Trident IoT Z-Way Smart Home Gateway) 4.1.1-lws16 → 5.0.2-309-g78fdef5f~trixie-1
- zigbee2mqtt (Zigbee to MQTT bridge (package by Wiren Board team)) 2.10.0-wb101 → 2.13.0-wb101
Wiren Board vendor packages
atecc-util 0.4.13-wb101 → 0.6.0
ATECC508A/608A configuration utility based on cryptoauthlib
- Take the cross-stack chip lock for the whole run to serialize access with other cryptoauthlib users (such as the OpenSSL engine), and park the chip with a real Sleep on exit to wipe any latched fault state
- Port for Debian 13
libateccssl1.1 0.2.6-wb102 → 0.4.2
ATECC508A/608A engine for OpenSSL 1.1.x
- ateccssl: keep the engine's shared EC_KEY_METHOD (and ECDSA/pkey methods) for the process lifetime instead of freeing them in eccx08_finish; the method is a process singleton, and freeing it while an SSL_CTX still holds a key that references it is a use-after-free on teardown (fatal SIGSEGV on the OpenSSL 1.1 line, see 0.2.6-wb102; latent here under OpenSSL 3)
- cryptoauthlib: bump the bundled library to current master
- ateccssl: park the chip with Sleep instead of Idle at session end; latched chip states (RNG health-test 0x08, corrupted idle) no longer survive between sessions
- ateccssl: serialize all chip users with a robust shared-memory mutex (frozen name sourced from cryptoauthlib, publish-after-init creation)
- ateccssl: cure and retry once on a latched RNG health test instead of failing the session
- ateccssl: fix segfault from a half-built ECDSA_SIG on release failure
- ateccssl: fix memory leaks and a borrowed-EVP_PKEY free on the key and sign paths
- ateccssl: add runtime-toggleable diagnostics (ATECC_DIAG=1) and human-readable errors in the OpenSSL error queue
- cryptoauthlib: robust wake sequence (retries with backoff, cure of an abandoned-awake chip, drain of stale response frames)
- Port for Debian 13
libwbmqtt1-5 5.6.0-wb102 → 5.7.3
Wiren Board MQTT abstraction layer and utils library
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
libwbmqtt1-5-dev 5.6.0-wb102 → 5.7.3
Development files for libwbmqtt1
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
libwbmqtt1-5-test-utils 5.6.0-wb102 → 5.7.3
Development files for testing libwbmqtt1-based projects
- No changes
- Update cryptoauthlib submodule reference
- No changes
- Port for Debian 13
modbus-utils 1.3.2 → 1.4.0
CLI utilities to work with Modbus devices
- Port for Debian 13
modbus-utils-rpc 1.2.5 → 1.3.2
Wiren Board modbus utility using RPC (python 3)
- Add bash completions
- Fix pylint
- Add response_timeout parameter to modbus_client_rpc
mqtt-tools 1.4.5 → 1.4.6
Command-line tools for MQTT
- mqtt-upload-dump: fix truncated last message in a dump without a trailing newline
- mqtt-upload-dump: don't hang on a dump containing no messages
python3-mqttrpc 1.3.5 → 1.3.9
Reference MQTT-RPC implementation
- Add bash completions
- Fix dependencies
- Fix dependencies, no functional changes
- Fix pylint
python3-wb-common 2.2.6 → 2.3.0
Wiren Board common library
- Port for Debian 13
- Adopt PEP440, update debhelper compat level
python3-wb-mcu-fw-updater 1.14.4 → 1.16.0
Wiren Board modbus devices firmware update and modbus bindings python libraries (python 3)
- update-all: update an outdated bootloader even when the firmware is already current, instead of only reporting it afterwards. The bootloader is checked first for every device; if the released one is newer it is flashed (which also re-flashes the released firmware, because a bootloader flash erases the app) without a separate prompt. Applying a bootloader that would roll the firmware or the bootloader back still requires --allow-downgrade; otherwise it is reported and nothing is flashed. A bootloader is only touched when a released firmware exists to restore the app. Devices found stuck in the bootloader get the released bootloader too, before their firmware is restored.
- bootloader updates: pick the actual version from the released boot/by-signature/release-versions.yaml (keyed by signature and the controller's release suite, testing or stable) and compare with the version in the device -- same source of truth as firmwares. update-bl now defaults to the release lookup instead of latest.txt.
- bootloader rollback now works like firmwares.
- recover: take the brute-force fw_signatures candidate list from release-versions.yaml instead of the fw_signatures.txt index, which is being retired. Only signatures with a released firmware are tried now (the rest could not be flashed back anyway), so recovering an unknown-signature device no longer prompts to pull an unreleased master build for every non-released signature
- update-all: skip devices with errors during update
serial-tool 1.2.4 → 1.2.5
interactive hex serial port console
- Report malformed hex input instead of crashing
- Validate data bits setting
- Do not enter interactive mode on an empty --batch argument
task-wb-base-system 1.20.9 → 1.21.0
Wiren Board base system packages
- Port for Debian 13
task-wb-common-pkgs 1.20.9 → 1.21.0
Wiren Board common packages
- Port for Debian 13
wb-ble-tesliot 1.1.3 → 1.1.4
TESLiOT BLE Sensors <==> MQTT bridge for Wiren Board.
- postinst: use try-restart and ignore restart failures
wb-cc2652p-flasher 1.1.0 → 1.2.0
Texas Instruments CC13xx/CC2538/CC26xx SoC firmware update utility
- Port for Debian 13
wb-cli 1.8.5 → 1.8.15
Command-line interface to a Wiren Board controller
- No functional changes. wb-plc plugin bumped to 1.13.2: new wb-serial reference i18n-naming.md — translation-key conventions shared by device templates and json-editor/confed schemas (the displayed English text is the key by default; synthetic keys for the template title and for long or shared strings), en/ru capitalization rules, and the config-key <-> translation-key <-> enum-value <-> label coherence check.
- wb-plc plugin bumped to 1.13.1. wb-serial diagnostics-deep: the response_timeout_ms / guard_interval_us line now cross-links to the wb-dev "Constants that mirror controller settings" rule. Follow-up to the wb-dev mirrored-constants PR.
- wb-plc plugin bumped to 1.13.0. wb-dev: new "Constants that mirror controller settings" section — a value owned by a controller/driver setting (port response timeout, baud rate, poll interval) must be read from its source or exposed as a service setting, not hardcoded; a field omitted from the owner's config means the owner's default applies (e.g. wb-mqtt-serial response_timeout_ms).
- wb-plc plugin bumped to 1.12.0. New wb-rca skill: root-cause investigation methodology for WB field problems and regressions — reproduce on a test stand, ground claims in git/upstream, A/B-test versions, prove, and file a proof-backed bug report; ships a worked-case reference (mosquitto #3192 counter-leak, systemd BindsTo). Also added the missing wb-mod-slots row to the README skills table.
- codestyle: bump submodule 9be03b5 -> 6162cb6 (remove embedded-team codestyle, pylint support for Python 3.13).
- wb-plc/wb-zigbee: fix converter-detection probe — unescape pipe in grep -E alternation (\| → |) so the probe correctly detects whether wb-mqtt-zigbee or wb-zigbee2mqtt is installed.
- wb-plc plugin bumped to 1.11.1. wb-serial template-format reference: the deprecated wb-mqtt-serial measurement control types (voltage, current, power, temperature, ...) are now flagged as deprecated in favour of type:"value" + units, the canonical example no longer uses "voltage", and the units guidance points at the conventions unit table (deg C, not the degree-symbol form). INT-1154.
- .gitmodules: codestyle submodule now uses an HTTPS URL instead of SSH. Claude Code installs the wb-plc plugin over HTTPS, so the SSH submodule failed with "Permission denied (publickey)" for anyone without a GitHub SSH key. codestyle is public, so HTTPS needs no auth.
- No functional changes. wb-plc plugin bumped to 1.11.0 (new skill wb-mod-slots: repurpose MOD slots via wb-hwconf-helper — raw UART or bit-banged I2C on slot pins, with per-board capability matrix and pinout). CI stage "Check version has bumped" requires a .deb release on every PR; follow-up to relax that for plugin-only changes.
- Fix serial wb-fw / fw-params "Validation failed": iter_devices now coerces a string slave_id to int and expands a register-code baud_rate (real/100, e.g. 96/1152) to the real rate before the RPC.
- serial wb-fw check: rewrite human-mode render. ERROR rows go to a dedicated `errors (N):` block with full untruncated messages; version cells with garbage from the RPC (raw bytes, S3 404 bodies) collapse to "?" instead of breaking the table.
wb-cloud-agent 1.8.1-wb100 → 1.8.2
Wiren Board Cloud agent
- Fix package removal when mosquitto is stopped
wb-configs 3.50.2-wb100 → 3.53.0
Default common config files for Wiren Board
- Remove obsolete rsyslog configs
- Fix installation of armhf libs on arm64 from trixie-backports
- Create ntpsec user after upgrade with FIT
- wb-configs-early: make config copies durable before removing originals (temp name + sync + atomic rename)
- Disable PMF for Wi-Fi access point for RTL8723BU
- Cleanup apt preferences
- Install libcurl4-openssl-dev from backports
- Fix mosquitto override config
- postinst: use try-restart and ignore restart failures
- Remove obsolete lirc and nfc configs
- Create missed users after upgrade with FIT
- Move services overrides from /etc to /usr/lib
- Move ssh host keys generation from wb-utils
- Remove debian-upstream.list
- Fix fix_nm_ap_ssid.sh
- Port for Debian 13
wb-dauerhaft-pro added 1.0.7
Wiren Board MQTT driver for Dauerhaft PRO RS-485 actuators
wb-device-manager 1.25.4 → 1.25.5
Wiren Board modbus devices manager
- Fix pylint
wb-diag-collect 1.9.8 → 1.10.2
Wirenboard collector of data and logs
- Increase wb-release log lines count to 5000
- Add /etc/wb-mqtt-snmp.conf
- Port for Debian 13
wb-ec-firmware 2.1.1 → 2.3.1
Wiren Board Embedded Controller firmware and installer
- revert internal VBAT charging: the charging algorithm doesn't work as needed
- remove VBAT voltage and charging status from regmap
- Port for Debian 13
- add VBAT charging
- add VBAT voltage to regmap
- add VBAT charging status to regmap
wb-essential 1.20.9 → 1.21.0
Wirenboard essential packages
- Port for Debian 13
wb-homeui-backend 2.208.1-wb102 → 2.248.1
Wiren Board Web UI web interface
- Rename factory reset buttons
- Add error state display for devices
- Rename unixtime control type to local_time
- Fix device card expanding on hover when the cell history icon appears
- Temporarily disable custom column layout when a device type filter is active
- Show the terminal on-screen key panel only on devices without a physical keyboard: it was shown on any touch-capable machine, a touchscreen laptop included
- Add user role description
- Fix emoji rendering in rules console
- Add emoji font fallbacks to the CSS font stack
- Add "Ctrl + `" global shortcut to toggle the console panel
- Persist console panel open/close state and active tab across page reloads
- Fix info popup's transparency
- Add custom font management for SVG dashboards
- Ask for confirmation before rereading device settings when they have unsaved changes, instead of discarding the entered values without a question
- Fix a needless login prompt when opening the controller over HTTP: the session was checked before the redirect to HTTPS, on the host whose cookie does not apply
- Show the loader during the HTTPS check only if it takes longer than a second, and name the certificate issuing separately from the check itself
- Do not fall back to an unencrypted connection once the switch to HTTPS has started: going back to the HTTP page restarts the switch instead of serving the app there
- Fix create first user logic
- Fix create first user flow without setup https
- Fix DALI bus monitor showing a reply that never arrived or arrived corrupted as a successful value: "no response" and framing errors are now marked as errors
- Keep 2000 lines in the DALI bus monitor instead of 500
- Fix broken result of DALI manual commands for which the absence of a reply is itself an answer: such commands now show "no response" plus the decoded value
- Fix channel patterns like +/+ disappearing from MQTT history settings
- Show "Nothing found" in dropdowns instead of an empty box
- Fix cell fraction after zero
- Fix disabled input background
- Fix scroll on logs page: filters stick at the top, only log entries scroll
- Fix active tab background in JSON editor (config pages)
- Improve disabled switch contrast in dark theme
- Use monospace font in console panel update component
- Validate theme value from localStorage against Theme enum
- Let cloud tunnels through service gates from loopback
- Exempt cloud tunnel requests from the service gate rate limit
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Add sorting to text dashboards and devices
- Add terminal
- Recreate wb-webui.conf and wb-homeui-backend.conf on startup if the existing file is empty
- Remove Wiren Board Cloud branding from Russian cloud status strings
- Fix History page not loading device topics on direct navigation
- Fix collapsing serial port selecting port tab instead of keeping device tab selected
- Fix duplicate devices created when re-scanning the serial bus after adding devices without saving
- Add opt-in new json-schema-editor for configs via the wb-json-editor flag
- Update autocomplete snippet
- Fix collapsing colour temperature slider in DALI bus editor
- Update completions
- Fix colour temperature limits in DALI group and broadcast editors
- Fix history load on page refresh
- Fix history update info on static filter
- Fix svg relayout of svg dashboards
- Fix svg dashboards
- Add DALI group to devices filter
- Add custom template tag
- Repair default dashboards poisoned by the 2.237.0-2.238.0 baseline migration bug: force-sync a known-poisoned baseline hash to the current default regardless of live content
- config editor: keep the vertical tab list readable when the form is short
- fix device name translations
- json-schema-editor: add readme
- Support external menu links: custom-menu items can carry isExternal, openInNewTab and requiredRole; a safe post-login external return
- Add service gates: one JSON in gates.d (package-installed in /usr/share, admin-owned in /etc/wb-homeui, /etc wins on a name clash) puts a loopback service behind the homeui login; nginx configs and menu items are rendered by the backend and follow the effective HTTPS mode, with nginx -t validation and rollback (wb-homeui-gates CLI to check/apply)
- Raise the /auth/check rate limit to 1000 req/min per client and cache gate auth answers in nginx; per-IP limit_req (900/min) on gate ports
- Fix Zigbee devices being grouped under Modbus in the devices filter
- Serve the main UI over TLS whenever the certificate file loads, even when expired (browser warns, channel stays encrypted). Fall back to HTTP only when the file is missing or unreadable and reissue fails; HTTPS returns automatically once a usable certificate is written. Certificate writes are atomic.
- Pin logout/console buttons in menu
- Fix colors
- Request an HTTPS certificate immediately when enabling HTTPS in settings, and fix the certificate status banner getting stuck on a stale status
- Add themes
- Reconcile default dashboards seeded before baseline hashing existed: sync unrenamed ones to the current default instead of permanently treating them as user-edited
- Custom menu: read drop-ins from three per-origin dirs (package /usr/share, generated /var/lib, user /etc/wb-homeui/custom-menu) and persist /etc/wb-homeui across firmware updates via wb-configs
- Fix datetimepicker select logic
- Keep device name and MQTT id when switching device template
- wb-dynamic-type: update options keys
- Scroll to active dropdown option on open
- Fix HTML in json-editor schema descriptions
- Remove typo
- Fix device icon on mobile resolution
- Fix install
- Add bash completions
- Fix mosquitto override config
- Show the firmware-update banner when only a newer bootloader is available
- Serve dashboards from the HTTP backend (wb.homeui_backend) instead of confed: a lightweight index without inline SVG, lazy per-dashboard SVG GET, and atomic PUT writes that preserve inline svg.current
- Move board detection, initial config seeding and default-dashboard reconciliation into the backend service; drop generate-system-config.sh
- Switch the dashboards UI to the HTTP backend (lazy SVG, load/SVG error states) and remove the now-unused wb-webui.conf confed schema
- Make the config editor tab list scroll on its own
- rules: update autocompletes
- Fix wb-dynamic-type field resetting saved color and text on scenario reopen
- Add wb-dynamic-type json-editor widget for scenario output value
- Encode special characters in rule editor URLs
- DALI: keep renamed device names on page load instead of overwriting them with a retained scan result
- Fix the rule's opening with slashes
- Add logs filters to url
- Fix json editor responsive table width
- Add drawer component
- Move widget modals to drawer
- Add widget edit prevent close logic
- Pin add control button
- Fix mosquitto ACL file permissions
- DALI: render the bus monitor as a global console tab with address filter and save-to-file
- DALI: add a per-bus "Save to syslog" toggle
- Add Claude Code agent guidance (CLAUDE.md) and project rules
- Add backend dev tooling config (pyproject, requirements, venv bootstrap)
- Refactor console panel to a per-tab toolbar and content API
- Device name in tab list (device manager)
- Add console tabs overflow logic
- Disable button on loading
- Add split parameter for on_off capability in the Alice integration page
- Add retrievable option for capabilities and properties
- Add reportable option for capabilities and properties
- Fix CellAlert test to expect success variant for falsy value
- Fix displaying read errors for alarm controls
- Add tests
- Fix json-editor horizontal tabs
- Add posibility to disable widget cell
- Fix alice errors on save
- Fix DALI colour temperature slider to follow the device's current Coolest/Warmest limits live. The slider steps in 100 K.
- Fix rule prevent leave on save
- Fix edit with dropdown
- Fix json-editor's default enum translations
- Update ci
- Fix searching for a disconnected device: the found device is now selectable, so its connection settings (e.g. baud rate) can be re-applied
- Add page name in title
- Add a device type filter and icons to the Devices page
- Fix logout return state url
- Add popup component
- Add rule edit prevent leave page hook
- Add return button to history page
- Fix history mobile layout
- Fix endless loader on device scan add
- Device manager — add disabled device icon and tooltip
- Add second password field to approve current password
- Add restore password link to login page
- Use pre-defined DH group ffdhe2048 recommended by the IETF
- Add mode capability to the Alice integration page
- Require nodejs>=22
- Port for Debian 13
- Move from angular to react
- Move from webpack to vite
- Update routes
- Add help link to page header
- Update json editor styles
- Fix all typescript and eslint errors
- Fix default svg colors
- Hide dropdown arrow for readonly fields on DALI settings page
- Fix DALI device scenes settings editor scroll bug
- Fix pylint
- Add select ability for autocomplete fields
- Upgrade logs page
- Refactor Alice device-capabilities by splitting it by capability type
- Make Alice capability labels clickable
- Update config editor page
- Add toggle capability to the Alice integration page
- Ask for confirmation before rebooting the controller from the device panel
- Add DALI bus manual command entry with catalog and autocomplete
- Add Kelvin input to DALI color temperature editor
- Fix missing title and description for autocomplete fields
- Return tests for fw-utils
- Update system page
- Move update/reset process logs to console component
- Unify autocomplete fields
wb-hwconf-manager 1.71.6 → 1.72.2
Provides infrastructure for hardware re-configuration via Device Tree overlays
- Add util-linux-extra to dependencies
- Fix dependencies
- Port for Debian 13
wb-mcu-fw-flasher 1.6.1 → 1.7.1
Firmware update tool for Wiren Board Modbus devices (WB-M*)
- Edit README.md
- Port for Debian 13
wb-mcu-fw-updater 1.14.4 → 1.16.0
Wiren Board modbus devices firmware update tool (python 3)
- update-all: update an outdated bootloader even when the firmware is already current, instead of only reporting it afterwards. The bootloader is checked first for every device; if the released one is newer it is flashed (which also re-flashes the released firmware, because a bootloader flash erases the app) without a separate prompt. Applying a bootloader that would roll the firmware or the bootloader back still requires --allow-downgrade; otherwise it is reported and nothing is flashed. A bootloader is only touched when a released firmware exists to restore the app. Devices found stuck in the bootloader get the released bootloader too, before their firmware is restored.
- bootloader updates: pick the actual version from the released boot/by-signature/release-versions.yaml (keyed by signature and the controller's release suite, testing or stable) and compare with the version in the device -- same source of truth as firmwares. update-bl now defaults to the release lookup instead of latest.txt.
- bootloader rollback now works like firmwares.
- recover: take the brute-force fw_signatures candidate list from release-versions.yaml instead of the fw_signatures.txt index, which is being retired. Only signatures with a released firmware are tried now (the rest could not be flashed back anyway), so recovering an unknown-signature device no longer prompts to pull an unreleased master build for every non-released signature
- update-all: skip devices with errors during update
wb-modbus-ext-scanner 1.4.0+wb100 → 1.5.1
Scanner utility for extended Wiren Board Modbus protocol
- Disable XON/XOFF flow control on the serial port, it silently dropped 0x11 and 0x13 bytes from responses
- Set data bits and stop bits explicitly instead of inheriting them
- Wait for a response with a timeout instead of waiting forever
- Check the address in a response to avoid matching a false frame start
- Port for Debian 13
wb-mqtt-adc 2.7.1 → 2.8.3
Wiren Board Smart Home MQTT ADC driver compatible with HomA conventions
- Improve stop flag: make it atomic
- Fix busy loop on channel read errors: a failed measurement is retried a few times in place, and if it keeps failing the cycle is rescheduled instead of being retried without any delay
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-alice 0.10.0+wb100 → 0.13.4
Yandex smart home with Alice to MQTT for Wiren Board controllers
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Fix relative range commands - the increment from Yandex was set as the value
- Change min version for homeui
- Fix nginx 502 caused by upstream "certificate chain too long" - set proxy_ssl_verify_depth to accept the current alice.wirenboard.com cert chain
- Add support for split parameter on on_off capability
- Add support for retrievable flag for capabilities and properties
- Add support for reportable flag for capabilities and properties
- Change min version for homeui
- Add support for Yandex Smart Home mode capability
- Change min version for homeui
- Add support for Yandex Smart Home toggle capability
- Add static analysis to the project and CI pipeline
- Reformat the code with the static analysis tools
wb-mqtt-co2mon 1.1.4 → 1.2.0
WB MQTT driver for MasterKit MT8057 CO2 sensor
- Port for Debian 13
wb-mqtt-confed 1.16.7-wb100 → 1.18.2
Wiren Board Configuration Editor Backend
- Fix crash on Save RPC request without content field
- Use go 1.26 compiler
- Update dependencies
- Fix postinst script
- Update wbgo.so
- Fix ntp config migration
- Add ntpsec to dependencies
- Fix postinst script
- Bump github.com/wirenboard/wbgong to 0.7.3
- Port for Debian 13
wb-mqtt-dac 1.2.6 → 1.2.7
IIO DAC driver
- postinst: use try-restart and ignore restart failures
wb-mqtt-dali 1.12.0 → 1.20.3
MQTT DALI bridge for Wiren Board
- Fix changing and clearing a device's short address: some devices ignored the command that used to be sent and silently kept their old address. The new address is now programmed the way the device search does it and read back from the device.
- A short address change the device does not confirm is no longer applied: the settings page shows the address the device really has instead of the requested one.
- Resetting a device now always removes it from the configuration. If its short address could not be cleared, a warning is logged — run a device search to pick the device up again, it keeps the address it holds.
- Fix the device search losing a device from the config when another device on the bus has the same random address. The device lost its custom name and MQTT id and came back as a new one. Now it stays in the config and only the duplicate is found as a new device.
- Describe the device search and address assignment logic in the README.
- Fix the device search sending a duplicate COMPARE for every device it finds — the bus monitor showed two identical COMPARE lines in a row.
- Fix an error instead of a result when a device stays silent in answer to a "yes"/"no" query: silence now reads as "no".
- Fix device reset not always clearing the short address and re-reading the settings.
- Show a query left without an answer in the bus monitor: on a "yes"/"no" query silence reads as "False", on any other query as "no response".
- Fix the bus monitor showing one and the same record instead of the frames actually on the bus.
- Fix devices being polled more often than the configured interval after a dimming or a command sent from outside the service.
- Clean up /etc/wb-mqtt-dali.conf on purge
- Fix DT8 colour polling: a failing colour read no longer restarts in place at the head of the poll round (blocking other devices on the bus and hammering the failing read). A finished or failed read cycle now leaves the round and is retried after the poll interval, like the other periodic reads.
- Internal cleanup of the control-state representation: the per-control /meta/error value is now a typed ControlError flag (READ/WRITE) instead of a free string, and ControlInfo carries a single ControlState object (meta, value, error) instead of separate fields. Behaviour on the bus is unchanged — /meta/error still publishes the same r/w flag strings.
- Harden the settings-parameter apply path: every handler's read/write now returns the full, independent value of its key, so the fragile recursive deep-merge is replaced with a plain dict update. Behaviour is unchanged; this removes a class of bugs where stale sub-fields lingered or a handler's internal state leaked into the published params.
- Fix colour-temperature-limit fields on group and broadcast settings forms
- Apply own and foreign commands from a single bus-observation path: writable setpoints (wanted_level, dapc, set_rgb/white/colour_temperature) now stay in sync with the actual value of their quantity, including after foreign commands, instead of freezing; legacy identify publishes the levels the lamp really goes to; a standing /meta/error=r no longer flickers or gets reset by prediction while the bus is busy; and wanted_level is published as an integer percent.
- Fix DALI 2 colour scene membership against MASK. A colour scene that changes the colour but leaves the brightness unchanged (MASK level) is now kept enabled instead of turning its "Part of the scene" switch off, and disabling a colour scene now removes the gear from it (REMOVE FROM SCENE, clearing both the level and colour-type registers) instead of leaving a still-active colour-only scene that reappeared as enabled.
- Add bilingual (en/ru) descriptions to the DALI 2 occupancy sensor (type 3) deadtime, hold and report timer parameters, clarifying what each one affects.
- Translate config parameter descriptions: a parameter's description is now registered in the schema translations for both locales under a short, content-derived key, instead of being emitted as a single untranslated string.
- Add a per-bus "bus_monitor_syslog_enabled" option that mirrors the bus monitor lines to the controller log in addition to the MQTT topic.
- Rework the bus monitor line format: join request and response on one line, render decoded commands as copy-pasteable Bus/SendCommand expressions, drop redundant frame descriptors, and document the topic and every line variant in the README.
- Make the command expression formatter total over the command registry.
- Render decoded DALI 2 events in the bus monitor using the same A
/I /G token syntax as commands instead of python-dali's raw repr. - Add optional "mqtt_id" and "name" device fields to the configuration schema.
- Remove the unused, always-null "stage" field from the commissioning progress message.
- Rework the README and add docs/editor_rpc.md documenting the supported device types, MQTT topics and RPC API; drop the AsyncAPI spec.
- Reset the button pressed state on short, double and long-press events, not only on the button-released event.
- Bind the colour temperature sliders to the device's live Coolest/Warmest limits via min_limit/max_limit dotted paths instead of static minimum/maximum.
- Fix aiomqtt compatibility
- Update event latency test
- Update priority starvation test
- Use quiescent mode when reading devices info after bus scan
- Always send Terminate when the bus scan fails, so control gear does not stay withdrawn until the INITIALISE timeout.
- Fix crash and incorrect value when decoding general purpose sensor measurement events.
- Return a syntax-error result instead of closing the connection on a malformed Lunatone IoT DALI frame.
- Roll back cleanly when bus start-up fails after driver initialization, instead of leaking the driver and getting stuck.
- Always resolve pending control-write requests if an unexpected error occurs while processing a control batch.
- Guard parsing of DALI reply payloads so malformed or empty replies fail fast instead of waiting for the command timeout.
- Fix bus traffic monitor dropping frames reordered across the full gateway queue depth (e.g. on a device ring-buffer wrap) and publishing them out of order.
- On MQTT broker disconnect, cancel in-flight tasks and tolerate a bus still initializing, instead of terminating the service.
- Replace an assert with an explicit error when querying device types (no asserts in production code).
- Add code-review-orchestrator skill and adapt the project workflow, rules and docs to it.
- Port for Debian 13
- Fix device parameters being wiped from cache after SetDevice.
- Add e2e test for event handling latency.
- Fix pylint
- Add e2e test for parallel execution of bus scan on 3 buses
- Fix tests memory leak
- Report fine-grained commissioning progress while reading mandatory device parameters after the bus scan (was previously frozen at 81%).
- Fix DT51 parameters layout in homeui
- Add support for frame priorities.
- Use appropriate priorities for internal commands.
- Add command line option for setting priority of CLI commands.
- Decrease CPU load
- Fix bus monitor commands order display
- Fail commissioning with a clear error when a device cannot be assigned a short address (bus has more than 64 devices, or PROGRAM SHORT ADDRESS is not confirmed by VERIFY/QUERY). Previously such cases could silently corrupt the commissioning result.
- Add DT51 (energy reporting device): publish active energy/power controls and read DT51 memory banks (202 mandatory; 203/204 picked up if apparent/loadside reporting is supported). Energy reads are chunked into preemptable subbatches like DT-8 colour.
- Fix DT-8 / DT51 chunked polls stalling ~1 s between subbatches.
- Handle gateway reset
- Use DALI-2 instead of DALI2 in naming and logs
- Add Bus/SendCommand RPC for sending arbitrary DALI command batches on a running bus
- Add Bus/ListCommands RPC exposing the catalog of supported DALI commands
- Rework CLI --send-command to use expression syntax: --command "Name(A
, I , data)"; remove --address/--group/--broadcast/--data flags - Show address and instance hints in --list-commands category headers
wb-mqtt-db 2.9.3 → 2.11.0
Wiren Board database logger
- Use system-wide sqlitecpp
- Clean up /etc/wb-mqtt-db.conf on purge
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Check that libsqlite3 is built with SQLITE_ENABLE_UPDATE_DELETE_LIMIT
- Unsubscribe from watched topics before disconnecting on stop to avoid "Broken pipe" error in mosquitto log
- Port for Debian 13
wb-mqtt-db-cli 1.4.8 → 1.5.0
CLI for wb-mqtt-db
- Add bash completions
- Fix --decimal-places: formatting failed with an error, zero places were ignored
- Fix --from/--to handling: timezone offset was dropped, shifting the requested range
- Print informational messages to stderr, keeping CSV output on stdout clean
- Exit with non-zero code if the backend fails to process a request in time
- Update debianization. No functional changes
wb-mqtt-gpio 2.16.3 → 2.18.3
Wiren Board Smart Home MQTT generic GPIO driver compatible with HomA conventions
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Remove obsolete wb-modules.service dependency
- Add mosquitto.service dependency to ensure that mosquitto is started before wb-mqtt-gpio
- Fix phantom counter increments on idle inputs: a pulse is now counted only when the input level actually holds for the debounce time.
- Fix all inputs disappearing when a counter is configured on a GPIO chip without interrupt support (e.g. wbec-gpio MOD inputs)
- Port for Debian 13
wb-mqtt-homeui 2.208.1-wb102 → 2.248.1
Wiren Board Web UI web interface
- Rename factory reset buttons
- Add error state display for devices
- Rename unixtime control type to local_time
- Fix device card expanding on hover when the cell history icon appears
- Temporarily disable custom column layout when a device type filter is active
- Show the terminal on-screen key panel only on devices without a physical keyboard: it was shown on any touch-capable machine, a touchscreen laptop included
- Add user role description
- Fix emoji rendering in rules console
- Add emoji font fallbacks to the CSS font stack
- Add "Ctrl + `" global shortcut to toggle the console panel
- Persist console panel open/close state and active tab across page reloads
- Fix info popup's transparency
- Add custom font management for SVG dashboards
- Ask for confirmation before rereading device settings when they have unsaved changes, instead of discarding the entered values without a question
- Fix a needless login prompt when opening the controller over HTTP: the session was checked before the redirect to HTTPS, on the host whose cookie does not apply
- Show the loader during the HTTPS check only if it takes longer than a second, and name the certificate issuing separately from the check itself
- Do not fall back to an unencrypted connection once the switch to HTTPS has started: going back to the HTTP page restarts the switch instead of serving the app there
- Fix create first user logic
- Fix create first user flow without setup https
- Fix DALI bus monitor showing a reply that never arrived or arrived corrupted as a successful value: "no response" and framing errors are now marked as errors
- Keep 2000 lines in the DALI bus monitor instead of 500
- Fix broken result of DALI manual commands for which the absence of a reply is itself an answer: such commands now show "no response" plus the decoded value
- Fix channel patterns like +/+ disappearing from MQTT history settings
- Show "Nothing found" in dropdowns instead of an empty box
- Fix cell fraction after zero
- Fix disabled input background
- Fix scroll on logs page: filters stick at the top, only log entries scroll
- Fix active tab background in JSON editor (config pages)
- Improve disabled switch contrast in dark theme
- Use monospace font in console panel update component
- Validate theme value from localStorage against Theme enum
- Let cloud tunnels through service gates from loopback
- Exempt cloud tunnel requests from the service gate rate limit
- Fix curl dependency (OpenSSL ENGINE support is broken in curl >= 8.14.0 and < 8.15.0)
- Add sorting to text dashboards and devices
- Add terminal
- Recreate wb-webui.conf and wb-homeui-backend.conf on startup if the existing file is empty
- Remove Wiren Board Cloud branding from Russian cloud status strings
- Fix History page not loading device topics on direct navigation
- Fix collapsing serial port selecting port tab instead of keeping device tab selected
- Fix duplicate devices created when re-scanning the serial bus after adding devices without saving
- Add opt-in new json-schema-editor for configs via the wb-json-editor flag
- Update autocomplete snippet
- Fix collapsing colour temperature slider in DALI bus editor
- Update completions
- Fix colour temperature limits in DALI group and broadcast editors
- Fix history load on page refresh
- Fix history update info on static filter
- Fix svg relayout of svg dashboards
- Fix svg dashboards
- Add DALI group to devices filter
- Add custom template tag
- Repair default dashboards poisoned by the 2.237.0-2.238.0 baseline migration bug: force-sync a known-poisoned baseline hash to the current default regardless of live content
- config editor: keep the vertical tab list readable when the form is short
- fix device name translations
- json-schema-editor: add readme
- Support external menu links: custom-menu items can carry isExternal, openInNewTab and requiredRole; a safe post-login external return
- Add service gates: one JSON in gates.d (package-installed in /usr/share, admin-owned in /etc/wb-homeui, /etc wins on a name clash) puts a loopback service behind the homeui login; nginx configs and menu items are rendered by the backend and follow the effective HTTPS mode, with nginx -t validation and rollback (wb-homeui-gates CLI to check/apply)
- Raise the /auth/check rate limit to 1000 req/min per client and cache gate auth answers in nginx; per-IP limit_req (900/min) on gate ports
- Fix Zigbee devices being grouped under Modbus in the devices filter
- Serve the main UI over TLS whenever the certificate file loads, even when expired (browser warns, channel stays encrypted). Fall back to HTTP only when the file is missing or unreadable and reissue fails; HTTPS returns automatically once a usable certificate is written. Certificate writes are atomic.
- Pin logout/console buttons in menu
- Fix colors
- Request an HTTPS certificate immediately when enabling HTTPS in settings, and fix the certificate status banner getting stuck on a stale status
- Add themes
- Reconcile default dashboards seeded before baseline hashing existed: sync unrenamed ones to the current default instead of permanently treating them as user-edited
- Custom menu: read drop-ins from three per-origin dirs (package /usr/share, generated /var/lib, user /etc/wb-homeui/custom-menu) and persist /etc/wb-homeui across firmware updates via wb-configs
- Fix datetimepicker select logic
- Keep device name and MQTT id when switching device template
- wb-dynamic-type: update options keys
- Scroll to active dropdown option on open
- Fix HTML in json-editor schema descriptions
- Remove typo
- Fix device icon on mobile resolution
- Fix install
- Add bash completions
- Fix mosquitto override config
- Show the firmware-update banner when only a newer bootloader is available
- Serve dashboards from the HTTP backend (wb.homeui_backend) instead of confed: a lightweight index without inline SVG, lazy per-dashboard SVG GET, and atomic PUT writes that preserve inline svg.current
- Move board detection, initial config seeding and default-dashboard reconciliation into the backend service; drop generate-system-config.sh
- Switch the dashboards UI to the HTTP backend (lazy SVG, load/SVG error states) and remove the now-unused wb-webui.conf confed schema
- Make the config editor tab list scroll on its own
- rules: update autocompletes
- Fix wb-dynamic-type field resetting saved color and text on scenario reopen
- Add wb-dynamic-type json-editor widget for scenario output value
- Encode special characters in rule editor URLs
- DALI: keep renamed device names on page load instead of overwriting them with a retained scan result
- Fix the rule's opening with slashes
- Add logs filters to url
- Fix json editor responsive table width
- Add drawer component
- Move widget modals to drawer
- Add widget edit prevent close logic
- Pin add control button
- Fix mosquitto ACL file permissions
- DALI: render the bus monitor as a global console tab with address filter and save-to-file
- DALI: add a per-bus "Save to syslog" toggle
- Add Claude Code agent guidance (CLAUDE.md) and project rules
- Add backend dev tooling config (pyproject, requirements, venv bootstrap)
- Refactor console panel to a per-tab toolbar and content API
- Device name in tab list (device manager)
- Add console tabs overflow logic
- Disable button on loading
- Add split parameter for on_off capability in the Alice integration page
- Add retrievable option for capabilities and properties
- Add reportable option for capabilities and properties
- Fix CellAlert test to expect success variant for falsy value
- Fix displaying read errors for alarm controls
- Add tests
- Fix json-editor horizontal tabs
- Add posibility to disable widget cell
- Fix alice errors on save
- Fix DALI colour temperature slider to follow the device's current Coolest/Warmest limits live. The slider steps in 100 K.
- Fix rule prevent leave on save
- Fix edit with dropdown
- Fix json-editor's default enum translations
- Update ci
- Fix searching for a disconnected device: the found device is now selectable, so its connection settings (e.g. baud rate) can be re-applied
- Add page name in title
- Add a device type filter and icons to the Devices page
- Fix logout return state url
- Add popup component
- Add rule edit prevent leave page hook
- Add return button to history page
- Fix history mobile layout
- Fix endless loader on device scan add
- Device manager — add disabled device icon and tooltip
- Add second password field to approve current password
- Add restore password link to login page
- Use pre-defined DH group ffdhe2048 recommended by the IETF
- Add mode capability to the Alice integration page
- Require nodejs>=22
- Port for Debian 13
- Move from angular to react
- Move from webpack to vite
- Update routes
- Add help link to page header
- Update json editor styles
- Fix all typescript and eslint errors
- Fix default svg colors
- Hide dropdown arrow for readonly fields on DALI settings page
- Fix DALI device scenes settings editor scroll bug
- Fix pylint
- Add select ability for autocomplete fields
- Upgrade logs page
- Refactor Alice device-capabilities by splitting it by capability type
- Make Alice capability labels clickable
- Update config editor page
- Add toggle capability to the Alice integration page
- Ask for confirmation before rebooting the controller from the device panel
- Add DALI bus manual command entry with catalog and autocomplete
- Add Kelvin input to DALI color temperature editor
- Fix missing title and description for autocomplete fields
- Return tests for fw-utils
- Update system page
- Move update/reset process logs to console component
- Unify autocomplete fields
wb-mqtt-iec104 1.2.0 → 1.3.1
Wiren Board MQTT to IEC 60870-5-104 gateway
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-knx 1.13.4 → 1.14.1
Wiren Board MQTT to KNX gateway
- Fix use-after-free and null dereference when sending a telegram while knxd is disconnected
- Fix double free of the knxd connection on service stop
- Fix 4-octet unsigned fields of JSON datapoints always reading as zero
- Fix non-ASCII characters corrupting JSON string fields
- Port for Debian 13
wb-mqtt-logs 1.5.5 → 1.6.0
Wiren Board journald to MQTT gateway
- Port for Debian 13
- Fix build with gcc14
- Improve logging
- Fix order of dmesg log entries in RPC Load response
wb-mqtt-mbgate 1.8.8 → 1.9.2
Wiren Board MQTT to Modbus gateway
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Fix clang-format, no functional changes
- Port for Debian 13
wb-mqtt-opcua 1.3.1-wb101 → 1.5.1
Wiren Board MQTT to OPC UA gateway
- Fix crash on writing a string value from an OPC UA client
- Use system-wide open62541
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Recreate config on package install if the existing file is empty
- Fix memory leak
- Port for Debian 13
wb-mqtt-rfblinds 1.0.4 → 1.0.5
Somfy and Dooya devices integration
- Fix pylint
wb-mqtt-serial 2.248.1-wb107 → 2.268.0
Wiren Board Smart Home MQTT serial protocol driver
- Evaluate declaration conditions in device/Set and device/Load RPC: a channel or parameter is written and a parameter is read by the declaration whose condition is true, so condition variants with different scales are converted right (wb-mai6, wb-mai2-cc, oni-plc-w-ema-06u00). device/Set evaluates the conditions over the request values and reads the missing condition parameters from the device. An item with false conditions is skipped by device/Set and is not included in the device/Load answer, an item with several matching declarations rejects the request
- Skip a readonly or unknown parameter in a device/Set request instead of rejecting the request
- Reject writing a read only channel in device/Set by the register type too, not only by the "readonly" key: a write to an input or discrete register used to reach the device and fail there
- Require numbers as device/Set parameter values, like the device configuration schema does
- Do not fail device/Load and device/Set when a condition parameter got no value: the device does not support the register or the value matches the "error_value", "unsupported_value" or Wiren Board 0xFFFE marker. The conditions over it are evaluated with an undefined value like in the web interface: comparisons are false, "!=" is true, "isDefined" is false
- Return "unsupported" in the device/Load answer only for an item whose own register was not read, list only channels in the readonly array and read only the condition parameters of the requested items
- Check the Wiren Board 0xFFFE marker in device/LoadConfig before resolving conditions, a parameter depending on an unsupported register is not resolved by the number 65534
- Remove the register address from the readonly heating_options parameter of the WBE2-I-OPENTHERM fw 1.7.3 template, readonly parameters only organize the web interface
- Restore continuous read register value after RPC requests
- Add wb_time_sync_interval device parameter
- Rename unixtime control type to local_time
- Do not write continuous read register if continuous read is already enabled
- Check that declarations of a parameter used in conditions read and convert the register identically. A device template violating the rule is rejected on first use and on templates/Upload
- Clear fw-update RPC and firmware update state topics on service stop
- Fix offset descriptions in templates with multisensor 1-Wire support (WB-MS v.2, WB-MIR v.3, WB-M1W2 v.3)
- Fix Carel template titles
- Add temperature offset registers for templates with multisensor 1-Wire support (WB-MS v.2, WB-MIR v.3, WB-M1W2 v.3)
- Clarify max_read_registers applies to coils and discrete inputs too
- Fix templates/Upload RPC numeric channel enum values validation
- Fix device/Load RPC failure for WB devices with enum channels
- Move firmware release indexes download from port thread to RPC thread
- Finish unifying displayed UI texts across the remaining WB families (display-only): WB-MAO4 (mao4, mao4-20ma, mao4-20ma-fw-2.9), WB-MDM3, WB-MSW (v3/v4/v4_lora), WB-MIR (v2/v2-buttons/v3/v3-fw-4.35) — Serial Number, Firmware Version, Supply Voltage, Min Supply/MCU Voltage Since Startup; RU "одиночных нажатий"; for WB-MAO4 the press-counter display is aligned (Short->Single, Shortlong) via translations only — channel names (MQTT topics) are unchanged. Also add the missing Serial Number / Firmware Version display texts to the WB-MAO4/MDM3/LED/MRGBW-D fw-variant templates from the earlier migration, and fix a "воспроизведена" typo in WB-MSW/MIR descriptions. Only current (g-wb) templates. Validate.dat unchanged.
- Unify displayed UI texts across several WB families (display-only): WB-MAI (MAI11/MAI2-CC/MAI6), WB-MIO, WB-UPS v.3, WB-DALI, WB-MCM8, WB-MS v.2, WB-MWAC (MWAC/MWAC2/MWAC2 ver.2), WB-M1W2, WB-LED, WB-MRGBW-D. Canonical texts — Serial Number, Firmware Version, Supply Voltage, Min Supply Voltage Since Startup, Min MCU Voltage Since Startup; RU "одиночных нажатий" for the single-press counter; fix a Cyrillic homoglyph ("сhange"->"change") in the WB-MWAC/WB-MWAC2 safety-behaviour enum title. Only current (g-wb) templates are touched. Channel names (MQTT topics) are not changed — backward compatible, Validate.dat unchanged.
- WB-MR relay family templates (WB-MR3, WB-MR6C/-NC/CU/v.3, WB-MRM2-mini/NO, WB-MRM2-mini/NC, WB-MRWM2): unify displayed UI texts for entities named differently across templates — Serial Number, Firmware Version, Supply Voltage, Min Supply Voltage Since Startup, Min MCU Voltage Since Startup; RU "одиночных нажатий" for the single-press counter; fix a Cyrillic homoglyph ("сhange"→"change") in the WB-MRWM2 safety-behaviour enum title. Only current (g-wb) templates are touched; obsolete g-wb-old ones are left as is. Channel names (MQTT topics) are not changed — backward compatible, Validate.dat unchanged.
- WB-MAO4, WB-MDM3, WB-MRGBW-D, WB-LED templates: unify UI texts for entities that are named differently across the templates, translate placeholder group titles, fix the WB-MAO4 safety group carrying the power-up description, and drop 8 duplicate unused group ids in WB-LED
- Fix deps
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Add buttons functionality to WB-MCM8HV template
- Bring WB-MCM8HV template in line with WB-STD-001/002/003
- Regenerate config if the existing one is empty
- Fix endless fast modbus events reading from the flooding device
- Fix clang-tidy, no functional changes
- Fix clang-format, no functional changes
- Clarify timeouts and register reading documentation
- Fix write retry on a disconnected device
- config/Load RPC: device types with the active template loaded from the user templates directory are marked with "user-defined" flag
- New templates/Upload and templates/Delete RPC methods to manage user defined device templates
- Files watcher handles file moves (mv) in templates directories
- Convert numeric channel enum values to strings
- Fix possible crash on live reload of a device template file with a unique device type
- ONOKOM templates update (external contribution): - add GR-5-MB-B and PN-1-MB-B device templates - add "External air temperature" channel to all devices (gated by the "Allow the use of an external temperature sensor" setting, off by default) - add "Idu count" channel translation for VRF devices - add error-data channels to the ME-1-MB-B template - refresh the remaining non-deprecated ONOKOM templates
- Take the released bootloader version from boot/by-signature/release-versions.yaml by the
controller's release suite (testing/stable), mirroring firmwares, instead of the
suite-agnostic bootloader/by-signature/
/main/latest.txt - fw-update GetFirmwareInfo: stop reporting garbage for third-party devices. Sanitize the firmware and bootloader version strings read from the device (printable ASCII only) so raw bytes no longer leak into fw/bootloader; treat an empty or non-printable firmware signature as "no signature" and skip the release-server lookup (no more bogus by-signature// requests); report can_update only when the release server actually offers a firmware or bootloader for the device
- Carel µC2SE template: move integer registers to the stable holding region (base 1000, available on WB-REF-U firmware 1.6.0+); add Digital Output 1-5 status channels
- config-wb-ups-v3.json.jinja: remove trailing comma after the last debug group; it produced invalid JSON and broke template-dump regeneration (TDeviceTemplatesTest.Validate). Regenerate the stable register dump
- config-wb-ups-v3.json.jinja: Add battery charge level raw channel
- Add ip address pattern to port schema
- MAP templates: Add peak detection period parameter and instant U/I values
- Add new templates for WB-LED and WB-MRGBW-D (fw 3.8):
- Add encoder support
- Add configurable dimming step for short presses
- Add 2CCT output mode (WB-LED)
- Change switch actions config order to channel -> action (WB-LED)
- Add smooth dimming control from remote buttons
- Add duplicate control channels with auto-on
- Add new templates for WB-MDM3 (fw 2.12) and WB-MAO4 (fw 2.9):
- Add encoder support
- Add configurable dimming step for short presses
- Add smooth dimming control from remote buttons
- Add duplicate control channels with auto-on
- MWAC templates: Add buzzer beep duration parameter
- Add Carel µC2SE and IR33 templates (via WB-REF-U)
- Port for Debian 13
- Fix WB-LED and WB-MRGBW-D fw3 templates: use 'sporadic' type for some output registers
- Add continue_polling_on_illegal_modbus_exception device configuration option. It keeps registers that return ILLEGAL_DATA_VALUE in polling instead of excluding them.
- config-wb-mrwm2.json.jinja: Add timer functions
- MR templates: Add condition for restart delay
wb-mqtt-smartweb 1.5.0 → 1.6.1
Wiren Board MQTT SmartWeb driver.
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-snmp 1.5.0 → 1.6.1
Wiren Board MQTT to SNMP gateway
- Use go 1.26 compiler
- Port for Debian 13
wb-mqtt-urri 1.2.8 → 1.2.9
Wiren Board URRI receiver (MQTT driver)
- Fix pylint
wb-mqtt-w1 2.3.1 → 2.4.1
Wiren Board MQTT 1-Wire driver
- Fix coverage reporting with GNU make 4.4 (trixie): export coverage variables from debian/rules instead of MAKEFLAGS
- Port for Debian 13
wb-mqtt-waterius added 1.0.0
Send Wiren Board meter readings to the Waterius cloud
wb-mqtt-zigbee 1.4.3 → 1.4.11
Wiren Board Zigbee2MQTT bridge
- Harden MQTT handlers against malformed payloads (non-UTF-8, unexpected JSON shape, deeply nested or oversized) so a bad message can no longer crash the daemon
- Reject device renames to names containing MQTT wildcards/separators, which could hijack a device's topic subscription
- Give every device whose ID collides after name sanitization (e.g. "lamp.1" vs "lamp 1") an IEEE-suffixed ID, leaving the ambiguous ID unpublished, so retained topics and commands can no longer be clobbered or misrouted. The ID layout depends only on the current device list, so it stays the same across restarts
- Keep devices and their availability intact across renames and ID changes
- Strip control characters from the zigbee2mqtt log text before publishing it to the bridge Log control
- Fix postinst script
- Report device availability via WB meta/error: an unreachable device gets a device-level error ("r" for read-only devices, "rw" when it also has writable controls), cleared automatically when the device is back online
- Flag the bridge device with meta/error "rw" while zigbee2mqtt is offline/errored, cleared when it is back online
- Register an MQTT Last Will so the broker flags the bridge device with meta/error if the service dies unexpectedly (crash/kill); cleared on restart
- Drop the model from the device card name once the device is renamed in zigbee2mqtt: show "{model} {friendly_name}" only while unnamed (friendly_name equals the IEEE address), otherwise just the user's chosen name
- Add a readonly "Model" control to every device card
- Show the device model in the WB device card: use "{model} {friendly_name}"
- Add power_source control to the device card with Russian translations
- Convert battery voltage/current from milli-units (mV/mA) to V/A in the card
- Add control and device meta subtopics for HomeAssistant discovery
- Update Russian translations
- Add Russian titles for common zigbee device controls
wb-nm-helper 1.37.1 → 1.39.0
Wirenboard network configuration backend for wb-mqtt-confed.
- Convert python3-wb-nm-helper into transitional dummy package
- Disable PMF for Wi-Fi access point for RTL8723BU
- Recover connectivity after NM deactivates the current connection
- Restart wb-mqtt-nm-helper on failure
- Migrate from pycares to dnspython
wb-node-red added 1.0.3
Node-RED for Wiren Board controllers (native)
wb-rules 2.40.0-wb100 → 2.46.5
Wiren Board Rule Engine
- Notify.sendSMS: fix a vulnerability that let the message text or the recipient number run arbitrary commands on the controller; allow double quotes and non-BMP characters in the message
- A control write of a value that cannot be converted to the control's datatype is now reported to the rule debug console (both getControl("dev/ctrl").setValue(...) and dev["dev/ctrl"] = ...); previously it went only to syslog and was invisible in the web UI. The write is still ignored and the rule keeps running, so this is NOT a backward-incompatible change - it just makes the mistake visible. A rejected write also no longer updates the engine's cached value for that control.
- Reduce CPU usage of control reads and writes: the object returned for dev[...] is now built once per control, and its methods once at startup, instead of both being rebuilt on every access
- Fix unbounded memory growth with timer-driven rules that write controls
- Use go 1.26 compiler
- Update dependencies
- Notify: fix sendSMS()
- Fix trackMqtt callback not firing on script reload when another script tracks the same topic
- Notify: enhance sendTelegramMessage to accept additional options
- Fix disabled cron rules being re-enabled on script reload
- Update wbgo.so
- StorableObject: hide technical _psself field from Object.keys() and Object.keys().forEach(), matching the behavior already present in for-in
- Fix memory leak with startTicker
- Notify: fix garbled emoji (and other non-BMP characters) in sendEmail subject and body by encoding them as proper UTF-8 base64 instead of Duktape's CESU-8
- Notify: sendEmail/sendSMS/sendWebhook/sendTelegramMessage accept an optional callback(err) reporting the send result; when given, the caller owns error handling, otherwise the error is logged as before
- Editor: reject saving hidden files and ignore them in the directory watcher
- Port for Debian 13
- trackMqtt: pass 'retained' and 'qos' parameters to callback function
- Add VK, MAX, Matrix, WeChat Work and generic HTTP webhook recipient types for Alarms
wb-rules-system 1.13.5 → 1.13.8
Default system rules for Wiren Board
- Fix findings of the wb-rules type checker (checkJs) in the shipped rules: - power-class-battery: declare psName (was an implicit global) - buzzer: compute PWM period/duty with an explicit integer truncation instead of parseInt(number) (ES5, works on every wb-rules version) - hwmon: do not redeclare nodeName with a different type in one function - system, system_time, wbmz-battery: annotate cell specs as ControlsSpec so they type-check against the wb-rules control types
- hwmon: Add GPU Temperature translation
- postinst: use try-restart and ignore restart failures
wb-scenarios 1.9.0 → 1.10.2
Scenarios for Wiren Board
- Declare implicit globals (ok in light-control, id in translit) found by wb-rules checkJs
- Fix JSDoc inaccuracies found by wb-rules checkJs, no runtime changes
- Merge the two action tables into table-handling-actions.mod.js
- Fix light-control: split lightOn command/status, deterministic startup, gate door timer during motion
- Add auto-off delay to schedule and astronomical timer
- schema: rename wb-dynamic-type options keys
- Add Set Color and Set Text output actions to light-control
- postinst: use try-restart and ignore restart failures
- Add Set Color and Set Text for output actions via wb-dynamic-type widget
- Fix light-control: stop clearing already-fired countdown timers
- Update channel-map: added inversion checkbox
- Update thermostat: update PID translations
- Update pid-controller: update translations
- Update periodic-timer: initialization
wb-suite 1.20.9 → 1.21.0
Wirenboard vendor software set
- Port for Debian 13
wb-tsgo added 7.1.0~dev.20260813
TypeScript compiler (Microsoft typescript-go)
wb-update-manager 1.4.0 → 1.5.2
Wirenboard software updates and release management tool
- Fix crash on relative --log-filename path
- Fix locale detection in obsolete repositories update tip
- Add bash completion
- Port for Debian 13
wb-utils 4.27.8-wb100 → 4.28.6
Wiren Board command-line utils
- wb-gsm: wait for modem to report OFF before switching off power FET
- wb-run-update: fix progress bar size when checking hash of non-rootfs blob
- Grant permissions to install_update.web.flags to www-user user
- Fix noise output during upgrade with FIT
- Move ssh host keys generation to wb-configs
- Don't wipe /mnt/data during upgrade with fit-image
- Don't allow rollback from trixie to bullseye without factoryreset
- Port for Debian 13
wb-vout-watchdog added 1.1.0
Wiren Board Vout undervoltage watchdog
wb-bootlet-wb6x 5.10.35-wb182-fs1.5.4-deb11-202512150209 → 5.10.35-wb182-fs1.5.5-deb11-202604271430
FIT bootlet images, Wiren Board 6 (bootlet)
gir1.2-mbim-1.0 removed 1.28.0-1~bpo11+1
gir1.2-qmi-1.0 removed 1.32.0-1~bpo11+1
gir1.2-qrtr-1.0 removed 1.2.2-1~bpo11+1
libmbim-glib-dev removed 1.28.0-1~bpo11+1
libmbim-glib4 removed 1.28.0-1~bpo11+1
libmbim-proxy removed 1.28.0-1~bpo11+1
libmbim-utils removed 1.28.0-1~bpo11+1
libmosquitto-dev removed 2.0.20-1-wb103
libmosquitto1 removed 2.0.20-1-wb103
libmosquittopp-dev removed 2.0.20-1-wb103
libmosquittopp1 removed 2.0.20-1-wb103
libqmi-glib-dev removed 1.32.0-1~bpo11+1
libqmi-glib5 removed 1.32.0-1~bpo11+1
libqmi-proxy removed 1.32.0-1~bpo11+1
libqmi-utils removed 1.32.0-1~bpo11+1
libqrtr-glib-dev removed 1.2.2-1~bpo11+1
libqrtr-glib0 removed 1.2.2-1~bpo11+1
libsigrok4 removed 0.5.2-3+wb104
libsigrokcxx4 removed 0.5.2-3+wb104
libsigrokdecode4 removed 0.5.3-4
mobile-broadband-provider-info removed 20230416-1
mosquitto removed 2.0.20-1-wb103
mosquitto-clients removed 2.0.20-1-wb103
mosquitto-dev removed 2.0.20-1-wb103
python-gsmmodem-new removed 1:0.11
python3-asyncio-mqtt removed 0.10.0-wb101-1
python3-intelhex removed 2.3.0-1
python3-paho-socket removed 0.0.3-3
python3-wb-mqtt-metrics removed 0.5.0
python3-wb-nm-helper removed 1.37.1
python3-wb-update-manager removed 1.4.0
sigrok-cli removed 0.7.2-1
wb-mqtt-zabbix removed 0.2
Contrib packages
- comerr-dev (common error description library - headers and static libraries) 2.1-1.46.2-2+wb1 → 2.1-1.47.2-3+wb100
- containerd.io (An open and reliable container runtime) added 2.2.4-1~debian.13~trixie
- docker-ce (Docker: the open-source application container engine) added 5:29.5.2-1~debian.13~trixie+wb101
- docker-ce-cli (Docker CLI: the open-source application container engine) added 5:29.5.2-1~debian.13~trixie
- docker-compose-plugin (Docker Compose (V2) plugin for the Docker CLI.) added 5.1.4-1~debian.13~trixie
- e2fsck-static (statically-linked version of the ext2/ext3/ext4 filesystem checker) 1.46.2-2+wb1 → 1.47.2-3+wb100
- e2fsprogs (ext2/ext3/ext4 file system utilities) 1.46.2-2+wb1 → 1.47.2-3+wb100
- e2fsprogs-l10n (ext2/ext3/ext4 file system utilities - translations) 1.46.2-2+wb1 → 1.47.2-3+wb100
- flash-simcom-a76xx (Simcom modem flash utility) 1.1.2 → 1.2.0
- frpc (A fast reverse proxy - client package) 0.62.1-3-gb168dfea-wb3 → 0.62.1-3-gb168dfea-wb4
- frps (A fast reverse proxy - server package) 0.62.1-3-gb168dfea-wb3 → 0.62.1-3-gb168dfea-wb4
- fuse2fs (ext2 / ext3 / ext4 file system driver for FUSE) 1.46.2-2+wb1 → 1.47.2-3+wb100
- gir1.2-modemmanager-1.0 (GObject introspection data for modemmanager) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- gir1.2-nm-1.0 (GObject introspection data for the libnm library) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- knxd (daemon to access the KNX bus) 0.14.74-1+wb100 → 0.14.74-1+wb101
- knxd-dev (development files for knxd) 0.14.74-1+wb100 → 0.14.74-1+wb101
- knxd-tools (tools to use knxd) 0.14.74-1+wb100 → 0.14.74-1+wb101
- libcom-err2 (common error description library) 1.46.2-2+wb1 → 1.47.2-3+wb100
- libext2fs-dev (ext2/ext3/ext4 file system libraries - headers and static libraries) 1.46.2-2+wb1 → 1.47.2-3+wb100
- libext2fs2t64 (ext2/ext3/ext4 file system libraries) added 1.47.2-3+wb100
- libmm-glib-dev (D-Bus service for managing modems - library development files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmm-glib-doc (D-Bus service for managing modems - library documentation) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmm-glib0 (D-Bus service for managing modems - shared libraries) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- libmodbus-dev (development files for the Modbus protocol library) 3.1.6-wb2 → 3.1.11-2+wb100
- libmodbus5 (library for the Modbus protocol) 3.1.6-wb2 → 3.1.11-2+wb100
- libnm-dev (GObject-based client library for NetworkManager (development files)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- libnm0 (GObject-based client library for NetworkManager) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- libsigrok-dev (sigrok hardware driver library - development files) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- libsigrok4t64 (sigrok hardware driver library - shared library) added 0.5.2-5.1+wb105
- libsigrokcxx-dev (sigrok C++ bindings - development files) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- libsigrokcxx4t64 (sigrok hardware driver library - shared library) added 0.5.2-5.1+wb105
- libss2 (command-line interface parsing library) 1.46.2-2+wb1 → 1.47.2-3+wb100
- logsave (save the output of a command in a log file) 1.46.2-2+wb1 → 1.47.2-3+wb100
- modemmanager (D-Bus service for managing modems) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- modemmanager-dev (D-Bus service for managing modems - development files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- modemmanager-doc (D-Bus service for managing modems - documentation files) 1.20.0-1~bpo11+1-wb108 → 1.24.0-1+deb13u1-wb102
- mqttui (Subscribe to a MQTT Topic or publish something quickly from the terminal) 0.23.0-1 → 0.24.0-1
- network-manager (network management framework (daemon and userspace tools)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-config-connectivity-debian (NetworkManager configuration to enable connectivity checking) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-dev (network management framework (development files)) 1.42.4-1~bpo11+1-wb103 → 1.52.1-1-wb100
- network-manager-l10n (network management framework (translation files)) added 1.52.1-1-wb100
- python3-sigrok (libsigrok Python 3 bindings) 0.5.2-3+wb104 → 0.5.2-5.1+wb105
- ss-dev (command-line interface parsing library - headers and static libraries) 2.0-1.46.2-2+wb1 → 2.0-1.47.2-3+wb100
- tailscale (The easiest, most secure, cross platform way to use WireGuard + oauth2 + 2FA/SSO) 1.98.2 → 1.102.1
- wb-welrok (Wiren Board MQTT Driver for Welrok thermostat) 0.0.20 → 0.1.13
- z-way-server (Trident IoT Z-Way Smart Home Gateway) 4.1.1-lws16 → 5.0.2-309-g78fdef5f~trixie-1
- zigbee2mqtt (Zigbee to MQTT bridge (package by Wiren Board team)) 2.10.0-wb101 → 2.13.0-wb101