This is the official release of openHAB 2.1.0.
The binaries are available on Bintray and via "Stable" on our APT repository.
New and Noteworthy
The openHAB 2.1 release 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.
A few major new changes to highlight are the Eclipse IoT Marketplace integration, which allows browsing and installing of 3rd party add-ons, which are not part of the official distribution. Furthermore, there is now a new alternative to the Designer for editing the config files: The new VS Code Extension for openHAB - it isn't yet available in the official Microsoft store, but nonetheless easy to install.
Relevant Changes
- Core Runtime: New features & Enhancements, bug fixes
- 2.x Add-ons: New features, enhancements, bug fixes
- 1.x Add-ons: New features, enhancements, bug fixes
- Upgrade Process for openHABian, APT, RPM, Manual Installations
Core Runtime
New Features & Enhancements
- #149 - add openHAB version and build info to dashboard footer
- #158 - automatically set the system location, if browser allows it
- #464 - removed default sitemap setting for Basic UI
- #434 - Change gnu to posix tar to support large UID/GID
- #412 - Consider OPENHAB_* environment variables on startup
- #3707 - upgraded to latest JmDNS 3.5.2 patch releases
- #3634 - Add 2D as new chart period
- #3593 - Provide better status information when bridge is missing
- #3587 - Implemented unique geolocation for ESH installation
- #3500 - Provide JSON streaming for REST resources
- #3429 - Only restore backup if there indeed was an unreadable file.
- #3420 - Added ConsoleCommand for adding/removing tags to/from items
- #3365 - OSGI Console: ability to trigger channel with null event
- #3274 - Introduce function NONE for item groups
- #3076 - Initial contribution of an IoT Market extension service
- #3001 - Provide a trigger for thing Online/Offline status in rule.
- #2981 - added state descriptions to some system channels
- #2872 - validate models before loading them
- #2753 - Use Jetty's ProxyServlet implementation
- #3234 - Add createTimerWithArgument method for rules
Bug Fixes
- #115 - fixed dangling audio streams if files are played concurrently
- #458 - Fix refresh intervals for charts in the demo sitemap
- #3088 - fix race condition which could leave a thing in INITIALIZING
- #2992 - Stop blaming handlers for being queued
- #2915 - fixed INCREASE/DECREASE of master volume for Mac
- #3169 - fix NPE in Configuration.toString()
- #3148 - fixes bug when ignoring hidden files
- #3222 - retain order of channels in ChannelTypeResource
2.x Add-ons
The following add-ons are newly introduced with the 2.1 release:
- #3653 - IKEA Trådfri Binding
- #1660 - Xiaomi Mi Binding
- #2134 - BigAss Fan Binding
- #2085 - OneBusAway Binding
- #2035 - D-Link Smart Home Binding
- #2009 - SleepIQ Binding
- #1812 - ZoneMinder Binding
- #1738 - AirQuality Binding
- #1703 - Tankerkönig Binding
- #1589 - Niko Home Control Binding
- #1573 - Synop Message Analyzer Binding
- #1543 - SenseBox Binding
- #1535 - Windcentrale Binding
- #1367 - Gardena Binding
- #1329 - Folding@home Binding
- #1252 - Atlona PRO3 Binding
- #1242 - LG TVs serial Binding
- #1202 - Bosch Indego Connect Binding
- zigbee#1 - ZigBee Binding
- #432 - Eclipse IoT Market Extension
Enhancements on Existing 2.x Add-ons:
Basic UI
- #3693 - encode state in icon URL for colorpicker widget
- #3669 - improvements for non SSE browsers
- #3576 - fit images into main container
- #3526 - dynamic update of the frame title
- #3379 - now updates new sitemap widgets without restart
- #3055 - Display of image items in classic/basic UI
HABPanel
- #187 - Theming improvements + 2 new themes, custom stylesheet option (@kubawolanin)
- #181 - Apply transformations to item states
- #171 - Allow globally provisioned widgets through bundle configuration
- #158 - Color picker widget: Alternative "aCKolor" style
- #151 - Panel name setting
- #150 - Experimental dashboard option: font scaling
- #149 - Custom widget configuration improvements
- #147 - Style improvements: visual feedback on click etc.
- #148 - Knob widget: Add a few missing options
- #143 - Image widget: Accept URLs from String items (@kubawolanin)
- #114 - Template functions: add getItem, rename itemValue to itemState (@mgfriedel)
- #137 - Update groups states when receiving GroupItemStateChanged events
- #128 - Image widget: Allow refresh interval in milliseconds (@LuckyMallari)
- #125 - Timeline widget
- #130 - Speech input: Option for alternate floating button style (@kubawolanin)
Paper UI
- #3654 - provide group functions for Contact base item
- #3101 - Show channel description on long press
AllPlay
- #2083 - Update native Windows libraries & fix reference to x64 library (@dominicdesu)
- #1639 - Added implementation of AudioSink for AllPlay binding (@dominicdesu)
Astro
- #3725 - Background discovery for location changes
Feed
- #2161 - Added gzip support (@meisterfuu)
Freebox
- #2164 - add audio sink for AirPlay devices (@lolodomo)
- #2137 - use HTTPS API when available (@lolodomo)
- #2112 - hotfix for compatibility with firmware 3.4.0 (@lolodomo)
FSRadio
Globalcache
Harmony
Homematic
- #2136 - optimized gateway detection and suppress warning for HM-Sen-MDIR-WM55 due wrong metadata (@gerrieg)
- #2081 - Optimized ThingHandler and fixed virtual datapoint handling (@gerrieg)
ImperiHome
JSONPath
- #3540 - Updated jsonpath libs to version 2.1.0
Keba
Kodi
- #2084 - Added channels for opening PVR TV or Radio streams (@cweitkamp)
LIFX
- #3447 - Various improvements
- #3384 - Added signalstrength channel, improved online/offline detection and exception handling
- #3324 - Added Thing properties
- #3312 - Add i18n support
- #2953 - Add support for MultiZone Light Control
Milight
- #2110 - Make v6 bridges keep alive interval configurable (@davidgraeff)
- #1779 - Add ibox (milight v6 protocol) support and use a send queue for command (@davidgraeff)
Oceanic
RFXCOM
- #2331 - Add message handling HomeConfort and KEELOQ and add config options for FS20, HomeConfort and KEELOQ (@mjagdis)
- #2330 - Add support for UV sensors (@mjagdis)
- #2329 - Support all data from wind sensors (@mjagdis)
- #2328 - Enhance Somfy RTS support (@mjagdis)
- #2260 - Add chime devices (@mjagdis)
- #2256 - Improved TX handling (@mjagdis)
- #2291 - Add a bridge option to disable discovery (@mjagdis)
- #2101 - Fixes to shutdown and packet reading thread (@mjagdis)
- #2045 - Changed discovery & handling for lighting4 (@martinvw)
Russound
- #2135 - Added discovery of new devices (@tmrobert8)
Sonos
- #2838 - Added Album cover art channel
Squeezebox
- #2130 - Add duration channel for now playing track (@mhilbush)
- #1684 - Add audiosink and notification functionality (@mhilbush)
Systeminfo
- #2207 - Added channel 'usedPercent' for channel groups 'memory', 'swap' and '… (@cweitkamp)
Tesla
VoiceRSS
WeMo
- #3586 - Support for WeMo Coffee Maker
Yamaha
- #2390 - add support for 5ch Stereo (@mclassen2)
Z-Way
Bug Fixes on Existing 2.x Add-ons:
Basic UI
- #3631 - fix update of page title
- #3575 - fix refresh of charts
- #3493 - Treat Switch on NumberItem not as ON/OFF Switch
- #3403 - Avoid double event on slider change
- #3368 - several fix for selection and switch with mappings
- #3042 - restore SSE subscription after connection loss
- #3039 - send ON/OFF events from colorpicker
- #2932 - make sliders less broken in MS Edge
Classic UI
- #3495 - fix dynamic widget visibility and dynamic update of the page title
HABPanel
- #180 - Consistent padding in kiosk mode
- #179 - Charts: invalid image loading
- #176 -
Function.prototype.bind()
polyfill (for older iOS Safari) - #175 - Color picker widget: handle NULL values
- #173 - Transparent header in translucent theme with image background
- #157 - Widget designer: wrong tip for icon config setting
- #156 - Charts: incorrect date format on the first day of the month
- #135 - Charts: don't initialize secondary axis if not enabled
- #132 - Add Content-Security-Policy meta tag
Paper UI
AllPlay
- #2308 - Update native AllJoyn library for linux x86 and x64 (@dominicdesu)
- #2209 - Update library (fix for deadlock) and add input interface (@dominicdesu)
Astro
- #3461 - fix NPE in case it's not really dark at night
Avmfritz
- #1887 - Fixed NPE if temperature, powermeter or switch model is null (@cweitkamp)
Chromecast
- #2129 - playback not working when existing track is paused (@abedwardsw)
- #2062 - handle refresh / reconnect (@holmes)
- #1799 - fix audio sink (when requesting multiple times) (@lolodomo)
- #1882 - Added support for Audio groups (@mcguiresean)
DSCAlarm
- #2313 - Various Fixes and Enhancements (@RSStephens)
Globalcache
Harmony
- #2201 - Fixes issue with reconnects to Harmony Hubs (@digitaldan)
- #2156 - Fix button command timeouts (@wborn)
Homematic
- #2381 - Prevent ClassCastException in case of unexpectect message types (@MHerbst)
- #2221 - NPE if a system variable is present in homegear (fixes #1437) (@falkena)
- #2068 - Fixed NPE if datapoint name is null (@gerrieg)
Homekit
- #2138 - Fix NPE which happens on Color light before value is set on item (@dsundberg)
- #2052 - Fix to read minimum and maximum temperature from configuration (@WzDrg)
Hue
- #3621 - handle authentication failures during scan gracefully
Kodi
- #2303 - Fix audio sink (#2301) (@andreasreinhardt)
- #2279 - Improvements in Kodi thing status handling (@cweitkamp)
Lutron
MAX!
Milight
- #2385 - Prevent listing non Milight bridge devices in the discovery. (@davidgraeff)
- #2338 - Fix brightness and colour temperature for V3 white bulbs (@MikeJMajor)
Network
- #1780 - Corrected usage of native Linux ping utility (@davidgraeff)
Onkyo
openHAB Cloud
- #2210 - Don't hardcode the use of https for X-Forwarded-Proto (@FlorianSW)
RFXCOM
RME/Oceanic
- #1970 - Fix LF/CR handling in the SerialThingHandler (@kgoderis)
- #1826 - Workaround for high CPU Load in RXTX/nrjavaserial lib (@kgoderis)
SilverCrest
Systeminfo
- #2230 - Added validation for pid to avoid DeviceNotFoundException's (@cweitkamp)
Z-Way
1.x Add-ons
The following add-ons have been newly introduced:
- #5203 - isy Binding (@mitchmitchell)
- #3083 - WR3223 Ventilation Controller Binding (@frami)
- #5092 - Cisco Spark Action (#5090) (@tdeckers)
And these were successfully tested and added to the distro:
- #5082 - Piface Binding
- #5083 - ekey Binding
- #5217 - MAX! CUL Binding
- #5230 - IEC 62056-21 Meter Binding
Enhancements on Existing 1.x Add-ons:
CalDAV
- #5186 - Allow the Unicode Line Separator character (@9037568)
- #5117 - Various configuration fixes (@9037568)
Cups
Dropbox
Ecotouch
- #5181 - Add divider for analog values and additional temperature values (#5165) (@Digitalvitamin)
Epsonprojector
- #5158 - Add additional ColorMode and AspectRatio values (from 5030UB projector) (@jaydonoghue)
- #5137 - Improvements (@paulianttila)
Gcal
GPIO
Insteonplm
- #5054 - add support for smoke bridge (@berndpfrommer)
Modbus
MQTT
Pushover
- #5123 - Default Value Usage Fix (@CrackerStealth)
- #5216 - Changed root-tag to 'response' and added warning if the Pushover response contains an info-tag (@cweitkamp)
Satel
Serial
- #5167 - Modified Serial binding for ON/OFF commands (@marekhalmo)
Swegon
- #5142 - improvements (@paulianttila)
Telegram
- #5141 - sendTelegram() now returns "false" if an exception is thrown. (@planetrenner-martin)
Weather
- #5187 - Add feels like temperature for ForecastIO (@kabili207)
- #5180 - Added converter mps -> km/h to OpenWeatherMap wind speed property (@cweitkamp)
- #5045 - Allow Forecastio to request units other than SI (@9037568)
ZWave
- #5148 - Added Fibaro FGS-213 (@RafalLukawiecki)
- #5144 - Add TZWP-100 (@cdjackson)
- #5130 - Update products.xml (@cristhiampaul)
- #5126 - Database update: Fibaro Wall Plug (Z-Wave+)
(@bodiroga) - #5053 - updates (@dmize)
- #5048 - database update: McoHome CO2 monitor (@TheNetStriker)
- #5044 - Add Qubino ZMNHUD (@xiboy)
- #5043 - Support ZD2102 from Zipato (@xiboy)
- #5057 - Added to device database, Schlage BE469 Touchscreen deadbolt lock (@mnoram)
Bug Fixes on Existing 1.x Add-ons:
CalDAV
- #5153 - Avoid null pointer exceptions in the loadEvents() method (@9037568)
- #5152 - Fix race condition causing NPE (@gedejong)
ComfoAir
- #5049 - Optimize serial connection (@csowada)
Cul
Cups
Dropbox
DSCAlarm
- #5108 - Bug Fix: DSC Alarm Command 060 Not Working (@RSStephens)
Fateplc
- #5040 - Number item and value from discrete register (@slawekjaranowski)
FHT
Fritzboxtr064
- #5220 - Reset HTTP auth cache in case of connection errors (@tensberg)
GCal
GPIO
IEC6205621meter
Insteonplm
- #5177 - fixed bug with start/stop manual change (@berndpfrommer)
- #5169 - fixed bug introduced with PR #5054 (@berndpfrommer)
JDBC
- #5041 - Update sqlite to latest version (@ramunasd)
Modbus
Serial
- #5184 - OH2 Compatibility issue with RegexTransformation service (@marekhalmo)
SNMP
Squeeze
TCPBinding
TinkerForge
- #5091 - Exception during event dispatch - updating LCD 20x4 (@JamesDodds)
Upgrade Process
openHABian
If you are working with an openHABian setup, the upgrade is quite easy. Regardless of if you are currently using the openHAB 2.0 stable release or one of the latest 2.1 SNAPSHOT builds, switching to openHAB 2.1.0 stable is done in just a few steps:
- Execute on the SSH command line:
sudo openhabian-config
- Select the "Update" option
- Wait for the openHABian update to finish, reenter the openHABian configuration tool
- Select the "openHAB 2.1.0 stable" option
Package-based Installations
Make sure that openHAB is sourced from the latest location, has the correct GPG signing key and that your system meets the other prerequisites by following the instructions for your package manager in the in the docs.
APT
If the prerequisites are met, simply upgrade by using:
sudo apt-get update
sudo apt-get upgrade
Alternatively, you can force apt to install 2.1.0 and it's optional addons with:
sudo apt-get install openhab2=2.1.0-1
## optional addons for offline installation ##
sudo apt-get install openhab2-addons=2.1.0-1
sudo apt-get install openhab2-addons-legacy=2.1.0-1
RPM
If the prerequisites are met, simply upgrade using your systems prefered package manager (yum, dnf, etc.)
sudo yum update
Alternatively, you can force yum to install 2.1.0 and it's optional addons with:
sudo yum install openhab2-2.1.0
## optional addons for offline installation ##
sudo yum install openhab2-addons-2.1.0
sudo yum install openhab2-addons-legacy-2.1.0
Manual Installations
Offical update scripts are available that let you update your 2.0 installation to version 2.1:
Unix + MacOS
- Change to your openHAB root directory (e.g.
cd /opt/openhab2
) - Run the following command:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/openhab/openhab-distro/2.1.0/distributions/openhab/src/main/resources/bin/update)" -- 2.1.0
Read the installation instructions for more information.
Windows
- Execute PowerShell with elevated rights (e.g. by right-clicking the start menu PowerShell entry and selecting 'Run as Administrator')
- Allow scripts to execute by running this command (confirm the security prompt):
PS > Set-ExecutionPolicy Bypass
- Navigate to your openHAB directory
- Download the script:
PS > Invoke-WebRequest -Uri https://raw.githubusercontent.com/openhab/openhab-distro/master/distributions/openhab/src/main/resources/bin/update.ps1 -OutFile update.ps1
- Run the script with this command (note the . at the beginning!):
PS > . .\update.ps1
- This will add a new cmdlet
Update-openHAB
to your system.
You can use:
PS > man Update-openHAB -detailed
to get help on the available parameters.
- Run the update with no parameters to upgrade the distribution in the current directory to the current stable version.
PS > Update-openHAB
- (Optional) Restore the execution policy to the default setting with:
PS > Set-ExecutionPolicy Default
Known limitation: The script will not take care of addons (.jar or .kar files for offline
installation) within the addons folder, so these have to manually replaced by the new versions.
Alternatively to using this script, you can follow these manual steps for the update.
Breaking Changes that Require Manual Interaction after the Upgrade
General Changes
-
Group Items without a base type no longer receive state updates. If you rely on such events (e.g. because you react on it in rules), you will need to add a type information, i.e. instead of
Group MyLights
, you should defineGroup:Switch MyLights
. Here is some more technical background about it. -
Configuration files are now validated by the runtime upon being loaded. If they contain fatal errors, they will be completely rejected, otherwise only warnings might be logged, while the file is used. So if some of your files are not longer loaded, please check the log file for errors and correct those.
Astro Binding
The altitude
configuration parameter has been removed as the altitude can now be specified as a third segment in the geolocation
parameter. If you have specified your sun and moon through things-files, please update them accordingly.