Menü Schließen

openHAB 4.0.0 Feature und Bugfix Release veröffentilcht

openHAB Logo

Die Entwickler der Open-Source Smarthomelösung openHAB, haben nun offizielle die neue Version 4.0.0 veröffentlicht. Das Update behebt Fehler in einigen Add-ons und bringt neue Features.

openHAB 4.0.0 Release Notes

Relevant Changes

New Add-ons

The following add-ons are newly introduced:

Bluetooth RadonEyeBinding#11958
Energi Data ServiceBinding#14376
JavaScript Scripting (Nashorn)Automation#14013
MQTT Ruuvi GatewayBinding#13315
Rollershutter Position Emulation Profile ServiceTransformation#13259
Value-Added TaxTransformation#14529

The following improvements were made:


Enhancements2810Allow invoking ThingActions via API
2871Allow managing persistence configurations and enable filters
2965Add event information in rules for time, manual and RunRuleAction trigger
2994Raise minimum JDK version to 17
3004Refactor WatchService
3050Introduce metadata for all add-ons
3057Cache mechanism
3141Add ItemStateUpdatedEvent and enable group channel-links
3241Improve channel handling in ThingImpl
3249Allow inline scripts in SCRIPT transformation
3268Initial contribution of an CLI upgrade-tool
3270Log the version/build on startup
3275Add a ScriptEngineFactory bundle tracker
3280Only call getVolume when necessary
3284Update Jackson to 2.14.1
3287Add DateTimeType method for returning Instant
3290Ability to use /dev/serial/ symlinks for usb serial device
3292Introduce a profile for the generic SCRIPT transformation
3293Fixes and enhancements for add-on services
3298Add method to get namespaces to MetadataRegistry and ItemResource
3299Rework GenericEventTrigger and GenericEventCondition
3311Return item metadata by default
3330Improve thing initialization and enable thing-type updates
3335Add caching for static resources
3337Consider language when requesting thing actions
3352Actions: Add method overloads for PercentType to Audio & Voice
3355Add support for things with generic channels
3356Add param sslContextFactory when creating a HTTP or web socket client
3362Remove author from addon xsd
3363Allow using ‘=’ in a double quoted value/label
3364Use setpoint as default sitemap element for item with tag “Setpoint”
3372Align AbstractScriptDependencyTracker with AbstractScriptFileWatcher
3378Extend sitemap syntax for icon
3385Refactor XML handling
3391Add support for channel-groups to update instructions
3392Allow access to rule summary for Role.USER
3398Add sitemap Input type
3403Extend “iconcolor” attribute to all sitemap elements
3406Add Eclipse Add-on Service
3407Add an AbstractStorageBasedTypeProvider
3416List transformation services
3418Add inputHint param to sitemap Input element
3431Add Input widget to main UI sitemap configuration and REST API
3433Add support for Jetty HTTP/2 clients
3434Add ColorUtil for better support of xyY conversion
3439Improve time weighting in averageSince and averageBetween
3453Add new color keyword “itemValue”
3459Add console commands for register/unregister dialogs and list them
3461Enhance AudioSink capabilities using the AudioServlet
3466Add getAllStatesSince() and getAllStatesBetween() to PersistenceExtensions
3479Reduce rounding errors of RGB/HSB conversion and enhance ColorUtil
3481Add unit metadata for NumberItem
3487Add dynamic scripting-language transformation service
3491Sort profile-type resources by their label
3506Clarify the script profile config description
3519Add dynamic creation of semantic tags
3523Improve EventLogger performance
3535Improve log messages in ItemStateConditionHandler
3536Add group name to GroupStateTriggerHandler
3537Add support for custom deserialization of AccessTokenResponse
3539Extend item syntax for category/icon
3542Improve precision of ColorUtil
3548Icon server: remove old style request with the state in the URL
3550Remove GenericScriptEngineFactory
3553Add methods to get Semantic tag synonyms and description
3559List semantic tags
3560Remove redundant public and abstract modifiers from interfaces
3568Improve log message to identify profile’s link
3573Add support for overriding holiday definitions
3580Code cleanup: Use Java 17 features
3585Code cleanup: Use Java 17 features
3586Reduce SAT warnings
3591Make –dir param optional for upgradetool
3593Improve message when rule action fails
3611Add endpoint for UoM information
3616Add unit rpm for rotational frequency
3622Allow registering websocket adapters
3625Move RuleHLI service from voice to system
3626Move LSP service from misc to system
3629Optimise constants; hue overflow check
3634Remove package support from FeatureInstaller
3635Improve performance for state update handling
3641Improve community marketplace addon handler
3642Improve existing and add new persistence filters
3644Add widget state pattern and default unit to ItemUIRegistry
3646Add semantic tag registry + API to manage user tags
3647Add type information to state event
3649Adjust metadata unit for system channel types
3654Add unit to item response
3668Replace StringBuffer usages with StringBuilder
3675Improve audio duration computation
3684Add unit “calorie”
3695HTTP audio servlet: check end of play every 2 seconds
3699Add length limit to TTS handled by cache
Bug Fixes3255Refactor AbstractScriptFileWatcher
3273Ensure metadata available at startlevel 20
3277Fix DateTimeTrigger not triggering on restored state
3278Trigger immediately when start level already reached
3288Fix Marketplace add-on range pattern matching
3301Prevent a provider from removing an element from another provider
3310Improve UPnP callback removal
3319Fix nullable errors
3320Fix addon.xsd
3334Fix parsing of YAML default value for community marketplace UI Widgets
3339Properly handle failure when parsing marketplace add-ons
3348Fix wrong .historicState call in .changedSince
3351Fix CME in JarFileAddonService
3357Fix configuration for marketplace-services
3365Fix CME in ThingActionsResource
3366Improve handling of erroneous localized messages
3379Fix a typo in ItemsValidator
3402Fix sitemap syntax for List element
3411Fix overriding Jetty’s User-Agent in HttpUtil
3417Fix ConfigValidationException handling in ThingManager
3448Channels once more displayed in correct order in Main UI
3451Improve AbstractScriptFileWatcher initialization order and file handling
3454Fix ready marker ordering on late subscriptions
3457Fix file processing in FileTransformationProvider
3458Fix default human language interpreter selection
3464Fix variable binding in ScriptTransformationService
3474Fix ConfigValidationMessage in ThingManagerImpl
3490Fix error handling with DNS resolution / Unknown host errors
3510Fix AbstractDependencyTracker
3513Fix resource leak in SysfsUsbSerialScanner
3516Fix recently introduced SAT issues
3524Prevent unnecessary MODIFY events in WatchServiceImpl
3526Fix thing reloading from things file
3532Fix hidden files showing up in TransformationRegistry
3533Fix wrong event subscription in GroupStateTrigger and ItemStateTrigger
3549Fix IndexOutOfBoundsException in ScriptEngineFactoryHelper
3572Fix marketplace add-on services fail after upgrade
3575Consider auto-update policy from channel types
3576Improve thing updates
3587Change default imperial unit for length to inch
3592Fix non-unique module handler identifiers
3598Fix storing of StateDescriptionFragment in AbstractStorageBasedTypeProvider
3607Fix UpgradeTool and enable default=all policy
3608Add dimension RadiationSpecificActivity
3612Keep channel properties in thing updates
3627Fix exception in TransformationHelper
3628Fix event ordering for item events
3630Fix NPE in UpgradeTool when no pattern present
3633Fix NPE in WatchServiceImpl
3664Fix missing query prefix in JarFileAddonService
3674Always use ThingUid as the unique identifier for thing status metrics
3682Remove error logging from PersistenceIncludeFilter
3683Fix wrong ready marker in ScriptEngineFactoryBundleTracker
3686Avoid item not found warning from UIRegistry
3687Make firmwareStatus field not final in DTO object
3688Fix marketplace add-ons missing config description URI
3691Avoid null hash warning in WatchServiceImpl when possible
3702Increase large event queue warn limit
3704Fix NPE in PersistenceManager
3707Align system-channel-types for electricity
3708Do not break format defined in label with extra spaces
3712Add missing fields to /rest/items?staticDataOnly=true resource
3716Handle null value for unit field of filters
3717Fix rule startlevel trigger executes during initialization
3719Fix MQTT client crashes when subscriber throws exception
3724Fix implicit user role for websocket connections

User Interfaces

Main UIEnhancements1448Add a transformations menu and editor
1601Add tags & script language to script settings
1613Script Editor: Block runRule and save while rule is running (or uninitialized)
1617Blockly: Upgrade to v9, add JSScripting (GraalVM) implementations, UoM block types
1621Limit alexa parameter state description options
1622Add alexa playback step attribute
1623Show custom namespaces for items in metadata menu
1642Add style to overview page
1647Allow customization of temperature, humidity and luminance badges
1648Update Google Assistant Metadata Definitions
1649Generalize evaluating expressions for charts & fix diff_last aggregates
1652Add visible property to oh-plan-marker
1661Use cacheable lists where possible
1662Add a Scene settings menu entry and editor
1664Blockly metadata blocks
1681Add doc link to state/commandDescription edit form
1682Analyzer: Use Item label instead of name if available
1698Provide access to widget configuration from widget expressions
1699Improve Item name validation error message & Add unchangeable note on Item creation
1700Validate Widget UID & page ID on creation
1703Add new capabilities to oh-knob component using vue-round-slider
1709Remove Blockly GraalJS dependency on prepended code
1718Refactor oh-knob component to remove vue-knob-control & Lazy load dependencies
1720Save changed rule/scene on runNow & Fix keyboard shortcuts in scene editor
1722Add bitwise math operators
1723Add workspace search
1724Add rulesWithTags to oh-repeater
1726Add step parameter to oh-input
1732Developer sidebar: Extend search & Sort search results
1735Support configuring Input element for sitemap model
1736Improvements for Eclipse provisioned add-ons
1772Support iconcolor for all elements in sitemap editor
1773oh-knob: Change dottedPath prop to text
1786Allow setting gradientDirection for oh-trend component
1788Use channelType label & description as placeholder for channel details
1808Show warning if SSE connection or send command fails
1818Add a code tab to the Item editor
1820Allow using = in double-quoted widget action options
1821Add recommended add-ons to the setup wizard
1824Sitemap editor: Support inputHint config of Input element
1843Sitemap and item config parsing adjustments
1845Transformations: Various enhancements & fixes
1852Evaluate service as part of series’s chart config
1857oh-sipclient: Various fixes & improvements
1864Improvements for UoM blocks & Extend getItemAttribute block
1868Toggle between item name or label
1869Add pattern to text of date block
1870Support storing timers in shared cache
1871Add new math_round block with round up, down and by decimals
1875oh-knob & oh-stepper: Add offset functionality
1876Developer sidebar: Support search in metadata value and config
1877Automatic shadow block conversion into real block
1878foreground-service: Listen to tab visibility change event
1882Dynamically load the list of Semantic tags and store them in Vuex
1891Remove “Other Services” section from main settings page
1898Add dictionary loop
1899Show toast instead of error when saving / running from code preview
1901Items: Add unit metadata for UoM (Number:) Items
1903Allow setting persistence service for blocks
1908Add BasicUI to recommended add-ons
1910Widget editor: Add minus as allowed char of widget uid
1917Add a persistence configuration page
1924oh-slider & oh-knob: Add option to ignore displayState
1932Improvements to the add-on page
1946Developer sidebar: Support search for Blockly rules/scripts
1947Developer sidebar: Support search for rule tags
1948Add context block typing & Extend Qty block var type support
1955Persistence configuration page: Minor enhancements & fixes
1963oh-repeater: Make caching configurable
Bug Fixes1607Fix add-on information issues
1619Update autocompletion for new MIME types
1645Add Command-Click for macOS to select list entries
1656Z-Wave map: show only current network, link fixes
1657Blockly: Fix UoM on Nashorn message & Adjust to library change
1670Fix redirection for reverse proxy with authentication not working
1683Fixes & Enhancements for channel add & edit pages
1684Fix add-on configuration
1696Display undefined correctly in widget expressions
1701Add delete button for custom metadata namespaces
1704Fix link for oh-map-page docs
1727Handle NOT_YET_READY in thing status
1734Configuration & iPhone style fixes for the options widget action
1739Scene editor: Fix triggers/conditions, enable/disable action & rule status
1745No quotes around chart period parameter in generated sitemap DSL
1761Fix missing diagram lines for groups in analyzer
1765Fix WebAudio sink not playing on Safari
1781Sitemap editor: Fix attribute value capturing in parser & string value handling in widget detail view
1783Fix sitemap config boolean attributes
1798Pass slot names down in generic-widget-component
1802Fix add equipment/points expert mode
1807Add a SSE reconnection mechanism
1814Fix text overflow in config-sheet component
1815Enforce required role when accessing admin or /profile routes
1819Thing details: Make code tab read-only if not editable
1835Developer sidebar: Fix search in case of missing thing label
1837Thing picker: Fix failure caused by missing label & Show UID
1849Fix icons not displayed & not dynamic on all pages
1865Use right UID attribute in Thing picker
1883Transformation edit: Remove i18n string from Item state transform hint
1884Fix Things by binding & pages by type not in alphabetical order
1887Sitemap code generation: Quote colors
1889Fix picker update detection to allow shadow block conversion
1894oh-slider: Fix command sent on state update due to rounding
1900Item & Thing code tabs: Minor fixes
1904oh-repeater: Fix new data requested when css visibility changed
1920oh-slider & oh-knob: Fix user configured unit (state description) ignored
1925oh-sipclient: Fix audio playback stays active when foreground is left
1936Items: Fix unit metadata not available for UoM groups
1967Fix page highlighting in sidebar
1970Fix masonry configuration failure
Basic UIEnhancements1706Add support for iconify and Google material icons
1729Add input widget
1733Support primary and secondary as value for label/value colors
1751Support iconcolor for non OH source icons
1793Handle new color keyword “itemValue”
1799Use inline SVG for “colorless” SVG icons
1829Add the “follow system” theme
1834Use more contrasted color buttons in widgets when in dark mode
1838Change assumption in case icon value contains only 2 segments
1842Fix text color when the page does not contain any frame
1923Use sitemap input hint v2
1937Set color-scheme for OH icon
Bug Fixes1612Fix setpoint/slider widgets when %unit% is used in state pattern
1712Remove Roboto font as unused by the app
1749Add missing label/color management for rollershutter items
1753Fix label color initialization for color widget
1754OH icon scaling
1755Remove support for List element
1792Consider the correct iconset when reloading the icon
1897Handle properly state updates to NULL or UNDEF
1922Adjust slider unit handling
cometvisuEnhancements1594Remove deprecated cometvisu-php binding
Bug Fixes1826Make sure that folder paths always end with a slash
HABPanelBug Fixes1688Use commandDescription instead of stateDescription for selection list


airqualityEnhancements14602Enhance API error handling
airthingsBug Fixes15011Adapt channels to new dimension for Radon measurements
allplayEnhancements15201Support for more audio streams through the HTTP audio servlet
amplipiEnhancements15199Support for more audio streams through the HTTP audio servlet
androiddebugbridgeBug Fixes14663Fix screen state channel on Android 12
astroEnhancements14132Add option to force event to occur
14756Add getTotalRadiation to AstroActions
Bug Fixes14067Add moon phase precision
14078Fix returning wrong sun phase name
atlonaEnhancements14080Add support for AT-PRO3HD44M
avmfritzEnhancements14373Add light blub color temperature support
14587Use system channel types and decrease minimum polling interval
benqprojectorBug Fixes14603Fix NullPointerException when getting network interface name
bondhomeEnhancements14150Implement missing ‘Light’ device type
14155Add raw speed channel
Bug Fixes14103Fix fatal Null Pointer errors
boschindegoEnhancements14745Implement OAuth2 authorization
14829Add device properties
boschshcEnhancements14197Add bridge and device discovery
14781Add support for Thermostat SilentMode
15067Upgrade to REST API version 3.2
Bug Fixes14352Allow setting the temperature for climate control
bosesoundtouchBug Fixes14097Fix regression and add tests
cbusBug Fixes14385Fix exceptions due to invalid thing status updates
chromecastEnhancements15180Support for more audio streams through the audio servlet
Bug Fixes14105Fix constant disconnections
14158Fix thing go offline after stop command
14191Fix for NPE when playerState is null
comfoairEnhancements15167Extend UoM support, add semantic tags & update state descriptions
daikinEnhancements14108Add support for Alira X
daliBug Fixes14021Handle and provide QuantityType for color-temperature-abs channel
danfossairunitEnhancements14030Remove deprecated channel ‘manual_fan_speed’
15002Add UoM support for rotational speed channels
darkskyEnhancements13037Remove DarkSky binding due to EOL of their API
deconzEnhancements14343Adjust thread name for web socket client
14622Add Pairing/Scene actions, new devices and improve code
14636Add On/Off thermostats
14641Cleanup code and improve tests, edit channels to vibration sensor
Bug Fixes14827Fix roller shutter status
dlinksmarthomeEnhancements14479Reboot device daily following shutdown of cloud service
dmxEnhancements14327Refactor and improve code
dominoswissBug Fixes14172Fix Bridge-Loading with OH3_3 and OH3_4
doorbirdEnhancements14122Add audiosink
15189Support for more audio streams
dsmrBug Fixes14325Improve error handling corrupt messages, discovery additional key bug fix
easeeEnhancements15229Adopt API base URL due to changes
Bug Fixes14637Fix start/stop and pause/resume
14903Fix start/stop due to changed API
ecobeeEnhancements14168Make more channels advanced
14403Remove org.apache.commons
14517Increase temperature precision to decimal
Bug Fixes14170Fix issue with UTC and local dates
14607Fix typo in channel label
14980Delete OAuth access token when thing removed
eKeyEnhancements14616Add sourceIp in cases of NAT (Kubernetes deployments)
electroluxairEnhancements15187Update to changed API
enoceanEnhancements13793Add support for EEP in group A5_09
Bug Fixes14558Fix condition in getPositionData function of EEP D2_05_00
evccEnhancements14245Adjust to breaking API change and add Battery Capacity channel
14983Adjust to API changes & add new channels for evcc 0.117.0
Bug Fixes14381Fixes & adjust to more breaking changes from evcc 0.111.x
evohomeEnhancements13885Add UoM and semantic tags for temperature channels
fineoffsetweatherstationBug Fixes14039Fix QuantityType for rain-rate
14326Fix java.lang.IllegalMonitorStateException
fmiweatherBug Fixes13693HIRLAM → HARMONIE weather model
freeboxEnhancements15121Support for more audio streams through the HTTP audio servlet
gardenaBug Fixes14203Fix keep-alive logic leading to blocked account (403/Forbidden)
14349Adjust thread name for WEB clients (avoid IAE)
14722Improve GardenaSmartImpl initialization order
generacmobilelinkEnhancements14638Major rewrite of the Generac MobileLink Binding
goechargerBug Fixes14494Fix command sending
14933Avoid potential NullPointerException
googlesttEnhancements14653Upgrade library
Bug Fixes14649Fix audio streaming reliability
googlettsEnhancements15208Replace custom TTS cache with common TTS cache
gpstrackerEnhancements14396Add (optional) altitude to location channel
greeBug Fixes14217Allow wider temperature range
groovyscriptingEnhancements14499Support slurpers
14734Update Groovy to 4.0.11
harmonyhubEnhancements14507Use AbstractStorageBasedTypeProvider
hdpowerviewEnhancements13355Add support for Generation 3
14033Remove deprecated scene channels
heliosBug Fixes15096Fix error handling + migrate to the injected JAX-RS ClientBuilder
heosEnhancements15196Support for more audio streams through the HTTP audio servlet
homekitEnhancements13879Allow configuring secondary services as members of a group
14034Allow configuring min/max light level
14045Support Rollershutter items for HoldPosition
14055Add support for TV accessory
14209Implement IrrigationSystem Accessory
Bug Fixes13982Implement List-Pairings method
14017Update AuthInfo objects when blockUserDeletion changes
14169Properly expose services from dummy accessories
14226Fix restarted on network interface change
homematicEnhancements14274HUMIDITY and CONTROL_MODE as standard channels
Bug Fixes14213Fix updating enum config values
hueEnhancements13570Implement CLIP 2 / API v2
Bug Fixes14024Allow handling of QuantityType for color temperature channel
14289Get scenes for groups without 10 minutes delay
14297Handle unexpected empty response from API
14871Fix NUPnP discovery
14914Restore UPnP discovery for old bridges
14989Fix NullPointerException in NUPnP discovery
hueemulationBug Fixes13923Fix for Alexa failing to discover all devices.
hydrawiseBug Fixes15177Fix occasional connection issues
icloudBug Fixes14563Ignore HTTP errors != 400 & >= 500 for 2-FA authentication
14661Fix existing things stopped working and re-appeared as new in the inbox
ihcBug Fixes15183Fix special character issue on item descriptions
imperihomeEnhancements15014Remove imperihome add-on
influxdbEnhancements14304Code improvements and enhancements
14959Implement ModifiablePersistenceService
15009Support restoring unit for dimension items
Bug Fixes14296Fix re-connection issues
14888Write asynchronously to database and improve performance
15062Handle exceptions gracefully
intesisEnhancements15138Add configurable polling interval
ipcameraEnhancements14728Add Reolink API support
Bug Fixes14872Fix servlet exceptions due to non unique names
14909Fix orphan ffmpeg process after stopping stream URL
15059Fix discovery crashes when networks have access rights issues in docker
15073Fix TAPO branded cameras require xAddr port to be different
jdbcEnhancements14874Upgrade MySQL Connector/J to 8.0.33
Bug Fixes14054Fix IllegalArgumentException on service activation
14281Perform upsert on conflict like the default for MySQL (PostgreSQL >=9.5)
14294Working version of PG schema check and TIMESTAMPTZ as default to match MySQL
14987Fix addon-info
15156Fix timescale db type replacement
jeelinkBug Fixes14224Fix wrong TX22 rain value
jrubyscriptingEnhancements13944Allow disabling dependency tracking
14556Upgrade JRuby to
Bug Fixes14590Filter files that are added to the watch list
jsscriptingEnhancements14093Upgrade to ECMAScript 2022 & Dependency improvements
14096Use application/javascript as MIME type
14113Improve performance & reduce memory usage
14135Cache openhab-js injection to improve performance
14335Extend mapping of openhab-js classes to native openHAB counterparts
14375Bump openhab-js to 4.0.0 & Clean-Ups
14984Add type translation for Instant and minor improvements
14985Allow configuring from add-on page
15193Implement NodeJS-like parameter handling for timer polyfills
jsonpathBug Fixes15283Fix exception when input string is empty
kaleidescapeBug Fixes15161Fix image channel MIME type
km200Bug Fixes14384Fix initialization warning: “tried updating the thing status although the handler was already disposed.”
14488Remove unused configuration URIs
15070Fix support for older MB-LAN (=KM200, version 1.0) by avoiding query of an unsupported attribute.
knxEnhancements14015Upgrade Calimero library to release 2.5.1
14050Improve reading of device properties
14051Replace dependency with serial transport
14454FT12: Autodetect cEMI on Weinzierl devices
14503Remove workaround for DPT 14
14509Improve thread safety, null-analysis
14534Refactoring of KnxCoreTypeMapper and UOM Support
14624Improve config description for GAs
14772Improve rounding when encoding DPT 232.60000
14851Add list of DPTs documenting implementation status
15064Implement console commands
15141Code cleanup
Bug Fixes14504Fix DPT 3.007 (Control Dimming) for non -control channels
14875Fix decoding of DPT 242.600 and add tests
15072Add dynamic channel-types for number channels
15082Fix DPT 10.001 handling
kodiEnhancements15192Support for more audio streams through the HTTP audio servlet
kostalinverterBug Fixes14386Fix exception due to invalid thing status update
lgwebosEnhancements14331Add TLS support
lifxEnhancements14362Add support for newer downlights
Bug Fixes14025Handle and provide QuantityType for color-temperature-abs channel
luftdateninfoEnhancements15012Rename binding to Sensor.Community
macttsEnhancements15109Add LRU cache
mailEnhancements14345Add mail content processing
Bug Fixes14151Make actions names for DSL rules consistent with documentation
mapBug Fixes14825[scale] Fix localization
mapdbBug Fixes14900Make serialization asynchronous
maryttsEnhancements15227Add LRU cache
Bug Fixes14064Add bnd to make serviceloader aware of marytts impl
meteoalerteEnhancements14811Add an IconProvider
mieleEnhancements14086Add categories and semantic tags
14199Improve multicast implementation
mielecloudEnhancements14456Add channels energy and water consumption
miioEnhancements13940Add support ROIDMI EVA – roidmi.vacuum.v66
13941Add support Xiaomi Smart Air Purifier 4 Pro zhimi.airp.vb4
mimicttsEnhancements14120Fix ssml and playing from audiosinks using the audio servlet
14564Add LRU cache
Bug Fixes14821Fix addon.xml info
miscEnhancements14724Adapt to ColorUtil changes in core
modbus.e3dcEnhancements15085Add battery capacity
monopriceaudioEnhancements13936Add support for additional amplifiers
mqttEnhancements15114Dynamically change accepted item-type for Number channels
Bug Fixes14099Fix shutdownRetain default value
14229Fix thread concurrency issue with type provider
mqtt.espmilighthubEnhancements13800Use availability topic to set thing status
Bug Fixes14877Fix things do not come ONLINE if MQTT Client Status Topic not supplied.
mqtt.genericEnhancements14650Don’t log state description from provider when not found
Bug Fixes12238Separate command parsing from cached value updating
mqtt.homeassistantEnhancements13808Implement JSON schema lights
14230Add support for Number and Select components
14233Support command_template for fan components
14234Add support for DeviceTrigger component
14240Mark disabled by default components as advanced channels
Bug Fixes14858Don’t set range on current temp channel
mycroftEnhancements14342Adjust thread name for web socket client
MyNiceEnhancements14797Addition of Courtesy Light Channel
nanoleafBug Fixes13998Fix caching of layout
14026Handle and provide QuantityType for color-temperature-abs channel
14459Stop the HTTP client when disposing the thing handler
neohubEnhancements13889Recover faster if NeoHub produces empty responses
netatmoEnhancements14140Add the ability to append a postfix to registered webhook
14252Extend webhook support for doorbell and presence camera
14485Add Siren capability to Presence Outdoor Camera
14543Add Carbon Monoxide sensor support
14548Make OAuth2 token refresh RFC compliant
14595Add the capability to have a single home
14780Consolidate OAuth2 by using core implementation and storage
15045Enhance webhook handling and dispatching
15197Add siren_tampered notification
Bug Fixes14265Preserve outside temperature minimal ranges for dynamic channels
14492Fix Floodlight issue on Presence Camera
15212Binding doesn’t work if no persons are defined
nibeheatpumpBug Fixes14461nibegw: Fix setting debug verboseLevel
nuvoEnhancements14012Auto update source channel for grouped zones
14248Publish ALLOFF event for use in source rules
Bug Fixes14321Fix Essentia G standby mode wake-up
15162Fix image channel MIME type
oceanicEnhancements15044Remove dependency on RXTX for serial communication
ojelectronicsEnhancements13782Add SignalR for requesting data from OJ Electronics cloud
omnikinverterEnhancements14244Add extra parameters (temperature, AC frequency, AC current, AC voltage and total hours running)
onewireEnhancements14400Code improvements and bug fixes
onkyoEnhancements15117Support for more audio streams through the HTTP audio servlet
opengarageEnhancements15080Add support for vehicle status not available
openhabcloudBug Fixes14251Reconnection fixes
15290Update JSON Library
openthermgatewayBug Fixes14424Fix setting thermostat clock
openuvEnhancements15191Provide UV Index iconset
openwebnetEnhancements14357Improve shutterRun calibration
14566Reset zones’ alarm state channel when system is armed
14819Add a time stamp when an alarm zone event occurs
15111Thermo: Add support for 4-zones CU
15115Add date time synchronization feature for bus_gateway Things
Bug Fixes14374Fix wrong startup value for channel failureDiscovered
14390Light switch updates are now triggered
14620Thermo: Fix wrong parameter in .getChannel
14822Fix for dimmer blocked after two OFF are received
15269Fix update of Thermo Central Unit atLeastOneProbeX channels and refactoring
orbitbhyveBug Fixes14308Fix for NumberFormatException when parsing json object
picottsEnhancements14565Add LRU cache
plugwisehaEnhancements14160Add default tags
pollyTTSEnhancements15228Replace custom TTS cache with common TTS cache
pulseaudioEnhancements15179Make the process method asynchronous
radiothermostatEnhancements14149Add configuration to update thermostat’s internal schedule
14799Add message display channel and improve ThingActions
Bug Fixes15127Skip clock sync when override is on
remoteopenhabEnhancements14956Use AbstractStorageBasedTypeProvider
renaultEnhancements14076Add new channels ‘batterystatusupdated’ and ‘locked’
14527Add channel for pausing/resuming charging
14846Update default Kamereon API Key
15101Add support for MyDacia accounts and Dacia Spring car
Bug Fixes14586Improve handling of HTTP 502 responses from Renault API
rfxcomEnhancements14298Add MOOD_LIGHT for NOVY Fan
robonectEnhancements14868Improve job type configuration
Bug Fixes15003Fix NullPointerException on reinitialization
rotelBug Fixes14272Fix reader thread handling
rrd4jEnhancements13956Upgrade base library from 3.8.1 to 3.8.2
14068Improve logging of exceptions thrown by getDB
14960Add console commands to check and clean RRD files
Bug Fixes14238Avoid IAE thrown if e.g. invalid start/end time given
14292Fix OOM when requesting data and boundary=true
14913Write asynchronously to database
14961Do not create RRD file when querying data
15107Improve timestamp handling
15223Improve event handling
15277Fix database start time
rustpotterksEnhancements14615Upgrade to version 2
Bug Fixes15239Fix gain normalizer
samsungtvBug Fixes15259Fix NullPointerException
semsportalBug Fixes14387Fix exception due to invalid thing status update
senechomeEnhancements14824Add additional system states
senseboxBug Fixes14879Fix NPE after parsing invalid data
shellyEnhancements14532Add support for Plus Smoke, Plus Plug-S/IT/UK/US, Plus Dimmer US, Pro 3EM; fix Gen1 sensor initialization
15031Add support for Shelly BLU series of devices
15051Add support for Shelly Wall Dimmer US and Wall Display
15205Add support for Shelly Plus Mini series, Pro EM-50 and various bug fixes
Bug Fixes14290Cancel the init job when the thing handler is disposed
sleepiqEnhancements14180Rework cloud API and other enhancements
14447Add new channels
14714Add functionality to control the bed foundation
snmpEnhancements14330Upgrades and enhancements
solarmaxEnhancements14366Support configurable Device Address
solarwattEnhancements14741Add smart heater device support
somneoEnhancements14882Add alarm support and other improvements
sonnenEnhancements14589Update to API V2 of vendor and add PowerMeter
sonosEnhancements14920Add support for Era 100 and Era 300
15116Support for more audio streams through the HTTP audio servlet
15238Add DTS Surround 5.1
Bug Fixes14164Correct identification of tuneIn started from Alexa
squeezeboxEnhancements14201Add new channels for additional tags
15194Support for more audio streams through the audio servlet
surepetcareBug Fixes15047Adapt blocked user agent
systeminfoEnhancements14501Use AbstractStorageBasedTypeProvider
tapocontrolEnhancements14364Add P300 to the list of supported equipments
14596Support display light effects for L530
14790Move error messages to i18n
14972LightEffects for L530 can now be set
Bug Fixes14656 Color values must be int, not decimal
telegramEnhancements15104Support processing of channel messages
Bug Fixes14314Invalid escape of underscore character when sending messages (Revert “Solves issue #11691 (#13758)”)
15168Log when cameras do not support BASIC auth support.
teslaBug Fixes14070Fix discovery of Tesla vehicles from account
14128Synchronize access to account to avoid concurrency issues
14300Fix account going offline every few seconds
14351Normalize thread names and avoid a possible IAE
14483Stop the WebSocket client when disposing the thing handler
14922Adapt binding to changed API from Tesla backend
tibberEnhancements14236Add “today” API channel
14277Add accumulatedReward channel
14573Query for subscription url every reconnect attempt
14583Add channel for lastMeterProduction
Bug Fixes14273Fix NPE on server issues
tr064Enhancements14468Enhancements, code improvements and fixes
tradfriEnhancements14836Add support for Air Purifier
unifiEnhancements14283Add channels name and hostname to client things.
14284Add support for guest Wi-Fi vouchers
14303Add guest voucher actions
14319Add UoM support for RSSI channel
Bug Fixes14060Fix PoE bug with combination of other data/ports
14249Various stability improvements
upnpcontrolEnhancements15122Support for more audio streams through the HTTP audio s…
Bug Fixes14490Fix shuffle switch also switching only play one
velbusEnhancements13939Add modules VMBKP, VMBIN, VMB4PB
Bug Fixes15272Fix multiple channel status in one packet
veluxEnhancements14817Softer initialization after power failure
Bug Fixes14225Do not use new API on Somfy devices
15088Fix limit minimum bug
ventaairBug Fixes14896Fix typo Dimenionsless in channel definition
veSyncEnhancements14354Improve recognition and device support
vizioBug Fixes14429Improve handling of TV’s self-signed certificate
voicerssEnhancements14561Add LRU cache
Bug Fixes14988Fix service-id in addon.xml
vosksttEnhancements14625Upgrade library
watsonsttEnhancements14626Upgrade library
wemoBug Fixes14163Fix stability issues
windcentraleEnhancements14770Adapt binding to new API
yamahamusiccastBug Fixes15124Fix DecimalType commands for volumeDB channel
yeelightEnhancements14584Add sptrip6 device
14668Support of ceil26 and ceiling11 devices
Bug Fixes14670Fix disconnect method
yioremoteBug Fixes14340Stop the web socket client when disposing thing handler
ZigbeeEnhancements804Update ZSS library to 1.4.11
Bug Fixes792Ensure node exists when handler is disposed
zoneminderEnhancements14906Add support for setting the server run state

Upgrade Process

Backup your configuration

If you are on openHABiansudo 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.


If you are working with an openHABian setup,

  1. Use SSH to connect to the command line and run sudo openhabian-config.
  2. When being asked, answer that you want to update openHABian (note that’s not about openHAB itself).
  3. If needed check which version you run via menu option 00.
  4. If on Raspberry, create an image copy of your SD card using menu option 54.
  5. Switching to openHAB 4.0.0 release depends on what version you’re upgrading from:

    a) If you have been running a 3.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 4.0, select the first entry in menu option 41 (“Release”).

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.

Please specifically note that the “old” signing key expired on July 24, 2023 – if you are still using this, you will need to download the latest key. See for details.

If the above is correct, simply upgrade by using:

sudo apt-get update
sudo apt-get upgrade

Alternatively, you can force apt to install 4.0.0 and its optional add-ons with:

sudo apt-get install openhab=4.0.0-1

## optional add-ons for offline installation ##
sudo apt-get install openhab-addons=4.0.0-1


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 update

Alternatively, you can force apt to install 4.0.0 and its optional add-ons with:

sudo yum install openhab-4.0.0-1

## optional addons for offline installation ##
sudo yum install openhab-addons-4.0.0-1

Manual Installations

Official update scripts are available that let you update your 3.x installation to version 4.0:


  1. Change to your openHAB root directory (e.g. cd /opt/openhab)
  2. Create a backup by calling sudo ./runtime/bin/backup.
  3. Run the update command:
sudo ./runtime/bin/update 4.0.0


  1. Make a backup of your openHAB installation folder.
  2. Run PowerShell as administrator and change to your openHAB root directory (e.g. cd C:\openHAB)
  3. Run the update command:
. .\runtime\bin\update.ps1
Update-openHAB -OHVersion 4.0.0

Breaking Changes that Require Manual Interaction after the Upgrade

Please read the following information carefully BEFORE starting the upgrade, since you might have to do some manual steps upfront.

Changes in Units of Measurement (UoM)

Units of Measurement is used for handling values with units attached (like 23 °C).
It has been refactored in openHAB 4 and needs some special attention when upgrading.
Since the introduction of UoM in openHAB 2.3 some limitations have been discovered.
One of these issues is inconsistent handling of units when no state description for the item is defined.
With openHAB 3.4 we already introduced a “default unit” that is used as the item’s unit when no other units has been set.
Unfortunately this still has issues, e.g. it invalidates your persisted data when you change the unit that is used for displaying.

The new concept

The new concept follows these principles:

  1. Number item never shows a unit.
    Linking thing channels to such an item results in the unit being dropped (i.e. if the thing sends 23 °C), the item state will be 23.
  2. An item with dimension (Number:Power) has a unit (e.g. kW that is used within openHAB that is independent from the unit that is used for displaying.
    A value that has no unit attached will be considered to be in that unit (i.e. 5 will result in the item state changing to 5 kW).
    Values with units will be converted to that unit (i.e. 500 W will result in an item state of 0.5 kW).
    Incompatible values (e.g. sending 5 Hz to a Number:Temperature channel) are discarded.
  3. The unit of the item is used internally, in events and also for persistence.
  4. The DISPLAY of the item is controlled by the state description.
    A unit set in the state description MUST be compatible to the unit of the item.
    The state description does not affect anything except displaying the values.

As a result your configuration might need some adjustments.
It is strongly recommended to check if something needs to be done BEFORE upgrading.

Textual configuration

For textual configuration (.items files), you should check all Number:.... items:

  • If you see a unit in Main UI that is the same as the system default (, technically no change is needed.
    However it is strongly recommended to set unit metadata (see below).
  • If you have set a state description and the unit is different from the system default (please be aware that this can also be the result of an automatic state description from a linked channel) you are required to set unit metadata.
    Failing to do so, will result in corrupted data in your persisted data.


Number:Energy Electrical_Consumption "Electrical Consumption [%.0f Wh]" { channel="myenergybinding:meterthing:totalmeter" }

needs adjustment, because the system default for Number:Energy is different (kWh).
Set the unit metadata to Wh.

Number:Energy Electrical_Consumption "Electrical Consumption [%.0f Wh]" { unit="Wh", channel="myenergybinding:meterthing:totalmeter" }

Another example:

Number:Dimensionless Relative_Humidity "Relative Humidity" { channel="myweatherbinding:hygrometerthing:humidity" }

might need adjustment when channel is of type system.atmospheric-humidity because it has state description “%.0f %%” and system default is “Abstract unit one (one)”. Set the unit metadata to %:

Number:Dimensionless Relative_Humidity "Relative Humidity" { unit="%", channel="myweatherbinding:hygrometerthing:humidity" }

Managed configuration (UI)

An upgradetool was added to the update scripts.
This tool re-writes the item database and copies the state description units to the required metadata.
State descriptions from system-channel types are also automatically converted.
Have a close look at the output of the script during the upgrade process and check if you need to adjust some items manually.

Upgrading from openHAB versions <3.4

Older openHAB versions (before 3.4) had no system default unit for a lot of dimensions.
If you upgrade from such a version, it is recommended to set the unit metadata to those that you see in UI.

Changes in JavaScript Automation

The application/javascript MIME type has moved from NashornJS to GraalJS due to the removal of NashornJS in Java 14.
All UI-based JavaScript scripts including Blocklies are broken now. To make them work again:

  • Migrate your Blocklies (see Rules Blockly | openHAB)
  • Install the JavaScript Nashorn add-on and change the MIME type of your old application/javascript scripts to application/javascript;version=ECMAScript-5.1. The UI has a picker for the MIME type of existing scripts inside the “Script Details” menu inside the script editor. (Or rewrite them for GraalJS, where the openhab-js library will ease your life.)

Core Changes

Changes in Add-ons

Airthings Binding
  • The channels radon_st_avg and radon_lt_avg are now of dimension RadiationSpecificActivity instead of Density. Please update your linked items accordingly.
Bosch Indego Binding
  • Due to changes in the cloud services, the authentication method has changed. Please follow the authorization flow described in the documentation. Furthermore, a bridge is now required and must be assigned to the indego thing. Configuration of username and password is no longer required/supported.
ComfoAir Binding
  • The channel enthalpy#enthalpyTime now represents the set time (in minutes) instead of the internal number value that is sent to the device (minutes / 12).
DanfossAirUnit Binding
  • The deprecated channel ‘manual_fan_speed’ has been removed. Please use channel ‘manual_fan_step’ introduced in 3.2.
Dark Sky Binding
  • Due to EOL of their API, this add-on has been removed.
Generac MobileLink Binding
  • Due to an API change, existing Generator Things will need to be deleted and added again. Additionally, existing Items will need to be adjusted to reflect the updated Generator Thing channels.
  • Add-on wide configuration of mappings for thermostat modes is no longer supported. Please use item-level configuration as described in the README.
Hue emulation
  • The uniqueid value has been changed to resolve discovery issues with Alexa. You may need to rediscover “devices” in all services that use the hue emulation (Amazon Echo, Logitech Harmony, etc).
Hunter Douglas (Luxaflex) PowerView Binding
  • Deprecated scene channels have been removed. Please use the scene channels introduced in 3.2 (in channel group ‘scenes’).
  • JavaScript engines have changed their MIME types: NashornJS is application/javascript:version=ECMAScript-5.1 and GraalJS is application/javascript. Please update your scripts to either make them compatible with GraalJS or change the MIME type to continue to use NashornJS. For Blockly migration, visit the Blockly documentation.
JavaScript NashornJS
  • NashornJS has been removed from core and isn’t included by default. If you still need or want to use it, you can install it as an add-on.
JavaScript Scripting Automation
  • The old “metadata” and “itemchannellink” APIs have been replaced by a new API with extended functionality on the “items” namespace.
  • ItemHistory: historicState, maximumBetween, maximumSince, minimumBetween, minimumSince & previousState now return a HistoricItem instead of just the state. previousStateTimestamp has been removed, the timestamp is available on the HistoricItem.
KNX Binding
  • Units of Measurements have been introduced, make sure you use correct units in the state description. Rules may need to be adapted. Several items changed from PercentType to QuantityType, i.e. raw values increase by a factor of 100.
LuftdatenInfo Binding
  • The binding was renamed to Sensor.Community Binding to match the new naming of the service. Things need to be recreated.
Netatmo Binding
  • Due to API authorization process change scheduled on the 2023/04/17 – refresh Token is no more stored in thing configuration, thus can be removed from things config files. If it remains, it’ll be ignored.
  • New scope has been added for the introduction of the Carbon Monoxide Alarm. Authorization process has to be replayed (and former refreshToken can be removed from things config files — see above).
Windcentrale Binding
  • The binding has been reworked to support the new API that requires authentication. Delete old ‘mill’ Things, add an ‘account’ Bridge and add new ‘windmill’ Things using the ‘account’ as Bridge. The channel names now follow the naming conventions. Items must be adapted for these changes.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert