* [knx] Refactoring, add basic support for UOM
Preparation for refactoring KnxCoreTypeMapper.
Carryover from smarthomej/addons#107.
Merge UOM implementations.
* [knx] Adapt tests
DPT strings for QuantityType now strip off a tailing .0 when decimals
are converted.
* [knx] Refactoring
Use pattern matching with instanceof operator (new Java17 feature).
* [knx] Refactoring, performance improvements
Introduce KNXChannel class.
Carryover from smarthomej/addons#114.
* [knx] Add warning for incompatible DPT type
Configuring incompatible DPT/channel combinations (e.g. DPT 1.005 (alarm) on Contact channels
or DPT 1.019 (windows/door) on Switch channels) is not allowed but was silently ignored.
This PR adds a warning in case incompatible configurations are detected.
Carryover from smarthomej/addons#203.
* [knx] Add full support for UoM
Replace UoM handling with the implementation from smarthome/j.
Carryover from smarthomej/addons#206.
* [knx] Refactor KNXCoreTypeMapper, add RGBW and xyY
Carryover from smarthomej/addons#208.
* [knx] Fix RGB conversion
Carryover from smarthomej/addons#219.
* [knx] Remove workarounds obsoleted by Calimero 2.5
Carryover from smarthomej/addons#226.
* [knx] Add parameter for disabling incoming UoM
Carryover from smarthomej/addons#230.
* [knx] Fix fallback to DecimalType in number conversion
Carryover from smarthomej/addons#279.
* [knx] Fix DPT 251.600 decoding
Carryover from smarthomej/addons#349.
* [knx] Fix UoM handling for special types
* [knx] Add test for KNXChannelFactory
* [knx] Update CODEOWNERS for knx
* [knx] Default conversion for DPT 5.001 and 6.001
* [knx] Fix write blocked forever after read from bus
Carryover from smarthomej/addons#299 and smarthomej/addons#330.
* [knx] Use new class ColorUtil from core for HSB conversion
Also-by: Jan N. Klug <github@klug.nrw>
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
* New translations openweathermap.properties (Italian)
* New translations netatmo.properties (Italian)
* New translations qolsysiq.properties (Italian)
* New translations astro.properties (German)
* New translations astro.properties (Italian)
* New translations danfossairunit.properties (Danish)
Remove the unused headings for generation 2. There is probably a manual missing for gen 2, but while this is the case the headlines can be removed
Signed-off-by: Felix Schneider <fs@felix-schneider.org>
* Use code fence for intents
* Fix Item type of awake-state
* Pretty print JSON and add Netflix
Signed-off-by: mueller-ma <mueller-ma@users.noreply.github.com>
This is a major version upgrade from 9.3.x, raising the compatibility level up from Ruby 2.6 to Ruby 3.1
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
* Add thing type update instructions
* Move thingTypeVersion to correct thing type
* Add groupIds to update instructions
Signed-off-by: Mark Hilbush <mark@hilbush.com>
* [mqtt.generic] separate command parsing from cached value updating
fixes#12150
Previously, Value.update would parse the command, _and_ update the cached
value with that command. Which means that when sending a command towards
MQTT (instead of processing an update from MQTT), the cached value was
unintentionally updated. This prevented the REFRESH command from returning
the most recent value received from the device.
Separating the two concerns also makes the test more obvious what they are
testing, and vastly simplified a kludgy workaround that RollershutterValue
was using to be able to process Commands that aren't States.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* [mqtt.generic] split Value::parseCommand into parseMessage
so that a particular value type subclass can have varying implementations
if it desires
---------
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* New translations iCloud.properties (German)
* New translations miele.properties (German)
* New translations jruby.properties (German)
* New translations mqtt.properties (German)
* New translations influxdb.properties (German)
* New translations homekit.properties (German)
* New translations amazonechocontrol.properties (German)
* New translations amazonechocontrol.properties (German)
* New translations systeminfo.properties (German)
* New translations tado.properties (German)
* New translations bluetooth.properties (German)
* New translations bluetooth.properties (German)
* New translations mybmw.properties (German)
* New translations gardena.properties (German)
* New translations astro.properties (German)
* New translations avmfritz.properties (German)
* New translations chromecast.properties (German)
* New translations hue.properties (German)
* New translations logreader.properties (German)
* New translations icalendar.properties (German)
* New translations max.properties (German)
* New translations comfoair.properties (German)
* New translations denonmarantz.properties (German)
* New translations deutschebahn.properties (German)
* New translations dwdpollenflug.properties (German)
* New translations ecotouch.properties (German)
* New translations epsonprojector.properties (German)
* New translations exec.properties (German)
* New translations homematic.properties (German)
* New translations hpprinter.properties (German)
* New translations http.properties (German)
* New translations magentatv.properties (German)
* New translations awattar.properties (German)
* Update EcobeeUtils.java
Correcting rounding of setHold values so we have 0.1°F tolerance instead of 1°F. Makes it easier to use in °C
Signed-off-by: darthbevis <darthbevis@gmail.com>
* Rework Servlets to use Http Whiteboard annotations in favor of proprietary `org.openhab.core.io.http.servlet` classes
* Resolve itest runbundles
* Fix dependency issues
* Catch proper exception when starting hueemulation UpnpServer
Also-by: Jan N. Klug <github@klug.nrw>
Signed-off-by: Wouter Born <github@maindrain.net>
* [dsmr] Improved error handling to better handle corrupt messages.
- Fix incorrect additional key in bridge discovery service.
- When corrupted P1 telegram is received don't set directly to offline, but let the watchdog do this if to many times this happens.
This makes it a bit more lenient for receiving a bad telegram once in a while. Because some connections are not that stable.
- Simplified error handling, and listeners to one enum/interface to make it more cleaner.
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
* Solving issue #14458
Signed-off-by: clinique <gael@lhopital.org>
* Removes the usage of "app.netatmo.net" since api now holds these entry points.
I think it was the origin of malfunction of floodlight (to be controlled by somebody who has one).
--------
Signed-off-by: clinique <gael@lhopital.org>
* New translations airquality.properties (Italian)
* New translations adorne.properties (Italian)
* New translations airq.properties (Italian)
* New translations airvisualnode.properties (Italian)
* New translations allplay.properties (Italian)
* New translations amazonechocontrol.properties (Italian)
* New translations amplipi.properties (Italian)
* New translations androiddebugbridge.properties (Italian)
This fix ensures, that the `ReentrantLock::unlock` method is only called, when the Thread is owning the lock.
resolves: #14322
Signed-off-by: Andreas Berger <andreas@berger-freelancer.com>
* [snmp] Upgrades and enhancements
- bug: improve test stability
- enhancement: add support for UoM
- bug: fix misleading error message
- bug: fix initialization exceptions
- enhancement: Add support for SNMPv3
- enhancement: add opaque value handling
Signed-off-by: Jan N. Klug <github@klug.nrw>
* [mail] Make actions names for DSL rules consistent with documentation
Keep old names for backward compatibility.
Actions names are now consistent over all rule engines.
* Review comment: use htmlContent as parameter name
* Review comment: make consistent url and urlList parameters
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
* [omnikinverter] Added temperature sensor
* [Omnikinverter] Bugfix for wrong channeltype item-type
Prevents 'Received HTTP PUT request with an invalid item name' when adding items
* [Omnik] Added AC Voltage, Currrent and Frequency and total running hours
Signed-off-by: Dave <leansoft@users.noreply.github.com>
* [jrubyscripting] allow disabling dependency tracking
in case your helper library doesn't support it. or you just don't like
the behavior.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* [unifi] Added channels name and hostname to client things.
Also some changes related to the guestVoucher changes.
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
HomematicIP added humidity and HVAC control mode under new channel
HEATING_CLIMATECONTROL_TRANSCEIVER|HUMIDITY. Those channels won't
show in PaperUI unless "Advanced" is selected. This pull request
adds those channels as standard.
Impacted HomematicIP devices: HmIP-BWTH, HmIP-BWTH24,
HmIPW-STHD, HmIPW-STH, HmIPW-WTH, HmIP-STHD, HmIP-STH, HMIP-WTH,
HmIP-WTH-2, HmIP-WTH-B
The devices HmIP-eTRV* and HmIP-WT only support CONTROL_MODE not
Humidity.
resolves: #11829
Signed-off-by: Dirk Benecke <dirkbe@web.de>
Signed-off-by: Dirk Benecke <dirkbenecke@Dirks-MBP.fritz.box>
* [openhabcloud] Possible connection leak
* Creates thread safe reconnection, reduces unnecessary polling on setup, removes unused variables.
* adds the reconnect settings to the internal socket.io options.
* Up the min reconnect time
* Use @ssalonen sugestion for backoff mins and randomness
* Reconnect after server initiated disconnect
* Remove unhelpful comments
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
* MyBMW command "horn-blow" not "horn-low"
The command is "horn-blow" not "horn-low".
Tested with my car: "horn-blow" works, "horn-low" does not.
* (MyBMW] command "light-flash" not "flash-lights"
The command is "light-flash" not "flash-lights".
Tested with my car: "light-flash" works, "flash-lights" does not.
* [mqtt.homeassistant] support command_template for fan components
* [mqtt.homeassistant] fix field declaration for consistency
Signed-off-by: Cody Cutrer <cody@cutrer.us>
openHAB doesn't have the concept of "enabled by default", since _everything_
is technically "disabled" until you link it to an item. It seems devices
use disabled by default on less common entities, such as zigbee2mqtt
marking a binary_sensor as a "backup" method to an update entity for
when an update is available, or a sensor as a "backup" method to a
select entity. So in that case, just hiding these channels unless the user
clicks "Show Advanced" seems to map best.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
Previous code was not working in Java 17.
A thread should not be started after being interrupted.
Fix#14264
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
Updated section on shutter position with info on the automatic calibration's reliance on the actuator's automatic stop message, and that for older actuator's manual setting of shutterRun is required.
* [evcc] Adjust to breaking API changes
Fixes#14231.
See https://github.com/evcc-io/evcc/discussions/5522.
* [evcc] Add battery capacity channel
* [evcc] Version & openHABian note
* [evcc] Use already defined constants in ChannelTypeUIDs
* [evcc] Correct header in evcc.properties
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
* [unifi] Various stability improvements
- Fixed bug, causing nullpointer, in devices not reporting voltage/ampere values on PoE ports.
- Added some null checks to avoid having null pointer exceptions.
- Handled timeout exception that is in ExecutionException.
- Improved handling case where server returns data, but it's not from the api, and therefor can't be parsed.
- Improved adding additional text to the error messages by adding the reported exception message too.
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
* [mimictts] Fix ssml and playing from an audiosink using the audio servlet
Fix :
- ssml not working
- add an option to store the audio on a file before sending it to openhab. It enables audiosink based on the audio servlet to play the sound (the servlet requires the getClonedStream method, unavailable with a pure streaming approach). The files are stored in the user data directory and deleted as soon as possible (stream close detection).
- fix error with voice name not encoded
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [homekit] Implement IrrigationSystem
Fairly trivial now, except that a ServiceLabelService has to be added
to the accessory.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
When changing an enum value in the configuration, we used the wrong data
type: while the value in the OH config is a string (the 'option value' -
see HomematicThingHandler::getValueForConfiguration), internally we use
an integer (the 'option index'), so we have to do the option value ->
option index conversion when applying the new value.
This especially was a problem for HM-MOD-EM-8 devices, which check the
CHANNEL_FUNCTION enum value as part of their initialization routine.
When disabling/enabling them after changing the CHANNEL_FUNCTION enum
value, they went offline, because their initialization failed due to a
NumberFormatException (via
HomematicThingHandler::doInitializeInBackground ->
HmChannel::checkForChannelFunctionChange ->
HmChannel::getCurrentFunction)
Signed-off-by: Danny Baumann <dannybaumann@web.de>
* [homekit] TV accessory
Now possible since we support multiple secondary services. Just need to explicitly
declare that InputSource is a linked service to a Television, not just a secondary
service.
Note also that since TV and related services have so many mandatary characteristics
that are often static, I introduced a new way to declare characteristics -
via metadata on the service's item. Honestly, I feel like it's a lot cleaner to
have a factory create the mandatory characteristics the same way as the optional
characteristics, and then construct the service ourselves instead of basing the
service on the specific accessory interface. But this commit is already big enough,
I didn't want to go refactoring _all_ of the accessories to do it that way just
yet. This is why I have "unused" metadata characteristic factory methods for
AirQuality, HeaterCooler, and Thermostat - I started to make those configurable
via metadata, then realized they were mandatory characteristics that couldn't
be found from metadata via the current infrastructure.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
On server timeouts, it's possible for multiple minutes to elapse
between receiving the last pong on the old connection and attempting to
send the next ping on the new connection. If that time span exceeded 5
minutes, the binding went into a minutely reconnection loop, because it
never attempted to send a ping anymore, which led to lastPong not being
updated anymore.
To fix this, replace the timing dependent timestamp handling by a simple
counter which counts how many consecutive ping attempts didn't receive
an answer, and closing the connection after 5 unsuccessful ping
attempts. That new counter is now also reset whenever the connection is
restarted.
Fixes#14188
Signed-off-by: Danny Baumann <dannybaumann@web.de>
* [miio] add support Xiaomi Smart Air Purifier 4 Pro zhimi.airp.vb4
Adding support for the following models:
* Xiaomi Smart Air Purifier 4 Pro (modelId: zhimi.airp.vb4)
close
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [homekit] improve instance management
* allow addressing individual instances for most console commands
* don't restart all instances if simply adding/removing instances on
config change
* clear stored info when removing instances
* [homekit] reset instance identity when clearing pairings
* [homekit] log the actual interface we looked up
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* [jsscripting] Fix bundling of global script & regression from #14135
Fixes the regression from https://github.com/openhab/openhab-addons/pull/14135#issuecomment-1369231126.
While working on this, I also noticed that the cache openhab-js does not work because of wrong webpack commandline args in the pom (wrong entrypoint).
* [jsscripting] Enable stack logging for IllegalArgumentExceptions
* [jsscripting] Upgrade openhab-js to 3.2.4
* [jsscripting] Update README for recent PR
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
* [jsscripting] Extend comments for wraprequire
* [jsscripting] Enable openhab-js caching to improve performance
On my dev system (which I guess is much more powerful than most openHAB servers), cached openhab-js injection takes 100-200 ms.
openhab-js injection from file system takes about 1000 ms.
* [jsscripting] Update configuration language
* [jsscripting] Upgrade openhab-js version to 3.2.1 for required webpack changes
Documentation updates will follow in another PR to keep this one clean.
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>