All notable changes to this project will be documented in this file. This project uses Semantic Versioning.
- hb-service: Added an option to the
hb-service
to help users rebuild their Node.js modules after a major Node.js version update
- System: Fixed an issue causing the UI to crash when running in a FreeBSD Jailed Shell (#488)
- System: Prevent in-app updates to the UI for Windows 10 users. Windows file-locking prevents online updates from completing successfully while Homebridge Config UI X is still running, this can leave Homebridge in an unstable state. After this update Windows users will need to manually stop the Homebridge service, then manually update the UI using npm. Existing Windows 10 users: please perform this update manually after stopping the Homebridge service!
- Dashboard: Added a Clock widget, users can select the time format they wish the clock to display (#459)
- hb-service: Added the ability for
hb-service
users to set the Homebridge-D
and-R
flags, as well as theDEBUG
andNODE_OPTIONS
environment variables directly from the UI (#472)
- i18n: Improvements to Polish language translations (#467)
- i18n: Improvements to Swedish language translations (#476)
- i18n: Improvements to German language translations (#482)
- Dashboard: Node.js / npm version warning icons will now only show up if you are using an unsupported version of Node.js, the latest available version can still be viewed by hovering over the current version
- Plugins: Added seemless account linking support for the Homebridge Honeywell Home plugin
- Plugins: Added the ability for Homebridge Ring users to get their Ring account
refreshToken
directly from the UI (#486)
- System: Fixed an issue causing the UI to crash when running in a FreeBSD Jailed Shell (#461)
- System: Prevent an unnecessary log message showing up in the logs on certain Linux distros (#466)
- System: Fixed a bug that caused the UI to crash when running in debug mode in production (#469)
- Dashboard: Fixed a bug where the "Plugin Status" icon was not changing when there were updates available (#443)
- Auth: Fixed a warning about a depreciated option that was in use (#473)
- Config Editor: Fixed a issue that prevented the on-screen keyboard from being able to be displayed after it was dismissed on an iPad Pro (#480)
This release comes with a brand new status dashboard that features a fully customisable, widget-based design. Users can decide which widgets they wish to enable and position and resize them as they like.
New widgets include:
- Homebridge Status Widget - Homebridge version and update check, current Homebridge service status and Homebridge plugins update check
- CPU Widget - shows the current cpu load (now much more accurate) and CPU temperature when available, plus a graph of the last 0-10 minutes cpu load
- Memory Widget - shows the total and available memory (previously "Free" memory as show which is not a reliable indicator of "Available" memory), plus a graph of the last 0-10 minutes free memory
- Uptime Widget - shows the server uptime and the process uptime
- QR Code Widget - shows the pairing QR Code and Homebridge PIN
- Homebridge Logs Widget - shows the Homebridge logs stream
- Homebridge Terminal Widget - an interactive terminal (only available when interactive web terminals are enabled)
- System Information Widget - shows details about your server and homebridge setup
- Weather Widget - shows the current weather for the set location (may add a forecast later)
- Accessories Widget - display and control the accessories you select
This release expands the hb-service
command to support macOS and Linux in addition to Windows 10. This command allows you to setup a Homebridge instance as a service in seconds.
Running hb-service install
will setup Homebridge and Homebridge Config UI X to run as a service with auto-start on boot. The same command works across Linux, macOS and Windows 10.
Notable Features:
- The UI will remain running even if there is an issue preventing Homebridge from starting
- Easily setup and manage multiple homebridge instances
- The ability to start, stop, restart and view the logs of your Homebridge instances using the
hb-service
commands - See the wiki for further details
The config editor (non-mobile) has had the Ace Editor replaced with the Microsoft Monaco Editor (the code editor that powers VS Code).
This allow for much more powerful JSON syntax checking, more helpful error messages and the new ability to detect duplicate keys in object (like when a second platforms[] array is added by mistake!).
In addition:
- Help text is now shown when hovering over the core components of the config.json
- Autocomplete of the bridge, plugins, ports and mdns objects
- Detect when accessory config has been added to the platform array, or vice versa
- Warnings when the JSON does not match what is allowed by Homebridge
- Logs: URLs in the log output are now clickable
- Status: CPU utilization is now shown for Windows 10 users
- Status: CPU temperature option,
temp
, has been removed, the CPU temperature will now automatically be displayed where possible on Linux and Windows - System: Removed the
websocketCompatibilityMode
option, this setting is now the default for all users - Terminal: The terminal now automatically respawns the shell if the shell is terminated by the user (e.g, when using CTRL+D)
- Accessory Control: The right click handler on accessory tiles has been removed and replaced with a clickable cog icon in the top right hand side of each tile
- Themes: The legacy Dark Mode (v1) has been removed, users will be migrated to the new Dark Mode automatically
- i18n: Improvements to Simplified Chinese language translations (#431)
- i18n: Improvements to German language translations (#444)
- i18n: Improvements to Spanish language translations (#445)
- i18n: Improvements to Polish language translations (#446)
- Updated npm dependencies
- System: Fixed a bug that prevented the Windows 10 service installer (
hb-service
) from working when the user's login name contained spaces - Linux: Fixed a bug where the custom shutdown command was executing the custom restart command instead (#442)
- System: The Windows 10 service installer (
hb-service
) now configures the system firewall
- Accessory Control: Fixed a bug that causes some accessory states not to update (#426)
- Updated npm dependencies
- Updated npm dependencies
- Themes: Dark mode is now darker
- Updated npm dependencies
- Config Editor: Improved Validation: Config in the
platforms
andaccessories
arrays are now checked to ensure they match the structure expected by Homebridge - Auth: If the
auth.json
file is corrupted or empty it will be recreated with the default credentials
- i18n: Swedish language improvements (#410)
- Updated npm dependencies
- Theme: Added new "Default" theme, the default theme will automatically switch between a "Light Mode" theme (Teal) and a "Dark Mode" theme based on the client operating system's dark mode preferences
- i18n: Swedish language translation added by @DewGew (#404)
- i18n: German language improvements (#365, #388)
- i18n: Polish language improvements (#395)
- i18n: French language improvements (#400)
- System: Perform self-updates offline when using Docker - latest oznu/homebridge docker image required (docker-homebridge#220)
- Theme: Improved visibility of user profiles in the new dark mode theme (#363)
- Accessory Control: Fix an issue causing errors when discovering instances in some circumstances (#370)
- i18n: Bulgarian language improvements (#364)
- i18n: German language improvements (#365)
- Plugins: Added support for configuring the new Homebridge Google Smart Home Plugin. This plugin allows you to control supported Homebridge accessories from any Google Home Smart Speaker, Google Assistant, or the Google Home mobile app on iOS and Android
- Accessory Control: Multi-instance support. You can now control accessories from multiple Homebridge instances
- All instances you want to control must have the same PIN, be on the same network, and running in insecure mode
- Your other instances are automatically discovered, however you can blacklist instances you don't want to control using the plugin settings
- Due to the changes required to identify accessories across multiple instances your room/accessory layout will be reset after upgrading
- System: Added a new feature to help setup and run Homebridge and Homebridge Config UI X as a service on Windows 10
- Plugins: The "last updated" date is now displayed when searching for plugins to install (#336)
- Logs: Increased the default number of lines to show for the "Log from File" method from 200 to 500 (#339)
- Accessory Control: Accessory tiles now animate when clicked/pressed, similar to how they behave in the native iOS Home app
- Accessory Control: Accessory characteristics (on, off, brightness etc) now update immediately when changed in HomeKit (previously there was up to a 3 second delay)
- i18n: Bulgarian language translation added by @mafyata
- i18n: Added translation support for accessory states and labels (#342)
- If you're still seeing English labels, we need your help translating the new values for your language, get started here
- Theme: The dark mode theme has received a makeover, if you prefered the old dark mode you can switch back in the plugin settings
- i18n: Improve German Translations (#328)
- i18n: Improve Polish Translations (#328)
- i18n: The Restart Homebridge page is now translated again (#342#issuecomment-519499941)
- Auth: Disable auto-capitalization for username fields on mobile browsers (#325)
- Accessory Control: Fixed bug preventing switches correctly reflecting their state when on (#343)
- Accessory Control: Removed outline around modal close buttons (#349)
- Fixed a bug that prevented the UI automatically reloading after an update
- Updated npm dependencies
- Upgraded Angular from v8.0.0 to v8.2.0
- Fixed a display issues on iOS (#322)
- Fixed an issue causing users to be logged out before their session had expired
- Accessory Control: Added basic support for "Window Covering" accessories (#224)
- Accessory Control: Added basic support for "Television" accessories: on, off, current input display (#47#issuecomment-479768040)
- Accessory Control: Added support for "Contact Sensor" accessories (#47#issuecomment-437576223)
- Updated npm dependencies
- Upgraded Angular from v7.2.15 to v8.0.0
- The footer links on the status page are now stuck to the bottom of the page, rather than the end of the content
- Update Content Security Policy to allow remote images from
https://user-images.githubusercontent.com
in plugin Change Logs / Release Notes
- Fixed a bug that caused the UI to stop responding for some users (#299)
- Updated npm dependencies
- Config Editor: Prevent Smart Punctuation autocorrect in the config editor on mobile devices (#313)
- Auth: Ensure the JWT token was generated by the current instance of the UI, if not clear the token and logout (#307)
- Add an on-screen warning when attempting to install/update/uninstall a plugin, or view the logs on unsupported versions of Node.js (#305)
- Added some more detailed log message to help when users are not able to login, need to reset their password, are unable to view accessories
- Plugins: Added extra logging to try and investigate the cause of #299
- Provide a more detailed error with steps to resolve if the
node-pty
module fails to load (after a Node.js update for example) - Added a warning message in the logs letting the user know if their Node.js version is to low (anything less than 8.15.1)
- Updated npm dependencies
- Node.js v12 is now supported (#277)
- Plugins: Added a check before a plugin is installed to test for write access to the target directory if sudo mode is not enabled - this should result in a more helpful message being displayed when a plugin fails to install due to lack of permissions
- Docker: Ensure the node_modules directory is present after all plugins are uninstalled
- Updated npm dependencies
- Plugins: Allow plugins to specify only a single config block should exist in the Plugin Setting GUI (#290)
- Plugins: The plugin will no longer log with timestamps when homebridge is started with
-T
(#288) - Plugins: The plugin logs are now prefixed with the name defined in the
config.json
(#288) - Auth: Display a warning if the time on the server varies to greatly from time on the client which could cause mysterious login issues
- Plugins: Fixed a bug preventing users adding additional elements to an array with the Plugin Setting GUI (#289)
- Plugins: Fixed an issue preventing the plugins tab from loading when the npm registry was slow to respond (#284)
- Plugins: Fixed an issue that prevented plugins from displaying for some users (#284)
- Plugins: Searching for the exact name of a plugin will return a result even if the npm registry search is not working
- Updated npm dependencies
- Bundle some dependencies using
bundledDependencies
in thepackage.json
to try and reduce installation errors
- Homebridge: Added
homebridgePackagePath
to allow users to defined where the Homebridge module is installed if it's not installed globally (#280)
- Updated npm dependencies
- Wiki: Created wiki page showing all available config options
- Plugins: Plugins that need updating are now correctly displayed at the top of the list (#275)
- Plugins: The status/homepage will now display a notice if you have any out-of-date plugins (#200)
- Config: The "Backup Config" feature is back (#279)
- i18n: Italian language translation added by @cyberfafu
- Updated npm dependencies
- Fixed issue causing the UI to crash when
platforms
was not present in the Homebridgeconfig.json
(#263)
- Updated npm dependencies
- Fixed issue preventing the web service from loading correctly in config-less oznu/homebridge docker containers (#262)
- Check for IPv6 interfaces before attempting to listen on
::
(#261)
- Added
host
config option to allow users to manually specify which interface/ip address the web interface should listen on
- Fixed bug that prevented the web service listening on IPv6 interfaces (#260)
- Added
websocketCompatibilityMode
option for users who are having issues with WebSocket connections (#238)
- Updated npm dependencies
- Fixed resolving of custom plugin path for non-Docker installations
- Auth: The Basic Authentication option has been removed. Users who have Basic Authentication enabled will be swapped to Form Authentication
- Reverse Proxy: Some users who have setup a reverse proxy and defined the websocket path will need to swap the WebSocket endpoint from
/wsocket
to/socket.io
- If you are using the reverse proxy templates from the wiki no changes are required
- Node.js Version: Dropping support for Node 7 and below, this plugin now requires Node.js v8.15.1 or higher on Linux and v10 or higher on Windows
- Plugins: Before updating a Homebridge plugin the release notes from GitHub will be shown where possible (#233)
- Plugins: A corrupt plugin will no longer prevent all the installed plugins from being displayed (#252)
- i18n: Turkish language translation added by @btutal
- Theme: The default theme for new installs is now
teal
instead ofred
- Auth: Ability to customise the session timeout
- System: Added the ability for the plugin to run as a separate service rather than a Homebridge plugin, this will allow users who have configured this feature to manage their server even if Homebridge is crashing due to a bad config / other issue
- Previously this has only been supported, and the default setup, when running in Docker (oznu/homebridge)
- The code base has been refactored
- Client side changes include:
- Swapped from
ui-router
to@angular/router
for page routing - Now using
socket.io
for WebSockets - Split code into modules
- Lazy load modules on demand
- Swapped from
- Server side changes include:
- Swapped from Express to the Nest.js framework with Fastify
- Swapped from
ws
tosocket.io
for WebSockets - while I do prefer to use thews
library, the syntastic sugar provided by Socket.io simplified the code base - Split code into modules
- Packaged code is now combined with Webpack, this should reduce startup times on slow I/O systems like the Raspberry Pi
- Auth: The Basic Authentication option has been depreciated. Users should switch to Form Authentication instead (the default)
- Swap to using a prebuilt version of the node-pty package to try and reduce errors during installation
- Updated other npm dependencies
- Themes: Dark mode and other themes added by @RaymondMouthaan (#236)
- Themes: Make it easier to see that there are three separate links at the bottom of ths status page by adding hover effect (#230)
- i18n: Dutch language translation added by @RaymondMouthaan
- Updated Angular to 7.2.9
- Updated other npm dependencies
- i18n: Spanish language translation added by @Rubenfer
- i18n: Japanese language translation added by @gaojie429
- Updated Angular from 7.2.0 -> 7.2.3
- Updated other npm dependencies
- Updated
xterm
dependency to fix CVE-2019-0542 - Updated Angular from 7.1.0 -> 7.2.0
- Updated other npm dependencies
- i18n: Improvements to Polish language translation (#192)
- i18n: Improvements to Simplified Chinese language translations (#195)
- Accessory Control: Added ability to lock the accessory layout (#197)
- i18n: Improvements to Polish language translation (#186)
- i18n: Hungarian language translation added by Nagy Attila
- i18n: Traditional Chinese language translation added by @r951236958
- i18n: Improved i18n capabilities to support both Simplified and Traditional Chinese translations
- Fixed a bug that prevented errors being handled correctly by the client
- i18n: Improvements to German language translation (#174)
- Auth: Fixed bug preventing login when credentials were autofilled in Chrome (#175)
- Plugins: Prevent invalid link to plugin homepage being displayed if the URL is not known (#178)
- Updated Angular from 6.1.9 to 7.1.1
- Updated npm dependencies
- Accessory Control: Added ability for accessories to be assigned custom names; right click to access the accessory config/info panel (#156)
- Accessory Control: Added ability for accessories to be hidden (#84)
- i18n: Improvements to French language translation (#169)
- Auth: removed some unnecessary log messages (#171)
- Updated npm dependencies
- i18n: Improvements to French language translation (#162)
- Updated Angular to 6.1.9
- Updated npm dependencies
- i18n: Simplified Chinese language translation added by @niinaranpo
- Updated Angular to 6.1.6
- Updated npm dependencies
- i18n: Improve Russian Translations (#146)
- Updated Angular to 6.1.1
- Updated npm dependencies
- i18n: Czech language translation added by @HonzaaD
- i18n: Russian language translation added by @Caribsky
- User contributions to the non-english translations are always welcome, click here for details on how you can help
- Config Editor: Backup button actually downloads up the
config.json
now (#144) - Config Editor: Fixed issued using config editor on mobile devices (#131)
- Accessory Control: Accessory layout changes are now persistent again
- Accessory Control: Long-clicking a lightbulb with no additional characteristics (eg. brightness) no longer opens a modal (#47#issuecomment-405089113)
- Accessory Control: Right-clicking an accessory on a non-mobile device will bring up a modal showing all accessory characteristics and other information
- i18n: Polish language translation added by @mientki
- User contributions to the non-english translations are always welcome, click here for details on how you can help
- Config Editor: Backup button more reliable (#135)
- Accessory Control: Refresh all accessories when one is changed to ensure the dashboard is up-to-date (#136)
- Updated Angular to 6.1.0
- Updated npm dependencies
- Handle loading config schema for @homebridge plugins correctly
- Made
config.json
saves a bit more robust in an attempt to fix (#122) - Added
proxyHost
config option to make running behind a reverse proxy easier (#119)
- Fixes to German Translation (#116)
- Allow web terminal access on Linux-based hosts only if a certain environment variable is set (#110)
- Homebridge must be running with the
HOMEBRIDGE_CONFIG_UI_TERMINAL=1
environment variable to access the terminal
- Homebridge must be running with the
- Minor bug fixes
- Updated npm dependencies
- Added support for non-english translations (#102)
- German translation added with the assistance of @razer4908
- French translation added by @the0neyouseek (#105)
- Language is selected automatically based on browser settings
- If you want to contribute to the translation work please see CONTRIBUTING.md
- Imperial display units now apply to temperature sensors and thermostat accessories (#96)
- Updated npm dependencies
- Config changes for the UI should require a full page refresh less often
- Added support for imperial temperature display units (#96)
- ui: upgraded from Angular 5.x to 6.x
- updated npm dependencies
- Updated npm dependencies
- Removed the
nsp
package as the tool has been discontinued, vulnerability scanning is being added tonpm
natively - Updated npm dependencies
- Updated npm dependencies
- Errors will no longer be thrown if a plugin is installed with CVSS alerts lower than 4 (Low Risk)
- Fixed bug that could cause plugins that take a long time to install or upgrade to fail
- Beta Feature: Initial implementation of GUI/form based setup for supported plugins
- Added support for optional native HTTPS / SSL (#68, #35)
- The Log Viewer config options have changed, existing options have been have depreciated, see README for details
- Docker users may now configure this plugin using the
config.json
or the new plugin GUI/form config method - Added metadata tag allow using plugin as a full screen web app on iOS (#88)
- Added ability to restore and cleanup
config.json
backups (#77)
- Added Content-Security-Policy headers
- Links to external sites now have
rel="noopener noreferrer"
- Links in plugin-author generated markdown (eg. change logs, plugin config) are now opened in a new tab
- When on the status page, the browser will refresh automatically if the client version does not match the server version
- Updated npm dependencies
- Fixed bug that caused homebridge to crash when using Log Viewer on Windows 10
- Ensure forked process is killed if Homebridge is not running in a different way (@Damien via Slack & #86)
- Added
wsocket
prefix to websocket connection to make reverse proxying easier for some users (#85)
- Fixed bug that could prevent the plugin from displaying in the browser after an update unless the cache was cleared (#82)
- Ensure forked process is killed if Homebridge is not running (#83)
- Accessory Control: Added message explaining that accessory control is disabled when navigating to
/accessories
when insecure mode is not enabled - Updated README to contain link to the Enabling Accessory Control wiki article
- Docker: Fixed a bug that prevented users saving settings
- This plugin now runs in a seperate thread to the main homebridge process (#75)
- This can be disabled by setting
noFork
totrue
in the plugin config
- This can be disabled by setting
- Added ability to set a custom image for the login screen using the
loginWallpaper
option (#34) - Updated npm dependencies
- Added link to plugin homepage (GitHub, BitBucket, etc.) (#74)
- Updated npm dependencies
- Suppress npm update warnings in log output (#66)
- Added Docker Settings page where users can adjust the following (#64):
- Toggle Homebridge Insecure / Debug Mode
- UI Theme Color
- UI Auth Mode (Form, Basic, None)
- Added the ability to set the path to the temp file using
HOMEBRIDGE_CONFIG_UI_TEMP
when running in Docker (#62)
- Log viewer terminal now adjusts the size of the pty shell according to the size of the browser window
- Prevent zoom when using the config editor on iOS (@Yanni via Homebridge Slack)
- Prevent the deletion of an admin user if there are no other admin users (docker-homebridge#83)
- Fixed issue that prevented installed plugins from loading if one was missing a description in it's
package.json
(#59)
- Added ability for Linux users to shutdown and restart the server Homebridge is running on (#39)
- Updated npm dependencies
- Fixed issue that prevented plugin scan from working on Windows (#53)
- Fixed missing css class
.bg-yellow
- Display plugin
CHANGELOG.md
after updating if it exists (#51)
- Prevent users accidentally removing homebridge-config-ui-x using the web app
- Fixed an issue that prevented adding a new room to the accessories page in Safari (#47#issuecomment-372101867)
- Fixed missing css class
.bg-red
- Added features just for oznu/homebridge docker container users (#48)
- Ability to access docker container terminal
- Ability to edit
startup.sh
script - Ability to restart entire docker container
- Updated npm dependencies
- Material Icons now loaded from local package
- Swapped to the core mdbootstrap library to fix nav drop down menus
- The mobile menu will now close when a nav item is clicked
- Ability to view and control accessories (#46)
- Scan installed and updated plugins for vulnerabilities and malware (#37#issuecomment-370698122)
- Display current version of node and homebridge-config-ui-x on the status page (#40)
- Set the homebridge title to match the homebridge instance name (#38)
- Non-admin users now have restricted access (#37#issuecomment-368346991)
- Ensure log process is killed after closing the page on older linux systems (#41)
- Fixed config screen not displaying correctly on some devices (#31)
- Fixed bug that prevented log file session closing when using sudo mode (#29)
- Use registry.npmjs.org to search for plugins (#30)