This is the official release of openHAB 5.1.0.
The binaries are available on our download page and via "Stable" on our APT repository.
New and Noteworthy
The openHAB 5.1 release is a feature release that contains many new features, enhancements and bug fixes, both for the core runtime and for many add-ons. You can find the most relevant ones listed in detail below.
Please also note our release blog post, which describes the major new features in depth.
openHAB 5.1 is backward compatible to openHAB 5.0 setups, though there are a few exceptions where manual action is required to adapt an existing setup, so please carefully check the section on breaking changes. It is especially important to know that openHAB 5.x requires Java 21, so in case you are coming from a 4.x installation and haven't yet upgraded, this is mandatory.
Quick links:
- Notes about new add-ons
- Notes about the core runtime
- Notes about the UIs
- Notes about the add-ons
- Upgrade Process for openHABian, APT, RPM, Manual Installations
- Breaking Changes that require manual interaction after the upgrade.
Relevant Changes
New Add-ons
The following add-ons are newly introduced:
| Add-on | Type | Issue |
|---|---|---|
| HomeKit | Binding | #19340 |
| Lambda Heat Pump | Binding | #19378 |
| Midea AC | Binding | #17749 |
| Modbus FoxInverter | Binding | #19637 |
| MSpa | Binding | #18746 |
| Roborock | Binding | #19117 |
| Sedif | Binding | #18718 |
| SomfyCUL | Binding | #19207 |
| UniFi Protect | Binding | #19411 |
| Viessmann | Binding | #19123 |
Runtime
The following improvements were made to the core and the distro:
| Type | Issue | Change |
|---|---|---|
| Enhancements | 4032 | Add pcm audio websocket with dialog support |
| 4682 | Persistence no default strategies and persistence configuration health check | |
| 4793 | New API for conversion between file format and JSON | |
| 4910 | Add tests for rules and rule templates JSON parsers | |
| 4913 | Apply default semantic tags from linked channels to items | |
| 4919 | AbstractScriptModuleHandler: Remove prefixes from ctx keys when setting execution context
| |
| 4929 | Marketplace fixes | |
| 4932 | Upgrade Karaf from 4.4.7 to 4.4.8 | |
| 4937 | Add ItemChannelLinkRegistry to DefaultScriptScopeProvider | |
| 4942 | Update Jackson to 2.19.2 | |
| 4943 | Add jackson-datatype-jdk8 bundle to Jackson feature | |
| 4948 | Apply timeout logging to scheduled executor service | |
| 4961 | Add new HTTP actions for images | |
| 4967 | Persistence extensions query optimization | |
| 4969 | Apply blocked task logging to scheduled executor service | |
| 4983 | Make REST endpoints accept more logger name characters | |
| 4990 | Pass event source to profiles | |
| 5006 | Fix network interface configuration option enumeration | |
| 5028 | Details error message in log when, in an UI transformation, a script is the error cause. | |
| 5030 | MQTT transport: add cleanSession/cleanStart parameter | |
| 5032 | Isolate discovery result registrations from binding threads | |
| 5040 | Add item overloads for providing source | |
| 5041 | Allow passing source when sending commands via REST API | |
| 5051 | Make TimerImpl thread-safe | |
| 5054 | AbstractScriptModuleHandler: Inject module type ID into context | |
| 5064 | Refactor BusEvent to ScriptExtension | |
| 5072 | Same thread executor | |
| 5073 | Set event source for updates and commands from bindings according to new standards | |
| 5074 | Very minor rulesupport fixes | |
| 5077 | Script DSL: accept Collection Literals | |
| 5079 | Send source for console commands to items | |
| 5080 | Include source with item event descriptions when present | |
| 5081 | Pass event sources through item state update/change events | |
| 5082 | Set event source for restoring item states from persistence | |
| 5083 | Allow cross-binding bridges | |
| 5092 | Refactor Windows USB discovery | |
| 5094 | Do not require Strategies{} in persistence/ files
| |
| 5095 | Support UPnP namespaces | |
| 5100 | Add AbstractThingHandlerDiscoveryService constructor for tests to use | |
| 5106 | make FilterCriteria.Operator.getSymbol public | |
| 5110 | Added dimension for price per volume and related currency units | |
| 5119 | Added support for TimeSeries on Offset-Profile | |
| 5122 | Populate source when sending Item events via BusEvent | |
| 5131 | Allow source from header in REST API | |
| 5140 | Added semantic property for Prices | |
| 5142 | Lower the log level for useTags
| |
| 5153 | Changes prefix for isolated models | |
| 5164 | Add a couple more methods | |
| 5178 | Add HomeAssistantAddonUpgrader to upgradetool | |
| 5180 | Add HomieAddonUpgrader to upgradetool | |
| Bug Fixes | 4917 | Map chart interpolation parameter into sitemap JSON response |
| 4922 | AbstractScriptModuleHandler: Recompile scripts on dependency change | |
| 4928 | DSL Items Parser: Fix incorrect parsing of keywords encountered in the wrong context | |
| 4971 | Fix script engine missing error during startup | |
| 4974 | Fix ActionHandler nullness annotation | |
| 4978 | Fix version number in YAML examples | |
| 4996 | Fix USB discovery on Windows in case there is no USB port | |
| 5001 | Skip pre-compilation if rule engine not yet started | |
| 5010 | Fix YAML loading to handle elements in file original order | |
| 5015 | RulesDSL: Fix DateTimeItem trigger's offset | |
| 5018 | Persistence extensions: fix potential infinite loop | |
| 5020 | Fix enabling/disabling of addons suggestors at OH startup | |
| 5050 | Semantics file correction | |
| 5062 | ScriptTransformationService: Implement missing script dependency tracking | |
| 5063 | ScriptTransformationService: Handle engine removal through ScriptEngineManager | |
| 5065 | Fix check of syntax for item names | |
| 5076 | Fix event handling for embeded devices | |
| 5090 | IP add-on finder: resolve source IP before broadcast scan | |
| 5098 | Script DSL: do implicit import java.time.temporal.ChronoUnit;
| |
| 5104 | REST API: Change error code 500 to 400 | |
| 5132 | Make ConfigDescriptionParameter.stepsize serialize to "step" | |
| 5144 | Add missing 400 response documentation to REST API endpoints | |
| 5151 | Eliminate double localization of discovery results | |
| 5154 | Consider item pattern formatter even without label | |
| 5165 | Refactor websocket concurrency handling | |
| 5181 | Handles properly channels with group | |
| 5194 | EnrichedSemanticTagDTO members not listed in openapi spec | |
| 5196 | Perform simple escaping when building event sources | |
| 5197 | Fix minor copy-pasted text inconsistencies and typos | |
| 5201 | Upgrade JUPnP to 3.0.4 | |
| 5212 | Persistence upgrader: Create default persistence settings if no configuration so far | |
| 5213 | Persistence upgrader: Fix unmanaged config not respected | |
| 5214 | Fix /links/orphans API (return of the result) | |
| Enhancements | 1779 | Upgrade Karaf from 4.4.7 to 4.4.8 |
| 1785 | Increase default max size for thingHandler thread pool | |
| 1808 | Add currency UoM configuration to runtime.cfg | |
| Bug Fixes | 1782 | The addons file is never installed during an update (Windows) #1780 |
| 1847 | update script: Apply file ownership for files created by upgradetool |
User Interfaces
| UI | Type | Issue | Change |
|---|---|---|---|
| Basic UI | Enhancements | 3281 | Adjust prefs label/description related to icons |
| 3466 | Set source for commands | ||
| 3514 | New rendering of switch widget for UNDEF or NULL | ||
| 3518 | New NULL or UNDEF rendering for Slider, Colorpicker and Colortemperaturepicker | ||
| Bug Fixes | 3331 | Recalculate widths for multiline buttons in dynamic Frames | |
| HABot | Enhancements | 3316 | Add support for configurable HumanLanguageInterpreter (HLI) in HABot |
| 3467 | Add source to commands | ||
| Main UI | Enhancements | 3123 | Persistence strategies not automatically applied |
| 3180 | Thing and Item Details: Use core's file-format service to display code in YAML and DSL | ||
| 3216 | Rules List: add select/deselect all | ||
| 3227 | Visualize semantic model tree in item details screen | ||
| 3288 | Pin icons: Make "pinned" state icon solid and "unpinned" state outlined | ||
| 3289 | Developer Sidebar: Support advanced search syntax | ||
| 3304 | Upgrade Karaf from 4.4.7 to 4.4.8 | ||
| 3308 | Rules, Items, Things Lists: allow filtering by editability, item type, thing status | ||
| 3310 | Rule Edit: Collapse list of templates in an accordion | ||
| 3315 | Semantic Tags Editor: Add a lock icon on non-editable tag | ||
| 3318 | Developer Sidebar: Add "Saved Pins" to save and reload a set of pinned objects | ||
| 3322 | oh-sipclient: Add config for authorization user | ||
| 3336 | Charts: Add support for selecting markers & Add current time marker | ||
| 3337 | Charts: Add support for mixed past/future charts | ||
| 3350 | Initial port to Vue3, vite, Framework7 v7.1.5, pinia stores, codemirror 6, vue-i18n v11, ... | ||
| 3359 | Add logic block to AND/OR multiple conditions | ||
| 3368 | Video widget enhancements | ||
| 3376 | change event attributes, add return block | ||
| 3398 | Upgrade to Blockly v11 and respective plugin versions | ||
| 3404 | Transformations list: Persist & restore last search query | ||
| 3414 | Refactor $oh WS and SSE APIs to TypeScript
| ||
| 3417 | oh-input: Select a default input type based on Item type | ||
| 3420 | Refactor variable-mixin to be imported module vs. mixin | ||
| 3427 | Widget variables: Enhance TS code | ||
| 3436 | Make action modal dialogues more condensed | ||
| 3437 | Link edit: Fix missing save button & Refactor to use oh-nav-content | ||
| 3450 | Widget expressions: Add access to global i18n translations | ||
| 3452 | Implement backwards compatibility for f7-swiper usage in widgets | ||
| 3460 | Various enhancements & fixes to config parameters | ||
| 3462 | Refactor widget-expression-mixin to TS composable | ||
| 3465 | Semantics store: Performance optimizations for setSemantics() | ||
| 3468 | Send source with item commands | ||
| 3471 | Config params: Accept either "step" or "stepsize" | ||
| 3476 | Model: Show non semantic children in model tree | ||
| 3482 | Add script to generate TS definitions for oh- components | ||
| 3483 | Analyzer: Refactor to TypeScript and add oh-state-series support | ||
| 3487 | Item picker: Implement filtering by type, groupType, tags | ||
| 3494 | Improve page & widget type definitions | ||
| 3496 | Add thing link to link editor | ||
| 3499 | glance-helpers.js: Minor performance & code enhancements | ||
| 3503 | Refactor config sheet advanced toggle | ||
| 3504 | Use nb locale for dayjs if no locale is setup
| ||
| 3505 | Set default value for chart future parameter | ||
| 3519 | Add thing: Add ignore & remove from inbox buttons | ||
| 3520 | Update openhab-js tern-defs for v5.16.0 | ||
| 3523 | oh-toggle: Display UNDEF/NULL states distinctively | ||
| 3526 | Re-add service worker after Vue 3 uprade | ||
| 3527 | About page: Link Main UI commit to GitHub | ||
| 3531 | Update Google Assistant Metadata Definition | ||
| 3554 | Sitemap default icon for input widget | ||
| 3564 | Item picker: Refine group filter and add semantic filter | ||
| 3577 | Refactor $oh.media to TypeScript and use fetch()
| ||
| 3579 | Compact F7 tables on Aurora | ||
| Bug Fixes | 3298 | Sitemap edit: Fix quotes for icon value not allowed | |
| 3299 | Sitemap edit: Fix validation errors for valid buttongrid | ||
| 3300 | Sitemap edit: Fix save button not working due to JSON error | ||
| 3306 | Sitemap parser: Further fixes for icon rules | ||
| 3307 | Semantic tags page: Fix page refresh & delete synonym bugs | ||
| 3309 | Copy File Definition: Work around the security error in Safari | ||
| 3311 | Addon Config: Fix dirty checking | ||
| 3313 | Developer Sidebar: Add rule.trigger.configuration.groupName to the search | ||
| 3320 | Sitemap editor: fix missing row parameter | ||
| 3321 | Fix ECharts animation regression | ||
| 3339 | Sitemap editor: Fix sitemap save | ||
| 3344 | Location card light badge and sub-equipment | ||
| 3361 | fix zdt copy_of nano handling | ||
| 3366 | Fix "Select All" in channel-list.vue | ||
| 3390 | oh-category-axis: Use user defined axis name if set, otherwise use a default name | ||
| 3403 | Fix f7-list-input has y overflow due to added padding | ||
| 3407 | Better clarity for rule-edit alert dialog when missing label or id (issue #3379) | ||
| 3409 | oh-state-series: Fix issues with fixed time duration charts | ||
| 3410 | Semantic Tags Editor: Don't allow dashes in tag names | ||
| 3413 | Developer Tools: Fix reactivity issues for SSE/WS test where entries stayed | ||
| 3415 | Semantic Tags Editor: Require tag names to be capitalized | ||
| 3424 | Add-ons store: Fix "Show 0 More" button is shown | ||
| 3425 | oh-nav-content: Fix back navigation navigates to subpage | ||
| 3428 | Fix padding in list accordion & widget config popup | ||
| 3440 | oh-repeater: Fix range step and stop | ||
| 3444 | oh-slider: Protect against posting errant slider updates | ||
| 3448 | Various CSS fixes | ||
| 3451 | Fix F7Router issues with browser history | ||
| 3453 | Fix oh-knob not working with Vue 3 | ||
| 3454 | Script edit: Fix wrong alert message on script create & label missing | ||
| 3461 | generic-widget-component: Don't inherit attributes | ||
| 3463 | Tabbed page edit: Fix dropdown menu concealed | ||
| 3464 | Fix stylesheets not being applied from widget definitions | ||
| 3470 | oh-knob: Fix state not rendered | ||
| 3473 | Swagger UI: Hide faulty download button & Upgrade to new version | ||
| 3474 | Fix missing f7router occurences & Remove logging from computed value | ||
| 3495 | Link channel -> Item: Include channel group label in new item name | ||
| 3498 | Smart select popup: Fix scrollbar hidden behind "header" | ||
| 3500 | Thing details: Only show unlink buttons when thing has linked items | ||
| 3501 | States store: Performance improvements for pages with many Items | ||
| 3507 | Widget editor: Remove left/right padding | ||
| 3521 | Fix back navigation/initial load/reload displays wrong page | ||
| 3522 | Increase delay for "Communication failure" toast to 5 secs | ||
| 3524 | Things page: Display channel group descriptions | ||
| 3528 | Widget expressions: Fix invalid screen.viewArea dimensions in modals | ||
| 3530 | Fix developer-dock title width too narrow | ||
| 3536 | Remove manual service worker registration | ||
| 3539 | oh-grid-layout: Fix grid widget sizing issues | ||
| 3540 | Redirect /overview to /overview/ | ||
| 3541 | Fix oh-grid-item configuration not possible & Page save error | ||
| 3542 | Model page: Various style fixes | ||
| 3543 | oh-popup, oh-popover & oh-sheet: Several fixes | ||
| 3544 | Charts: Fix duplicate REST requests | ||
| 3545 | Fix other apps title too narrow | ||
| 3546 | oh-grid-item: Fix wrong configure/YAML popups opened | ||
| 3547 | Layout edit: Fix onPageBeforeOut clean-ups not performed in some cases | ||
| 3548 | oh-popover: Fix incorrect popover positioning | ||
| 3549 | oh-layout-page: Fix stylesheet not working | ||
| 3552 | Thing page: Fix channels cannot be added or edited | ||
| 3553 | oh-cell: Fix expanded cell is hidden below other widgets | ||
| 3555 | oh-context: Properly inherit attributes | ||
| 3560 | Rule edit: Fix condition wizard issues | ||
| 3566 | Adjusted comment text style to black to be visible on yellow background | ||
| 3568 | Thing details: Code tab fixes | ||
| 3571 | parameter-options: Fix issues due to type-mismatch for INTEGER/DECIMAL | ||
| 3574 | Fix back navigation issues for Thing add pages | ||
| 3578 | Analyzer/Charts: Fix week starting on Sunday starts on Monday | ||
| 3584 | Setup wizard: Fix location picker not opening | ||
| 3585 | Fix developer searchbar & item picker search not focused | ||
| 3587 | Charts: Add missing number format localization | ||
| 3589 | Follow-up fixes and enhancements for #3123 | ||
| 3595 | Fix stylesheet not working for layout grid items | ||
| 3596 | useStatesStore: Don't request constructor prop from SSE
| ||
| 3598 | Analyzer: Fix controls cannot be reopened | ||
| 3601 | oh-state-series: Fix incorrect end time calculation | ||
| 3602 | Developer -> Widgets: Fix tags not shown anymore | ||
| 3603 | oh-toggle: Fix regression for Dimmer items | ||
| 3605 | Analyzer: Fix controls not closed when analyzer closed | ||
| 3606 | Model cards: Fix back navigation from analyzer | ||
| 3608 | Fix back button issue | ||
| 3610 | Blockly: Fix ReferenceError due to non-existing input | ||
| 3611 | Fix issues with addons-setup-wizard | ||
| 3612 | oh-plan-page: Make marker tooltips non interactive | ||
| 3614 | config-parameter: Fix showPassword icon does not show up | ||
| 3615 | Analyzer: Fix style leak & Reduce vertical block margin | ||
| 3616 | oh-map-marker: Display default icon if nothing set | ||
| 3620 | Analyzer: Fix Vue render error on Item change | ||
| 3625 | Only show the clipboard copy confirmation when necessary | ||
| 3632 | Config parameter: Fix password cannot be displayed if read-only | ||
| 3634 | useRuntimeStore: Fix docSrcUrl computation for RC versions | ||
| 3635 | Vite: Emit static assets to dedicated dirs & cache in service worker | ||
| 3636 | Thing details: Display channels tab after going back from channels | ||
| 3637 | Script/Code editor: Fix search panel closes on click | ||
| 3639 | Things Inbox: Fix JS issues including missing f7router | ||
| 3640 | Add-on details: Fix invalid back navigation |
Add-ons
| Add-on | Type | Issue | Change |
|---|---|---|---|
| ahawastecollection | Bug Fixes | 19833 | Fix typo in channel id lightweight
|
| airq | Enhancements | 19446 | Add support for mold and virus index |
| airquality | Enhancements | 19472 | Switch API access from http to https |
| allplay | Enhancements | 19366 | Remove binding |
| amazonechocontrol | Bug Fixes | 19182 | Adapt to changed API |
| 19212 | Fix IllegalArgumentException for devices with humidity
| ||
| 19690 | Fix authentication | ||
| 19721 | Fix IllegalStateException by removing JSON object
| ||
| amberelectric | Bug Fixes | 19139 | Fix Controlled Load Price |
| androiddebugbridge | Bug Fixes | 19660 | Fix IllegalStateException
|
| anthem | Bug Fixes | 19082 | Fix duplicate channel |
| astro | Enhancements | 19310 | Various refactoring/fixes |
| automower | Enhancements | 18630 | Status update via Husqvarna WebSocket API |
| 19268 | Implement individual Things for configuration dependent items | ||
| avmfritz | Enhancements | 19488 | Added ThingActions for power meter device to enable/disable high polling |
| 19513 | Add support for groups of blinds | ||
| Bug Fixes | 19118 | Fix boost and window open modes | |
| 19594 | Fix parsing of EnergyStats response | ||
| bambulab | Enhancements | 18896 | Add action and script to retrieve cloud token |
| 19707 | Add support for H series | ||
| Bug Fixes | 19374 | Enable camera only for local mode | |
| bluetooth.bluez | Enhancements | 19074 | Upgrade bluez-dbus to 0.3.2 |
| 19392 | Enable lazy scan via thing configuration | ||
| Bug Fixes | 19071 | Fix missing data in bindings due to event routing issue | |
| bluetooth.listener | Bug Fixes | 19499 | Add binding |
| bluetooth.ruuvitag | Enhancements | 19638 | Ruuvi Air support |
| boschindego | Enhancements | 19545 | Add support for multiple accounts / bridges |
| boschshc | Enhancements | 19326 | Add support for presence simulation |
| comfoair | Enhancements | 19258 | Improve updater logic to reduce serial communication |
| Bug Fixes | 19257 | Fix temperature command precision | |
| denonmarantz | Bug Fixes | 19022 | Fix zone 3 input source update |
| dscalarm | Enhancements | 19647 | Add low battery indication for wireless zones |
| ecoflow | Bug Fixes | 19241 | Fix labeling of 'supply priority' enum values |
| 19632 | Fix missing updates for PowerStream channels | ||
| 19655 | Fix PV input channel definition for Delta 2 | ||
| ecotouch | Bug Fixes | 19503 | Fix initial install of binding ecotouch |
| ecovacs | Enhancements | 17162 | Add Deebot T30 (PRO) OMNI and support Scenario Cleaning |
| 19745 | Update supported device list | ||
| 19750 | Add support for Deebot X8 | ||
| Bug Fixes | 18986 | Fix bundle installation by upgrading dependency | |
| electroluxappliance | Bug Fixes | 19021 | Improve JWT handling |
| emby | Bug Fixes | 19752 | Fix WebSocket buffer overflow for large session payloads |
| energidataservice | Enhancements | 19433 | Update tariff filter for Cerius |
| 19748 | Remove binding configuration | ||
| Bug Fixes | 19623 | Fix calculations for quarter-hourly spot prices | |
| enocean | Enhancements | 17450 | D2-01-0C implement support for pilot wire mode |
| Bug Fixes | 19573 | D2-50 change units of supply and exhaust air fan flow rate | |
| entsoe | Enhancements | 19676 | Quarterly-hour prices |
| evcc | Enhancements | 18946 | Rework the binding, add missing datapoints and make it future ready |
| 19134 | Support for evcc 0.207.1 | ||
| 19228 | Add channels for grid currents, grid energy and charging currents. | ||
| 19677 | Refactor state resolution, improve command handling, and migrate startup → startupCompleted | ||
| exec | Bug Fixes | 19152 | Prevent deadlock |
| fenecon | Enhancements | 19442 | Change default port to 80 |
| folderwatcher | Bug Fixes | 19663 | Fix parameter typo in containerPath
|
| freebox | Enhancements | 19000 | Remove binding |
| freeboxos | Enhancements | 19669 | Add VPN Server monitoring |
| Bug Fixes | 19355 | Fix synchronization problems | |
| 19814 | Add IPSec VPN server | ||
| frenchgovtenergydata | Bug Fixes | 19424 | Fix IllegalArgumentException for thing type tempo
|
| fronius | Enhancements | 19254 | Add actions to force battery discharging |
| 19262 | Use Solar API for getting serial number | ||
| 19352 | Expose BatteryControl::addSchedule as Thing action | ||
| 19367 | Thing Actions: Add string overrides for actions requiring enum | ||
| Bug Fixes | 19344 | Fix config API authentication for firmware >= 1.38.6 | |
| 19349 | Fix battery control actions unavailable if FW < 1.36.x | ||
| froniuswattpilot | Enhancements | 19256 | Add channels to control surplus SoC & boost charging |
| 19718 | Attempt reconnection periodically & Upgrade wattpilot4j | ||
| groheondus | Enhancements | 19160 | Adapt to API changes |
| groovyscripting | Enhancements | 19511 | Upgrade Groovy to 4.0.29 |
| guntamatic | Bug Fixes | 19557 | Fix spelling error in interuption channels
|
| hdanywhere | Bug Fixes | 19804 | Deduplicate channel type |
| heos | Bug Fixes | 19438 | Fix login failure when password contains special characters |
| 19457 | Fix bridge player channels | ||
| homeassistant | Enhancements | 19201 | Improve discovery performance |
| 19496 | Split Home Assistant from MQTT binding | ||
| 19518 | Upgrade to Graal 25 | ||
| 19701 | More fully implement none and default payload sentinels | ||
| 19722 | Update Home Assistant Python code to 2025.11.3 | ||
| 19767 | Move binding to configuration to the proper place | ||
| Bug Fixes | 19249 | Fix python packages path on Windows | |
| 19491 | Fix re-connection after connection loss | ||
| 19681 | Fix channel definitions within groups | ||
| homekit | Enhancements | 19479 | Send a source with all commands to items |
| homematic | Bug Fixes | 19141 | Fix premature end of discovery |
| 19284 | Adjust warning if current value is out of range | ||
| homewizard | Enhancements | 19389 | Add batteries channels to p1 meter |
| 19672 | Add channel tariff to HWE-P1 | ||
| 19765 | Update batteries channels to latest api version | ||
| Bug Fixes | 19829 | Fixed setting mode 'standby' for batteries not supporting the latest api version | |
| homie | Enhancements | 19700 | Split Homie from MQTT Binding |
| http | Enhancements | 17271 | autorefesh after sending command to update… |
| 19519 | Replace deprecated URL constructor | ||
| hue | Bug Fixes | 19401 | Add workaround for Bridge v3 certificate issue |
| hueemulation | Bug Fixes | 19484 | Fix IllegalArgumentException
|
| 19589 | Fix NullPointerExceptions
| ||
| icloud | Enhancements | 19832 | Implement SRP authentication algorithm |
| ipcamera | Enhancements | 18996 | Add missing ONVIF event topics for TP Link Tapo cameras |
| Bug Fixes | 19095 | Fix Reolink needs changes to JSON formatting to work in newer firmwares | |
| 19514 | Change Absolute URLs to Relative so items can be used with HTTPS easier. | ||
| jdbc | Enhancements | 19172 | Update dependencies |
| jpa | Enhancements | 19581 | Support state filter when querying |
| jrubyscripting | Enhancements | 19151 | Upgrade to JRuby 10.0.2.0 |
| jsscripting | Enhancements | 19019 | Wrap UI scripts, make dependency tracking configurable & config refactorings |
| 19130 | Extend auto-injection configuration with transformations & Update default | ||
| 19260 | Automatically convert event data in UI-based scripts from Java to JS types | ||
| 19429 | Make event object conversion work independent of wrapper | ||
| 19443 | Wrapper: Always enable for actions, configurable for conditions | ||
| 19567 | Upgrade to Graal 25 | ||
| 19702 | Rework logger names used for script logging (e.g. console) | ||
| 19740 | Upgrade to openhab-js 5.16.1 | ||
| Bug Fixes | 18226 | Fix memory leak caused by GraalJSScriptEngine not closed properly | |
| 19528 | Fix injectionEnabledV2 allowed max is less then default
| ||
| 19633 | Fix wrong default value for injectionEnabledV2 parameter
| ||
| 19642 | Fix setTimeout/setInterval fails if delay not provided | ||
| 19703 | Fix bugs related to event obj conversion & script wrapping | ||
| jsscripting, pythonscripting, homeassistant | Bug Fixes | 19684 | Set GraalVM cache path |
| knx | Enhancements | 18256 | Upgrade to Calimero 3.0-M1 |
| 19031 | Refine default semantic tags | ||
| Bug Fixes | 19839 | Prevent reconfiguration of Things during device discovery | |
| lgwebos | Enhancements | 19024 | Add support for wakeonlan in docker |
| lifx | Bug Fixes | 19788 | Eliminate log warnings for fixed color temperature lights |
| linky | Enhancements | 19147 | Add support for reading index instead of basic value |
| Bug Fixes | 19142 | Fix userInfo url changes | |
| 19289 | Fix new url schema for getMeasures() related to September Enedis changes to WebAPI | ||
| 19540 | Fix tempo-info-tomorrow label
| ||
| lutron | Bug Fixes | 18975 | Fix comparison bug |
| matter | Enhancements | 19480 | Send a source with all commands to items |
| 19495 | Bumps matter.js to latest v15 | ||
| 19595 | Door state support for door lock. | ||
| 19699 | Support Switchbot Candle Warmer | ||
| 19762 | Door Lock Pin Code Support | ||
| Bug Fixes | 19112 | General Updates | |
| 19238 | Fix label regression in bridge | ||
| 19293 | Fix bridge fan mode configuration | ||
| 19644 | Remove pattern from state options | ||
| 19653 | Fix for sending STOP to Rollershutter Items | ||
| 19844 | Prevent adding an OnOff switch to a Fan when not intended | ||
| mercedesme | Enhancements | 18984 | Improve WebSocket implementation |
| 19243 | Add channel energy to max soc | ||
| Bug Fixes | 19099 | Improve HTTP 429 handling and implement new authorization flow | |
| 19272 | Bugfix charge program selection | ||
| 19548 | Fix radius-hybrid channel type
| ||
| meross | Enhancements | 19322 | Local commands and add garage door openers |
| Bug Fixes | 19536 | Fix cloud fallback not being called | |
| metofficedatahub | Bug Fixes | 19627 | 2025 API Key adjustments |
| miele | Enhancements | 19516 | Add auto-detection of network interface for multicast events |
| miio | Enhancements | 19558 | Add support for 2 yeelights |
| misc | Enhancements | 19357 | Add instructions for AI coding agents |
| Bug Fixes | 19133 | Make dedicated thread pools for Exec and Chromecast bindings | |
| modbus.e3dc | Enhancements | 19763 | Add performance ratio channels |
| modbus.stiebeleltron | Enhancements | 17962 | Extended support for WPMs and more channels |
| modbus.sungrow | Enhancements | 19186 | Add configuration option for read retries |
| monopriceaudio | Enhancements | 19775 | Add support for 8 zone model |
| mqtt.awtrix3 | Enhancements | 19466 | Parse font tags for multi-colored app texts |
| 19474 | Allow blink/fade colored text and make text effects more user friendly | ||
| mqtt.ruuvigateway | Enhancements | 19730 | Support for Ruuvi Air |
| mybmw | Bug Fixes | 19336 | Fix user agent string for stable connection |
| neeo | Bug Fixes | 19458 | Fix unregistering of all mDNS services |
| netatmo | Enhancements | 19422 | Add unitHint for ChannelType definitions with ItemType 'Number:Dimensionless' |
| network | Bug Fixes | 17972 | Fix discovery performance causing a slow openHAB start |
| 19398 | Fix case where state no longer updates | ||
| nikohomecontrol | Enhancements | 19477 | Add electricity meters and car chargers |
| ojelectronics | Bug Fixes | 19555 | Fix itemtype for date channels |
| ondilo | Enhancements | 18978 | Add new Channels and Properties |
| 19455 | Handle command REFRESH | ||
| openaitts | Enhancements | 19122 | Add new voices, model and configuration |
| opengarage | Enhancements | 19361 | Fix warnings, use gson to parse json to simplify code |
| openhabcloud | Enhancements | 19535 | Set event source for commands |
| Bug Fixes | 19652 | Handle source sent via header | |
| OpenWeatherMap | Enhancements | 19423 | Add unitHint for ChannelType definitions with ItemType 'Number:Dimensionless' |
| openwebnet | Bug Fixes | 18980 | Fix NullPointerException
|
| orbitbhyve | Bug Fixes | 19056 | Fix inability to set rain delay |
| pihole | Enhancements | 19350 | Integration of API v6 |
| Bug Fixes | 19618 | NPE when getting session.sid | |
| plclogo | Enhancements | 19096 | Complete diagnostic channel Implementation |
| plex | Bug Fixes | 18997 | Improve support for hostname as server configuration
|
| pythonscripting | Enhancements | 19190 | current marketplace version of pythonscripting next |
| 19568 | Upgrade to Graal 25 | ||
| 19622 | fix native modules on graal 25.0.x | ||
| 19793 | Update helperlib.version to 1.0.15 | ||
| rfxcom | Enhancements | 19286 | Add additional FirmwareType's |
| ring | Bug Fixes | 19102 | Fix for passwords with special characters |
| 19409 | Fix HttpResponseException: HTTP protocol violation
| ||
| rollershutterposition | Enhancements | 18932 | Enhance position synchronization and emulation in handlers |
| rrd4j | Bug Fixes | 19855 | Fix RRD4J console commands |
| sagercaster | Enhancements | 19574 | Simplify Thing configuration |
| samsungtv | Bug Fixes | 19083 | media input and token fix |
| sbus | Enhancements | 19288 | Add support for Lux & Motion sensors |
| 19404 | Fix bridge, lux & motion sensors | ||
| senechome | Bug Fixes | 19566 | Fix channel item type and configuration id |
| sensorcommunity | Enhancements | 19716 | Make use of UNDEF default cache values
|
| serial | Enhancements | 16205 | Add TCP and binary protocol support |
| shelly | Enhancements | 18686 | Add initial support for Shelly Dimmer Gen3 |
| 18952 | Add support for Shelly Pro 3EM-3CT63 and Pro 3EM-400 | ||
| 19093 | Refactor device definitions | ||
| 19097 | Add support for BLU Wallswitch 4, RC Button 4, Remote, Tough ZB, H&T ZB, BLU Distance | ||
| 19137 | Improve discovery for Pro 1 UL and Pro 1PM UL | ||
| 19170 | Refactor BLU support | ||
| 19242 | Improve Shelly Manager for offline devices | ||
| 19363 | Improve debug logging for WebSocket exceptions | ||
| Bug Fixes | 18943 | Use thing type shellyplusht for Shelly Plus HT Gen3
| |
| 19177 | Fix support for Shelly AZ Plug, device model S3PL-10112EU | ||
| 19231 | Fix overwriting of scripts | ||
| 19331 | Fix websocket error when receiving relay status | ||
| 19643 | Fix Shelly Manager on non-relay Gen1 OTA upload | ||
| siemenshvac | Bug Fixes | 19512 | Fix sanetization of channel type UID |
| sleepiq | Bug Fixes | 19630 | Force relogin on ExecutionException |
| smartmeter | Enhancements | 19146 | Implement AbstractStorageBasedTypeProvider |
| smhi | Enhancements | 19689 | Update SMHI Binding to support TimeSeries and migrate to new API |
| solarforecast | Enhancements | 18804 | Forecast solar adjustment and json-channel removal
|
| solarman | Enhancements | 19420 | Enable write registers |
| somfytahoma | Enhancements | 19038 | Make token refreshing independent on event polling frequency |
| sonos | Enhancements | 19103 | Ignore Sonos Boost and any Sub including Sonos Sub 4 |
| 19162 | Add support for Sonos Arc Ultra | ||
| 19168 | Enhance logging for playback of notifications | ||
| souliss | Bug Fixes | 19597 | Fix channel metadata |
| sunsynk | Enhancements | 19506 | Add support for solar strings, fix for battery status and misc improvements |
| Bug Fixes | 19656 | Adapt to new authentication requirements | |
| 19741 | Adapt to user logon requires a nonce and sign. | ||
| surepetcare | Enhancements | 18114 | Add support for waterstation Felaqua |
| Bug Fixes | 19106 | Fix hubRssi NullPointerException
| |
| tado | Enhancements | 19596 | Add tadoApiUrl configuration parameter
|
| tasmotaplug | Enhancements | 19161 | Add PulseTime channels |
| 19271 | Add request timeout | ||
| telegram | Enhancements | 19522 | Add support for MarkdownV2 |
| 19523 | Add support for sendMediaGroup action | ||
| 19592 | Add support for disabling long polling | ||
| tesla | Bug Fixes | 19662 | Fix IllegalStateException when optional fields driveState or chargeState are missing
|
| teslascope | Enhancements | 19358 | Fix warnings |
| tibber | Enhancements | 19124 | Add support for power consumption and production in one channel |
| 19194 | Add energy price and taxes | ||
| 19280 | Tibber pulse hardware support for non tibber customers | ||
| 19312 | Add support for quarter-hourly prices | ||
| 19598 | Trigger event when day-ahead prices are available | ||
| Bug Fixes | 19111 | Add support for average channel | |
| transform.basicprofiles | Enhancements | 19696 | Add support for time series to Round Profile |
| transform.scale | Enhancements | 19639 | Add support for time series |
| tuya | Enhancements | 18829 | Improve connection handling |
| 18949 | Use dynamic providers to make channels, command and options translateable | ||
| 19233 | Add Singapore Data Centre | ||
| 19530 | Things should be online/waiting as soon as we know the IP | ||
| upnpcontrol | Enhancements | 19485 | Missing TrackMetaData keys in onValueReceived switch case |
| Bug Fixes | 19613 | Prevent excessive m-search traffic | |
| velbus | Bug Fixes | 19803 | Add missing channel 80 and fix label |
| wiz | Bug Fixes | 19321 | Fix bugs for improved stability and consistency |
| xmppclient | Bug Fixes | 18983 | Fix bundle installation by upgrading dependency |
| Yamaha MusicCast | Enhancements | 19798 | Set DAB and FM tuner presets |
| zwavejs | Enhancements | 19191 | Add RollerShutter support |
| 19328 | Add notification channel | ||
| 19688 | Add unit mappings | ||
| Bug Fixes | 19003 | Fix humidity unit detection | |
| 19036 | Fix Channel configuration overwrite | ||
| 19196 | Increase default message size | ||
| 19325 | Add unit conversion | ||
| 19500 | Fix NullPointerException with ZUI 11.5.2
| ||
| 19620 | Allow Longe Range node id's |
Upgrade Process
Backup your configuration
If you are on openHABian, sudo openhabian-config menu option 50 will do for you,
else use sudo openhab-cli backup. Get the resulting file from $OPENHAB_USERDATA/backups, $OPENHAB_USERDATA is accessible as a Samba share. Using SSH it is /var/lib/openhab/ on your system.
If you run a Raspberry, get another SD card (an "Endurance" labelled one) and create a mirror copy.
openhabian-config menu option 54 will do for you on the live system, else there's tools such as dd or WinDiskImager.
Should you ever need to revert to your old openHAB system or to redo the upgrade process, simply change SD cards and start over from where you had started.
openHABian
If you are working with an openHABian setup,
check for compatibility
openHABian will refuse to install or upgrade to openHAB 5.1 when it detects a 32 bit operating system.
This is because openHAB needs Java 21 but as of today, there is no JVM 21 package available known to work on 32 bit ARM platforms.
Note: this is not about the processor type but about 32/64 bitness of the operating system.
There have been both types of openHABian images for Raspberries and many of you users will still be on the 32 bit OS.
Check the output of getconf LONG_BIT to see what you're on.
If you are on 64 bit, proceed to
upgrade
- Use SSH to connect to the command line and run
sudo openhabian-config. - When being asked, answer that you want to update openHABian (note that’s not about openHAB itself).
- If on Raspberry, it's optional but recommended to create an image copy of your SD card using menu option 54.
- Switching to openHAB 5.0.0 release depends on what version you’re upgrading from:
a) If you have been running a 4.x release version, select menu entry 03 “Install or upgrade to latest openHAB” option.
b) If you have been running a snapshot or milestone release of 5.0, select the first entry in menu option 41 (“Release”).
If you are still on 32 bit OS, you can stay with your current openHAB 4 setup or do the upgrade to 64 bit as described in the openHAB 5.0.0 Release Notes.
Package-based Installations
APT (Debian / Ubuntu and derivatives)
Make sure that openHAB is sourced from the latest location, has the correct GPG signing key and that your system can download .deb packages via HTTPS by following the instructions for a stable installation in the docs.
If the above is correct, simply upgrade by using:
sudo apt-get update
sudo apt-get upgradeAlternatively, you can force apt to install 5.1.0 and its optional add-ons with:
sudo apt-get install openhab=5.1.0-1
## optional add-ons for offline installation ##
sudo apt-get install openhab-addons=5.1.0-1
RPM
openHAB is also distributed in RPM packages. To use them, make sure that openHAB is sourced from the latest location, and has the correct GPG signing key for verification by following the stable installation instructions outlined in the docs.
If the above is correct, then simply upgrade using your systems package manager (yum, dnf, etc.)
sudo yum updateAlternatively, you can force apt to install 5.1.0 and its optional add-ons with:
sudo yum install openhab-5.1.0-1
## optional add-ons for offline installation ##
sudo yum install openhab-addons-5.1.0-1
Manual Installations
Official update scripts are available that let you update your 5.0 installation to version 5.1:
Linux/macOS
- Change to your openHAB root directory (e.g.
cd /opt/openhab) - Create a backup by calling
sudo ./runtime/bin/backup. - Run the update command:
sudo ./runtime/bin/update 5.1.0
Windows
- Make a backup of your openHAB installation folder.
- Run PowerShell as administrator and change to your openHAB root directory (e.g.
cd C:\openHAB) - Run the update command:
. .\runtime\bin\update.ps1
Update-openHAB -OHVersion 5.1.0
Breaking Changes that Require Manual Interaction after the Upgrade
Changes in Core
- Persistence default strategies are removed and not applied automatically anymore. Managed persistence configurations are updated automatically. If you have a file based configuration with an existing .persist file, you may have to update your configuration: remove "default" from Strategies and make sure all Items definitions have a strategy defined.
Changes in Add-ons
AhaWasteCollection Binding
- A typo was corrected in the lightweight channel id, you may need to correct your configuration.
Allplay Binding
- Due to limited usage and increasing maintenance issues, this binding has been removed.
Automower Binding
- Restructured to modular things with auto-discovery of datapoints. New things and channels will need to be linked, existing items need to be adjusted.
evcc Binding
- Restructured to modular things with auto-discovery of datapoints. You must reconfigure settings, recreate Things, and adjust Items as previous configurations are incompatible.
Folderwatcher Binding
- A typo was corrected in the AzureBlob thing parameter containerPath. You may need to reconfigure this parameter.
Freebox Binding
- The binding has been removed from the distribution. You should consider migrating to the FreeboxOS binding.
Guntamatic Binding
- Channel ID spelling errors (such as
079-interuption-0and080-interuption-1) have been corrected. You may need to update items linked to these channels.
Home Assistant Binding
- The binding has been split from the main MQTT binding, and will not be auto-installed. If you use this binding, it will need to be manually re-installed. You may also need to re-configure the binding if discovery settings have been customized.
Homie Binding
- The binding has been split from the main MQTT binding, and will not be auto-installed. If you use this binding, it will need to be manually re-installed.
JavaScript Automation
- The event object in UI-based environments has been aligned with the file-based event object. Properties are now pure JavaScript types and property names have changed. Blockly users need to resave their scripts.
- Automatic injection of the openHAB JavaScript library now allows for more fine-grained control. It is recommended to manually import required namespaces from the openhab library in file-based scripts and transformations and disable automatic injection for file-based scripts and transformations.
KNX Binding
- Using secure tunnel or secure router with autodiscovered Gateway Things may cause configuration loss on restart. To recover: delete the IP Gateway Thing from the Inbox and restart. The Gateway will be rediscovered automatically. Note: Routers may appear as both tunneling and routing devices; choose the appropriate type from the Inbox. File-based configurations are not affected.
PythonScripting Automation
- Python "openhab.Timer" removed. Can be replaced with default Threading or Timer implementation.
- Changed parameter of "openhab.Registry.addItem"
- Replace "NotInitialisedException" with "NotFoundException" in "openhab.Registry.getItem, "openhab.Registry.removeItem", "openhab.Registry.getThing", "openhab.Registry.getChannel"
- "openhab.Registry.getItemMetadata", "openhab.Registry.setItemMetadata" and "openhab.Registry.removeItemMetadata" replaced by ".getMetadata().get", ".getMetadata().set" and ".getMetadata().remove"
- "openhab.Registry.safeItemName" move to "openhab.Item.buildSafeName"
Shelly Binding
- Thing type shellyplushtg3 was renamed to shellyplusht. Delete the existing things and re-discover the devices.
SMHI Binding
- Due to updates to SMHI's API, the channel ids have changed. Measures have been taken to ensure backwards compatibility, but to avoid future issues all items need to be relinked to the new channels.