* [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>
* Switch to version used by openhab-core
* Apply patch from #2359 for upgrading dependency on plexus
Signed-off-by: Holger Friedrich <mail@holger-friedrich.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>
* [velbus] Add new functionality PRESSED and LONG PRESSED and fix bug
New functionnality :
Add the the possibility to simulate the PRESSED and LONG PRESSED message of an input.
Module supported with button simulation :
VMB1RYS (button : CH6)
VMB6IN (buttons : CH1 ... CH6)
VMB2PBN, VMB6PBN, VMB7IN, VMB8IR, VMB8PB, VMB8PBU, VMBEL1, VMBEL2, VMBEL4, VMBGP1, VMBGP1-2, VMBGP2, VMBGP2-2, VMBGP4, VMBGP4-2, VMBGP4PIR, VMBGP4PIR-2 (buttons : CH1 ... CH8)
VMBELO, VMBGPOD, VMBGPOD-2 (buttons : CH1 ... CH32)
Fix bug :
The channels names were not correctly assigned to the thing properties. The last channel had the default name, not the one retrieved from the module.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* Update bundles/org.openhab.binding.velbus/README.md
Co-authored-by: cedricboon <cedric.boon@hotmail.com>
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* Update bundles/org.openhab.binding.velbus/README.md
Co-authored-by: cedricboon <cedric.boon@hotmail.com>
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* Update bundles/org.openhab.binding.velbus/README.md
Co-authored-by: cedricboon <cedric.boon@hotmail.com>
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* Add trigger on channel when using button simulation
Remove uneeded Thread.sleep in code.
Trigger the events PRESSED, LONG_PRESSED, RELEASED on the linked trigger channel when using the button simulation.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* Fix redundant superinterface DiscoveryService
Redundant superinterface DiscoveryService for the type VelbusThingDiscoveryService, already defined by AbstractDiscoveryService.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* Fix bug #11521
Typo in the Counter Channel name for VMB7IN.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] Add VMBELPIR module
Add the module VMBELPIR
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] VMBELPIR added to discovery service
Forgot to add the module VMBELPIR in the discovery service.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] Updates clock alarms management
Changes the clocks alarm management :
- Global alarms are now set from the bridge thing.
- Local alarms are still set from the module thing, but the alarm type channels on modules are now readonly.
Reduces the flooding of the bus by adding a delay of 10 seconds before sending the update on the bus :
- Removes the send on the bus after each update of a clock alarm value.
- Sends only the values of the last update after 10 seconds.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] PR modifications
Modifications asked in PR review.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] PR modifications 2
Modifications asked in PR review 2.
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] Add modules VMBKP, VMBIN, VMB4PB
New functionnality : Add the support of the modules VMBKP, VMBIN, VMB4PB
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
* [velbus] Fix code style error
Fix code style error in VelbusSensorWithAlarmClockHandler.java
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
Signed-off-by: Daniel Rosengarten <github@praetorians.be>
Co-authored-by: cedricboon <cedric.boon@hotmail.com>
* Add tests and fix very minor bug
* Correct wrong test
* Update tests and fix sorting
* Some checkstyle improvements
Signed-off-by: lsiepel <leosiepel@gmail.com>