From 80bd5bfcb37a3f3744a6e4752749f85ab106324b Mon Sep 17 00:00:00 2001 From: lo92fr Date: Sat, 29 Jun 2024 12:25:00 +0200 Subject: [PATCH] [siemenshvac] Initial contribution (#14263) Signed-off-by: Laurent ARNAL --- bom/openhab-addons/pom.xml | 5 + .../org.openhab.binding.siemenshvac/NOTICE | 20 + .../org.openhab.binding.siemenshvac/README.md | 98 ++ .../doc/Albatros.jpg | Bin 0 -> 46069 bytes .../doc/Diagram.png | Bin 0 -> 181348 bytes .../org.openhab.binding.siemenshvac/pom.xml | 38 + .../RuntimeTypeAdapterFactory.java | 465 ++++++ .../src/main/feature/feature.xml | 25 + .../SiemensHvacBindingConstants.java | 62 + .../converter/ConverterException.java | 29 + .../internal/converter/ConverterFactory.java | 69 + .../converter/ConverterTypeException.java | 29 + .../internal/converter/TypeConverter.java | 62 + .../converter/type/AbstractTypeConverter.java | 145 ++ .../converter/type/CalendarTypeConverter.java | 77 + .../converter/type/CheckboxTypeConverter.java | 70 + .../converter/type/DateTimeTypeConverter.java | 119 ++ .../converter/type/EnumTypeConverter.java | 76 + .../converter/type/NumericTypeConverter.java | 250 ++++ .../converter/type/RadioTypeConverter.java | 125 ++ .../type/SchedulerTypeConverter.java | 77 + .../converter/type/StringTypeConverter.java | 82 ++ .../type/TimeOfDayTypeConverter.java | 121 ++ .../SiemenesHvacDiscoveryParticipant.java | 111 ++ .../SiemensHvacDeviceDiscoveryService.java | 162 ++ .../factory/SiemensHvacHandlerFactory.java | 100 ++ .../handler/SiemensHvacBridgeConfig.java | 27 + .../SiemensHvacBridgeThingHandler.java | 213 +++ .../handler/SiemensHvacHandlerImpl.java | 451 ++++++ .../metadata/SiemensHvacMetadata.java | 109 ++ .../SiemensHvacMetadataDataPoint.java | 236 +++ .../metadata/SiemensHvacMetadataDevice.java | 103 ++ .../metadata/SiemensHvacMetadataLanguage.java | 64 + .../metadata/SiemensHvacMetadataMenu.java | 49 + .../SiemensHvacMetadataPointChild.java | 69 + .../metadata/SiemensHvacMetadataRegistry.java | 60 + .../SiemensHvacMetadataRegistryImpl.java | 1301 +++++++++++++++++ .../metadata/SiemensHvacMetadataUser.java | 64 + .../internal/network/SiemensHvacCallback.java | 29 + .../network/SiemensHvacConnector.java | 71 + .../network/SiemensHvacConnectorImpl.java | 669 +++++++++ .../network/SiemensHvacRequestHandler.java | 107 ++ .../network/SiemensHvacRequestListener.java | 247 ++++ .../SiemensHvacChannelGroupTypeProvider.java | 41 + ...emensHvacChannelGroupTypeProviderImpl.java | 76 + .../type/SiemensHvacChannelTypeProvider.java | 47 + .../SiemensHvacChannelTypeProviderImpl.java | 76 + .../SiemensHvacConfigDescriptionProvider.java | 57 + ...mensHvacConfigDescriptionProviderImpl.java | 69 + .../internal/type/SiemensHvacException.java | 36 + .../type/SiemensHvacThingTypeProvider.java | 50 + .../SiemensHvacThingTypeProviderImpl.java | 66 + .../siemenshvac/internal/type/UidUtils.java | 165 +++ .../src/main/resources/OH-INF/addon/addon.xml | 24 + .../OH-INF/i18n/siemenshvac.properties | 26 + .../src/main/resources/OH-INF/thing/ozw.xml | 35 + .../internal/type/UidUtilsTest.java | 32 + bundles/pom.xml | 1 + 58 files changed, 7087 insertions(+) create mode 100644 bundles/org.openhab.binding.siemenshvac/NOTICE create mode 100644 bundles/org.openhab.binding.siemenshvac/README.md create mode 100644 bundles/org.openhab.binding.siemenshvac/doc/Albatros.jpg create mode 100644 bundles/org.openhab.binding.siemenshvac/doc/Diagram.png create mode 100644 bundles/org.openhab.binding.siemenshvac/pom.xml create mode 100644 bundles/org.openhab.binding.siemenshvac/src/3rdparty/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/feature/feature.xml create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/constants/SiemensHvacBindingConstants.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterException.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterFactory.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterTypeException.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/TypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/AbstractTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CalendarTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CheckboxTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/DateTimeTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/EnumTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/NumericTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/RadioTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/SchedulerTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/StringTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/TimeOfDayTypeConverter.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/discovery/SiemenesHvacDiscoveryParticipant.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/discovery/SiemensHvacDeviceDiscoveryService.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/factory/SiemensHvacHandlerFactory.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/handler/SiemensHvacBridgeConfig.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/handler/SiemensHvacBridgeThingHandler.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/handler/SiemensHvacHandlerImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadata.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataDataPoint.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataDevice.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataLanguage.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataMenu.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataPointChild.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataRegistry.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataRegistryImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/metadata/SiemensHvacMetadataUser.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/network/SiemensHvacCallback.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/network/SiemensHvacConnector.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/network/SiemensHvacConnectorImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/network/SiemensHvacRequestHandler.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/network/SiemensHvacRequestListener.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacChannelGroupTypeProvider.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacChannelGroupTypeProviderImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacChannelTypeProvider.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacChannelTypeProviderImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacConfigDescriptionProvider.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacConfigDescriptionProviderImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacException.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacThingTypeProvider.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/SiemensHvacThingTypeProviderImpl.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/type/UidUtils.java create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/resources/OH-INF/addon/addon.xml create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/resources/OH-INF/i18n/siemenshvac.properties create mode 100644 bundles/org.openhab.binding.siemenshvac/src/main/resources/OH-INF/thing/ozw.xml create mode 100644 bundles/org.openhab.binding.siemenshvac/src/test/java/org/openhab/binding/siemenshvac/internal/type/UidUtilsTest.java diff --git a/bom/openhab-addons/pom.xml b/bom/openhab-addons/pom.xml index 631c9f7a82f..bc27b7d2f8f 100644 --- a/bom/openhab-addons/pom.xml +++ b/bom/openhab-addons/pom.xml @@ -1626,6 +1626,11 @@ org.openhab.binding.shelly ${project.version} + + org.openhab.addons.bundles + org.openhab.binding.siemenshvac + ${project.version} + org.openhab.addons.bundles org.openhab.binding.siemensrds diff --git a/bundles/org.openhab.binding.siemenshvac/NOTICE b/bundles/org.openhab.binding.siemenshvac/NOTICE new file mode 100644 index 00000000000..451e1f04ab2 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/NOTICE @@ -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 diff --git a/bundles/org.openhab.binding.siemenshvac/README.md b/bundles/org.openhab.binding.siemenshvac/README.md new file mode 100644 index 00000000000..43bb340914e --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/README.md @@ -0,0 +1,98 @@ +# SiemensHVAC Binding + +This binding provides support for the Siemens HVAC controller ecosystem, and the Web Gateway interface OZW672. +A typical system is composed of: + +![Diagram](doc/Diagram.png) + +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. + +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. + +![](doc/Albatros.jpg) + +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: + +- 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. + +The OZW672 gateway supports many different languages (about 16). +The binding should work with all language choices, but is currently tested more thoroughly with French and English as configured language. +If you use another language, and find some issues, you can report them on the openHAB forum. + +## 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. + +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 conditions with RVS41.813/327 have been done, but it should work with all other types as the API interface is standard. + +## 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 + +## 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" } + +``` diff --git a/bundles/org.openhab.binding.siemenshvac/doc/Albatros.jpg b/bundles/org.openhab.binding.siemenshvac/doc/Albatros.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fc744432f7fec58d1635b87c111baeac6299722 GIT binary patch literal 46069 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 H(VzbYG7R17 literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.siemenshvac/doc/Diagram.png b/bundles/org.openhab.binding.siemenshvac/doc/Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..300cc2f85838738d1915c87989e2724fa6460279 GIT binary patch literal 181348 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
gqnD1Dw~Uc(pE`A< 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�>gmAJHK4^MFDoc);rKKBdO6l5@ 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

(3FL2B7QdzT03V{D=1~eOQ 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 literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.siemenshvac/pom.xml b/bundles/org.openhab.binding.siemenshvac/pom.xml new file mode 100644 index 00000000000..cae4551ca5d --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/pom.xml @@ -0,0 +1,38 @@ + + + + 4.0.0 + + + org.openhab.addons.bundles + org.openhab.addons.reactor.bundles + 4.2.0-SNAPSHOT + + + org.openhab.binding.siemenshvac + + openHAB Add-ons :: Bundles :: SiemensHvac Binding + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + + add-source + + generate-sources + + + src/3rdparty/java + + + + + + + + diff --git a/bundles/org.openhab.binding.siemenshvac/src/3rdparty/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java b/bundles/org.openhab.binding.siemenshvac/src/3rdparty/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java new file mode 100644 index 00000000000..a716848fb74 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/3rdparty/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java @@ -0,0 +1,465 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Copied from + * https://raw.githubusercontent.com/google/gson/master/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java + * and repackaged here with additional content from + * com.google.gson.internal.{Streams,TypeAdapters,LazilyParsedNumber} + * to avoid using the internal package. + */ +package com.google.gson.typeadapters; + +import java.io.EOFException; +import java.io.IOException; +import java.io.ObjectStreamException; +import java.math.BigDecimal; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonIOException; +import com.google.gson.JsonNull; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSyntaxException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.stream.MalformedJsonException; + +/** + * Adapts values whose runtime type may differ from their declaration type. This + * is necessary when a field's type is not the same type that GSON should create + * when deserializing that field. For example, consider these types: + * + *

+ * {
+ *     @code
+ *     abstract class Shape {
+ *         int x;
+ *         int y;
+ *     }
+ *     class Circle extends Shape { 
+ *         int radius;
+ *     }
+ *     class Rectangle extends Shape {
+ *         int width;
+ *         int height;
+ *     }
+ *     class Diamond extends Shape {
+ *         int width;
+ *         int height;
+ *     }
+ *     class Drawing {
+ *         Shape bottomShape;
+ *         Shape topShape;
+ *     }
+ * }
+ * 
+ *

+ * Without additional type information, the serialized JSON is ambiguous. Is + * the bottom shape in this drawing a rectangle or a diamond? + * + *

+ *    {@code
+ *   {
+ *     "bottomShape": {
+ *       "width": 10,
+ *       "height": 5,
+ *       "x": 0,
+ *       "y": 0
+ *     },
+ *     "topShape": {
+ *       "radius": 2,
+ *       "x": 4,
+ *       "y": 1
+ *     }
+ *   }}
+ * 
+ * + * This class addresses this problem by adding type information to the + * serialized JSON and honoring that type information when the JSON is + * deserialized: + * + *
+ *    {@code
+ *   {
+ *     "bottomShape": {
+ *       "type": "Diamond",
+ *       "width": 10,
+ *       "height": 5,
+ *       "x": 0,
+ *       "y": 0
+ *     },
+ *     "topShape": {
+ *       "type": "Circle",
+ *       "radius": 2,
+ *       "x": 4,
+ *       "y": 1
+ *     }
+ *   }}
+ * 
+ * + * Both the type field name ({@code "type"}) and the type labels ({@code + * "Rectangle"}) are configurable. + * + *

Registering Types

+ * Create a {@code RuntimeTypeAdapterFactory} by passing the base type and type field + * name to the {@link #of} factory method. If you don't supply an explicit type + * field name, {@code "type"} will be used. + * + *
+ * {
+ *     @code
+ *     RuntimeTypeAdapterFactory shapeAdapterFactory = RuntimeTypeAdapterFactory.of(Shape.class, "type");
+ * }
+ * 
+ * + * Next register all of your subtypes. Every subtype must be explicitly + * registered. This protects your application from injection attacks. If you + * don't supply an explicit type label, the type's simple name will be used. + * + *
+ *    {@code
+ * shapeAdapter.registerSubtype(Rectangle.class, "Rectangle");
+ * shapeAdapter.registerSubtype(Circle.class, "Circle");
+ * shapeAdapter.registerSubtype(Diamond.class, "Diamond");
+ * }
+ * 
+ * + * Finally, register the type adapter factory in your application's GSON builder: + * + *
+ * {
+ *     @code
+ *     Gson gson = new GsonBuilder().registerTypeAdapterFactory(shapeAdapterFactory).create();
+ * }
+ * 
+ * + * Like {@code GsonBuilder}, this API supports chaining: + * + *
+ * {
+ *     @code
+ *     RuntimeTypeAdapterFactory shapeAdapterFactory = RuntimeTypeAdapterFactory.of(Shape.class)
+ *             .registerSubtype(Rectangle.class).registerSubtype(Circle.class).registerSubtype(Diamond.class);
+ * }
+ * 
+ */ +/** + * @author Jesse Wilson (swankjesse) - Initial contribution + */ +@NonNullByDefault +public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { + private final Class baseType; + private final String typeFieldName; + private final Map> labelToSubtype = new LinkedHashMap>(); + private final Map, String> subtypeToLabel = new LinkedHashMap, String>(); + + private RuntimeTypeAdapterFactory(Class baseType, String typeFieldName) { + this.baseType = baseType; + this.typeFieldName = typeFieldName; + } + + /** + * Creates a new runtime type adapter using for {@code baseType} using {@code + * typeFieldName} as the type field name. Type field names are case sensitive. + */ + public static RuntimeTypeAdapterFactory of(Class baseType, String typeFieldName) { + return new RuntimeTypeAdapterFactory(baseType, typeFieldName); + } + + /** + * Creates a new runtime type adapter for {@code baseType} using {@code "type"} as + * the type field name. + */ + public static RuntimeTypeAdapterFactory of(Class baseType) { + return new RuntimeTypeAdapterFactory(baseType, "type"); + } + + /** + * Registers {@code type} identified by {@code label}. Labels are case + * sensitive. + * + * @throws IllegalArgumentException if either {@code type} or {@code label} + * have already been registered on this type adapter. + */ + public RuntimeTypeAdapterFactory registerSubtype(Class type, String label) { + if (subtypeToLabel.containsKey(type) || labelToSubtype.containsKey(label)) { + throw new IllegalArgumentException("types and labels must be unique"); + } + labelToSubtype.put(label, type); + subtypeToLabel.put(type, label); + return this; + } + + /** + * Registers {@code type} identified by its {@link Class#getSimpleName simple + * name}. Labels are case sensitive. + * + * @throws IllegalArgumentException if either {@code type} or its simple name + * have already been registered on this type adapter. + */ + public RuntimeTypeAdapterFactory registerSubtype(Class type) { + return registerSubtype(type, type.getSimpleName()); + } + + @Override + public @Nullable TypeAdapter create(@Nullable Gson gson, @Nullable TypeToken type) { + if (type == null || type.getRawType() != baseType) { + return null; + } + if (gson == null) { + return null; + } + + final Map> labelToDelegate = new LinkedHashMap>(); + final Map, TypeAdapter> subtypeToDelegate = new LinkedHashMap, TypeAdapter>(); + for (Map.Entry> entry : labelToSubtype.entrySet()) { + TypeAdapter delegate = gson.getDelegateAdapter(this, TypeToken.get(entry.getValue())); + labelToDelegate.put(entry.getKey(), delegate); + subtypeToDelegate.put(entry.getValue(), delegate); + } + + return new TypeAdapter() { + @Override + public @Nullable R read(JsonReader in) throws IOException { + JsonElement jsonElement = RuntimeTypeAdapterFactory.parse(in); + if (jsonElement != null) { + JsonElement labelJsonElement = jsonElement.getAsJsonObject().remove(typeFieldName); + if (labelJsonElement == null) { + throw new JsonParseException("cannot deserialize " + baseType + + " because it does not define a field named " + typeFieldName); + } + String label = labelJsonElement.getAsString(); + @SuppressWarnings("unchecked") // registration requires that subtype extends T + TypeAdapter delegate = (TypeAdapter) labelToDelegate.get(label); + if (delegate == null) { + throw new JsonParseException("cannot deserialize " + baseType + " subtype named " + label + + "; did you forget to register a subtype?"); + } + return delegate.fromJsonTree(jsonElement); + } else { + throw new JsonParseException("cannot deserialize " + baseType + " because jsonElement is null"); + } + } + + @Override + public void write(JsonWriter out, @Nullable R value) throws IOException { + if (value == null) { + return; + } + + Class srcType = value.getClass(); + String label = subtypeToLabel.get(srcType); + @SuppressWarnings("unchecked") // registration requires that subtype extends T + TypeAdapter delegate = (TypeAdapter) subtypeToDelegate.get(srcType); + if (delegate == null) { + throw new JsonParseException( + "cannot serialize " + srcType.getName() + "; did you forget to register a subtype?"); + } + JsonObject jsonObject = delegate.toJsonTree(value).getAsJsonObject(); + if (jsonObject.has(typeFieldName)) { + throw new JsonParseException("cannot serialize " + srcType.getName() + + " because it already defines a field named " + typeFieldName); + } + JsonObject clone = new JsonObject(); + clone.add(typeFieldName, new JsonPrimitive(label)); + for (Map.Entry e : jsonObject.entrySet()) { + clone.add(e.getKey(), e.getValue()); + } + RuntimeTypeAdapterFactory.write(clone, out); + } + }.nullSafe(); + } + + /** + * Takes a reader in any state and returns the next value as a JsonElement. + */ + private static @Nullable JsonElement parse(JsonReader reader) throws JsonParseException { + boolean isEmpty = true; + try { + reader.peek(); + isEmpty = false; + return RuntimeTypeAdapterFactory.JSON_ELEMENT.read(reader); + } catch (EOFException e) { + /* + * For compatibility with JSON 1.5 and earlier, we return a JsonNull for + * empty documents instead of throwing. + */ + if (isEmpty) { + return JsonNull.INSTANCE; + } + // The stream ended prematurely so it is likely a syntax error. + throw new JsonSyntaxException(e); + } catch (MalformedJsonException e) { + throw new JsonSyntaxException(e); + } catch (IOException e) { + throw new JsonIOException(e); + } catch (NumberFormatException e) { + throw new JsonSyntaxException(e); + } + } + + /** + * Writes the JSON element to the writer, recursively. + */ + private static void write(JsonElement element, JsonWriter writer) throws IOException { + RuntimeTypeAdapterFactory.JSON_ELEMENT.write(writer, element); + } + + private static final TypeAdapter JSON_ELEMENT = new TypeAdapter() { + @Override + public @Nullable JsonElement read(JsonReader in) throws IOException { + switch (in.peek()) { + case STRING: + return new JsonPrimitive(in.nextString()); + case NUMBER: + String number = in.nextString(); + return new JsonPrimitive(new LazilyParsedNumber(number)); + case BOOLEAN: + return new JsonPrimitive(in.nextBoolean()); + case NULL: + in.nextNull(); + return JsonNull.INSTANCE; + case BEGIN_ARRAY: + JsonArray array = new JsonArray(); + in.beginArray(); + while (in.hasNext()) { + array.add(read(in)); + } + in.endArray(); + return array; + case BEGIN_OBJECT: + JsonObject object = new JsonObject(); + in.beginObject(); + while (in.hasNext()) { + object.add(in.nextName(), read(in)); + } + in.endObject(); + return object; + case END_DOCUMENT: + case NAME: + case END_OBJECT: + case END_ARRAY: + default: + throw new IllegalArgumentException(); + } + } + + @Override + public void write(JsonWriter out, @Nullable JsonElement value) throws IOException { + if (value == null || value.isJsonNull()) { + out.nullValue(); + } else if (value.isJsonPrimitive()) { + JsonPrimitive primitive = value.getAsJsonPrimitive(); + if (primitive.isNumber()) { + out.value(primitive.getAsNumber()); + } else if (primitive.isBoolean()) { + out.value(primitive.getAsBoolean()); + } else { + out.value(primitive.getAsString()); + } + + } else if (value.isJsonArray()) { + out.beginArray(); + for (JsonElement e : value.getAsJsonArray()) { + write(out, e); + } + out.endArray(); + + } else if (value.isJsonObject()) { + out.beginObject(); + for (Map.Entry e : value.getAsJsonObject().entrySet()) { + out.name(e.getKey()); + write(out, e.getValue()); + } + out.endObject(); + + } else { + throw new IllegalArgumentException("Couldn't write " + value.getClass()); + } + } + }; + + /** + * This class holds a number value that is lazily converted to a specific number type + * + * @author Inderjeet Singh + */ + public static final class LazilyParsedNumber extends Number { + private final String value; + + public LazilyParsedNumber(String value) { + this.value = value; + } + + @Override + public int intValue() { + try { + return Integer.parseInt(value); + } catch (NumberFormatException e) { + try { + return (int) Long.parseLong(value); + } catch (NumberFormatException nfe) { + return new BigDecimal(value).intValue(); + } + } + } + + @Override + public long longValue() { + try { + return Long.parseLong(value); + } catch (NumberFormatException e) { + return new BigDecimal(value).longValue(); + } + } + + @Override + public float floatValue() { + return Float.parseFloat(value); + } + + @Override + public double doubleValue() { + return Double.parseDouble(value); + } + + @Override + public String toString() { + return value; + } + + /** + * If somebody is unlucky enough to have to serialize one of these, serialize + * it as a BigDecimal so that they won't need Gson on the other side to + * deserialize it. + */ + private Object writeReplace() throws ObjectStreamException { + return new BigDecimal(value); + } + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/feature/feature.xml b/bundles/org.openhab.binding.siemenshvac/src/main/feature/feature.xml new file mode 100644 index 00000000000..a253c878585 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/feature/feature.xml @@ -0,0 +1,25 @@ + + + + mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features + + + openhab-runtime-base + openhab-transport-upnp + openhab-transport-mdns + mvn:org.openhab.addons.bundles/org.openhab.binding.siemenshvac/${project.version} + + diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/constants/SiemensHvacBindingConstants.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/constants/SiemensHvacBindingConstants.java new file mode 100644 index 00000000000..c4b6acee70f --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/constants/SiemensHvacBindingConstants.java @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.constants; + +import java.util.Set; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.core.thing.ThingTypeUID; + +/** + * The {@link SiemensHvacBindingConstants} class defines common constants, which are + * used across the whole binding. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class SiemensHvacBindingConstants { + + public static final String BINDING_ID = "siemenshvac"; + + // List of all Thing Type UIDs + public static final ThingTypeUID THING_TYPE_OZW = new ThingTypeUID(BINDING_ID, "ozw"); + + public static final Set SUPPORTED_THING_TYPES = Set.of(SiemensHvacBindingConstants.THING_TYPE_OZW); + + public static final String IP_ADDRESS = "ipAddress"; + public static final String BASE_URL = "baseUrl"; + + public static final String PROPERTY_VENDOR_NAME = "Siemens"; + + public static final String CONFIG_DESCRIPTION_URI_THING_PREFIX = "thing-type"; + + public static final String DPT_TYPE_ENUM = "Enumeration"; + public static final String DPT_TYPE_NUMERIC = "Numeric"; + public static final String DPT_TYPE_RADIO = "RadioButton"; + public static final String DPT_TYPE_DATE_TIME = "DateTime"; + public static final String DPT_TYPE_TIMEOFDAY = "TimeOfDay"; + public static final String DPT_TYPE_STRING = "String"; + + public static final String DPT_TYPE_CHECKBOX = "CheckBox"; + public static final String DPT_TYPE_SCHEDULER = "Scheduler"; + public static final String DPT_TYPE_CALENDAR = "Calendar"; + + public static final String CATEGORY_THING_HVAC = "HVAC"; + + public static final String CATEGORY_CHANNEL_NUMBER = "Number"; + public static final String CATEGORY_CHANNEL_SWITCH = "Switch"; + public static final String CATEGORY_CHANNEL_TEMP = "Temperature"; + public static final String CATEGORY_CHANNEL_TIME = "Time"; + + public static final String CATEGORY_CHANNEL_CONTROL_HEATING = "Heating"; +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterException.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterException.java new file mode 100644 index 00000000000..d9b73d81070 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterException.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * Exception if something goes wrong when converting values between openHAB and the binding. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class ConverterException extends Exception { + private static final long serialVersionUID = 42567425458545L; + + public ConverterException(String message) { + super(message); + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterFactory.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterFactory.java new file mode 100644 index 00000000000..757c8eed4cd --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterFactory.java @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.siemenshvac.internal.constants.SiemensHvacBindingConstants; +import org.openhab.binding.siemenshvac.internal.converter.type.CalendarTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.CheckboxTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.DateTimeTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.EnumTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.NumericTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.RadioTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.SchedulerTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.StringTypeConverter; +import org.openhab.binding.siemenshvac.internal.converter.type.TimeOfDayTypeConverter; +import org.openhab.core.i18n.TimeZoneProvider; + +/** + * A factory for creating converters based on the itemType. + * + * @author Laurent Arnal - Initial contribution + */ + +@NonNullByDefault +public class ConverterFactory { + private static Map converterCache = new HashMap<>(); + + public static void registerConverter(TimeZoneProvider timeZoneProvider) { + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_DATE_TIME, new DateTimeTypeConverter(timeZoneProvider)); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_ENUM, new EnumTypeConverter()); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_NUMERIC, new NumericTypeConverter()); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_RADIO, new RadioTypeConverter()); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_STRING, new StringTypeConverter()); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_TIMEOFDAY, new TimeOfDayTypeConverter(timeZoneProvider)); + + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_CHECKBOX, new CheckboxTypeConverter()); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_SCHEDULER, new SchedulerTypeConverter()); + registerConverter(SiemensHvacBindingConstants.DPT_TYPE_CALENDAR, new CalendarTypeConverter()); + } + + public static void registerConverter(String key, TypeConverter tp) { + converterCache.put(key, tp); + } + + /** + * Returns the converter for an itemType. + */ + public static TypeConverter getConverter(String itemType) throws ConverterTypeException { + TypeConverter converter = converterCache.get(itemType); + if (converter == null) { + throw new ConverterTypeException("Can't find a converter for type '" + itemType + "'"); + } + + return converter; + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterTypeException.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterTypeException.java new file mode 100644 index 00000000000..3c3c6ba6db8 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/ConverterTypeException.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * Exception if converting between two types is not possible due wrong item type or command. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class ConverterTypeException extends ConverterException { + private static final long serialVersionUID = 2546248551752214152L; + + public ConverterTypeException(String message) { + super(message); + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/TypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/TypeConverter.java new file mode 100644 index 00000000000..fbaf5efe0c4 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/TypeConverter.java @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter; + +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.State; +import org.openhab.core.types.Type; + +import com.google.gson.JsonObject; + +/** + * Converter interface for converting between openHAB states/commands and siemensHvac values. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public interface TypeConverter { + + /** + * Converts an openHAB type to a SiemensHVac value. + */ + @Nullable + Object convertToBinding(Type type, ChannelType tp) throws ConverterException; + + /** + * Converts a siemensHvac value to an openHAB type. + */ + State convertFromBinding(JsonObject dp, ChannelType tp, Locale locale) throws ConverterException; + + /** + * get underlying channel type to construct channel type UID + * + */ + String getChannelType(SiemensHvacMetadataDataPoint dpt); + + /** + * get underlying item type on openhab side for this SiemensHvac type + * + */ + String getItemType(SiemensHvacMetadataDataPoint dpt); + + /** + * tell if this type have different subvariant or not + * + */ + boolean hasVariant(); +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/AbstractTypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/AbstractTypeConverter.java new file mode 100644 index 00000000000..69b4485e14d --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/AbstractTypeConverter.java @@ -0,0 +1,145 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter.type; + +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.converter.ConverterException; +import org.openhab.binding.siemenshvac.internal.converter.ConverterTypeException; +import org.openhab.binding.siemenshvac.internal.converter.TypeConverter; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.Command; +import org.openhab.core.types.State; +import org.openhab.core.types.Type; +import org.openhab.core.types.UnDefType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +/** + * Base class for all Converters with common methods. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public abstract class AbstractTypeConverter implements TypeConverter { + private final Logger logger = LoggerFactory.getLogger(AbstractTypeConverter.class); + + @Override + public @Nullable Object convertToBinding(Type type, ChannelType tp) throws ConverterException { + if (type == UnDefType.NULL) { + return null; + } else if (type.getClass().isEnum()) { + return commandToBinding((Command) type, tp); + } else if (!toBindingValidation(type)) { + String errorMessage = String.format("Can't convert type %s with value '%s' to %s value", + type.getClass().getSimpleName(), type.toString(), this.getClass().getSimpleName()); + throw new ConverterTypeException(errorMessage); + } + + return toBinding(type, tp); + } + + @Override + public State convertFromBinding(JsonObject dp, ChannelType tp, Locale locale) throws ConverterException { + String type = null; + String unit = ""; + JsonElement value = null; + + if (dp.has("Type")) { + type = dp.get("Type").getAsString().trim(); + } + if (dp.has("Value")) { + value = dp.get("Value"); + } + if (dp.has("EnumValue")) { + value = dp.get("EnumValue"); + } + + if (dp.has("Unit")) { + unit = dp.get("Unit").getAsString().trim(); + } + + if (value == null) { + return UnDefType.NULL; + } + + if (type == null) { + logger.debug("siemensHvac:ReadDP:null type {}", dp); + return UnDefType.NULL; + } + + if (!fromBindingValidation(value, unit, type)) { + logger.debug("Can't convert {} value '{}' with {} for '{}'", type, value, this.getClass().getSimpleName(), + dp); + return UnDefType.NULL; + } + + return fromBinding(value, unit, type, tp, locale); + } + + /** + * Converts an openHAB command to a SiemensHvacValue value. + */ + protected @Nullable Object commandToBinding(Command command, ChannelType tp) throws ConverterException { + throw new ConverterException("Unsupported command " + command.getClass().getSimpleName() + " for " + + this.getClass().getSimpleName()); + } + + /** + * Returns true, if the conversion from openHAB to the binding is possible. + */ + protected abstract boolean toBindingValidation(Type type); + + /** + * Converts the type to a datapoint value. + */ + protected abstract @Nullable Object toBinding(Type type, ChannelType tp) throws ConverterException; + + /** + * Returns true, if the conversion from the binding to openHAB is possible. + */ + protected abstract boolean fromBindingValidation(JsonElement value, String unit, String type); + + /** + * Converts the datapoint value to an openHAB type. + */ + protected abstract State fromBinding(JsonElement value, String unit, String type, ChannelType tp, Locale locale) + throws ConverterException; + + /** + * get underlying channel type to construct channel type UID + * + */ + @Override + public abstract String getChannelType(SiemensHvacMetadataDataPoint dpt); + + /** + * get underlying item type on openhab side for this SiemensHvac type + * + */ + @Override + public abstract String getItemType(SiemensHvacMetadataDataPoint dpt); + + /** + * tell if this type have different subvariant or not + * + */ + @Override + public abstract boolean hasVariant(); +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CalendarTypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CalendarTypeConverter.java new file mode 100644 index 00000000000..b6576f74680 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CalendarTypeConverter.java @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter.type; + +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.converter.ConverterException; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.library.CoreItemFactory; +import org.openhab.core.library.types.DateTimeType; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.Type; + +import com.google.gson.JsonElement; + +/** + * Converts between a SiemensHvac datapoint value and an openHAB DecimalType. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class CalendarTypeConverter extends AbstractTypeConverter { + @Override + protected boolean toBindingValidation(Type type) { + return true; + } + + @Override + protected @Nullable Object toBinding(Type type, ChannelType tp) throws ConverterException { + Object valUpdate = null; + + if (type instanceof DateTimeType dateTime) { + valUpdate = dateTime.toString(); + } + + return valUpdate; + } + + @Override + protected boolean fromBindingValidation(JsonElement value, String unit, String type) { + return true; + } + + @Override + protected DecimalType fromBinding(JsonElement value, String unit, String type, ChannelType tp, Locale locale) + throws ConverterException { + throw new ConverterException("NIY"); + } + + @Override + public String getChannelType(SiemensHvacMetadataDataPoint dpt) { + return "datetime"; + } + + @Override + public String getItemType(SiemensHvacMetadataDataPoint dpt) { + return CoreItemFactory.DATETIME; + } + + @Override + public boolean hasVariant() { + return false; + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CheckboxTypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CheckboxTypeConverter.java new file mode 100644 index 00000000000..f6537b407b5 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/CheckboxTypeConverter.java @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter.type; + +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.converter.ConverterException; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.library.CoreItemFactory; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.Type; + +import com.google.gson.JsonElement; + +/** + * Converts between a SiemensHvac datapoint value and an openHAB DecimalType. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class CheckboxTypeConverter extends AbstractTypeConverter { + @Override + protected boolean toBindingValidation(Type type) { + return true; + } + + @Override + protected @Nullable Object toBinding(Type type, ChannelType tp) throws ConverterException { + throw new ConverterException("NIY"); + } + + @Override + protected boolean fromBindingValidation(JsonElement value, String unit, String type) { + return true; + } + + @Override + protected DecimalType fromBinding(JsonElement value, String unit, String type, ChannelType tp, Locale locale) + throws ConverterException { + throw new ConverterException("NIY"); + } + + @Override + public String getChannelType(SiemensHvacMetadataDataPoint dpt) { + return "contact"; + } + + @Override + public String getItemType(SiemensHvacMetadataDataPoint dpt) { + return CoreItemFactory.CONTACT; + } + + @Override + public boolean hasVariant() { + return false; + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/DateTimeTypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/DateTimeTypeConverter.java new file mode 100644 index 00000000000..9d6ae69e365 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/DateTimeTypeConverter.java @@ -0,0 +1,119 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter.type; + +import java.time.LocalDateTime; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatterBuilder; +import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoField; +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.converter.ConverterException; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.i18n.TimeZoneProvider; +import org.openhab.core.library.CoreItemFactory; +import org.openhab.core.library.types.DateTimeType; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.Type; + +import com.google.gson.JsonElement; + +/** + * Converts between a SiemensHvac datapoint value and an openHAB DecimalType. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class DateTimeTypeConverter extends AbstractTypeConverter { + + private final TimeZoneProvider timeZoneProvider; + + public DateTimeTypeConverter(final TimeZoneProvider timeZoneProvider) { + this.timeZoneProvider = timeZoneProvider; + } + + @Override + protected boolean toBindingValidation(Type type) { + return true; + } + + @Override + protected @Nullable Object toBinding(Type type, ChannelType tp) throws ConverterException { + Object valUpdate = null; + + if (type instanceof DateTimeType dateTime) { + valUpdate = dateTime.toString(); + } + + return valUpdate; + } + + @Override + protected boolean fromBindingValidation(JsonElement value, String unit, String type) { + return true; + } + + @Override + protected DateTimeType fromBinding(JsonElement value, String unit, String type, ChannelType tp, Locale locale) + throws ConverterException { + if ("----".equals(value.getAsString())) { + return new DateTimeType(ZonedDateTime.now(this.timeZoneProvider.getTimeZone())); + } else { + String[] formats = { "EEEE, d. LLLL yyyy HH:mm[:ss]", "d. LLLL yyyy HH:mm[:ss]", "d. LLLL yyyy", + "d. LLLL" }; + + for (int i = 0; i < formats.length; i++) { + try { + DateTimeFormatterBuilder formatterBuilder = new DateTimeFormatterBuilder().parseCaseInsensitive() + .appendPattern(formats[i]).parseDefaulting(ChronoField.HOUR_OF_DAY, 0) + .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0) + .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0); + + if (i == 3) { + formatterBuilder = formatterBuilder.parseDefaulting(ChronoField.YEAR, + ZonedDateTime.now(this.timeZoneProvider.getTimeZone()).getYear()); + } + + LocalDateTime parsedDate = LocalDateTime.parse(value.getAsString(), + formatterBuilder.toFormatter(locale)); + + ZonedDateTime zdt = parsedDate.atZone(this.timeZoneProvider.getTimeZone()); + + return new DateTimeType(zdt); + } catch (DateTimeParseException ex) { + // Silently ignore, we are proceeding to next format. + } + } + } + + throw new ConverterException("Can't parse the date for:" + value); + } + + @Override + public String getChannelType(SiemensHvacMetadataDataPoint dpt) { + return "datetime"; + } + + @Override + public String getItemType(SiemensHvacMetadataDataPoint dpt) { + return CoreItemFactory.DATETIME; + } + + @Override + public boolean hasVariant() { + return false; + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/EnumTypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/EnumTypeConverter.java new file mode 100644 index 00000000000..b23bfb1cad8 --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/EnumTypeConverter.java @@ -0,0 +1,76 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter.type; + +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.converter.ConverterException; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.library.CoreItemFactory; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.Type; + +import com.google.gson.JsonElement; + +/** + * Converts between a SiemensHvac datapoint value and an openHAB DecimalType. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class EnumTypeConverter extends AbstractTypeConverter { + @Override + protected boolean toBindingValidation(Type type) { + return true; + } + + @Override + protected @Nullable Object toBinding(Type type, ChannelType tp) throws ConverterException { + Object valUpdate = null; + + if (type instanceof DecimalType decimalValue) { + valUpdate = decimalValue.toString(); + } + + return valUpdate; + } + + @Override + protected boolean fromBindingValidation(JsonElement value, String unit, String type) { + return true; + } + + @Override + protected DecimalType fromBinding(JsonElement value, String unit, String type, ChannelType tp, Locale locale) + throws ConverterException { + return new DecimalType(value.getAsInt()); + } + + @Override + public String getChannelType(SiemensHvacMetadataDataPoint dpt) { + return "number"; + } + + @Override + public String getItemType(SiemensHvacMetadataDataPoint dpt) { + return CoreItemFactory.NUMBER; + } + + @Override + public boolean hasVariant() { + return true; + } +} diff --git a/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/NumericTypeConverter.java b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/NumericTypeConverter.java new file mode 100644 index 00000000000..0b9c895c35a --- /dev/null +++ b/bundles/org.openhab.binding.siemenshvac/src/main/java/org/openhab/binding/siemenshvac/internal/converter/type/NumericTypeConverter.java @@ -0,0 +1,250 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.siemenshvac.internal.converter.type; + +import java.util.Locale; + +import javax.measure.Unit; +import javax.measure.quantity.Dimensionless; +import javax.measure.quantity.ElectricPotential; +import javax.measure.quantity.Temperature; +import javax.measure.quantity.Time; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.siemenshvac.internal.converter.ConverterException; +import org.openhab.binding.siemenshvac.internal.metadata.SiemensHvacMetadataDataPoint; +import org.openhab.core.library.CoreItemFactory; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.library.types.QuantityType; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.library.unit.Units; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.types.State; +import org.openhab.core.types.Type; + +import com.google.gson.JsonElement; + +/** + * Converts between a SiemensHvac datapoint value and an openHAB DecimalType. + * + * @author Laurent Arnal - Initial contribution + */ +@NonNullByDefault +public class NumericTypeConverter extends AbstractTypeConverter { + + @Override + protected boolean toBindingValidation(Type type) { + return true; + } + + @Override + protected @Nullable Object toBinding(Type type, ChannelType tp) throws ConverterException { + Object valUpdate = null; + + if (type instanceof QuantityType quantityType) { + Number num = (quantityType); + valUpdate = num.doubleValue(); + } else if (type instanceof DecimalType decimalValue) { + valUpdate = decimalValue.toString(); + } + + return valUpdate; + } + + @Override + protected boolean fromBindingValidation(JsonElement value, String unit, String type) { + return true; + } + + @Override + protected State fromBinding(JsonElement value, String unit, String type, ChannelType tp, Locale locale) + throws ConverterException { + if ("----".equals(value.getAsString())) { + return new DecimalType(0); + } else { + double dValue = value.getAsDouble(); + + String itemType = tp.getItemType(); + + if (itemType != null) { + if ("Number:Temperature".equals(itemType)) { + Unit targetUnit = null; + + if ("°C".equals(unit)) { + targetUnit = SIUnits.CELSIUS; + } else if ("°F".equals(unit)) { + targetUnit = ImperialUnits.FAHRENHEIT; + } + + if (targetUnit != null) { + return new QuantityType<>(dValue, targetUnit); + } + } else if ("Number:ElectricPotential".equals(itemType)) { + Unit targetUnit = null; + + if ("V".equals(unit)) { + targetUnit = Units.VOLT; + } + + if (targetUnit != null) { + return new QuantityType<>(dValue, targetUnit); + } + } else if ("Number:Time".equals(itemType)) { + Unit