Skip to content

Releases: NSPManager/NSPanelManager

2.1.9-beta

2.1.9-beta Pre-release
Pre-release

Choose a tag to compare

@tpanajott tpanajott released this 27 Sep 11:51

NSPanelManager — Release Notes (Aug 8 – Sep 27)

A new beta release for NSPanel Manager is now out. A ton of help has been given from @jamesmulcahy and we should all give him a huge thanks for his help!
This release spans work across three repositories: the manager container, the panel firmware, and the web UI.


🎉 NSPanelManager (container)

✨ New Features

  • First page rewritten in React — large-scale migration from HTMX to React for the main dashboard (toast/notification framework, MDI icons, STOMP via RXStomp, NSPanel logs viewer with log download, room editing as a full React page, and more) — #391
  • Media player support — new NSPanel protobuf fields for Home Assistant media players + album art fetching/rendering on-panel — #384
  • Dev build script improvements — configurable port, container name, and seed path so multiple dev stacks can run side by side — #387

🔧 NSPanelManager-firmware

🐛 Critical Fixes

  • Fixed a permanent MQTT deadlock: a failed publish could orphan esp-mqtt's internal lock and wedge the panel offline for good (only fixable by power-cycling). Found via a 35+ hour field soak test — #35
  • Fixed a panel deadlock during rapid config reloads on flaky Wi-Fi: unbounded retry loops in event handlers could freeze the panel entirely if Wi-Fi dropped mid-retry — #26 (+ follow-up regression fixes in #31, #32, #33)
  • Fixed panels getting permanently stuck on "Lost connection to manager": MQTT config topic wasn't re-subscribed on reconnect, and the panel never re-announced itself if the manager lost its state — #14
  • Fixed panel getting stuck subscribing to a manager status topic with no address on every boot — #34

🔄 OTA / Firmware Update Reliability

  • Panel now recovers cleanly from a failed firmware OTA instead of getting stuck on the loading screen — #18
  • Fixed a resource leak (HTTP client, socket, OTA buffer) on every failed OTA attempt — #23
  • Fixed the force-update flag never resetting, causing every future update to reflash even when already up to date — #19
  • Fixed GUI update retry logic so it doesn't fall through with a bad HTTP client handle — #20
  • Fixed task handle not clearing when a GUI update can't start, silently blocking all future update commands — #22
  • Firmware now stores the checksum of what was actually flashed, not what happened to be current at boot — #24

✨ New Features

  • Buzzer support — RTTTL tune playback over MQTT, plus touch/scene event tracking as groundwork for configurable sound-per-event — #29

🧹 Cleanup / Refactors

  • Removed std::format usage, reclaiming ~330 KB of flash — #17
  • Fixed an out-of-bounds read in Nextion string event handling — #16
  • Named the Nextion update protocol return codes for readability — #28
  • Dropped dead/meaningless null checks left over from the cJSON → nlohmann migration — #33

🧹 Misc

  • Updated to latest ESP-IDF supported by PlatformIO
  • Reworked how fallback access point is triggered as there were underlying issues as to how the old method worked
  • When doing the initial setup or connecting to the fallback access point the NSPanel now registers as a captive portal and should automatically popup the configuration web page.

🎉 NSPanelManager Web UI

✨ New Features

  • Lights page — brightness/color-temp sliders, color mode detection, and toggling lights straight from a room's entity list
  • Idle screensaver — clock screensaver after a configurable idle timeout
  • Weather screensaver — animated weather icons, added to the screensaver rotation
  • Loading page — shown on startup and while reconnecting
  • Long-press on the room list — jump straight into a room
  • Entity type icons on room pages, with working toggle

🛠 Improvements

  • Reworked router + shared idle-timeout store for consistent screensaver behavior everywhere
  • Migrated protobuf handling to ts-proto (internal cleanup)
  • More reliable WebSocket (STOMP) connect/reconnect handling
  • Simplified room selector component
  • General UI polish: icon sizes, button labels, gradients, room page layout

🐛 Bug Fixes

  • Fixed color mode detection bug on room change (lights page)
  • Fixed room selector not closing after idle timeout + flicker bug
  • Fixed main page button firing right after screensaver deactivation
  • Fixed broken ceiling light icon
  • Fixed unreliable visual feedback when WebSocket disconnects
  • Various build fixes

2.1.8-stable

Choose a tag to compare

@tpanajott tpanajott released this 11 Aug 18:20
  • Fixed a bug where it was not possible to create new lights.
  • Fixed a bug where the panel would crash if a thermostat mode was changed and the new and/or old mode did not have an icon.

2.1.8-beta

2.1.8-beta Pre-release
Pre-release

Choose a tag to compare

@tpanajott tpanajott released this 11 Aug 18:21
  • Fixed a bug where it was not possible to create new lights.
  • Fixed a bug where the panel would crash if a thermostat mode was changed and the new and/or old mode did not have an icon.

2.1.7-stable

Choose a tag to compare

@tpanajott tpanajott released this 09 Aug 18:25

New stable release is out with the following changes:

  • Fixes bug #356
  • Implements features request #350
  • Fixes bug #327
  • Implements thermostat control as per feature request #204
  • Implements feature request #112
  • Fixed multiple bugs where firmware on panel would not show screensaver properly when problems with wifi and MQTT occured
  • Fixed bugs where manager would crash when trying to write to websocket for either OpenHAB or Home Assistant and error occured
  • Added the ability to choose home assistant scripts as scenes. When using theses scripts room_name and room_id is available as script variables underneath the nspanelmanager tag.
  • New webapp interface now available in beta thanks to the great work of @cablesandcoffee. This is available from any browser by going to http://manager address:manager port/webapp. It will show up as a new panel in the manager and will need to be accepted as with any new panel.
  • @jamesmulcahy fixed an error where, if no radio button was selected when saving settings it would crash.
  • @jamesmulcahy fixed a potential issue where the browser may have restructured the DOM when trying to select items in a way that made that impossible.
  • @jamesmulcahy make it so that scene_name, scene_id and if available triggering room_id and name is sent to to HA scripts when using HA scripts as scenes.
  • @jamesmulcahy fixed potential issue with unknown panel trying to download a GUI and it would throw a TypeError and not be able to proceed.
  • @jamesmulcahy fixed a logic issue where, at midnight, the thread responsible for sending out time and date to panels would run at 100% from 11:59 until it ticked over to the next day.
  • Cleaned up register accept handling.
  • Removed unnecessary logging.
  • Added a back off/debounce logic to room states as to avoid flickering of states when multiple state updates happens.
  • Fixed a bug where the wrong light values would be shown for ceiling lights in all rooms mode.
  • Fixed a bug where the wrong/not all lights were using the all rooms mode.
  • Adding/editing entities now uses React instead of the bodged solution that was used previously using HTMX. This fixes multiple bugs.
  • Updated websocket server to use unique/shared locks for improved performance and reliability.

2.1.7-beta

2.1.7-beta Pre-release
Pre-release

Choose a tag to compare

@tpanajott tpanajott released this 27 Jul 19:56

Webapp changes:

  • Changed Online status transmission to only happen on connect and set to retain true
  • Fixed issue where hostnames in the address field caused issues
  • Changed css so entire app is shown straight away taking top bar into account
  • Small changes to room selector buttons in

MQTTManager changes:

  • Updated websocket server to use unique/shared locks for improved performance and reliability.

2.1.6-beta

2.1.6-beta Pre-release
Pre-release

Choose a tag to compare

@tpanajott tpanajott released this 21 Jul 18:34
  • New webapp interface now available in beta thanks to the great work of @cablesandcoffee. This is available from any browser by going to http://:/webapp. It will show up as a new panel in the manager and will need to be accepted as with any new panel.
  • @jamesmulcahy fixed an error where, if no radio button was selected when saving setting it would crash.
  • @jamesmulcahy fixed a potential issue where the browser may have restructured the DOM when trying to select items in a way that made that impossible.
  • @jamesmulcahy make it so that scene_name, scene_id and if available triggering room_id and name is sent to to HA scripts when using HA scripts as scenes.
  • @jamesmulcahy fixed potential issue with unknown panel trying to download a GUI and it would throw a TypeError and not be able to proceed.
  • Added step size setting to thermostat temperature control.
  • @jamesmulcahy fixed a logic issue where, at midnight, the thread responsible for sending out time and date to panels would run at 100% from 11:59 until it ticked over to the next day.
  • Cleaned up register accept handling.
  • Removed unnecessary logging.
  • Added a back off/debounce logic to room states as to avoid flickering of states when multiple state updates happens.
  • Fixed a bug where the wrong light values would be shown for ceiling lights in all rooms mode.
  • Fixed a bug where the wrong/not all lights were using the all rooms mode.
  • Adding/editing entities now uses React instead of the bodged solution that was used previously using HTMX.

2.1.5-beta

2.1.5-beta Pre-release
Pre-release

Choose a tag to compare

@tpanajott tpanajott released this 27 Apr 20:03

What's Changed

  • Send room_name and room_id when triggering HA scripts by @jamesmulcahy in #365
  • It's now possible to set the step size of temperature on home assistant thermostats
  • Fixed multiple bugs where firmware on panel would not show screensaver properly when problems with wifi and MQTT occured
  • Fixed bugs where manager would crash when trying to write to websocket for either OpenHAB or Home Assistant and error occured
  • Added the ability to choose home assistant scripts as scenes. When using theses scripts room_name and room_id is available as script variables underneath the nspanelmanager tag.

Full Changelog: 2.1.4-beta3...2.1.5-beta

2.1.4-beta

2.1.4-beta Pre-release
Pre-release

Choose a tag to compare

@tpanajott tpanajott released this 07 Mar 11:34

Version 2.1.4 beta includes the following changes:

  • Fixes bug #356
  • Implements features request #350
  • Fixes bug #327
  • Implements thermostat control as per feature request #204
  • Implements feature request #112

2.1.3-stable-h1

Choose a tag to compare

@tpanajott tpanajott released this 07 Mar 11:22
1438cdb

Hotfix to solve issue #356

2.1.3-Stable

Choose a tag to compare

@tpanajott tpanajott released this 08 Nov 11:04

All of our previous beta releases of the new v2 release have now been tested enough and deemed stable. So, for those waiting, here comes the V2 to those running stable. General changes from stable:

  • New web interface that is more modern with more features.
  • More supported entities other than lights.
  • There's now 4 different types of backgrounds to select from.
  • Migrated to protobuf so there's faster message exchanges between panel and manager.
  • Panel does not cache rooms and entities any more so there's now no real limit to the number of entities and rooms as they are requested as needed.
  • It's now possible to have multiple pages of scenes and/or entities for each room.

Previous changelogs from all V2 beta releases:

2.0.3-beta:

  • Moved sed's of verion in files to after the repo has been checked out.

2.0.4-beta:

  • Disabled docs-workflow as docs is handled in seperate repo. Will now also install PyZMQ with custom argument to allow compilation with installed cmake version when an existing wheel is not available. (Documentation was later moved to a separate repo)

2.0.5-beta:

  • Fixes to mainly issue #284

2.0.6-beta:

  • Hopefully fixes issue #286. Also fixes issue #286, thanks to @jbeardon for the help!

2.0.7-beta:

Again, more work done on issue #286, Django will now only try to populate data and start the MQTT manager process when actually starting the application and not when doing other stuff (such as applying migrations). Also fixed somewhat of a security vulnerability where by the password for MQTT and WiFi in the NSPanel firmware and MQTT password, Home Assistant Token, OpenHAB token, would be sent to the web interface in clear text. Now, once set, it will simply show a box saying that the value is set and there's a checkbox to clear the already set value. Also added a version tag to the static files URL's to hopefully fix the issue of browsers caching static files (issue #289 and #288).

2.0.8-beta:

  • Added workaround/fix for issue #290 where it wasn't possible to save settings unless HA address and token was provided.
  • Fixed an annoying bug where the panel would sometimes fail to enter an individual entities page (house/room scenes and entities pages) and would then not respond to any touches until the screensaver was shown.
  • Got rid of the algorithm to try and test all different bauds for communication when updating the screen. The user now has an option on the web interface to change it as needed.

2.0.9-beta:

  • Fixed a bug where the panel would crash if having unsigned entity slots before an entity (eg. an entity in slot 7 but none in slot 6), issue #294.
  • Fixed a bug where on the 8 and 12 entities/scenes page if having many items and long names the title of the page would not be populated, issue #296.
  • Fixed a bug where toggling lights via OpenHAB would not reflect correctly on panel (eg. 100% -> 0% brightness would show but then going back to 100% again would not update), issue #297.
  • Fixed a bug where, when searching for entities/scenes to add, search only worked with lower case letters, issue #308.
  • Fixed a bug where temperature reporting was not working. Reworked how reading of the sensor was done and also found a better calibration. You may need to recalibrate your sensors but they should be a lot more calibrated as of v2.0.9, issue #299.
  • Fixed a bug/problem introduced in v2.0 where we were using ZMQ for communication between web interface (Django) and MQTTManager, this is now been worked out and is no longer needed, issue #311.
  • Introduced a "Reboot" and "Factory reset" button on the NSPanel settings page that exists on the panel itself, issue #300.
  • Introduced a way for users to select what background to use on each panel a user has registered, issue #184.

2.0.9-beta-hotfix1:

  • Fixed issue #312 which causes most browsers (those based on Chromium) to not be able to connect to STOMP websocket.

2.1.0-beta:

  • Added support for Home Assistant "buttons".
  • Added support for custom MQTT "buttons". This is the same as for "Custom MQTT" mode for the physical buttons as in you can create a button and assign it an MQTT topic and a payload to send when triggered.
  • Updated dependencies
  • Cosmetic fixes
  • Reworked how entities are handled. They are now not separate types in the backend database. This will make it easier to add new entity types and to manage them as lots of repeated code can now be condensed into the same code.
  • Fixed a bug that could cause NSPanels to be registered twice depending on if the register request was received before the manager had loaded all panels/entities.
  • Fixed issue #314, locking a panel to a default room no longer works.
  • Added a feature to force update the firmware on an NSPanel even though it has the correct checksum stored.
  • Fixed issue #97, it's now possible to use lights from another room when using "Detached mode" for physical buttons.
  • Fixed issue #313, error page when sending an empty temperature calibration instead of "0.0".
  • Fixed issue #183, it's now possible to select "US" as a default type of NSPanel instead of having to select it everywhere.
  • Added option to select background and type/orientation of NSPanel in the manager. It's now also possible to have the US panel rotated so that it has the physical buttons on the right.
  • Errors/warnings shown in the web interface will now be better displayed when using a mobile.
  • Removed HTMX websocket extension as it is no longer needed. Migration to STOMP over websocket is now complete.
  • Fixed issue #307, when pressing the "Load" button to use current address from browser as manager address, it set the DNS name instead of resolving the DNS name to the actual IP.
  • Implemented #205, it's now possible to select a room temperature sensor per room to display that temperature on the NSPanel.
  • General cleanup.

2.1.1-beta:

  • Fixed a bug where by new NSPanels could not be registered.
  • Added custom "NSPanel Manager" dark theme, work in progress still.

2.1.1-beta-h1:

  • Fixed a bug where, when a new panel requested access to the manager, it would continue to create copies of itself even though a request already existed.

2.1.2-beta:

  • Added support for OpenHAB groups (issue #321).
  • Fixed a visual bug where us panel and us panel mirrored were not displayed properly (issue #320).
  • Fixed a bug where "Not controlled by main page" was not respected (issue #319).

2.1.3-beta:

  • Added support for input_boolean entities when adding a switch (issue #325).
  • Fixed a bug that made is so that entities could not be rearranged (issue #326).