* [homekit] persist all known accessories, to prevent loss of homekit information
See the readme for more details, but basically this keeps track of every
accessory we've ever created, and if it no longer exists, presents a dummy
accessory instead. If the accessory comes back, nothing is lost in the Home
app; if you meant to prune it permanently, you have to run a console command.
there are also several fixes to prevent presenting the device with missing data -
such as when the bundle stops, _don't_ explicitly remove the accessories until
the server has stopped.
we also don't increment the configuration version unless the configuration
has _actually_ changed (so removing and re-adding the exact same thing
won't trigger the device to reconnect). this even works across restarts
of the bundle, because we're persisting all the accessory information
for dummy information anyway.
* [homekit] Address review comments for accessory persistence
* update hap-java to 2.0.4
* remove unused local variable
* [homekit] ensure accessories are replaced in a batch
so that HAP-Java can maintain subscriptions with the new objects
* [homekit] log individual dummy accessories up to 5
* [homekit] Tweak readme for dummy accessories slightly.
* Be consistent with proper usage of useDummyAccessories.
* Make the sentence more clear about the effects of having dummy accessories.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* Added Constructor parameter to pass custom ScheduledExecutorService, that allows deterministic execution in test cases.
* Fixed some codestyles.
Signed-off-by: Sönke Küper <soenkekueper@gmx.de>
In recent PR #13824, I added closing the context when the engine is closed, but core seems to have problems with that.
It logs: "[ERROR] [ipt.internal.ScriptEngineManagerImpl] - Error removing ScriptEngine
java.lang.IllegalStateException: The Context is already closed."
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
To mitigate issue https://github.com/openhab/openhab-core/issues/3125
(common thread pool exhaustion when combining parallel streams with
synchronization or locks)
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
The alternative MIME type text/javascript is also used by Nashorn, therefore we add the same extension as for the main MIME type.
The alias is introduced to simplify the usage in SCRIPT transformation profiles.
* Fix syntax problems in the bndtools file
* Add null check to avoid potential NPE
In some cases during testing, a NPE occured, this should solve it.
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
* First commit on newly created branch, taking code from c8b8e210dfd23f98526763782eadbca49509baf9
* [bondhome] update snapshot version, and some typos
* [bondhome] Address (most) comments from prior review from #7260
* [bondhome] simplify channels
* lastUpdate is unnecessary; turn on persistence or add a rule on update if
you care to keep track of it
* use a single string command channel for all shoot-and-forget commands, instead
of multiple switch channels
* use a rollershutter channel for shades (accepting UP, DOWN, STOP, 0%, and 100%)
* on all dimmer channels, accept ON and OFF, as well as 0% to imply OFF, instead
of having to write rules to control ON/OFF state separately.
* if the dimmer channel exists, prune the corresponding power channel, since
the dimmer channel is now a pure superset of its functionality
* overload fan#speed to be ceiling fan or a fireplace's fan, depending on the
device type
* [bondhome] add bundle to the BOM pom
* [bondhome] clean up BondDeviceHandler a bit
* there's no need to delay initialization; ThingManager won't
even attempt to initialize a child thing until its bridge is online
* Remove some extra initialization checks that can never be false
* slightly refactor some methods to return early, rather than
nest a giant `else`
* remove some info logging that will get triggered in normal usage
* [bondhome] fix bridge discovery
* Bridge property and config serial number need to be the same name
* Don't arbitrarily delay the BPUPListener
* Automatically update the IP if the BPUPListener finds it
* Provide the new bridge with its discovered IP to avoid an additional
DNS query
* Don't get the bridge version after every keep-alive response
* [bondhome] trigger end-device discovery as soon as the bridge comes online
* [bondhome] remove internal binding version
* [bondhome] change addr property to string
Certain values seen in the wild when interpreted as a long are too big for that
storage. Also, the Bond API documentation describes the addr property on a
device to be a string.
OpenHAB already has infrastructure to have things update their
channel definitions when a binding is updated.
* [bondhome] ignore any device that starts with _
In v3 of their API, Bond added a new special entry of __. Because no valid
device id would start with an underscore, ignore everything that starts with an
underscore to fix v3 and maybe futureproof.
* address review comments
mostly adding i18n to error states, and cleaning up error handling of
HTTP requests.
* use builtin translation services
instead of plumbing our own provider through
* use System.nanoTime instead of currentTimeMillis
so that it will be a monotonic clock, not (as) susceptible to the clock
changing
* [bondhome] ignore BPUP messasges that aren't state
In recent firmware, bond is now sending action messages via BPUP as well as state.
This change ignores all messages that aren't state.
* [bondhome] Improve error handling, and remove dummy constants
Just use a single BondException class to communicate any sort of
error from within bond, and avoid throwing, catching, and re-throwing
the same (or slightly modified) exception.
Also remove dummy constants that might give the wrong impression
of the details of your Bond device. Then implement proper null checks,
especially setting a configuration error if key config properties
aren't set on the thing.
* [bondhome] avoid setting device status when bridge just went offline
* address static analysis tool problems
Also-by: Sara Damiano <sdamiano@stroudcenter.org>
Also-by: Keith T. Garner <kgarner@kgarner.com>
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* New translations miele.properties (Danish)
* New translations jruby.properties (Italian)
* New translations ecowatt.properties (Italian)
* New translations webexteams.properties (Italian)
* [openwebnet] first changes for Alarm support
* [openwebnet] added first version Alarm handler
* [openwebnet] added ownIdTest for Alarm
* [openwebnet] added things def for Alarm and discovery for alarm zone
* [openwebnet] refreshDevice
* [openwebnet] fix text formatting
* [openwebnet] fixes
* [openwebnet] added other alarm channels
* [openwebnet] Alarm: codestyle and null checks
* [openwebnet] updated Alarm examples in README and some cleanup
* [openwebnet] changed zone channel from armed to state, cleaned README
Signed-off-by: Massimo Valla <mvcode00@gmail.com>
* Added #13493 Plus 1/1PM addon support; Fixed#13515 pos for roller in
open/close state; various null warnings removed; README updated
Signed-off-by: Markus Michels <markus7017@gmail.com>
* digitalInput, analogInput and voltage added for Add-On; README updated
Signed-off-by: Markus Michels <markus7017@gmail.com>
* shelly2-roller re-added (wrong assumption that Shelly 2 doesn't support
roller mode, because it has no power meter)
Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Initialization for Californium 2.7.3 fixed (no multicast packets where
received)
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Analogous input support for Plus Addon changed; Allterco made a format
change in the beta firmware
Signed-off-by: Markus Michels <markus7017@gmail.com>
* changes applied
Signed-off-by: Markus Michels <markus7017@gmail.com>
* README updated; Shelly Plus addon handling adjusted to latest firmware
(before was beta)
Signed-off-by: Markus Michels <markus7017@gmail.com>
* Update bundles/org.openhab.binding.shelly/README.md
Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
* fix JSON for Shelly1 - ext_switch_enable is a boolean, not an int
Signed-off-by: Markus Michels <markus7017@gmail.com>
Signed-off-by: Markus Michels <markus7017@gmail.com>
Signed-off-by: markus7017 <markus7017@gmail.com>
Signed-off-by: Fabian Wolter <github@fabian-wolter.de>
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
* [jrubyscripting] implement dependency tracking
watchers had to be refactored similar to jsscripting.
it supports watching any directory referenced from RUBYLIB,
as well as the gem home. it properly excludes lib and gem home
(as well as other gem homes if you have multiple jruby versions
installed) from loading as regular scripts.
this is a breaking change if you don't have RUBYLIB explicitly
configured, and you are using the old default directory.
it's expected that the detection of what files and gems any
given script uses will be self-identified by the script, presumably
by the helper library.
JRubyScriptEngineConfiguration was largely refactored as part of this.
* CONFIGURATION_PARAMETERS was renamed, and is no longer static, since
it's modified every time the configuration is changed
* OptionalConfigurationElement was simplified since default values
are always provided now. this also simplified lots of other code
that accesses the current settings.
Signed-off-by: Cody Cutrer <cody@cutrer.us>
* [smsmodem] Initial contribution
This binding connects to a USB serial GSM modem (or a network exposed one, a.k.a ser2net) and allows openHAB to send and receive SMS through it.
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] README fix
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] build/spotless fix
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] compliance with 3rd party license
And long running thread naming convention
And treated some code warning
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] i18n
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Small fixes
update channel
rename action to avoid colision with other binding and a too generic name
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Use of standard Thing properties
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Fix sender identifier error with special character
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Add encoding parameter
For non latin character in SMS
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Apply review
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Split local and remote modem in two thing-types
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Apply review
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Apply review
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [smsmodem] Apply code review (removing unnecessary method)
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
Co-authored-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
* [homematic] Fix min/max values for rollershutters
For dimmers, the 1.0 max value sent by CCU was already converted to
percent values in the item state description. Do the same thing also for
roller shutters.
Signed-off-by: Danny Baumann <dannybaumann@web.de>
* [jsscripting] Fix memory-leak caused by com.oracle.truffle.host.HostObject
Fixes this memory leak by making the HostAccess for the GraalJSScriptEngine available in a static final variable instead of creating it for each new engine.
Solution proposed in https://github.com/oracle/graaljs/issues/121#issuecomment-690179954.
Sharing a single engine across all Contexts (as proposed in https://github.com/oracle/graaljs/issues/121#issuecomment-880056648) is not possible, because core expects a ScriptEngine.
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
* [jsscripting] Update JavaDoc
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
* [jsscripting] Close `GraalJSScriptEngine` when `OpenhabGraalJSScriptEngine` is closed
My breakpoint inside the close method of GraalJSScriptEngine did not trigger until this change was made.
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
* [miio] add support zhimi.airp.cpa4 WIP
* [miio] add support Xiaomi Smart Air Purifier 4 Compact
Adding support for the following models:
* Xiaomi Smart Air Purifier 4 Compact (modelId: zhimi.airp.cpa4)
Minor typo fixing (note: no breaking channel changes)
close: #13763
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
* [Nanoleaf] New Channel: State
Shows an image of the state of the panels with color.
Also makes the layout slightly prettier. This is less functional than the layout, and more eyecandy.
Signed-off-by: Jørgen Austvik <jaustvik@acm.org>