* Migrate start/finish channels to full DateTime channels
* Unmark start and duration as advanced channels
* Add end channel
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
After upgrading mysql-connector to 8.0.30 this exception was thrown: class java.time.LocalDateTime cannot be cast to class java.sql.Timestamp
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix thing offline on invalid command
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Rename exception
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Go back to last thing status after temporary disruptions
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Increase call frequency after device being unreachable
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Optimize API calls for reduced load
* Add position tracking (on map)
* Provide faster updates when active
* Optimize state update after triggering commands
* Clean up duration variables
* Add initial test coverage for DeviceStatus
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Move test providers to dedicated folder
* Simplify resource loading
* Clarify what is being tested
* Extract online communication test to separate class
* Fix SAT findings
* Rename variable to comply with naming convention
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Refresh cutting times right after next planned cutting
* Cancel cutting time future unconditionally
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix communication error when no planned next cutting
* Provide targeted handling of missing cutting times
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Allow hostname as gateway network address
* Document configuration parameters for things
* Add message for bridge communication error
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix multiple authentications during initialization
* Fix cutting times being fetched twice during initialization
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Add missing specialized text for unreachable device
* Document IndegoUnreachableException on relevant paths
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix auto-update policy for stateless channel
* Reflect appliance state in switch channel state
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix compiler warning
* Add basic test coverage for DataItem deserialization
* Add full prefixes to attributes variables
* Add missing newlines at end of test payload files
* Add full prefix to attributes variable
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Treat HDPowerViewWebTargets as non-null since initialized by initialize()
* Simplify maintenance period logic slightly
* Improve response logging
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Add support for localization of textualstate texts
* Refactor state texts to eliminate redundancy
Fixes#12941
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Introduce algorithm for preventing excessive currentPower updates
* Increase calculation accuracy
* Rename currentPowerAccurate to currentPowerRaw
* Remove duplicated line
* Use interface when declaring double ended queue
* Reformat README to one sentence per line
* Rename constants for consistency and readability
Fixes#12460
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Refactor to use framework's Jetty HTTP client
* Do not try to parse HTML as JSON on failed HTTP calls
* Improve handler initialization log messages
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Update bridge status to UNKNOWN before scheduling polling job
* Reduced error log levels to warning
* Validate configuration and leave initialize() with status UNKNOWN
* Extract JSON-RPC handling to separate class
* Use already stored applianceId
* Keep listeners in Set to eliminate duplicates and improve performance
* Reduce access levels for variables exposed to subclasses unneededly
* Initialize translation provider with default language in constructor to avoid nullness
* Divide listener interface into two: discovery and appliance status
* Optimize communication between bridge and handlers
* Fix thing status transitions and support gone appliances
* Do not check/schedule jobs for each listener registration
* Optimize listener registration by using cached appliances
* Optimize state/property updates and reduce logging level for properties
* Fix concurrency issue during handler initialization
* Simplify online/offline transitions
* Use cached appliances for discovery listener callback
* Avoid unneeded call every 15 seconds receiving response with ~5.5 KB payload
* Fix devices being removed after failed RPC calls
* Fix method parameter descriptions
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix status transitions
Fixes#12415
* Fix integration tests
* Fix missing status update for some devices after HTTP call
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Extract thing descriptions into separate files
* Add missing channel categories
* Add semantic tags for temperature and humidity
* Fix typo
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Consolidate service subscriptions in base class.
* Remove unsynchronized and unneeded cache of subscriptions.
* Do not unregister participant when removing subscription.
* Fix status wrongly set to ONLINE when exception is thrown.
* Refactor error handling for WemoHttpCall.
* Adjust log level for communication errors.
* Add automatic subscription renewal.
* Fix more ONLINE/OFFLINE status transition issues.
* Adjust log level when getWemoURL fails because device is offline.
* Remove redundant logging.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Extract getHost() and getUDN() to common handler base class.
* Delete AbstractWemoHandler as it serves no purpose.
* Extract isUpnpDeviceRegistered() to base class.
* Fix typo.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Extract dynamic channel creation to separate classes.
* Avoid double list allocations.
* Add test coverage for scenarios with no channels built.
* Extract common builder stuff to super class.
* Fix grammar.
* Reduce constructor access modifiers.
* Removed unneeded this keyword for protected method.
* Fix null annotation issues.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Add support for calibrating a shade.
Fixes#11767
* Fix startup problems by decoupling capabilities cache from updateSoftProperties.
* Minor refactoring of capabilities and shade id handling.
* Dispose faster/safer by killing any remaining tasks.
* Set shade thing status to UNKNOWN until we receive any data for shade.
* Fix position update glitch after setting position.
* Remove unneeded catch after shade id refactoring.
* Document return values in Javadoc.
* Avoid logging InterruptedException during dispose.
* Add calibration example item.
* Reduce nesting.
* Add myself as reviewer for binding.
* Add Andrew Fiddian-Green as reviewer for binding.
* Handle JsonParseException.
* Fix alphabetic order.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix SAT warnings about missing @NonNullByDefault.
* Move part of firmware JSON response validation to HDPowerViewWebTargets.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Add support for enabling/disabling automations.
Fixes#11516
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix class description.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Document automation channel and channel groups.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Update scene example in documentation.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Consolidate method for getting channel map.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Extract channel updating from data fetching methods.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Draft implementation of better automation description.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Simplify and optimize building weekday string.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Further simplify building weekday string.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Update scheduled event channels when modified.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Update scene channels when modified.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Update scene group channels when modified.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix cache synchronization during initialization.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Reduced code duplication.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Shorten time formatting.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Danish translations for dynamic channels.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Simplify, optimize and fix dynamic channel creation.
Channel order is now preserved when updating an existing channel.
Scenes and scene collection are sorted correctly.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Provide backwards compatibility for deprecated channels.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Document purpose of createDeprecatedSceneChannels.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Cleaned up poll method for improved readability.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
* Fix potential race condition when initialize() is called while updating channels.
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>