James Hewitt [Sat, 12 Jun 2021 11:22:00 +0000 (12:22 +0100)]
[rfxcom] Read multiple bytes at a time over serial connection (#10832)
There's no reason not to read multiple bytes at a time (that I could find) so
for best practice, set the read limit to be the maximum size of an rfxcom
message. Tested fine on my system.
Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
James Hewitt [Thu, 10 Jun 2021 12:30:08 +0000 (13:30 +0100)]
[rfxcom] Convert unsigned byte to int properly for message length (#10830)
Without this, any message over 127 bytes reports a negative length and
fails the message start test, which puts the code out of sync with the
rfxcom leading to lots of errors, and eventually, complete loss of
connection.
Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
Martin Herbst [Sun, 6 Jun 2021 16:53:51 +0000 (18:53 +0200)]
[homematic] Smaller fixes and conversion of properties files to UTF-8 (#10813)
* Prevent possible NPE
Signed-off-by: Martin Herbst <develop@mherbst.de>
* Spotless
Signed-off-by: Martin Herbst <develop@mherbst.de>
* Fixes missing unit information (especially for HmIP devices)
For some HmIP devices the "valueunit" attribute is empty and thus no
default unit type could be derived. Using the data point name solves
this problem (at least for the relevant data points).
Fixes #10533
Signed-off-by: Martin Herbst <develop@mherbst.de>
* Condition result was wrong because of missing brackets
Signed-off-by: Martin Herbst <develop@mherbst.de>
* Regenerated and reorganized descriptions
Signed-off-by: Martin Herbst <develop@mherbst.de>
* Encoding changed to UTF-8 and some smaller text corrections
Signed-off-by: Martin Herbst <develop@mherbst.de>
* Use default value as maximum if is greater than received max value
For some devices the data point definition retrieved from the CCU
contains default values that are higher than the maximum value. In order
to allow the configuration of these config options the allowed maximum
value needs to be set to the default value.
Signed-off-by: Matthew Davies
matthew.davies@skynet.be Signed-off-by: raveydavies <84205523+raveydavies@users.noreply.github.com>
* VENSTAR THERMOSTAT AWAY MODE AFTER INITIAL COMMIT FEEDBACK
This code includes the Away mode of the Venstar thermostat. It is
updated following initial feedback and suggestions on my first version
from @digitaldan.
Signed-off-by: Matthew Davies <matthew.davies@skynet.be> Signed-off-by: raveydavies <84205523+raveydavies@users.noreply.github.com>
* VENSTAR THERMOSTAT BINDING - INCLUDE AWAY MODE
Removed the updateThermostat function, now have updateSettings and
updateControls corresponding to local API URLs.
Signed-off-by: Matthew Davies
<matthew.davies@skynet.be> Signed-off-by: raveydavies <84205523+raveydavies@users.noreply.github.com>
* VENSTAR THERMOSTAT AWAY MODE - Modification updated as per feedback 1
June 2021
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.
Also-by: cedricboon <cedric.boon@hotmail.com> Signed-off-by: Daniel Rosengarten <github@praetorians.be>
Björn Lange [Tue, 25 May 2021 20:06:49 +0000 (22:06 +0200)]
[mielecloud] Initial contribution of the Miele Cloud binding (#9146)
Also-by: Bert Plonus <bert.plonus@miele.com> Also-by: Martin Lepsy <martin.lepsy@miele.com> Also-by: Benjamin Bolte <benjamin.bolte@itemis.de> Signed-off-by: Björn Lange <bjoern.lange@itemis.de>
Thomas Weißschuh [Sun, 23 May 2021 19:08:56 +0000 (21:08 +0200)]
[linuxinput] use correct channelTypeUID for key-press channels (#10742)
Previously there was a mismatch between the UIDs used by the handler and
the one actually registered from the XML-file.
This lead to channels not showing up in the UI.
(See https://github.com/openhab/openhab-webui/issues/406 )
lolodomo [Sun, 23 May 2021 17:48:15 +0000 (19:48 +0200)]
[homeconnect] Let the binding update item state when handling a command (#10749)
To avoid the core framework updating automatically an item state while a
command is sent to this item but its handling by the binding is failing
or ignored
Korbinian Probst [Wed, 19 May 2021 20:18:15 +0000 (22:18 +0200)]
[SenecHome] Catch and ignore malformed JSON (#10657)
* SENEC Home: Add SocketTimeoutException and MalformedJsonException
Signed-off-by: Korbinian Probst <kp.droid.dev@gmail.com>
* SENEC: Revert last commit
Signed-off-by: Korbinian Probst <kp.droid.dev@gmail.com>
* SENEC: Implement a counter that keeps the device online for random errors
Signed-off-by: Korbinian Probst <kp.droid.dev@gmail.com>
* Implement a print of the faulty response
Signed-off-by: Korbinian Probst <kp.droid.dev@gmail.com>
* Improve print of faulty response
Signed-off-by: Korbinian Probst <kp.droid.dev@gmail.com>
* Print all responses for debugging, catch MalformedJsonException explicitly
Signed-off-by: Korbinian Probst <korbinian.probst@gmx.de>
* Add Infor print if JSON is wrong. Catch JsonSyntaxException. Remove errorCounter
Signed-off-by: Korbinian Probst <korbinian.probst@gmx.de>
* Remove most debug code, move remaining messages to trace log level
Signed-off-by: Korbinian Probst <korbinian.probst@gmx.de>
* Bring back catch of MalformedJsonException. Avoid null pointer exception in case response is null.
Signed-off-by: Korbinian Probst <korbinian.probst@gmx.de>
* Collect error to print it in one message
Stephan Brunner [Sun, 9 May 2021 17:27:19 +0000 (19:27 +0200)]
[MongoDB Persistence] Fix error 500 and various improvements (#10584)
* [MongoDB Persistence] Rename connectToDatabase to tryConnectToDatabase.
Currently, the implementation throws a RuntimeException.
This fails horribly in query() and store(), because the exception is never caught and connection reestablishment won't happen.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Fix JavaDoc
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Fix Bundle name
The correct database name is "MongoDB" without a space.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Also check for connection validity in isConnected()
When the connection was established successfully once, and the server goes down (e. g. a restart of the DB server), the connection still seems to be OK.
This would throw an exception later on, which is not caught and connection reestablishment won't happen.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Disconnect from database before reconnecting to database.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Disconnect from database when connection procedure fails.
When, for example, the creation of the index fails (disk full, ...), the connection is still there, but the collection isn't created with it's appropriate indices.
Thus, disconnect when the procedure fails to ensure no database connection remains valid.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Fix logic
Create the shared collection with its indices when collectionPerItem is disabled, not enabled.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Access database via getDatabase()
Preparation for synchronization.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Remove global mongoCollection variable.
This allows to easify implementing necessary multithreading locks.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Codestyle improvements.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Move isConnected-Check into tryConnectToDatabase.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Synchronize all connection handling methods.
Though the MongoDB driver is thread-safe, we still need to synchronize connection establishment/closing/...
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Remove all unnecessary @NonNullByDefault attributes.
The given attributes should not be NotNullByDefault, because some may be null, too.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Remove duplicate logging.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Test the db connection after creating the MongoClient.
The mongo always succeeds in creating the connection.
We have to actually force it to test the connection to try to connect to the server.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Fix date query.
Issues:
- Second should have been getEndDate, not getBeginDate
- Send a Date object as the other version wasn't serializable.
- EndDate would have overridden beginDate.
Fixes #10574
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Add debug log for MongoDB query sent to the server.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Reorder index on collections.
The order (Item, Timestamp) makes much more sense and should be better for performance.
All queries are always done with an item, and the dates are optional.
Also, the database server can now execute a range query for the date.
Existing indices are not dropped for backwards compatibility with other systems analyzing the data.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Add @author JavaDoc as per developer guidelines.
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Improve logging
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
* [MongoDB Persistence] Add @NonNullByDefault