* Rebase with main, update license headers
* Small PR cleanups
* One last small PR cleanup
* Syntactical sugar
* Updated error handling
* Spelling mistake
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
* [miio] add support for zhimi.airpurifier.vb2 Mi Air Purifier Pro H
close#10174
* [miio] update modes to values visible in app
* [miio] cleanup and fix valuu mapping
* [miio] fix duration
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [miio] Add zhimi heaters
add new
zhimi.heater.ma2 Mi Smart Space Heater S
zhimi.heater.ma3 Mi Smart Baseboard Heater E
zhimi.heater.mc2 Mi Smart Space Heater S
zhimi.heater.na1 Smartmi Smart Fan
zhimi.heater.nb1 Smartmi Smart Fan Heater
improving existing
zhimi.heater.za1 Smartmi Radiant Heater Smart Version
zhimi.heater.za2 Smartmi Smart Convector Heater 1S
zhimi.heater.zb1 Smartmi Smart Convector Heater 1S
* [miio] add some more options
* remove accidental development file
* [miio] fix number:duration
* [miio] remove channeltype from heaters
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [bluetooth] Notify things again when they are removed from listeners like Inbox
* [bluetooth] Add javadoc on retractDiscoveryResult()
Signed-off-by: Peter Rosenberg <prosenb.dev@gmail.com>
* Pimp properties and channel types with proper categories
* Update bundles/org.openhab.binding.deconz/src/main/resources/OH-INF/thing/sensor-thing-types.xml
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
Co-authored-by: Matthew Skinner <matt@pcmus.com>
* Add support to myStrom Bulb
Add properties to myStrom devices and an action to refresh the properties.
Signed-off-by: Frederic Chastagnol <fchastagnol@fredoware.ch>
* Fixes according to review comments
Signed-off-by: Frederic Chastagnol <fchastagnol@fredoware.ch>
* Update bundles/org.openhab.binding.mystrom/README.md
Co-authored-by: J-N-K <J-N-K@users.noreply.github.com>
* Fixes according to review comments
Signed-off-by: Frederic Chastagnol <fchastagnol@fredoware.ch>
* Use system color temperature channel type
channel type system.color-temperature is used and values mapped from 1-18 to 0-100%
Signed-off-by: Frederic Chastagnol <fchastagnol@fredoware.ch>
* Better tracking of colour and brightness values
Format power state
Signed-off-by: Frederic Chastagnol <fchastagnol@fredoware.ch>
Co-authored-by: J-N-K <J-N-K@users.noreply.github.com>
* Support for Shelly Motion, some minotr improvements, README updated
Signed-off-by: Markus Michels <markus7017@gmail.com>
* minor changes
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Bug fixes from hardening
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review changes applied
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review change
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review changes, fix creations of sensors#motion and device#externalPower
for H%T; moved images/uiroller*.png to doc/images
Signed-off-by: Markus Michels <markus7017@gmail.com>
* missing in last fix
Signed-off-by: Markus Michels <markus7017@gmail.com>
Since the device does not follow its own protocol, we do not evaluate its
replies to our configuration commands but rather do a fire and forget.
Signed-off-by: Stefan Triller <github@stefantriller.de>
* Added SMACK teach in
* Teached in devices can be teach out on a repeated teach in
* Improved detection of RPS devices, device types can be better distinguished now
* Bugfixes for discovery fallback to GenericThings
* Responses to message requests are send automatically now, no need for linking SEND_COMMAND channel
Fixes#10156
Signed-off-by: Daniel Weber <uni@fruggy.de>
* [modbus] More strict nullness. Remove apache.commons.lang from itests
* [modbus] Defaults for tcp and serial things according to docs
* [modbus] further explicit defaults
* [modbus] document default encoding for serial.
RTU is pretty much the only one used in the field.
Previous default was ascii implicitly.
* [modbus] verify defaults are used for undefined configuration parameters
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [bluetooth] Add BluetoothDevice.isNotifying()
* [bluetooth] Improve Characteristic properties support
* [bluez] Improve Characteristic properties support
* [bluetooth] Add BluetoothDevice.canNotify()
* [bluez] Also catch DBusExecutionException on read value
* [bluetooth.generic] Activate notifications for linked channels where characteristics are able to notify
* [bluez] Adjust javadoc
* [bluegiga] Add BluetoothDevice.isNotifying() support
* [bluegiga] Fix notification enabled check
* [bluetooth] move canNotify() to Characteristic
* [bluegiga] rename notificationEnabled to notifying
* [bluetooth.generic] use handlerToChannels to subscribe to notifications
* [bluetooth.generic] implement TODOs of canRead()/canWrite()
* [bluetooth.generic] optimize ChannelUID
* [bluetooth.generic] use channelUids for link check
Signed-off-by: Peter Rosenberg <prosenb.dev@gmail.com>
* [hdpowerview] refactor from jax-rs to http client
* [hdpowerview] adopt proposals of code reviewer
* [hdpowerview] adopt additional proposals of code reviewer
* [hdpowerview] provide exception class name
Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
Extended the original collection with all the languages currently listed on the VoiceRSS API website. Please consider including in main branch.
Signed-off-by: cURLy bOi <curly.boi.89@gmail.com>
* Removed internal vendor Map and minor additional improvements
* Incorporated comments from review
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
* #72 changed use units of measure for the twinguard humidity and purity values
all other QuantityTypes in bindingcode are fine
* #77 changed title of binding to Bosch Smart Home
Replaced the SHC occurrences with Smart Home,
to avoid technical names.
* #62 Try to restart long polling when it fails before taking the thing offline
* #62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request
This might be the reason why the subscribe request does never finish or finishes with a timeout
* #74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client
* #74 Schedule initial access when long polling fails unexpected
We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.
* Use direct formatting of logger.trace instead of String.format
* #76 Use i18n texts instead of raw translations for status messages about failed long polling
* #76 Use logger.debug instead of logger.warn for long poll error as it is handled now
* #78 defined api-version
each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller
* logging bundle version
removed the old static version string
access OSGi bundle version information instead
* #75 improved initial access
- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @Nullable annotations
* added newline
Signed-off-by: Gerd Zanker <gerd.zanker@web.de>
Signed-off-by: Christian Oeing <christian.oeing@slashgames.org>
* Retry command submission when tahome gateway is busy.
* Changed log level, cosmetic changes
* Store list of scheduled retries; cancelled when handler is disposed.
* Made retryFutures thread-safe
Signed-off-by: Georg Siebke <github@georgsiebke.de>
The ceiling10 Yeelight lamp has 2 dimmer for brightness:
"bright" for the main light and bg_bright for the ambient light.
Both are of type dimmer and accept percentage values between 1 and 100.
This fix changes the datatype of the bg_bright property from Number
to Dimmer in the device mapping database file ceiling4, which is also
the one that is used for the ceiling10 lamp.
Accepted without sign-off under minor change exemption.
"format" parameter value for HTML seems that should be "html", not "HTML"
"HTML" seems to have no affect when using sendPriorityMessage, but "html" works.
Accepted without sign-off under minor change exemption.
As per https://creativecommons.tankerkoenig.de (in the "Terms"-section) we should not make more than 1 request per 5 minutes, this changes the limit accordingly and allows doing so.
Signed-off-by: Flole <flole@flole.de>
* Improved error handling for Powermax binding
Catch all exceptions, and take all Powermax things offline in the event
of a communication failure. Also adds a 5-minute watchdog for
connections in Standard (non-Powerlink) mode.
* More Powermax error handling improvements
1. Mark the bridge and all things as offline when communication is lost
2. Bubble all I/O exceptions up to the bridge status
3. Set all channels to UnDefType.NULL when bridge goes offline
4. Ignore CRC errors on messages of type 0xF1
5. Don't try and download partition settings for panels that don't support partitions
6. Fix logging levels to avoid unnecessary non-DEBUG messages
Signed-off-by: Ron Isaacson <isaacson.ron@gmail.com>
* Internationalization + actions for messages
- Internationalization of UI relevant texts
- Better support for the error/warning/info/status messages received
from the device
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Review inputs + improvements
- inputs from @ssalonen
- additional action to retrieve all messages collectively
- added rule example for handling the collective message action
- added semantic tags in items example
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* mvn spotless:apply
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Update bundles/org.openhab.binding.modbus.helioseasycontrols/README.md
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Update bundles/org.openhab.binding.modbus.helioseasycontrols/README.md
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Update bundles/org.openhab.binding.modbus.helioseasycontrols/src/main/java/org/openhab/binding/modbus/helioseasycontrols/internal/HeliosEasyControlsHandler.java
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Update bundles/org.openhab.binding.modbus.helioseasycontrols/src/main/resources/OH-INF/i18n/helioseasycontrols_de.properties
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Update bundles/org.openhab.binding.modbus.helioseasycontrols/src/main/resources/OH-INF/thing/thing-types.xml
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Review inputs from @fwolter
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Inputs from @fwolter
- changed return type for actions with a single return value
- corrected findings from static code analysis
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Removed configurationPid from TranslationProvider
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Changes requested by @fwolter
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
* Changed log level to debug when catching InterruptedException
Signed-off-by: Bernhard Bauer <bern77@gmail.com>
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
* Added commands for second central heating circuit
* Added command for temperature sensor
* Added controlsetpoint2 and ch2_enable channels
Signed-off-by: Arjen Korevaar <a.korevaar@mephix.com>
* Binding redesigned 20200923 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter], regarded OH3.
[WIP]
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20200923 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter] regarded oH3
[WIP]
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20200923 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter] regarded oH3
[WIP]
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20200923 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter] regarded oH3
[WIP]
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20200924 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter] regarded oH3
[WIP]
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20200924 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
Changes made in
org.openhab.binding.internal.kostal.inverter.secondgeneration.SecondGenerationHandler.java
found by Travis tests.
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201007 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
Done changes in:
Channels.xml
PIKO1020.xml
README.md
SecondGeneration.xml
SecondGenerationChannelConfiguration.java
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201008 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201012 by Örjan Backsell, regarded to @fwolter
requested changes
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201028 by Örjan Backsell, regarded to @cpmeister
requested changes.
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201105 by Örjan Backsell
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20200923 by Örjan Backsell
'
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
'
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201111 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201117 by Örjan Backsell
'
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter]
[WIP]
'
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201119 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201125 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201130 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201130, 1630 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201202 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201204 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Redesigned 20201204 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20201010 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20210112 by Örjan Backsell
'
Signed-off-by: basse04 orjan.backsell@gmail.com
Also-by: Christian Schneider <>
Also-by: René Stakemeier <>
Also-by: Christoph Weitkamp <>
This is the upgraded version of Kostal Inverter extended with
functionality for the Inverter type of Second generation PIKO 10-20
[kostalinverter]
'
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20210114 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20210119 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding (KostalInverterFactory.java)redesigned 20210119 by Örjan
Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20210125 by Örjan Backsell
* Binding redesigned 20200923 by Örjan Backsell
(KostalInverterFactory.java)
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Binding redesigned 20210125 by Örjan Backsell
Signed-off-by: basse04 <orjan.backsell@gmail.com>
* Added option to reverse rollershutter commands - UP -> DOWN and DOWN -> UP - might happen if rollershuter module's output is wired differently.
* Fixed PR comments.
Signed-off-by: Boris Krivonog <boris.krivonog@inova.si>
* Add IR code commands to dropdown and documentation
* Add link to community for advanced UI creation
Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
* [novafinedust] Test for optimizations on access to the serial port
- retry logic if port does not yet exist on startup
- do not write sleep command on shutdown if port has issues
- no not register data listener on port but wait for data instead to be
compatible with RFC2217 serial over network implementation
- ignore all buffered data from device during initialization to get the
device into a defined state
* Adress review comments
- moved most "normal" logging to TRACE level
- used lambda function
* Improve error messages as requested in the review
Signed-off-by: Stefan Triller <github@stefantriller.de>
* [enocean] Added support for Heat Recovery Ventilation devices (#9465)
* Implemented EEP family D2_50
* Added new thing type (heatRecoveryVentilation) and channels for heat recovery ventilation units
Fixes#9465
* [enocean] Added support for Heat Recovery Ventilation devices (#9465)
* code refactoring (JAVA11 improvements)
Fixes#9465
* [enocean] Added support for Heat Recovery Ventilation devices (#9465)
* Removed unnecessary EEP classes
* Made final fields static
* Added @NonNullByDefault to EEP Class
Fixes#9465
* [enocean] Added support for Heat Recovery Ventilation devices (#9465)
* Removed @NonNullByDefault to not mess up PR with non related changes
Fixes#9465
Signed-off-by: Daniel Weber <uni@fruggy.de>
* Fix brightness
* Revert to old beahaviour if segments are used
* Fix formatting
* Remove unused Var
Signed-off-by: Sebastian Garske <sebgarske@gmail.com>
* add support for custom mapping
* add screenshot
* remove unnecessary variable
* make parameter nullable to avoid not required list instances
Signed-off-by: Eugen Freiter <freiter@gmx.de>
* This PR merges the 2.5 code base with new features, a bunch of bug fixes
and improved documentation. Parts of the code has been re-factored and
vaious issues are fixed/optimized along the way.
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Minor fixed, support for Shelly Color Bulb, Shelly Motion
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Review changes applied
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review change applied
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review changes
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Review changes
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review changes
Signed-off-by: Markus Michels <markus7017@gmail.com>
* README updated
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review change
Signed-off-by: Markus Michels <markus7017@gmail.com>
* review change
Signed-off-by: Markus Michels <markus7017@gmail.com>
Fixes#6762
* Fix Unit tests
The method was used to create the pattern for a regex and for building
the channel id. I ave separated them now. At least the tests are green ;)
Signed-off-by: Stefan Triller <github@stefantriller.de>
* [irobot] Roomba: Add more properties.
On request by @falkena, also some i7 specifics
* [irobot] Roomba: Add map_upload channel.
Controls uploading Clean Map(tm) to the cloud.
* [irobot] discovery: Get rid of empty while() loop
Rewrite the loop so that it doesn't have empty body any more, this gets rid of
one more static analyzer warning. Added dumping the whole IDENT packet on TRACE
level, aids implementing support for newer devices.
Signed-off-by: Pavel Fedin <pavel_fedin@mail.ru>
* [modbus] Cascaded transforms with ∩
* [modbus] README to mention cascaded transformations
* [modbus] Take cascaded transformation into use
* [modbus] README to show preference towards new syntax
* [modbus] examples to use new syntax
* [modbus] fix test
* [modbus] remove apache commons lang dependency
- see also PR #10002
- I removed equals and hashCode implementation all-together, I could not see they played any role in practice.
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [pidcontroller] Reset state of command Item after command has been processed
* Fix read-only state of item parameters
Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
* [miio] validate response id matching command id
This PR prevents out of sync issues in case devices are too slow to
respond or the timeout is set too short.
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [miio] spotless adding space
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [miio] update based on review
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* Support for Denon "Home" speaker as bridge added
* Fixed a runtime issue if no serial number is provided by the player, by using the PID as a fallback if no serial number is available
Signed-off-by: Wire82 <johannes.einig@me.com>
* Added support for color temperature capabilities and set value in Kelvin
* Use system default channel type
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
* Use for each loop in getChildThing()
Signed-off-by: Ethan Dye <mrtops03@gmail.com>
* Further refine getChildThing() using stream map
Signed-off-by: Ethan Dye <mrtops03@gmail.com>
* Fix spotless errors
Signed-off-by: Ethan Dye <mrtops03@gmail.com>
* fix some tivo binding bugs
Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
* update search example rule
Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
* [sonos] Add bass/treble/loudness controls
Related to #9874
Disable these controls when the output level is fixed
* Review suggestion: use OnOffType.from
* Add bass/treble/loudness channels to Arc and Arc SL models
* Review comment: remove usage of keySet
Factorize code
Define constants
* Use Map.of to simplify the code
* Review comments considered
Signed-off-by: Laurent Garnier <lg.hc@free.fr>