-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[siemenshvac] Initial contribution #14263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 213 commits
Commits
Show all changes
214 commits
Select commit
Hold shift + click to select a range
f60dd67
intial version
lo92fr 17000f7
first working 3.x versions
lo92fr 77c268d
better menu handing
lo92fr 755b570
move to 3.2.0
lo92fr faa0df6
code cleanup, review nullable annotations
lo92fr 780d5b0
some discovery fixes
lo92fr 874d983
fix spotless violations
lo92fr bdf2d7b
review warnings
lo92fr ea5745e
fix pmd errors and exceptions
lo92fr 70dc554
review warnings
lo92fr cc54684
review handling of value updates
lo92fr 98d657a
review logger params
lo92fr 5a30462
review handleCommand code
lo92fr 0d83e53
review initialization and error handling
lo92fr 2b90a2d
apply spotless
lo92fr 22e1243
update resource file to new format
lo92fr e65e7af
add more information during init phase
lo92fr 7996018
fix bad map key
lo92fr 70f493c
review id Handling on handleCommand
lo92fr 3caacec
review logging
lo92fr 9785be7
review authentification
lo92fr a1fa41a
spotless:aply
lo92fr f6e3900
fix logger
lo92fr d640c25
add siemenshvac to parent pom
lo92fr 2aa4313
first pass correction on pull request comments
lo92fr 02b9c52
fix character conversions
lo92fr c54e2a9
add Readme files
lo92fr bf9e646
fix List.of()
lo92fr a453a51
fix other comments
lo92fr ca9ec4f
fix a typo on README.md
lo92fr 43c8267
try to fix pull request build errors !
lo92fr af23bad
fix indentations
lo92fr 8d5692b
fix internationalization files
lo92fr b1ab1b3
fixes for 2nd review
lo92fr 7ab5f1a
spotless:apply
lo92fr 4a588c7
fix typo
lo92fr a6ff40f
better type initialization : only 1 type registered for basic types
lo92fr 7e8cf1e
use channelTypeRegistry for getting type
lo92fr 1fd8aa5
review generation of ChannelType UUID
lo92fr c4a71c1
add binding range basic default type in case of initialization from f…
lo92fr 7f8e63f
add documentation and samples
lo92fr d4a5353
spotless:apply
lo92fr 68fafb5
change log level
lo92fr cfa3eb1
add constraint control from state on numeric before writing values
lo92fr 34c30d4
spotless:apply
lo92fr 7c84e72
remove logs
lo92fr 9348fe6
spotless:apply
lo92fr 2883c73
review write request load
lo92fr f4f30cb
fix enum
lo92fr f76601c
Update bundles/org.openhab.binding.siemenshvac/pom.xml
lo92fr 9ce7efe
First pass on jlaur review
lo92fr 624c27d
running spotless:apply
lo92fr 5ed68a2
remove deprecated call
lo92fr 4b128c2
pass on jlaur review
lo92fr a61dd36
fix pom (jlaur review)
lo92fr 7045d5f
fix bad state handling for Enumeration
lo92fr 32edb71
fix enumeration underlying type
lo92fr f46a6f0
review metadata reading to handle localization more properly and get …
lo92fr 8b46c04
remove comment on cache loading
lo92fr e4845e3
fix bad flow on HTML request
lo92fr 10e043b
add comment about timeout
lo92fr a13c8bb
add Metadata/SiemensHvacMetadataLanguage.java add Metadata/SiemensHva…
lo92fr 2cfec58
review channel type handling :
lo92fr 00067b7
spotless::apply
lo92fr dcd979f
fix build errors
lo92fr 550b571
fix build errors
lo92fr a82ef01
spotless:apply
lo92fr d1b5750
review concurrency on SiemensHvacHandlerImpl
lo92fr 8ef0f56
fix advanced channel handling
lo92fr c16c6dd
fix typo on label
lo92fr 9e37118
remove public on getInternalConfigDescription
lo92fr 3a2432d
remove unnecessary ChannelTypeRegistry
lo92fr e681f88
remove public on addChannelType
lo92fr 4fcefa2
remove unnecessary public
lo92fr 3460285
fix some typo in README.md
lo92fr 81627e7
review some typos in files
lo92fr eb84c90
fix translations and type on thing file
lo92fr 2eb8990
mvn spotless:apply
lo92fr 89663c1
fix package naming conventions: Metadata
lo92fr 8ace723
review coding style rules
lo92fr 3d58887
review coding rules
lo92fr 8acf42e
fix coding rules
lo92fr 30309ef
Delete bundles/org.openhab.binding.siemenshvac/src/main/java/org/open…
lo92fr a1a8537
fix typo
lo92fr 01ccf99
fix Diagram path
lo92fr 49aac2e
replace loop by Normalizer to sanetize UID
lo92fr 7bb99ef
fix missing filter in UidUtils
lo92fr 239e2d2
jlaur review : remove duplicate entry
lo92fr cd5c35f
jlaur review : remove @Disabled annotation on test
lo92fr ebf1bff
remove extra public keywords
lo92fr ae336f6
review clinique : commit some missing fixes
lo92fr c715c7b
fix typo in pom.xml
lo92fr 3fdd6e6
remove empty line on SiemensHvacHandlerImpl.java
lo92fr 79d6b9d
jlaur review : fix two null warning on SiemensHvacMetadataRegistryImp…
lo92fr c036cb4
fix addon.xml headers
lo92fr 09066c2
fix another nullable warning on MetdataMenu
lo92fr f2b81df
fix account handling when we are using end user account to connect to…
lo92fr 10ffbcb
fix possible invalid '+' characters in id
lo92fr efd2a06
add some verification mechanism on baseUrl format
lo92fr 4d47e6c
mvn spotless:apply
lo92fr 5f174ee
fix error on handling session expiration
lo92fr 62308d7
Complete review of binding code :
lo92fr b58e7fe
spotless:apply
lo92fr 46584ca
fix error in build
lo92fr 5b6eda0
fix some checkstyles warnings
lo92fr 5b7564a
add a stale request verification mechanism
lo92fr 0b8a97a
fix possible specific value return by gateway for DecimalType when no…
lo92fr eb442f4
add build date to log to see which version is running
lo92fr fe3ad67
review debuging info on StaleRequest checker
lo92fr 19e5db2
move readChannel loging to prevent log flood
lo92fr 079f37b
rename initialization methods
lo92fr b6fb4fb
review timeout handling
lo92fr 2523aa5
add invalidation methods on provider to enable reinit of the addon
lo92fr fff9ba8
update pom version
lo92fr fd3b6bf
fix error on stale request handling
lo92fr a1c989a
fix README.md as request by @JLaur
lo92fr 6507097
fix bad author in comments
lo92fr 1d58cf5
fix homematic reference in comments !
lo92fr 83ff9a8
fix exception handling
lo92fr 715f9cf
fix duration intermediate variable
lo92fr 8f3ab58
fix some logging statement from info to trace
lo92fr 084b7b4
fix some typo
lo92fr 045d98a
fix initializer
lo92fr 0c5efd8
fix some status update
lo92fr 8390762
remove some unneed code
lo92fr ca46b78
fix map intialization
lo92fr f60e35d
fix location on readme
lo92fr 54d97ac
fix comment
lo92fr fb21318
fix header comments !
lo92fr 7b49e4d
fix some compilations errors
lo92fr 5c8cd17
remove unused method displayRequestStats()
lo92fr 5bf50c3
fix exception handling
lo92fr 5378d6f
review exception logging
lo92fr 31f34b0
removed unused ovveride
lo92fr f8d9f4a
remove password logging in case of exception
lo92fr 20e8373
fix concurrent hashmap access
lo92fr 5c888a5
mvn spotless:apply
lo92fr 3904aba
fix unbalanced locking request
lo92fr e293f61
review error handling on gateway after new bug reporting from Vasek:
lo92fr bb240a3
fix logger.debug clause
lo92fr 166bfce
fix logger.debug clause
lo92fr 27c0aae
fix some checkStyle warnings
lo92fr 1f92ceb
capitalized Hvac
lo92fr ae6c879
review type conversion handling between siemens and openhab type (WIP)
lo92fr 8c634a6
review type conversion handling between siemens and openhab type (WIP)
lo92fr 70c8858
review type conversion handling between siemens and openhab type
lo92fr 73f058c
review type conversion handling between siemens and openhab type
lo92fr b6c9f0e
review type conversion handling between siemens and openhab type
lo92fr 027af65
fix contact handling (WIP)
lo92fr 5de868a
fix contact handling (WIP)
lo92fr 1647bae
fix contact handling (WIP)
lo92fr 39d4d86
fix contact handling (WIP)
lo92fr dad40e0
fix state description on Radiobutton
lo92fr 0613800
fix unregisterRequestHandler to unregister handler only once
lo92fr 61cd02b
div fixes for last jlaur review
lo92fr 101f6da
review checkstyle warnings
lo92fr d9a8742
remove normalizer
lo92fr e5d6b53
put back normalizer because unit testing fail because of accent handling
lo92fr 1da0fd7
put back normalizer because unit testing fail because of accent handling
lo92fr d007a84
fixes for last jlaur review
lo92fr a237d99
fix CI error
lo92fr 82eb3bf
spotless:apply
lo92fr a2fc00b
fix CI error
lo92fr 74e5340
fix CI errors
lo92fr 9fd33f8
fix CI errors
lo92fr 6fa6aae
add autodiscovering feature
lo92fr 0fbec96
spotless:apply
lo92fr 0c3c6a7
div fixes based on last JLaur review
lo92fr bcdfa37
fix unit test
lo92fr 5c1d1a6
fix code violations
lo92fr 907373f
review upnp discovery
lo92fr b0957b7
fix autodiscovery
lo92fr 088cf37
change json cache file location
lo92fr defe62a
first pass on May 15 review from Jacob
lo92fr 06ce157
fix some imprecision on gateway model handle by the addon
lo92fr 7424dee
Add support for UoM
lo92fr 76d5caa
review style checker warnings
lo92fr 9b52226
fix typo
lo92fr a5455ef
few typo fixes on last jlaur review
lo92fr 8f78df2
generalized bridge naming
lo92fr 6bb1165
spotless:²apply
lo92fr 5dc4d08
progress on last jlaur review
lo92fr c6a437f
review binding addon.xml
lo92fr 6c6d2a0
fix unit test
lo92fr aa63fa1
fix checkstyle errors
lo92fr 4fe620c
progress on last jlaur review
lo92fr 2242d69
remove specific device bridge
lo92fr bae833f
remove unless samples
lo92fr 04a45e8
remove unless samples
lo92fr ccc662e
try to implements TemperatureChangeRate (WIP)
lo92fr 364b5b0
try to implements TemperatureChangeRate (WIP)
lo92fr a14c669
try to implements TemperatureChangeRate (WIP)
lo92fr 57269e1
spotless:apply
lo92fr 1ec0ff9
fix translation on units
lo92fr 8dd9f34
move thirdparty folder
lo92fr f9bd544
modify pom for 3rd party
lo92fr 38a22ab
fix error in pom.xml
lo92fr 740d821
spotless:apply
lo92fr 7469706
continue on last @jlaur review
lo92fr 9567b69
fix error message on gateway init
lo92fr c09798c
reintroduce serial in ThingUID when using discovery
lo92fr 818083c
add the serialNumber to the ozw thingUid
lo92fr 5fbc435
review samples definition in README.md
lo92fr 91c9848
handle °C*min as simple number for now
lo92fr 1440993
remove unuseful logger
lo92fr bcaaad5
fix alignement in Reamdme.md
lo92fr 023bcfe
fix 3rdparty path
lo92fr 6a765f1
fix uid convention
lo92fr d4308a6
move TimeOfDayTypeConverter to Number:Time representation
lo92fr 4494551
remove useless code in createThing
lo92fr 06b7437
spotless:apply
lo92fr 5366b24
spotless:apply
lo92fr 956b716
some fixes from last @Jlaur review
lo92fr 5ab5bb4
fix a few readme.md issue and others
lo92fr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| This content is produced and maintained by the openHAB project. | ||
|
|
||
| * Project home: https://www.openhab.org | ||
|
|
||
| == Declared Project Licenses | ||
|
|
||
| This program and the accompanying materials are made available under the terms | ||
| of the Eclipse Public License 2.0 which is available at | ||
| https://www.eclipse.org/legal/epl-2.0/. | ||
|
|
||
| == Source Code | ||
|
|
||
| https://github.com/openhab/openhab-addons | ||
|
|
||
| == Third-party Content | ||
|
|
||
| RuntimeTypeAdapterFactory | ||
| * License: Apache License, Version 2.0 | ||
| * Project: https://github.com/google/gson | ||
| * Source: https://github.com/google/gson/blob/main/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,99 @@ | ||
| # SiemensHVAC Binding | ||
|
|
||
| This binding provides support for the Siemens HVAC controller ecosystem, and the Web Gateway interface OZW672. | ||
| A typical system is composed of: | ||
|
|
||
|  | ||
|
|
||
| There's a lot of different HVAC controllers depending on model in lot of different PAC constructors. | ||
| Siemens RVS41.813/327 inside a Atlantic Hybrid Duo was used for the development, and is fully supported and tested. | ||
|
|
||
jlaur marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Siemens have a complete set of controller references under the name "Siemens Albatros". | ||
| Here is a picture of such device. | ||
| You can also find this device in other types of heating systems: boiler or solar based. | ||
|
|
||
|  | ||
|
|
||
| You will find some information about the OZW672.01 gateway on the Siemens web site: | ||
|
|
||
| [OZW 672 Page](https://hit.sbt.siemens.com/RWD/app.aspx?rc=FR&lang=fr&module=Catalog&action=ShowProduct&key=BPZ:OZW672.01) | ||
|
|
||
| With this binding, you will be able to: | ||
|
|
||
jlaur marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - Consult the different parameters of your system, like temperature, current heating mode, water temperature, and many more. | ||
| - Modify the functioning mode of your device: temperature set point, heating mode, and others. | ||
|
|
||
| OZW672 gateway support many different languages (about 16). | ||
jlaur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| The binding should work ok with all language choice, but is currently test more thoroughly for French and English language. | ||
jlaur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| If you use other language, and find some issues, you can report them on the OpenHab forum. | ||
jlaur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
jlaur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ## Discovery | ||
|
|
||
| Discovery of Gateway can be done using UPnP. | ||
| Just switch off/on your gateway to make it annonce itself on the network. | ||
| The gateway should appear in the Inbox a few minutes after. | ||
| Be aware what you will have to modify the password in Gateway parameters just after the discovery to make it work properly. | ||
| Be also aware that first initialization is a little long because the binding needs to read all the metadata from the device. | ||
|
|
||
| Currently test was done with the OZW672.x series. | ||
| No test was conducted using the OZW772.x series, the code will currently not handle initialization of an OZW772 gateway. | ||
| You can request support in the community forum, if you have the gateway model and want it to be supported. | ||
|
|
||
jlaur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| Discovery of HVAC device inside your PAC (controller of type RVS...) have to be done through the Scan button inside the binding. | ||
| Go to the Thing page, click on the "+" button, select the SiemensHVAC binding, and then click Scan. | ||
| Your device should appear on the page after a few seconds. | ||
| Only test in real condition with RVS41.813/327 have beend done, but it should work with all other type as the api interface is standard. | ||
|
|
||
jlaur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Bridge Configuration | ||
|
|
||
| Parameter | Required | Default | Description | ||
| ----------------|----------------|----------------|------------------ | ||
| baseUrl | yes | | The address of the OZW672 devices | ||
| userName | yes | Administrator | The user name to log into the OZW672 | ||
| userPass | yes | | The user password to log into the OZW672 | ||
|
|
||
| ## Channels | ||
|
|
||
| Channels are auto-discovered, you will find them on the RVS things. | ||
| They are organized the same way as the LCD screen of your PAC device, by top level menu functionality, and sub-functionalities. | ||
| Each channel is strongly typed, so for example, for heating mode, openHAB will provide you with a list of choices supported by the device. | ||
|
|
||
| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced | ||
| --------------------------------|---------------------------------------------------------------------------------------------------|-------------------------------|----------|-------------------------|-----------|---------- | ||
| 1724#1725-optgmode-hc1 | Set Operating mode heat circuit 1 (`Automatic`, `Comfort`, `Reduced`, `Protection`) | operating-mode-hc | | | R/W | true | ||
| 1724#1726-roomtemp-comfsetp-hc1 | Romm temperature comfort setpoint HC1 | room-temp-comfort-setpoint-hc | | | R/W | true | ||
|
|
||
jlaur marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| ## Full Example | ||
|
|
||
| Things file `.things` | ||
|
|
||
| ```java | ||
| Bridge siemenshvac:ozw:ozw672_FF00F445 "Ozw672" [ baseUrl="https://192.168.254.42/", userName="Administrator", userPassword="mypass" ] | ||
| { | ||
| Thing rvs41-813-327 00770000756A "RVS41.813/327" [ ] | ||
| { | ||
| Type room-temp-comfort-setpoint-hc : testChannelTemperature "TestChannelTemperature" [ id="1726" ] | ||
| Type operating-mode-hc : testChannelCC1 "TestChannelCC1" [ id="1725" ] | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
|
|
||
| Items file `.items` | ||
|
|
||
| ```java | ||
| Contact Boiler_State_Pump_HWSb "HWS Pump State [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2259-ppechargeecs" } | ||
| Number Boiler_State_HWS "HWS State [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2032#2035-etat-ecs" } | ||
| Number:Temperature Flow_Temperature_Real "Flow Temparature Real [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2248-valreelletempdep-cc1" } | ||
| Number:Temperature Flow_Temperature_Setpoint "Flow Temperature Setpoint [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2249-constdepresultcc1" } | ||
| Number Hour_fct_HWS "HWS Hour function" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2263-heuresfoncpompeecs" } | ||
| Number Nb_Start_HWS "HWS Number of start [%.1f]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2266-comptdemarresel-ecs" } | ||
| Number:Temperature Thermostat_Temperature "Thermostat tempeature [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2246-tambact-cc1" } | ||
| Number:Temperature Thermostat_Setpoint "Thermostat setpoint [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:1724#1726-consconfort-ta-cc1" } | ||
| Number Heat_Mode "Heat mode [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:1724#1725-regime-cc1" } | ||
|
|
||
| Number:Temperature Thermostat_Setpoint_bis "Temperature [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:testChannelTemperature " } | ||
| Number Heat_Mode_bis "Heat mode [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:testChannelCC1" } | ||
|
|
||
| ``` | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
|
|
||
| <modelVersion>4.0.0</modelVersion> | ||
|
|
||
| <parent> | ||
| <groupId>org.openhab.addons.bundles</groupId> | ||
| <artifactId>org.openhab.addons.reactor.bundles</artifactId> | ||
| <version>4.2.0-SNAPSHOT</version> | ||
| </parent> | ||
|
|
||
| <artifactId>org.openhab.binding.siemenshvac</artifactId> | ||
|
|
||
| <name>openHAB Add-ons :: Bundles :: SiemensHvac Binding</name> | ||
|
|
||
| <build> | ||
| <plugins> | ||
| <plugin> | ||
| <groupId>org.codehaus.mojo</groupId> | ||
| <artifactId>build-helper-maven-plugin</artifactId> | ||
| <executions> | ||
| <execution> | ||
| <goals> | ||
| <goal>add-source</goal> | ||
| </goals> | ||
| <phase>generate-sources</phase> | ||
| <configuration> | ||
| <sources> | ||
| <source>src/3rdparty/java</source> | ||
| </sources> | ||
| </configuration> | ||
| </execution> | ||
| </executions> | ||
| </plugin> | ||
| </plugins> | ||
| </build> | ||
| </project> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.