From 7bca020b095d99cc366c4cfaaaa34bada15a40f9 Mon Sep 17 00:00:00 2001 From: Alexander Friese Date: Sun, 22 Sep 2024 18:42:12 +0200 Subject: [PATCH] removal of obsolete nibeuplink binding (#17453) Signed-off-by: Alexander Friese --- CODEOWNERS | 1 - bom/openhab-addons/pom.xml | 5 - bundles/org.openhab.binding.nibeuplink/NOTICE | 13 - .../org.openhab.binding.nibeuplink/README.md | 362 ------------- .../org.openhab.binding.nibeuplink/pom.xml | 17 - .../src/main/feature/feature.xml | 9 - .../internal/AtomicReferenceTrait.java | 59 --- .../internal/NibeUplinkBindingConstants.java | 119 ----- .../internal/NibeUplinkHandlerFactory.java | 71 --- .../AbstractUplinkCommandCallback.java | 184 ------- .../internal/command/GenericStatusUpdate.java | 98 ---- .../nibeuplink/internal/command/Login.java | 64 --- .../internal/command/NibeUplinkCommand.java | 52 -- .../internal/command/UpdateSetting.java | 120 ----- .../config/NibeUplinkConfiguration.java | 98 ---- .../connector/CommunicationStatus.java | 59 --- .../connector/StatusUpdateListener.java | 26 - .../connector/UplinkWebInterface.java | 253 ---------- .../internal/handler/ChannelProvider.java | 36 -- .../internal/handler/ChannelUtil.java | 149 ------ .../internal/handler/GenericHandler.java | 61 --- .../internal/handler/NibeUplinkHandler.java | 55 -- .../internal/handler/UplinkBaseHandler.java | 206 -------- .../internal/handler/UplinkPolling.java | 54 -- .../internal/model/ChannelGroup.java | 30 -- .../model/ConfigurationException.java | 41 -- .../internal/model/DataResponse.java | 27 - .../model/DataResponseTransformer.java | 164 ------ .../internal/model/GenericDataResponse.java | 89 ---- .../internal/model/ValidationException.java | 41 -- .../src/main/resources/OH-INF/addon/addon.xml | 11 - .../main/resources/OH-INF/config/config.xml | 46 -- .../OH-INF/i18n/nibeuplink.properties | 474 ------------------ .../OH-INF/i18n/nibeuplink_de.properties | 26 - .../OH-INF/thing/base-channel-groups.xml | 195 ------- .../OH-INF/thing/f1145-channel-groups.xml | 81 --- .../resources/OH-INF/thing/f1145-thing.xml | 18 - .../OH-INF/thing/f1155-channel-groups.xml | 85 ---- .../resources/OH-INF/thing/f1155-thing.xml | 18 - .../OH-INF/thing/f730-channel-groups.xml | 100 ---- .../resources/OH-INF/thing/f730-thing.xml | 17 - .../OH-INF/thing/f750-channel-groups.xml | 88 ---- .../resources/OH-INF/thing/f750-thing.xml | 17 - .../OH-INF/thing/readonly-channel-types.xml | 122 ----- .../OH-INF/thing/readwrite-channel-types.xml | 91 ---- .../OH-INF/thing/vvm310-channel-groups.xml | 189 ------- .../resources/OH-INF/thing/vvm310-thing.xml | 18 - .../OH-INF/thing/vvm320-channel-groups.xml | 221 -------- .../resources/OH-INF/thing/vvm320-thing.xml | 18 - bundles/pom.xml | 1 - 50 files changed, 4399 deletions(-) delete mode 100644 bundles/org.openhab.binding.nibeuplink/NOTICE delete mode 100644 bundles/org.openhab.binding.nibeuplink/README.md delete mode 100644 bundles/org.openhab.binding.nibeuplink/pom.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/feature/feature.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/AtomicReferenceTrait.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkBindingConstants.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkHandlerFactory.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/callback/AbstractUplinkCommandCallback.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/GenericStatusUpdate.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/Login.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/NibeUplinkCommand.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/UpdateSetting.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/config/NibeUplinkConfiguration.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/CommunicationStatus.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/StatusUpdateListener.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/UplinkWebInterface.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelProvider.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelUtil.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/GenericHandler.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/NibeUplinkHandler.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkBaseHandler.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkPolling.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ChannelGroup.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ConfigurationException.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponse.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponseTransformer.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/GenericDataResponse.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ValidationException.java delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/addon/addon.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/config/config.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink.properties delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink_de.properties delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/base-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-thing.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-thing.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-thing.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-thing.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readonly-channel-types.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readwrite-channel-types.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-thing.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-channel-groups.xml delete mode 100644 bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-thing.xml diff --git a/CODEOWNERS b/CODEOWNERS index 28ec2b43f6..bf2fa5f9ce 100755 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -253,7 +253,6 @@ /bundles/org.openhab.binding.network/ @mettke /bundles/org.openhab.binding.networkupstools/ @Hilbrand /bundles/org.openhab.binding.nibeheatpump/ @paulianttila -/bundles/org.openhab.binding.nibeuplink/ @alexf2015 /bundles/org.openhab.binding.nikobus/ @crnjan /bundles/org.openhab.binding.nikohomecontrol/ @mherwege /bundles/org.openhab.binding.nobohub/ @espenaf diff --git a/bom/openhab-addons/pom.xml b/bom/openhab-addons/pom.xml index 126bb845bd..98ff569002 100644 --- a/bom/openhab-addons/pom.xml +++ b/bom/openhab-addons/pom.xml @@ -1251,11 +1251,6 @@ org.openhab.binding.nibeheatpump ${project.version} - - org.openhab.addons.bundles - org.openhab.binding.nibeuplink - ${project.version} - org.openhab.addons.bundles org.openhab.binding.nikobus diff --git a/bundles/org.openhab.binding.nibeuplink/NOTICE b/bundles/org.openhab.binding.nibeuplink/NOTICE deleted file mode 100644 index 38d625e349..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -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 diff --git a/bundles/org.openhab.binding.nibeuplink/README.md b/bundles/org.openhab.binding.nibeuplink/README.md deleted file mode 100644 index 5cd7850e7d..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/README.md +++ /dev/null @@ -1,362 +0,0 @@ -# NibeUplink Binding - -The NibeUplink binding is used to get "live data" from from Nibe heat pumps without plugging any custom devices into your heat pump. -This avoids the risk of losing your warranty. -Instead data is retrieved from Nibe Uplink. -This binding should in general be compatible with heat pump models that support Nibe Uplink. -In general read access is supported for all channels. -Write access is only supported for a small subset of channels. -Write access will only be available with a paid subscription for "manage" at NibeUplink. - -## Supported Things - -This binding provides only one thing type: The Nibe heat pump. -Create one Nibe heat pump thing per physical heat pump installation available in your home(s). -If your setup contains an outdoor unit such as F2030 or F2040 and an indoor unit such as VVM320 this is one installation where the indoor unit is the master that has access to all data produced by the outdoor unit (slave). - -## Discovery - -Auto-Discovery is not supported, as credentials are necessary to login into NibeUplink. - -## Thing Configuration - -The syntax for a heat pump thing is: - -```java -nibeuplink:: -``` - -- **nibeuplink** the binding id, fixed -- **thing type** the heatpump thing type -- **name** the name of the heatpump (choose any name) - -Following models (indoor / main units) are currently supported: - -| Nibe Model(s) | Thing Type | Description | -|-------------------|------------|-----------------------------------------------------| -| VVM310 / 500 | vvm310 | reduced set of channels based on NibeUplink website | -| VVM320 / 325 | vvm320 | reduced set of channels based on NibeUplink website | -| F730 | f730 | reduced set of channels based on NibeUplink website | -| F750 | f750 | reduced set of channels based on NibeUplink website | -| F1145 / 1245 | f1145 | reduced set of channels based on NibeUplink website | -| F1155 / 1255 | f1155 | reduced set of channels based on NibeUplink website | - -The following configuration parameters are available for this thing: - -- **user** (required) -username used to login on NibeUplink - -- **password** (required) -password used to login on NibeUplink - -- **nibeId** (required) -Id of your heatpump in NibeUplink (can be found in the URL after successful login: `https://www.nibeuplink.com/System/**>**/Status/Overview`) - -- **pollingInterval** -interval (seconds) in which values are retrieved from NibeUplink. -Setting less than 60 seconds does not make any sense as the heat pump only provides periodic updates to NibeUplink. -(default = 60) - -- **houseKeepingInterval** - interval (seconds) in which list of "dead channels" (channels that do not return any data or invalid data) should be purged (default = 3600). - Usually this settings should not be changed. - -### Examples - -- minimum configuration - -```java -nibeuplink:vvm320:mynibe [ user="...", password="...", nibeId="..."] -``` - -- with pollingInterval - -```java -nibeuplink:vvm320:mynibe[ user="...", password="...", nibeId="...", pollingInterval=... ] -``` - -- multiple heat pumps - -```java -nibeuplink:vvm320:home1 [ user="...", password="...", nibeId="..."] -nibeuplink:vvm320:home2 [ user="...", password="...", nibeId="..."] -``` - -## Channels - -Available channels depend on the specific heatpump model. -Following models/channels are currently available: - -### All Models - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|-----------------|------------------------|--------|------------|----------|--------------------------------------------|-----------------------------------------------| -| base#40004 | Number:Temperature | -32767 | 32767 | No | BT1 Outdoor Temperature | | -| base#40067 | Number:Temperature | -32767 | 32767 | No | BT1 Average | | -| base#43005 | Number:Dimensionless | -30000 | 30000 | Yes | Degree Minutes (16 bit) | any integer | -| base#43009 | Number:Temperature | -32767 | 32767 | No | Calc. Supply S1 | | -| base#40071 | Number:Temperature | -32767 | 32767 | No | BT25 Ext. Supply | | -| base#40033 | Number:Temperature | -32767 | 32767 | No | BT50 Room Temp S1 | | -| base#43161 | Switch | --- | --- | No | External adjustment activated via input S1 | | -| base#40008 | Number:Temperature | -32767 | 32767 | No | BT2 Supply temp S1 | | -| base#40012 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT3 Return temp | | -| base#40072 | Number:Dimensionless | -32767 | 32767 | No | BF1 EP14 Flow | | -| base#43437 | Number:Dimensionless | 0 | 100 | No | Supply Pump Speed EP14 | | -| base#40079 | Number:ElectricCurrent | 0 | 4294967295 | No | EB100-BE3 Current | | -| base#40081 | Number:ElectricCurrent | 0 | 4294967295 | No | EB100-BE2 Current | | -| base#40083 | Number:ElectricCurrent | 0 | 4294967295 | No | EB100-BE1 Current | | -| base#10033 | Switch | --- | --- | No | Int. el.add. blocked | | -| base#43081 | Number:Time | 0 | 1000000 | No | Tot. op.time add. | | -| base#43084 | Number:Power | -32767 | 32767 | No | Int. el.add. Power | | -| base#47212 | Number:Power | 0 | 4500 | No | Max int add. power | | -| base#48914 | Number:Power | 0 | 4500 | No | Max int add. power, SG Ready | | -| base#44308 | Number:Energy | 0 | 9999999 | No | Heat Meter - Heat Cpr EP14 | | -| base#44304 | Number:Energy | 0 | 9999999 | No | Heat Meter - Pool Cpr EP14 | | -| base#44300 | Number:Energy | 0 | 9999999 | No | Heat Meter - Heat Cpr and Add EP14 | | -| base#48043 | Switch | --- | --- | Yes | vacation mode | | -| base#10012 | Switch | --- | --- | No | Compressor blocked | | -| hotwater#40013 | Number:Temperature | -32767 | 32767 | No | BT7 HW Top | | -| hotwater#40014 | Number:Temperature | -32767 | 32767 | No | BT6 HW Load | | -| hotwater#44306 | Number:Energy | 0 | 9999999 | No | Heat Meter - HW Cpr EP14 | | -| hotwater#44298 | Number:Energy | 0 | 9999999 | No | Heat Meter - HW Cpr and Add EP14 | | -| hotwater#48132 | Number | --- | --- | Yes | Temporary Lux | 0=Off, 1=3h, 2=6h, 3=12h, 4=One time increase | -| hotwater#47041 | Number | --- | --- | Yes | Hot water mode | 0=Economy, 1=Normal, 2=Luxury | -| hotwater#47045 | Number | 5 | 70 | No | Start temperature HW Economy | | -| hotwater#47049 | Number | 5 | 70 | No | Stop temperature HW Economy | | -| hotwater#47044 | Number | 5 | 70 | No | Start temperature HW Normal | | -| hotwater#47048 | Number | 5 | 70 | No | Stop temperature HW Normal | | -| hotwater#47043 | Number | 5 | 70 | No | Start temperature HW Luxury | | -| hotwater#47047 | Number | 5 | 70 | No | Stop temperature HW Luxury | | -| hotwater#47046 | Number | 55 | 70 | No | Stop temperature Periodic HW | | - -### F730 - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|------------------|----------------------|--------|---------|----------|-----------------------------------|-------------------------------| -| compressor#43181 | Number:Dimensionless | 0 | 100 | No | Chargepump speed | | -| compressor#43424 | Number:Time | 0 | 9999999 | No | Tot. HW op.time compr. EB100-EP14 | | -| compressor#43420 | Number:Time | 0 | 9999999 | No | Tot. op.time compr. EB100-EP14 | | -| compressor#43416 | Number | 0 | 9999999 | No | Compressor starts EB100-EP14 | | -| compressor#40022 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT17 Suction | | -| compressor#40019 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT15 Liquid Line | | -| compressor#40018 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT14 Hot Gas Temp | | -| compressor#40017 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT12 Condensor Out | | -| compressor#40020 | Number:Temperature | -32767 | 32767 | No | EB100-BT16 Evaporator temp | | -| compressor#43136 | Number:Frequency | 0 | 65535 | No | Compressor Frequency, Actual | | -| compressor#43122 | Number:Frequency | -32767 | 32767 | No | Compr. current min.freq. | | -| compressor#43123 | Number:Frequency | -32767 | 32767 | No | Compr. current max.freq. | | -| compressor#43066 | Number:Time | -32767 | 32767 | No | Defrosting time | | -| airsupply#10001 | Number:Dimensionless | 0 | 100 | No | Fan speed current | | -| airsupply#40025 | Number:Temperature | -32767 | 32767 | No | BT20 Exhaust air temp. 1 | | -| airsupply#40026 | Number:Temperature | -32767 | 32767 | No | BT21 Vented air temp. 1 | | -| airsupply#43124 | Number | -32767 | 32767 | No | Airflow ref. | | -| airsupply#41026 | Number | -32767 | 32767 | No | EB100-Adjusted BS1 Air flow | | -| airsupply#43125 | Number | 0 | 100 | No | Airflow reduction | | -| airsupply#40919 | Number | --- | --- | No | Air mix | | -| airsupply#40101 | Number:Temperature | -32767 | 32767 | No | BT28 Airmix Temp | | - -### F750 - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|------------------|----------------------|--------|---------|----------|-----------------------------------|------------------------------------------------------| -| compressor#43181 | Number:Dimensionless | 0 | 100 | No | Chargepump speed | | -| compressor#43424 | Number:Time | 0 | 9999999 | No | Tot. HW op.time compr. EB100-EP14 | | -| compressor#43420 | Number:Time | 0 | 9999999 | No | Tot. op.time compr. EB100-EP14 | | -| compressor#43416 | Number | 0 | 9999999 | No | Compressor starts EB100-EP14 | | -| compressor#40022 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT17 Suction | | -| compressor#40019 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT15 Liquid Line | | -| compressor#40018 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT14 Hot Gas Temp | | -| compressor#40017 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT12 Condensor Out | | -| compressor#40020 | Number:Temperature | -32767 | 32767 | No | EB100-BT16 Evaporator temp | | -| compressor#43136 | Number:Frequency | 0 | 65535 | No | Compressor Frequency, Actual | | -| compressor#43122 | Number:Frequency | -32767 | 32767 | No | Compr. current min.freq. | | -| compressor#43123 | Number:Frequency | -32767 | 32767 | No | Compr. current max.freq. | | -| airsupply#40025 | Number:Temperature | -32767 | 32767 | No | BT20 Exhaust air temp. 1 | | -| airsupply#40026 | Number:Temperature | -32767 | 32767 | No | BT21 Vented air temp. 1 | | -| airsupply#43124 | Number | -32767 | 32767 | No | Airflow ref. | | -| airsupply#41026 | Number | -32767 | 32767 | No | EB100-Adjusted BS1 Air flow | | -| airsupply#47260 | Number | --- | --- | Yes | Current fan speed | 0=normal, 1=speed 1, 2=speed 2, 3=speed 3, 4=speed 4 | - -### F1145 / 1245 - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|------------------|----------------------|--------|---------|----------|------------------------------------------|-------------------------------| -| general#44302 | Number:Energy | 0 | 9999999 | No | Heat Meter - Cooling Cpr EP14 | | -| general#44270 | Number:Temperature | -32767 | 32767 | No | Calculated Cooling Supply Temperature S1 | | -| general#43103 | Number | 10 | 70 | No | HPAC state | | -| compressor#43424 | Number:Time | 0 | 9999999 | No | Tot. HW op.time compr. EB100-EP14 | | -| compressor#43420 | Number:Time | 0 | 9999999 | No | Tot. op.time compr. EB100-EP14 | | -| compressor#43416 | Number | 0 | 9999999 | No | Compressor starts EB100-EP14 | | -| compressor#40022 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT17 Suction | | -| compressor#40019 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT15 Liquid Line | | -| compressor#40018 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT14 Hot Gas Temp | | -| compressor#40017 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT12 Condensor Out | | -| compressor#40015 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT10 Brine In Temperature | | -| compressor#40016 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT11 Brine Out Temperature | | -| compressor#43439 | Number:Dimensionless | 0 | 100 | No | EP14-GP2 Brine Pump Speed | | -| airsupply#40025 | Number:Temperature | -32767 | 32767 | No | BT20 Exhaust air temp. 1 | | -| airsupply#40026 | Number:Temperature | -32767 | 32767 | No | BT21 Vented air temp. 1 | | - -### F1155 / 1255 - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|------------------|----------------------|--------|---------|----------|---------------------------------------|-------------------------------| -| general#44302 | Number:Energy | 0 | 9999999 | No | Heat Meter - Cooling Cpr EP14 | | -| compressor#43424 | Number:Time | 0 | 9999999 | No | Tot. HW op.time compr. EB100-EP14 | | -| compressor#43420 | Number:Time | 0 | 9999999 | No | Tot. op.time compr. EB100-EP14 | | -| compressor#43416 | Number | 0 | 9999999 | No | Compressor starts EB100-EP14 | | -| compressor#40022 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT17 Suction | | -| compressor#40019 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT15 Liquid Line | | -| compressor#40018 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT14 Hot Gas Temp | | -| compressor#40017 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT12 Condensor Out | | -| compressor#43136 | Number:Frequency | 0 | 65535 | No | Compressor Frequency, Actual | | -| compressor#43122 | Number:Frequency | -32767 | 32767 | No | Compr. current min.freq. | | -| compressor#43123 | Number:Frequency | -32767 | 32767 | No | Compr. current max.freq. | | -| compressor#40015 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT10 Brine In Temperature | | -| compressor#40016 | Number:Temperature | -32767 | 32767 | No | EB100-EP14-BT11 Brine Out Temperature | | -| compressor#43439 | Number:Dimensionless | 0 | 100 | No | EP14-GP2 Brine Pump Speed | | -| airsupply#40025 | Number:Temperature | -32767 | 32767 | No | BT20 Exhaust air temp. 1 | | -| airsupply#40026 | Number:Temperature | -32767 | 32767 | No | BT21 Vented air temp. 1 | | - -### VVM310 / VVM 500 - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|------------------|----------------------|--------|---------|----------|----------------------------------------------------|------------------------------------------------------| -| general#44270 | Number:Temperature | -32767 | 32767 | No | Calc. Cooling Supply S1 | | -| general#40121 | Number:Temperature | -32767 | 32767 | No | BT63 Add Supply Temp | | -| general#44302 | Number:Energy | 0 | 9999999 | No | Heat Meter - Cooling Cpr EP14 | | -| general#47011 | Number | -10 | 10 | Yes | Heat Offset S1 | values between -10 and 10 | -| general#47394 | Switch | --- | --- | Yes | Use room sensor S1 | 0=off, 1=on | -| general#47402 | Number | 0 | 60 | Yes | Room sensor factor S1 | Values between 0 and 6 | -| general#48793 | Number | 0 | 60 | Yes | Room sensor cool factor S1 | Values between 0 and 6 | -| compressor#44362 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT28 Outdoor Temp | | -| compressor#44396 | Number:Dimensionless | 0 | 255 | No | EB101 Speed charge pump | | -| compressor#44703 | Number | --- | --- | No | EB101-EP14 Defrosting Outdoor Unit | 0=No, 1=Active, 2=Passive | -| compressor#44073 | Number:Time | 0 | 9999999 | No | EB101-EP14 Tot. HW op.time compr | | -| compressor#40737 | Number:Time | 0 | 9999999 | No | EB101-EP14 Tot. Cooling op.time compr | | -| compressor#44071 | Number:Time | 0 | 9999999 | No | EB101-EP14 Tot. op.time compr | | -| compressor#44069 | Number | 0 | 9999999 | No | EB101-EP14 Compressor starts | | -| compressor#44061 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT17 Suction | | -| compressor#44060 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT15 Liquid Line | | -| compressor#44059 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT14 Hot Gas Temp | | -| compressor#44058 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT12 Condensor Out | | -| compressor#44055 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT3 Return Temp. | | -| compressor#44363 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT16 Evaporator | | -| compressor#44699 | Number:Pressure | -32767 | 32767 | No | EB101-EP14-BP4 Pressure Sensor | | -| compressor#40782 | Number:Frequency | 0 | 255 | No | EB101 Cpr Frequency Desired F2040 | | -| compressor#44701 | Number:Frequency | -32767 | 32767 | No | EB101-EP14 Actual Cpr Frequency Outdoor Unit | | -| compressor#44702 | Number | --- | --- | No | EB101-EP14 Protection Status Register Outdoor Unit | | -| compressor#44700 | Number:Pressure | -32767 | 32767 | No | EB101-EP14 Low Pressure Sensor Outdoor Unit | | -| compressor#44457 | Number | 0 | 255 | No | EB101-EP14 Compressor State | | -| airsupply#40025 | Number:Temperature | -32767 | 32767 | No | BT20 Exhaust air temp. 1 | | -| airsupply#40026 | Number:Temperature | -32767 | 32767 | No | BT21 Vented air temp. 1 | | -| airsupply#40075 | Number:Temperature | -32767 | 32767 | No | BT22 Supply air temp. | | -| airsupply#40183 | Number:Temperature | -32767 | 32767 | No | AZ30-BT23 Outdoor temp. ERS | | -| airsupply#40311 | Number:Dimensionless | 0 | 255 | No | External ERS accessory GQ2 speed | | -| airsupply#40312 | Number:Dimensionless | 0 | 255 | No | External ERS accessory GQ3 speed | | -| airsupply#40942 | Switch | --- | --- | No | External ERS accessory block status | | -| airsupply#47260 | Number | --- | --- | Yes | Selected fan speed | 0=normal, 1=speed 1, 2=speed 2, 3=speed 3, 4=speed 4 | - -### VVM320 / VVM325 - -| Channel Type ID | Item Type | Min | Max | Writable | Description | Allowed Values (write access) | -|------------------|----------------------|--------|---------|----------|----------------------------------------------------|------------------------------------------------------| -| general#44270 | Number:Temperature | -32767 | 32767 | No | Calc. Cooling Supply S1 | | -| general#40121 | Number:Temperature | -32767 | 32767 | No | BT63 Add Supply Temp | | -| general#44302 | Number:Energy | 0 | 9999999 | No | Heat Meter - Cooling Cpr EP14 | | -| general#47011 | Number | -10 | 10 | Yes | Heat Offset S1 | values between -10 and 10 | -| general#47394 | Switch | --- | --- | Yes | Use room sensor S1 | 0=off, 1=on | -| general#47402 | Number | 0 | 60 | Yes | Room sensor factor S1 | Values between 0 and 6 | -| general#48793 | Number | 0 | 60 | Yes | Room sensor cool factor S1 | Values between 0 and 6 | -| general#47374 | Number:Temperature | 10 | 40 | Yes | Start temperature cooling | Values between 10 and 40 | -| general#47375 | Number:Temperature | 0 | 30 | Yes | Stop temperature heating | Values between 0 and 30 | -| general#47376 | Number:Temperature | -20 | 10 | Yes | Stop temperature additive | Values between -20 and 10 | -| general#47377 | Number:Time | 1 | 48 | Yes | Outdoor Filter Time | Values between 1 and 48 | -| compressor#44362 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT28 Outdoor Temp | | -| compressor#44396 | Number:Dimensionless | 0 | 255 | No | EB101 Speed charge pump | | -| compressor#44703 | Number | --- | --- | No | EB101-EP14 Defrosting Outdoor Unit | 0=No, 1=Active, 2=Passive | -| compressor#44073 | Number:Time | 0 | 9999999 | No | EB101-EP14 Tot. HW op.time compr | | -| compressor#40737 | Number:Time | 0 | 9999999 | No | EB101-EP14 Tot. Cooling op.time compr | | -| compressor#44071 | Number:Time | 0 | 9999999 | No | EB101-EP14 Tot. op.time compr | | -| compressor#44069 | Number | 0 | 9999999 | No | EB101-EP14 Compressor starts | | -| compressor#44061 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT17 Suction | | -| compressor#44060 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT15 Liquid Line | | -| compressor#44059 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT14 Hot Gas Temp | | -| compressor#44058 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT12 Condensor Out | | -| compressor#44055 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT3 Return Temp. | | -| compressor#44363 | Number:Temperature | -32767 | 32767 | No | EB101-EP14-BT16 Evaporator | | -| compressor#44699 | Number:Pressure | -32767 | 32767 | No | EB101-EP14-BP4 Pressure Sensor | | -| compressor#40782 | Number:Frequency | 0 | 255 | No | EB101 Cpr Frequency Desired F2040 | | -| compressor#44701 | Number:Frequency | -32767 | 32767 | No | EB101-EP14 Actual Cpr Frequency Outdoor Unit | | -| compressor#44702 | Number | --- | --- | No | EB101-EP14 Protection Status Register Outdoor Unit | | -| compressor#44700 | Number:Pressure | -32767 | 32767 | No | EB101-EP14 Low Pressure Sensor Outdoor Unit | | -| compressor#44457 | Number | 0 | 255 | No | EB101-EP14 Compressor State | | -| airsupply#40025 | Number:Temperature | -32767 | 32767 | No | BT20 Exhaust air temp. 1 | | -| airsupply#40026 | Number:Temperature | -32767 | 32767 | No | BT21 Vented air temp. 1 | | -| airsupply#40075 | Number:Temperature | -32767 | 32767 | No | BT22 Supply air temp. | | -| airsupply#40183 | Number:Temperature | -32767 | 32767 | No | AZ30-BT23 Outdoor temp. ERS | | -| airsupply#40311 | Number:Dimensionless | 0 | 255 | No | External ERS accessory GQ2 speed | | -| airsupply#40312 | Number:Dimensionless | 0 | 255 | No | External ERS accessory GQ3 speed | | -| airsupply#40942 | Switch | --- | --- | No | External ERS accessory block status | | -| airsupply#47260 | Number | --- | --- | Yes | Selected fan speed | 0=normal, 1=speed 1, 2=speed 2, 3=speed 3, 4=speed 4 | - -### Custom Channels - -An arbitrary number of custom channels can be added via the UI or using file based configuration. -There are three custom channel types available, which allow different scaling of the raw values retrieved from the NIBE API: - -- type-number-unscaled -- type-number-scale10 -- type-number-scale100 - -## Full Example - -### Thing - -```java -nibeuplink:vvm320:mynibe [ user="nibe@my-domain.de", password="secret123", nibeId="4711", pollingInterval=300] { - Channels: - Type type-number-scale10 : 47015 "min supply temp heating" - Type type-number-unscaled : 48177 "min supply temp cooling" -} -``` - -### Items - -As the binding supports UoM you might define units in the item's label. -An automatic conversion is applied e.g. from °C to °F then. -Channels which represent two states (such as on/off) are represented as Switch. -Channels which have more than two states are internally represented as number. -You need to define a map file which also gives you the opportunity to translate the state into your preferred language. - -```java -Number:Temperature NIBE_SUPPLY "Vorlauf" { channel="nibeuplink:vvm320:mynibe:base#40008" } -Number:Temperature NIBE_RETURN "Rücklauf [%.2f °F]" { channel="nibeuplink:vvm320:mynibe:base#40012" } -Number:Temperature NIBE_HW_TOP "Brauchwasser oben" { channel="nibeuplink:vvm320:mynibe:hotwater#40013" } -Number:Energy NIBE_HM_HEAT "WM Heizung" { channel="nibeuplink:vvm320:mynibe:base#44308" } -Switch NIBE_COMP_DEFROST "Enteisung" { channel="nibeuplink:vvm320:mynibe:compressor#44703" } -Number NIBE_HW_MODE "Modus [MAP(hwmode.map):%s]" { channel="nibeuplink:vvm320:mynibe:hotwater#47041" } - -Number NIBE_MIN_SUP_HEAT "min supply temp. heating [%.1f °C]" { channel="nibeuplink:vvm320:mynibe:47015" } -Number NIBE_MIN_SUP_COOL "min supply temp. cooling [%d °C]" { channel="nibeuplink:vvm320:mynibe:48177" } -``` - -### Transformations - -Please define each state as integer. - -```text -0=Eco -1=Norm -2=Lux -``` - -### Sitemaps - -Please take care of the status channels. -If you use selection items an automatic mapping will be applied. -If you prefer switch items a mapping must be applied like this: - -```java -Switch item=NIBE_HW_MODE mappings=[0="Eco", 1="Norm"] -``` diff --git a/bundles/org.openhab.binding.nibeuplink/pom.xml b/bundles/org.openhab.binding.nibeuplink/pom.xml deleted file mode 100644 index a84446ff32..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - 4.0.0 - - - org.openhab.addons.bundles - org.openhab.addons.reactor.bundles - 4.3.0-SNAPSHOT - - - org.openhab.binding.nibeuplink - - openHAB Add-ons :: Bundles :: NibeUplink Binding - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/feature/feature.xml b/bundles/org.openhab.binding.nibeuplink/src/main/feature/feature.xml deleted file mode 100644 index e021703b5b..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/feature/feature.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features - - - openhab-runtime-base - mvn:org.openhab.addons.bundles/org.openhab.binding.nibeuplink/${project.version} - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/AtomicReferenceTrait.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/AtomicReferenceTrait.java deleted file mode 100644 index bb8838697e..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/AtomicReferenceTrait.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * 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.nibeuplink.internal; - -import java.util.concurrent.Future; -import java.util.concurrent.atomic.AtomicReference; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; - -/** - * trait class which contains useful helper methods. Thus, the interface can be implemented and methods are available - * within the class. - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public interface AtomicReferenceTrait { - - /** - * this should usually not called directly. use updateJobReference or cancelJobReference instead - * - * @param job job to cancel. - */ - default void cancelJob(@Nullable Future job) { - if (job != null) { - job.cancel(true); - } - } - - /** - * updates a job reference with a new job. the old job will be cancelled if there is one. - * - * @param jobReference reference to be updated - * @param newJob job to be assigned - */ - default void updateJobReference(AtomicReference<@Nullable Future> jobReference, Future newJob) { - cancelJob(jobReference.getAndSet(newJob)); - } - - /** - * updates a job reference to null and cancels any existing job which might be assigned to the reference. - * - * @param jobReference to be updated to null. - */ - default void cancelJobReference(AtomicReference<@Nullable Future> jobReference) { - cancelJob(jobReference.getAndSet(null)); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkBindingConstants.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkBindingConstants.java deleted file mode 100644 index 1e7580693d..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkBindingConstants.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * 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.nibeuplink.internal; - -import java.util.Collections; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.openhab.core.thing.ThingTypeUID; - -/** - * The {@link NibeUplinkBindingConstants} class defines common constants, which are - * used across the whole binding. - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public final class NibeUplinkBindingConstants { - - private static final String BINDING_ID = "nibeuplink"; - - // List of main device types - public static final String DEVICE_VVM320 = "vvm320"; - public static final String DEVICE_VVM310 = "vvm310"; - public static final String DEVICE_F730 = "f730"; - public static final String DEVICE_F750 = "f750"; - public static final String DEVICE_F1145 = "f1145"; - public static final String DEVICE_F1155 = "f1155"; - - // List of all Thing Type UIDs - public static final ThingTypeUID THING_TYPE_VVM320 = new ThingTypeUID(BINDING_ID, DEVICE_VVM320); - public static final ThingTypeUID THING_TYPE_VVM310 = new ThingTypeUID(BINDING_ID, DEVICE_VVM310); - public static final ThingTypeUID THING_TYPE_F730 = new ThingTypeUID(BINDING_ID, DEVICE_F730); - public static final ThingTypeUID THING_TYPE_F750 = new ThingTypeUID(BINDING_ID, DEVICE_F750); - public static final ThingTypeUID THING_TYPE_F1145 = new ThingTypeUID(BINDING_ID, DEVICE_F1145); - public static final ThingTypeUID THING_TYPE_F1155 = new ThingTypeUID(BINDING_ID, DEVICE_F1155); - - public static final String VALID_CHANNEL_ID_REGEX = "[1-5][0-9][0-9][0-9][0-9]"; - - public static final String PARAMETER_NAME_WRITE_API_URL = "writeApiUrl"; - public static final String PARAMETER_NAME_VALIDATION_REGEXP = "validationExpression"; - public static final String PARAMETER_NAME_OFF_MAPPING = "offMapping"; - public static final String PARAMETER_NAME_ON_MAPPING = "onMapping"; - - // List of all channel types - public static final String CHANNEL_TYPE_NUMBER_UNSCALED = "type-number-unscaled"; - public static final String CHANNEL_TYPE_NUMBER_SCALE10 = "type-number-scale10"; - public static final String CHANNEL_TYPE_NUMBER_SCALE100 = "type-number-scale100"; - public static final String CHANNEL_TYPE_TEMPERATURE = "type-temperature"; - public static final String CHANNEL_TYPE_SWITCH = "type-switch"; - public static final String CHANNEL_TYPE_POWER = "type-power"; - public static final String CHANNEL_TYPE_ENERGY = "type-energy"; - public static final String CHANNEL_TYPE_ELECTRIC_CURRENT = "type-electric-current"; - public static final String CHANNEL_TYPE_TIME_UNSCALED = "type-time-unscaled"; - public static final String CHANNEL_TYPE_TIME_SCALE10 = "type-time-scale10"; - public static final String CHANNEL_TYPE_FREQUENCY_UNSCALED = "type-frequency-unscaled"; - public static final String CHANNEL_TYPE_FREQUENCY_SCALE10 = "type-frequency-scale10"; - public static final String CHANNEL_TYPE_FLOW = "type-flow"; - public static final String CHANNEL_TYPE_SPEED = "type-speed-percent"; - public static final String CHANNEL_TYPE_DEFROSTING_STATE = "type-defrosting-state"; - public static final String CHANNEL_TYPE_HPAC_STATE = "type-hpac-state"; - public static final String CHANNEL_TYPE_PRESSURE = "type-pressure"; - - public static final String RW_CHANNEL_PREFIX = "rw"; - public static final String CHANNEL_TYPE_HEAT_OFFSET_RW = "rwtype-heat-offset"; - public static final String CHANNEL_TYPE_START_COOLING_RW = "rwtype-start-cooling"; - public static final String CHANNEL_TYPE_STOP_HEATING_RW = "rwtype-stop-heating"; - public static final String CHANNEL_TYPE_STOP_ADD_HEATING_RW = "rwtype-stop-add-heating"; - public static final String CHANNEL_TYPE_FILTER_TIME_RW = "rwtype-filter-time"; - public static final String CHANNEL_TYPE_ROOM_SENSOR_FACTOR_RW = "rwtype-room-sensor-factor"; - public static final String CHANNEL_TYPE_SWITCH_RW = "rwtype-switch"; - public static final String CHANNEL_TYPE_DEGREE_MINUTES_RW = "rwtype-degree-minutes"; - public static final String CHANNEL_TYPE_HW_LUX_RW = "rwtype-hw-lux"; - public static final String CHANNEL_TYPE_HW_MODE_RW = "rwtype-hw-mode"; - public static final String CHANNEL_TYPE_FAN_SPEED_RW = "rwtype-fan-speed"; - - // Status Keys - public static final String STATUS_INVALID_NIBE_ID = "@text/status.invalid.nibeId"; - public static final String STATUS_INVALID_CREDENTIALS = "@text/status.invalid.credentials"; - - // URLs - public static final String LOGIN_URL = "https://www.nibeuplink.com/LogIn"; - public static final String DATA_API_URL = "https://www.nibeuplink.com/PrivateAPI/QueueValues"; - public static final String MANAGE_API_BASE_URL = "https://www.nibeuplink.com/System/"; - - // login field names - public static final String LOGIN_FIELD_PASSWORD = "Password"; - public static final String LOGIN_FIELD_EMAIL = "Email"; - public static final String LOGIN_FIELD_RETURN_URL = "returnUrl"; - - // other field names - public static final String DATA_API_FIELD_LAST_DATE = "currentWebDate"; - public static final String DATA_API_FIELD_LAST_DATE_DEFAULT_VALUE = "01.01.2017 13:37:42"; - public static final String DATA_API_FIELD_ID = "hpid"; - public static final String DATA_API_FIELD_DATA = "variables"; - public static final String DATA_API_FIELD_DATA_DEFAULT_VALUE = "0"; - - // web request constants - public static final long WEB_REQUEST_INITIAL_DELAY = TimeUnit.SECONDS.toMillis(30); - public static final long WEB_REQUEST_INTERVAL = TimeUnit.SECONDS.toMillis(5); - public static final int WEB_REQUEST_QUEUE_MAX_SIZE = 20; - - public static final Set SUPPORTED_THING_TYPES_UIDS = Collections - .unmodifiableSet(Stream.of(THING_TYPE_VVM320, THING_TYPE_VVM310, THING_TYPE_F730, THING_TYPE_F750, - THING_TYPE_F1145, THING_TYPE_F1155).collect(Collectors.toSet())); -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkHandlerFactory.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkHandlerFactory.java deleted file mode 100644 index 873d452e61..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/NibeUplinkHandlerFactory.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * 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.nibeuplink.internal; - -import static org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants.SUPPORTED_THING_TYPES_UIDS; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.HttpClient; -import org.openhab.binding.nibeuplink.internal.handler.GenericHandler; -import org.openhab.core.io.net.http.HttpClientFactory; -import org.openhab.core.thing.Thing; -import org.openhab.core.thing.ThingTypeUID; -import org.openhab.core.thing.binding.BaseThingHandlerFactory; -import org.openhab.core.thing.binding.ThingHandler; -import org.openhab.core.thing.binding.ThingHandlerFactory; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * The {@link NibeUplinkHandlerFactory} is responsible for creating things and thing - * handlers. - * - * @author Alexander Friese - initial contribution - */ -@Component(service = ThingHandlerFactory.class, configurationPid = "binding.nibeuplink") -@NonNullByDefault -public class NibeUplinkHandlerFactory extends BaseThingHandlerFactory { - private final Logger logger = LoggerFactory.getLogger(NibeUplinkHandlerFactory.class); - - /** - * the shared http client - */ - private final HttpClient httpClient; - - @Activate - public NibeUplinkHandlerFactory(@Reference HttpClientFactory httpClientFactory) { - this.httpClient = httpClientFactory.getCommonHttpClient(); - } - - @Override - public boolean supportsThingType(ThingTypeUID thingTypeUID) { - return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID); - } - - @Override - protected @Nullable ThingHandler createHandler(Thing thing) { - ThingTypeUID thingTypeUID = thing.getThingTypeUID(); - - if (supportsThingType(thingTypeUID)) { - return new GenericHandler(thing, httpClient); - } else { - logger.warn("Unsupported Thing-Type: {}", thingTypeUID.getAsString()); - } - - return null; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/callback/AbstractUplinkCommandCallback.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/callback/AbstractUplinkCommandCallback.java deleted file mode 100644 index c770a61778..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/callback/AbstractUplinkCommandCallback.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * 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.nibeuplink.internal.callback; - -import java.net.SocketTimeoutException; -import java.net.UnknownHostException; -import java.nio.ByteBuffer; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.api.Request; -import org.eclipse.jetty.client.api.Response; -import org.eclipse.jetty.client.util.BufferingResponseListener; -import org.eclipse.jetty.http.HttpStatus; -import org.eclipse.jetty.http.HttpStatus.Code; -import org.openhab.binding.nibeuplink.internal.command.NibeUplinkCommand; -import org.openhab.binding.nibeuplink.internal.config.NibeUplinkConfiguration; -import org.openhab.binding.nibeuplink.internal.connector.CommunicationStatus; -import org.openhab.binding.nibeuplink.internal.connector.StatusUpdateListener; -import org.openhab.binding.nibeuplink.internal.model.GenericDataResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -/** - * base class for all commands. common logic should be implemented here - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public abstract class AbstractUplinkCommandCallback extends BufferingResponseListener implements NibeUplinkCommand { - - /** - * logger - */ - protected final Logger logger = LoggerFactory.getLogger(AbstractUplinkCommandCallback.class); - - /** - * the configuration - */ - protected final NibeUplinkConfiguration config; - - /** - * status code of fulfilled request - */ - private CommunicationStatus communicationStatus; - - /** - * listener to provide updates to the WebInterface class - */ - private @Nullable StatusUpdateListener listener; - - /** - * JSON deserializer - */ - private final Gson gson; - - /** - * the constructor - * - * @param config - */ - public AbstractUplinkCommandCallback(NibeUplinkConfiguration config) { - this.communicationStatus = new CommunicationStatus(); - this.config = config; - this.gson = new Gson(); - } - - /** - * the constructor - * - * @param config - */ - public AbstractUplinkCommandCallback(NibeUplinkConfiguration config, StatusUpdateListener listener) { - this(config); - this.listener = listener; - } - - /** - * Log request success - */ - @Override - public final void onSuccess(Response response) { - super.onSuccess(response); - if (response != null) { - communicationStatus.setHttpCode(HttpStatus.getCode(response.getStatus())); - logger.debug("HTTP response {}", response.getStatus()); - } - } - - /** - * Log request failure - */ - @Override - public final void onFailure(@Nullable Response response, @Nullable Throwable failure) { - if (response != null && failure != null) { - super.onFailure(response, failure); - } - if (failure != null) { - logger.debug("Request failed: {}", failure.toString()); - communicationStatus.setError((Exception) failure); - - if (failure instanceof SocketTimeoutException || failure instanceof TimeoutException) { - communicationStatus.setHttpCode(Code.REQUEST_TIMEOUT); - } else if (failure instanceof UnknownHostException) { - communicationStatus.setHttpCode(Code.BAD_GATEWAY); - } else { - communicationStatus.setHttpCode(Code.INTERNAL_SERVER_ERROR); - } - } - } - - @Override - public void onContent(Response response, ByteBuffer content) { - super.onContent(response, content); - String contentAsString = getContentAsString(); - logger.debug("received content, length: {}", contentAsString != null ? getContentAsString().length() : 0); - } - - @Override - public void performAction(HttpClient asyncclient) { - Request request = asyncclient.newRequest(getURL()).timeout(config.getAsyncTimeout(), TimeUnit.SECONDS); - prepareRequest(request).send(this); - } - - /** - * {@code @Nullable} wrapper of gson which does not 'understand' nonnull annotations - * - * @param json - * @return - */ - protected @Nullable GenericDataResponse fromJson(String json) { - // gson is not able to handle @NonNull annotation, thus the return value can be null. - return gson.fromJson(json, GenericDataResponse.class); - } - - /** - * returns Http Status Code - */ - public CommunicationStatus getCommunicationStatus() { - return communicationStatus; - } - - /** - * concrete implementation has to prepare the requests with additional parameters, etc - * - * @return - */ - protected abstract Request prepareRequest(Request requestToPrepare); - - /** - * concrete implementation has to provide the URL - * - * @return - */ - protected abstract String getURL(); - - @Override - public final void updateListenerStatus() { - StatusUpdateListener listener = this.listener; - if (listener != null) { - listener.update(communicationStatus); - } - } - - @Override - public final void setListener(StatusUpdateListener listener) { - this.listener = listener; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/GenericStatusUpdate.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/GenericStatusUpdate.java deleted file mode 100644 index 03ccd471fb..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/GenericStatusUpdate.java +++ /dev/null @@ -1,98 +0,0 @@ -/** - * 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.nibeuplink.internal.command; - -import static org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants.*; - -import java.nio.charset.StandardCharsets; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.api.Request; -import org.eclipse.jetty.client.api.Result; -import org.eclipse.jetty.client.util.FormContentProvider; -import org.eclipse.jetty.http.HttpHeader; -import org.eclipse.jetty.http.HttpMethod; -import org.eclipse.jetty.http.HttpStatus; -import org.eclipse.jetty.util.Fields; -import org.openhab.binding.nibeuplink.internal.callback.AbstractUplinkCommandCallback; -import org.openhab.binding.nibeuplink.internal.handler.NibeUplinkHandler; -import org.openhab.binding.nibeuplink.internal.model.DataResponse; -import org.openhab.binding.nibeuplink.internal.model.DataResponseTransformer; -import org.openhab.core.thing.Channel; - -/** - * generic command that retrieves status values for all channels defined in VVM320Channels - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class GenericStatusUpdate extends AbstractUplinkCommandCallback implements NibeUplinkCommand { - private final NibeUplinkHandler handler; - private final DataResponseTransformer transformer; - private int retries = 0; - - public GenericStatusUpdate(NibeUplinkHandler handler) { - super(handler.getConfiguration()); - this.handler = handler; - this.transformer = new DataResponseTransformer(handler); - } - - @Override - protected Request prepareRequest(Request requestToPrepare) { - Fields fields = new Fields(); - fields.add(DATA_API_FIELD_LAST_DATE, DATA_API_FIELD_LAST_DATE_DEFAULT_VALUE); - fields.add(DATA_API_FIELD_ID, config.getNibeId()); - - for (Channel channel : handler.getChannels()) { - if (!handler.getDeadChannels().contains(channel)) { - fields.add(DATA_API_FIELD_DATA, channel.getUID().getIdWithoutGroup()); - } - } - - fields.add(DATA_API_FIELD_DATA, DATA_API_FIELD_DATA_DEFAULT_VALUE); - FormContentProvider cp = new FormContentProvider(fields); - - requestToPrepare.header(HttpHeader.ACCEPT, "application/json"); - requestToPrepare.header(HttpHeader.ACCEPT_ENCODING, StandardCharsets.UTF_8.name()); - requestToPrepare.content(cp); - requestToPrepare.followRedirects(false); - requestToPrepare.method(HttpMethod.POST); - - return requestToPrepare; - } - - @Override - protected String getURL() { - return DATA_API_URL; - } - - @Override - public void onComplete(@Nullable Result result) { - logger.debug("onComplete()"); - - if (!HttpStatus.Code.OK.equals(getCommunicationStatus().getHttpCode()) && retries++ < MAX_RETRIES) { - updateListenerStatus(); - handler.getWebInterface().enqueueCommand(this); - } else { - String json = getContentAsString(StandardCharsets.UTF_8); - if (json != null && !json.isEmpty()) { - logger.debug("JSON String: {}", json); - DataResponse jsonObject = fromJson(json); - if (jsonObject != null) { - handler.updateChannelStatus(transformer.transform(jsonObject)); - } - } - } - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/Login.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/Login.java deleted file mode 100644 index 31fcc2f39a..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/Login.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * 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.nibeuplink.internal.command; - -import static org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants.*; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.api.Request; -import org.eclipse.jetty.client.api.Result; -import org.eclipse.jetty.client.util.FormContentProvider; -import org.eclipse.jetty.http.HttpMethod; -import org.eclipse.jetty.util.Fields; -import org.openhab.binding.nibeuplink.internal.callback.AbstractUplinkCommandCallback; -import org.openhab.binding.nibeuplink.internal.connector.StatusUpdateListener; -import org.openhab.binding.nibeuplink.internal.handler.NibeUplinkHandler; - -/** - * implements the login to the webinterface - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class Login extends AbstractUplinkCommandCallback implements NibeUplinkCommand { - - public Login(NibeUplinkHandler handler, StatusUpdateListener listener) { - super(handler.getConfiguration(), listener); - } - - @Override - protected Request prepareRequest(Request requestToPrepare) { - Fields fields = new Fields(); - fields.add(LOGIN_FIELD_EMAIL, config.getUser()); - fields.add(LOGIN_FIELD_PASSWORD, config.getPassword()); - fields.add(LOGIN_FIELD_RETURN_URL, ""); - FormContentProvider cp = new FormContentProvider(fields); - - requestToPrepare.content(cp); - requestToPrepare.followRedirects(false); - requestToPrepare.method(HttpMethod.POST); - - return requestToPrepare; - } - - @Override - protected String getURL() { - return LOGIN_URL; - } - - @Override - public void onComplete(@Nullable Result result) { - updateListenerStatus(); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/NibeUplinkCommand.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/NibeUplinkCommand.java deleted file mode 100644 index 2870158ac3..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/NibeUplinkCommand.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * 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.nibeuplink.internal.command; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.api.Response.CompleteListener; -import org.eclipse.jetty.client.api.Response.ContentListener; -import org.eclipse.jetty.client.api.Response.FailureListener; -import org.eclipse.jetty.client.api.Response.SuccessListener; -import org.openhab.binding.nibeuplink.internal.connector.StatusUpdateListener; - -/** - * public interface for all commands - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public interface NibeUplinkCommand extends SuccessListener, FailureListener, ContentListener, CompleteListener { - - static int MAX_RETRIES = 5; - - /** - * this method is to be called by the UplinkWebinterface class - * - * @param asyncclient client which will handle the command - */ - void performAction(HttpClient asyncclient); - - /** - * update the status of the registered listener instance - * - */ - void updateListenerStatus(); - - /** - * register a listener - * - * @param listener the listener to be registered. - */ - void setListener(StatusUpdateListener listener); -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/UpdateSetting.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/UpdateSetting.java deleted file mode 100644 index c0ba5686c4..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/command/UpdateSetting.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * 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.nibeuplink.internal.command; - -import java.nio.charset.StandardCharsets; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.api.Request; -import org.eclipse.jetty.client.api.Result; -import org.eclipse.jetty.client.util.FormContentProvider; -import org.eclipse.jetty.http.HttpHeader; -import org.eclipse.jetty.http.HttpMethod; -import org.eclipse.jetty.http.HttpStatus; -import org.eclipse.jetty.util.Fields; -import org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants; -import org.openhab.binding.nibeuplink.internal.callback.AbstractUplinkCommandCallback; -import org.openhab.binding.nibeuplink.internal.handler.ChannelUtil; -import org.openhab.binding.nibeuplink.internal.handler.NibeUplinkHandler; -import org.openhab.binding.nibeuplink.internal.model.ValidationException; -import org.openhab.core.library.types.OnOffType; -import org.openhab.core.library.types.QuantityType; -import org.openhab.core.thing.Channel; -import org.openhab.core.thing.type.ChannelTypeUID; -import org.openhab.core.types.Command; - -/** - * allows update of writable channels - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class UpdateSetting extends AbstractUplinkCommandCallback implements NibeUplinkCommand { - - private final NibeUplinkHandler handler; - private final Channel channel; - private String value; - private int retries = 0; - - public UpdateSetting(NibeUplinkHandler handler, Channel channel, Command command) { - super(handler.getConfiguration()); - this.handler = handler; - this.channel = channel; - this.value = extractValue(command); - } - - private String extractValue(Command command) { - // this is necessary because we must not send the unit to the nibe backend - if (command instanceof QuantityType quantityCommand) { - return String.valueOf(quantityCommand.doubleValue()); - } else if (command instanceof OnOffType onOffCommand) { - return ChannelUtil.mapValue(channel, onOffCommand); - } else { - return command.toString(); - } - } - - @Override - protected Request prepareRequest(Request requestToPrepare) { - ChannelTypeUID typeUID = channel.getChannelTypeUID(); - String channelId = channel.getUID().getIdWithoutGroup(); - - if (typeUID == null || !typeUID.getId().startsWith(NibeUplinkBindingConstants.RW_CHANNEL_PREFIX)) { - logger.info("channel '{}' does not support write access - value to set '{}'", channelId, value); - throw new UnsupportedOperationException("channel (" + channelId + ") does not support write access"); - } - - // although we have integers openhab often transfers decimals which will then cause a validation error. So we - // will shorten here. - if (value.endsWith(".0")) { - value = value.substring(0, value.length() - 2); - } - - String expr = ChannelUtil.getValidationExpression(channel); - - if (value.matches(expr)) { - Fields fields = new Fields(); - fields.add(channelId, value); - - FormContentProvider cp = new FormContentProvider(fields); - - requestToPrepare.header(HttpHeader.ACCEPT_ENCODING, StandardCharsets.UTF_8.name()); - requestToPrepare.content(cp); - requestToPrepare.followRedirects(false); - requestToPrepare.method(HttpMethod.POST); - - return requestToPrepare; - } else { - logger.info("channel '{}' does not allow value '{}' - validation rule '{}'", channelId, value, expr); - throw new ValidationException("channel (" + channelId + ") could not be updated due to a validation error"); - } - } - - @Override - protected String getURL() { - return NibeUplinkBindingConstants.MANAGE_API_BASE_URL + config.getNibeId() - + ChannelUtil.getWriteApiUrlSuffix(channel); - } - - @Override - public void onComplete(@Nullable Result result) { - logger.debug("onComplete()"); - - if (!HttpStatus.Code.FOUND.equals(getCommunicationStatus().getHttpCode()) && retries++ < MAX_RETRIES) { - logger.debug("Could not set value '{}' for channel '{}' ({})", value, channel.getUID().getId(), - channel.getLabel()); - handler.getWebInterface().enqueueCommand(this); - } - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/config/NibeUplinkConfiguration.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/config/NibeUplinkConfiguration.java deleted file mode 100644 index 27957a0711..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/config/NibeUplinkConfiguration.java +++ /dev/null @@ -1,98 +0,0 @@ -/** - * 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.nibeuplink.internal.config; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; - -/** - * Bean holding configuration data according to bridge.xml - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class NibeUplinkConfiguration { - - private @Nullable String user; - private @Nullable String password; - private @Nullable String nibeId; - - private Integer asyncTimeout = 120; - private Integer syncTimeout = 120; - private Integer pollingInterval = 60; - private Integer houseKeepingInterval = 3600; - - public @Nullable String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } - - public @Nullable String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public @Nullable String getNibeId() { - return nibeId; - } - - public void setNibeId(String nibeId) { - this.nibeId = nibeId; - } - - public Integer getAsyncTimeout() { - return asyncTimeout; - } - - public void setAsyncTimeout(Integer asyncTimeout) { - this.asyncTimeout = asyncTimeout; - } - - public Integer getSyncTimeout() { - return syncTimeout; - } - - public void setSyncTimeout(Integer syncTimeout) { - this.syncTimeout = syncTimeout; - } - - public Integer getPollingInterval() { - return pollingInterval; - } - - public void setPollingInterval(Integer pollingInterval) { - this.pollingInterval = pollingInterval; - } - - public Integer getHouseKeepingInterval() { - return houseKeepingInterval; - } - - public void setHouseKeepingInterval(Integer houseKeepingInterval) { - this.houseKeepingInterval = houseKeepingInterval; - } - - @Override - public String toString() { - return getClass().getSimpleName() + "{ user=" + getUser() + ", password=" + getPassword() + ", nibeId=" - + getNibeId() + ", pollingInterval=" + getPollingInterval() + ", houseKeepingInterval=" - + getHouseKeepingInterval() + ", asyncTimeout=" + getAsyncTimeout() + ", syncTimeout=" - + getSyncTimeout() + "}"; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/CommunicationStatus.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/CommunicationStatus.java deleted file mode 100644 index 8a3642fa23..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/CommunicationStatus.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * 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.nibeuplink.internal.connector; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.http.HttpStatus.Code; - -/** - * this class contains the HTTP status of the communication and an optional exception that might occoured during - * communication - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class CommunicationStatus { - - private @Nullable Code httpCode; - private @Nullable Exception error; - - public final Code getHttpCode() { - Code code = httpCode; - return code == null ? Code.INTERNAL_SERVER_ERROR : code; - } - - public final void setHttpCode(Code httpCode) { - this.httpCode = httpCode; - } - - public final @Nullable Exception getError() { - return error; - } - - public final void setError(Exception error) { - this.error = error; - } - - public final String getMessage() { - Exception err = error; - String errMsg = err == null ? null : err.getMessage(); - String msg = getHttpCode().getMessage(); - if (errMsg != null && !errMsg.isEmpty()) { - return errMsg; - } else if (msg != null && !msg.isEmpty()) { - return msg; - } - return ""; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/StatusUpdateListener.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/StatusUpdateListener.java deleted file mode 100644 index 7106f1ee31..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/StatusUpdateListener.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 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.nibeuplink.internal.connector; - -import org.eclipse.jdt.annotation.NonNullByDefault; - -/** - * callback interface to update the status of the {@link UplinkWebInterface} - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public interface StatusUpdateListener { - - void update(CommunicationStatus status); -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/UplinkWebInterface.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/UplinkWebInterface.java deleted file mode 100644 index a50ffe7c6a..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/connector/UplinkWebInterface.java +++ /dev/null @@ -1,253 +0,0 @@ -/** - * 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.nibeuplink.internal.connector; - -import static org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants.*; - -import java.util.Queue; -import java.util.concurrent.Future; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.util.BlockingArrayQueue; -import org.openhab.binding.nibeuplink.internal.AtomicReferenceTrait; -import org.openhab.binding.nibeuplink.internal.command.Login; -import org.openhab.binding.nibeuplink.internal.command.NibeUplinkCommand; -import org.openhab.binding.nibeuplink.internal.handler.NibeUplinkHandler; -import org.openhab.core.thing.ThingStatus; -import org.openhab.core.thing.ThingStatusDetail; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class handles requests to the NibeUplink web interface. It manages authentication and wraps commands. - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class UplinkWebInterface implements AtomicReferenceTrait { - - private final Logger logger = LoggerFactory.getLogger(UplinkWebInterface.class); - - /** - * handler for updating thing status - */ - private final NibeUplinkHandler uplinkHandler; - - /** - * holds authentication status - */ - private boolean authenticated = false; - - /** - * HTTP client for asynchronous calls - */ - private final HttpClient httpClient; - - /** - * the scheduler which periodically sends web requests to the solaredge API. Should be initiated with the thing's - * existing scheduler instance. - */ - private final ScheduledExecutorService scheduler; - - /** - * request executor - */ - private final WebRequestExecutor requestExecutor; - - /** - * periodic request executor job - */ - private AtomicReference<@Nullable Future> requestExecutorJobReference = new AtomicReference<>(null); - - /** - * this class is responsible for executing periodic web requests. This ensures that only one request is executed at - * the same time and there will be a guaranteed minimum delay between subsequent requests. - * - * @author afriese - initial contribution - */ - private class WebRequestExecutor implements Runnable { - - /** - * queue which holds the commands to execute - */ - private final Queue<@Nullable NibeUplinkCommand> commandQueue; - - /** - * constructor - */ - WebRequestExecutor() { - this.commandQueue = new BlockingArrayQueue<>(WEB_REQUEST_QUEUE_MAX_SIZE); - } - - /** - * puts a command into the queue - * - * @param command the command which will be queued - */ - void enqueue(NibeUplinkCommand command) { - try { - commandQueue.add(command); - } catch (IllegalStateException ex) { - if (commandQueue.size() >= WEB_REQUEST_QUEUE_MAX_SIZE) { - logger.debug( - "Could not add command to command queue because queue is already full. Maybe NIBE Uplink is down?"); - } else { - logger.warn("Could not add command to queue - IllegalStateException"); - } - } - } - - /** - * executes the web request - */ - @Override - public void run() { - logger.debug("run queued commands, queue size is {}", commandQueue.size()); - if (!isAuthenticated()) { - authenticate(); - } else if (isAuthenticated() && !commandQueue.isEmpty()) { - try { - executeCommand(); - } catch (Exception ex) { - logger.warn("command execution ended with exception:", ex); - } - } - } - - /** - * executes the next command in the queue. requires authenticated session. - * - * @throws ValidationException - */ - private void executeCommand() { - NibeUplinkCommand command = commandQueue.poll(); - if (command != null) { - command.setListener(this::processExecutionResult); - command.performAction(httpClient); - } - } - - /** - * callback that handles result from command execution. - * - * @param status status information to be evaluated - */ - private void processExecutionResult(CommunicationStatus status) { - switch (status.getHttpCode()) { - case SERVICE_UNAVAILABLE: - uplinkHandler.setStatusInfo(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE, - status.getMessage()); - setAuthenticated(false); - break; - case FOUND: - uplinkHandler.setStatusInfo(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, - STATUS_INVALID_NIBE_ID); - setAuthenticated(false); - break; - case OK: - // no action needed as the thing is already online. - break; - default: - uplinkHandler.setStatusInfo(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, - status.getMessage()); - setAuthenticated(false); - } - } - - /** - * authenticates with the Nibe Uplink WEB interface - */ - private synchronized void authenticate() { - setAuthenticated(false); - new Login(uplinkHandler, this::processAuthenticationResult).performAction(httpClient); - } - - /** - * callback that handles result from authentication. - * - * @param status status information to be evaluated - */ - private void processAuthenticationResult(CommunicationStatus status) { - switch (status.getHttpCode()) { - case FOUND: - uplinkHandler.setStatusInfo(ThingStatus.ONLINE, ThingStatusDetail.NONE, null); - setAuthenticated(true); - break; - case OK: - uplinkHandler.setStatusInfo(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, - STATUS_INVALID_CREDENTIALS); - setAuthenticated(false); - break; - case SERVICE_UNAVAILABLE: - uplinkHandler.setStatusInfo(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE, - status.getMessage()); - setAuthenticated(false); - break; - default: - uplinkHandler.setStatusInfo(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, - status.getMessage()); - setAuthenticated(false); - } - } - } - - /** - * Constructor to set up interface - */ - public UplinkWebInterface(ScheduledExecutorService scheduler, NibeUplinkHandler handler, HttpClient httpClient) { - this.uplinkHandler = handler; - this.scheduler = scheduler; - this.requestExecutor = new WebRequestExecutor(); - this.httpClient = httpClient; - } - - /** - * starts the periodic request executor job which handles all web requests - */ - public void start() { - setAuthenticated(false); - updateJobReference(requestExecutorJobReference, scheduler.scheduleWithFixedDelay(requestExecutor, - WEB_REQUEST_INITIAL_DELAY, WEB_REQUEST_INTERVAL, TimeUnit.MILLISECONDS)); - } - - /** - * queues any command for execution - * - * @param command the command which will be put into the queue - */ - public void enqueueCommand(NibeUplinkCommand command) { - requestExecutor.enqueue(command); - } - - /** - * will be called by the ThingHandler to abort periodic jobs. - */ - public void dispose() { - logger.debug("Webinterface disposed."); - cancelJobReference(requestExecutorJobReference); - setAuthenticated(false); - } - - private boolean isAuthenticated() { - return authenticated; - } - - private void setAuthenticated(boolean authenticated) { - this.authenticated = authenticated; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelProvider.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelProvider.java deleted file mode 100644 index 1abfdda0e5..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * 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.nibeuplink.internal.handler; - -import java.util.List; -import java.util.Set; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.openhab.core.thing.Channel; - -/** - * this interface provides all methods which deal with channels - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public interface ChannelProvider { - - List getChannels(); - - Set getDeadChannels(); - - @Nullable - Channel getSpecificChannel(String channelCode); -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelUtil.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelUtil.java deleted file mode 100644 index 446d0914ac..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/ChannelUtil.java +++ /dev/null @@ -1,149 +0,0 @@ -/** - * 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.nibeuplink.internal.handler; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants; -import org.openhab.binding.nibeuplink.internal.model.ConfigurationException; -import org.openhab.core.library.types.OnOffType; -import org.openhab.core.thing.Channel; -import org.openhab.core.types.State; -import org.openhab.core.types.UnDefType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * this class provides all methods which deal with channels - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public final class ChannelUtil { - private static final Logger logger = LoggerFactory.getLogger(ChannelUtil.class); - - /** - * only static methods no instance needed - */ - private ChannelUtil() { - } - - /** - * checks whether the channel ha a valid numeric Id - * - * @param channel to check - * @return true or false - */ - public static boolean isValidNibeChannel(Channel channel) { - String id = channel.getUID().getIdWithoutGroup(); - return id.matches(NibeUplinkBindingConstants.VALID_CHANNEL_ID_REGEX); - } - - /** - * map data response from API to OnOff-Type. uses mapping from channel configuration - * - * @param channel switch channel which has mapping configured - * @param value value to map - * @return mapped value - */ - public static State mapValue(Channel channel, String value) { - String off = getOffMapping(channel); - String on = getOnMapping(channel); - if (value.equals(off)) { - return OnOffType.OFF; - } else if (value.equals(on)) { - return OnOffType.ON; - } else { - logger.warn("Channel {} value '{}' could not be mapped, valid values: ON={}, OFF={}", - channel.getUID().getId(), value, on, off); - return UnDefType.UNDEF; - } - } - - /** - * map data response from API to OnOff-Type. uses mapping from channel configuration - * - * @param channel switch channel which has mapping configured - * @param value value to map - * @return mapped value - */ - public static State mapValue(Channel channel, long value) { - return mapValue(channel, String.valueOf(value)); - } - - /** - * map OnOff-Type to API compatible value. uses mapping from channel configuration - * - * @param channel switch channel which has mapping configured - * @param value value to map - * @return mapped value - */ - public static String mapValue(Channel channel, OnOffType value) { - if (value.equals(OnOffType.OFF)) { - return String.valueOf(getOffMapping(channel)); - } else { - return String.valueOf(getOnMapping(channel)); - } - } - - /** - * retrieves the validation expression which is assigned to this channel, fallback to a default, if no validation is - * defined. - * - * @param channel - * @return the validation expression - */ - public static String getValidationExpression(Channel channel) { - String expr = getPropertyOrParameter(channel, NibeUplinkBindingConstants.PARAMETER_NAME_VALIDATION_REGEXP); - if (expr == null) { - logger.info("Channel {} does not have a validation expression configured", channel.getUID().getId()); - throw new ConfigurationException( - "channel (" + channel.getUID().getId() + ") does not have a validation expression configured"); - } - return expr; - } - - /** - * retrieves the write API url suffix which is assigned to this channel. - * - * @param channel - * @return the url suffix - */ - public static String getWriteApiUrlSuffix(Channel channel) { - String suffix = getPropertyOrParameter(channel, NibeUplinkBindingConstants.PARAMETER_NAME_WRITE_API_URL); - if (suffix == null) { - logger.info("channel {} does not have a write api url suffix configured", channel.getUID().getId()); - throw new ConfigurationException( - "channel (" + channel.getUID().getId() + ") does not have a write api url suffix configured"); - } - return suffix; - } - - private static @Nullable String getOffMapping(Channel channel) { - return getPropertyOrParameter(channel, NibeUplinkBindingConstants.PARAMETER_NAME_OFF_MAPPING); - } - - private static @Nullable String getOnMapping(Channel channel) { - return getPropertyOrParameter(channel, NibeUplinkBindingConstants.PARAMETER_NAME_ON_MAPPING); - } - - private static @Nullable String getPropertyOrParameter(Channel channel, String name) { - String value = channel.getProperties().get(name); - // also eclipse says this cannot be null, it definitely can! - if (value == null || value.isEmpty()) { - Object obj = channel.getConfiguration().get(name); - value = obj == null ? null : obj.toString(); - } - return value; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/GenericHandler.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/GenericHandler.java deleted file mode 100644 index 988683975d..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/GenericHandler.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * 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.nibeuplink.internal.handler; - -import java.util.List; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.HttpClient; -import org.openhab.core.thing.Channel; -import org.openhab.core.thing.ChannelGroupUID; -import org.openhab.core.thing.ChannelUID; -import org.openhab.core.thing.Thing; - -/** - * generic implementation of handler logic - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class GenericHandler extends UplinkBaseHandler { - - /** - * constructor, called by the factory - * - * @param thing instance of the thing, passed in by the factory - * @param httpClient the httpclient that communicates with the API - */ - public GenericHandler(Thing thing, HttpClient httpClient) { - super(thing, httpClient); - } - - @Override - public @Nullable Channel getSpecificChannel(String channelId) { - Channel channel = getThing().getChannel(channelId); - if (channel == null) { - for (ChannelGroupUID channelGroupUID : getRegisteredGroups()) { - channel = getThing().getChannel(new ChannelUID(channelGroupUID, channelId)); - if (channel != null) { - break; - } - } - } - return channel; - } - - @Override - public List getChannels() { - return getThing().getChannels(); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/NibeUplinkHandler.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/NibeUplinkHandler.java deleted file mode 100644 index 88fbb190dc..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/NibeUplinkHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * 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.nibeuplink.internal.handler; - -import java.util.Map; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.openhab.binding.nibeuplink.internal.config.NibeUplinkConfiguration; -import org.openhab.binding.nibeuplink.internal.connector.UplinkWebInterface; -import org.openhab.core.thing.Channel; -import org.openhab.core.thing.ThingStatus; -import org.openhab.core.thing.ThingStatusDetail; -import org.openhab.core.thing.binding.ThingHandler; -import org.openhab.core.types.State; - -/** - * public interface of the {@link UplinkBaseHandler} - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public interface NibeUplinkHandler extends ThingHandler, ChannelProvider { - /** - * Called from - * {@link org.openhab.binding.nibeuplink.internal.connector.UplinkWebInterface.WebRequestExecutor#authenticate()} - * to update the thing status because updateStatus is protected. - * - * @param status Bridge status - * @param statusDetail Bridge status detail - * @param description Bridge status description - */ - void setStatusInfo(ThingStatus status, ThingStatusDetail statusDetail, @Nullable String description); - - /** - * Provides the web interface object. - * - * @return The web interface object - */ - UplinkWebInterface getWebInterface(); - - void updateChannelStatus(Map values); - - NibeUplinkConfiguration getConfiguration(); -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkBaseHandler.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkBaseHandler.java deleted file mode 100644 index 9aed6cf425..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkBaseHandler.java +++ /dev/null @@ -1,206 +0,0 @@ -/** - * 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.nibeuplink.internal.handler; - -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.HttpClient; -import org.openhab.binding.nibeuplink.internal.AtomicReferenceTrait; -import org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants; -import org.openhab.binding.nibeuplink.internal.command.UpdateSetting; -import org.openhab.binding.nibeuplink.internal.config.NibeUplinkConfiguration; -import org.openhab.binding.nibeuplink.internal.connector.UplinkWebInterface; -import org.openhab.core.thing.Channel; -import org.openhab.core.thing.ChannelGroupUID; -import org.openhab.core.thing.ChannelUID; -import org.openhab.core.thing.Thing; -import org.openhab.core.thing.ThingStatus; -import org.openhab.core.thing.ThingStatusDetail; -import org.openhab.core.thing.ThingUID; -import org.openhab.core.thing.binding.BaseThingHandler; -import org.openhab.core.thing.type.ChannelTypeUID; -import org.openhab.core.types.Command; -import org.openhab.core.types.RefreshType; -import org.openhab.core.types.State; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * The {@link UplinkBaseHandler} is responsible for handling commands, which are - * sent to one of the channels. - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public abstract class UplinkBaseHandler extends BaseThingHandler implements NibeUplinkHandler, AtomicReferenceTrait { - private final Logger logger = LoggerFactory.getLogger(UplinkBaseHandler.class); - - private final long POLLING_INITIAL_DELAY = 30; - private final long HOUSE_KEEPING_INITIAL_DELAY = 300; - - private final Set deadChannels = new HashSet<>(100); - private final Set registeredGroups = new HashSet<>(10); - - /** - * Interface object for querying the NibeUplink web interface - */ - private UplinkWebInterface webInterface; - - /** - * Schedule for polling - */ - private final AtomicReference<@Nullable Future> pollingJobReference; - - /** - * Schedule for periodic cleaning dead channel list - */ - private final AtomicReference<@Nullable Future> deadChannelHouseKeepingReference; - - public UplinkBaseHandler(Thing thing, HttpClient httpClient) { - super(thing); - this.webInterface = new UplinkWebInterface(scheduler, this, httpClient); - this.pollingJobReference = new AtomicReference<>(null); - this.deadChannelHouseKeepingReference = new AtomicReference<>(null); - } - - @Override - public void handleCommand(ChannelUID channelUID, Command command) { - if (!(command instanceof RefreshType)) { - logger.debug("command for {}: {}", channelUID.getIdWithoutGroup(), command.toString()); - Channel channel = getSpecificChannel(channelUID.getIdWithoutGroup()); - if (channel != null) { - ChannelTypeUID typeUID = channel.getChannelTypeUID(); - if (typeUID != null && typeUID.getId().startsWith(NibeUplinkBindingConstants.RW_CHANNEL_PREFIX)) { - webInterface.enqueueCommand(new UpdateSetting(this, channel, command)); - } - } - } - } - - @Override - public void initialize() { - logger.debug("About to initialize NibeUplink"); - NibeUplinkConfiguration config = getConfiguration(); - logger.debug("NibeUplink initialized with configuration: {}", config); - - registeredGroups.clear(); - validateChannelsAndRegisterGroups(); - - startPolling(); - webInterface.start(); - updateStatus(ThingStatus.UNKNOWN, ThingStatusDetail.NONE, "waiting for web api login"); - } - - /** - * initialize the channels out of the configuration - * - */ - private void validateChannelsAndRegisterGroups() { - logger.debug("Validating {} channels", getThing().getChannels().size()); - for (Channel channel : getThing().getChannels()) { - if (!ChannelUtil.isValidNibeChannel(channel)) { - logger.warn("Channel {} is not a valid Nibe channel ({})", channel.getUID().getIdWithoutGroup(), - channel.getLabel()); - deadChannels.add(channel); - } else { - logger.debug("Successfully validated channel {} ({})", channel.getUID().getIdWithoutGroup(), - channel.getLabel()); - String groupId = channel.getUID().getGroupId(); - if (groupId != null) { - ThingUID thingUID = this.getThing().getUID(); - if (registeredGroups.add(new ChannelGroupUID(thingUID, groupId))) { - logger.debug("Successfully registered channel-group '{}'", groupId); - } - } - } - } - } - - /** - * Start the polling. - */ - private void startPolling() { - updateJobReference(pollingJobReference, scheduler.scheduleWithFixedDelay(new UplinkPolling(this), - POLLING_INITIAL_DELAY, getConfiguration().getPollingInterval(), TimeUnit.SECONDS)); - updateJobReference(deadChannelHouseKeepingReference, scheduler.scheduleWithFixedDelay(deadChannels::clear, - HOUSE_KEEPING_INITIAL_DELAY, getConfiguration().getHouseKeepingInterval(), TimeUnit.SECONDS)); - } - - /** - * Disposes the bridge. - */ - @Override - public void dispose() { - logger.debug("Handler disposed."); - - cancelJobReference(pollingJobReference); - cancelJobReference(deadChannelHouseKeepingReference); - - // the webinterface also makes use of the scheduler and must stop it's jobs - webInterface.dispose(); - } - - @Override - public UplinkWebInterface getWebInterface() { - return webInterface; - } - - /** - * will update all channels provided in the map - * - * @param values map containing the data updates - */ - @Override - public void updateChannelStatus(Map values) { - logger.debug("Handling channel update. ({} Channels)", values.size()); - - for (Channel channel : values.keySet()) { - if (getChannels().contains(channel)) { - State value = values.get(channel); - if (value != null) { - logger.debug("Channel is to be updated: {}: {}", channel.getUID().getAsString(), value); - updateState(channel.getUID(), value); - } - } else { - logger.debug("Could not identify channel: {} for model {}", channel.getUID().getAsString(), - getThing().getThingTypeUID().getAsString()); - } - } - } - - @Override - public Set getDeadChannels() { - return deadChannels; - } - - @Override - public void setStatusInfo(ThingStatus status, ThingStatusDetail statusDetail, @Nullable String description) { - super.updateStatus(status, statusDetail, description); - } - - @Override - public NibeUplinkConfiguration getConfiguration() { - return this.getConfigAs(NibeUplinkConfiguration.class); - } - - public Set getRegisteredGroups() { - return registeredGroups; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkPolling.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkPolling.java deleted file mode 100644 index 476e1cdbd4..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/handler/UplinkPolling.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * 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.nibeuplink.internal.handler; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.openhab.binding.nibeuplink.internal.command.GenericStatusUpdate; -import org.openhab.binding.nibeuplink.internal.command.NibeUplinkCommand; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Polling worker class. This is responsible for periodic polling of status values. - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class UplinkPolling implements Runnable { - private final Logger logger = LoggerFactory.getLogger(getClass()); - - /** - * Handler for delegation to callbacks. - */ - private final NibeUplinkHandler handler; - - /** - * Constructor. - * - * @param handler instance of the thing handler - */ - public UplinkPolling(NibeUplinkHandler handler) { - this.handler = handler; - } - - /** - * Poll the Nibe Uplink webservice one time. - */ - @Override - public void run() { - logger.debug("polling NibeUplink {}", handler.getConfiguration()); - - NibeUplinkCommand command = new GenericStatusUpdate(handler); - handler.getWebInterface().enqueueCommand(command); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ChannelGroup.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ChannelGroup.java deleted file mode 100644 index 4fbae0efd3..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ChannelGroup.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * 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.nibeuplink.internal.model; - -import org.eclipse.jdt.annotation.NonNullByDefault; - -/** - * used to determine the group a channel belongs to - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public enum ChannelGroup { - BASE, - GENERAL, - COMPRESSOR, - HOTWATER, - AIRSUPPLY, - CUSTOM -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ConfigurationException.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ConfigurationException.java deleted file mode 100644 index 1abc7cb9fa..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ConfigurationException.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * 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.nibeuplink.internal.model; - -import org.eclipse.jdt.annotation.NonNullByDefault; - -/** - * exception whichs is used to state a validation error - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class ConfigurationException extends RuntimeException { - private static final long serialVersionUID = 1L; - - public ConfigurationException() { - super(); - } - - public ConfigurationException(String message) { - super(message); - } - - public ConfigurationException(Throwable cause) { - super(cause); - } - - public ConfigurationException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponse.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponse.java deleted file mode 100644 index 1f642ea1d3..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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.nibeuplink.internal.model; - -import java.util.Map; - -import org.eclipse.jdt.annotation.NonNullByDefault; - -/** - * common interface for all data response classes - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public interface DataResponse { - Map getValues(); -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponseTransformer.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponseTransformer.java deleted file mode 100644 index eafc82c0b2..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/DataResponseTransformer.java +++ /dev/null @@ -1,164 +0,0 @@ -/** - * 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.nibeuplink.internal.model; - -import static org.openhab.binding.nibeuplink.internal.NibeUplinkBindingConstants.*; - -import java.util.HashMap; -import java.util.Map; - -import javax.measure.Unit; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.openhab.binding.nibeuplink.internal.handler.ChannelProvider; -import org.openhab.binding.nibeuplink.internal.handler.ChannelUtil; -import org.openhab.core.library.types.DecimalType; -import org.openhab.core.library.types.QuantityType; -import org.openhab.core.library.unit.MetricPrefix; -import org.openhab.core.library.unit.SIUnits; -import org.openhab.core.library.unit.Units; -import org.openhab.core.thing.Channel; -import org.openhab.core.thing.type.ChannelTypeUID; -import org.openhab.core.types.State; -import org.openhab.core.types.UnDefType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * transforms the http response into the openhab datamodel (instances of State) - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class DataResponseTransformer { - private final Logger logger = LoggerFactory.getLogger(DataResponseTransformer.class); - - private static final double UNSCALED = 1; - private static final double DIV_10 = 0.1; - private static final double DIV_100 = 0.01; - - private final ChannelProvider channelProvider; - - public DataResponseTransformer(ChannelProvider channelProvider) { - this.channelProvider = channelProvider; - } - - public Map transform(DataResponse response) { - Map source = response.getValues(); - Map result = new HashMap<>(source.size()); - - for (String channelId : source.keySet()) { - Long value = source.get(channelId); - - Channel channel = channelProvider.getSpecificChannel(channelId); - if (channel == null) { - // This should not happen but we want to get informed about it - logger.warn("Channel not found: {}", channelId); - } else if (value == null) { - logger.debug("null value for channel: {}", channelId); - result.put(channel, UnDefType.UNDEF); - } else { - ChannelTypeUID typeUID = channel.getChannelTypeUID(); - String type = typeUID == null ? "null" : typeUID.getId(); - - switch (type) { - case CHANNEL_TYPE_TEMPERATURE: - case CHANNEL_TYPE_START_COOLING_RW: - putQuantityType(result, channel, value, DIV_10, SIUnits.CELSIUS); - break; - case CHANNEL_TYPE_PRESSURE: - putQuantityType(result, channel, value, DIV_10, Units.BAR); - break; - case CHANNEL_TYPE_ENERGY: - putQuantityType(result, channel, value, DIV_10, MetricPrefix.KILO(Units.WATT_HOUR)); - break; - case CHANNEL_TYPE_POWER: - putQuantityType(result, channel, value, DIV_100, MetricPrefix.KILO(Units.WATT)); - break; - case CHANNEL_TYPE_SWITCH_RW: - case CHANNEL_TYPE_SWITCH: - putOnOffType(result, channel, value); - break; - case CHANNEL_TYPE_ELECTRIC_CURRENT: - putQuantityType(result, channel, value, DIV_10, Units.AMPERE); - break; - case CHANNEL_TYPE_TIME_UNSCALED: - putQuantityType(result, channel, value, UNSCALED, Units.HOUR); - break; - case CHANNEL_TYPE_TIME_SCALE10: - putQuantityType(result, channel, value, DIV_10, Units.HOUR); - break; - case CHANNEL_TYPE_FREQUENCY_UNSCALED: - putQuantityType(result, channel, value, UNSCALED, Units.HERTZ); - break; - case CHANNEL_TYPE_FREQUENCY_SCALE10: - putQuantityType(result, channel, value, DIV_10, Units.HERTZ); - break; - case CHANNEL_TYPE_FLOW: - putQuantityType(result, channel, value, DIV_10, Units.LITRE.divide(Units.MINUTE)); - break; - case CHANNEL_TYPE_SPEED: - putQuantityType(result, channel, value, UNSCALED, Units.PERCENT); - break; - case CHANNEL_TYPE_NUMBER_SCALE100: - putDecimalType(result, channel, value, DIV_100); - break; - case CHANNEL_TYPE_NUMBER_SCALE10: - case CHANNEL_TYPE_DEGREE_MINUTES_RW: - case CHANNEL_TYPE_STOP_HEATING_RW: - case CHANNEL_TYPE_STOP_ADD_HEATING_RW: - case CHANNEL_TYPE_ROOM_SENSOR_FACTOR_RW: - putDecimalType(result, channel, value, DIV_10); - break; - case CHANNEL_TYPE_NUMBER_UNSCALED: - case CHANNEL_TYPE_DEFROSTING_STATE: - case CHANNEL_TYPE_HPAC_STATE: - case CHANNEL_TYPE_HW_LUX_RW: - case CHANNEL_TYPE_HW_MODE_RW: - case CHANNEL_TYPE_FAN_SPEED_RW: - case CHANNEL_TYPE_FILTER_TIME_RW: - case CHANNEL_TYPE_HEAT_OFFSET_RW: - putDecimalType(result, channel, value, UNSCALED); - break; - default: - logger.warn("could not handle unknown type {}, channel {}, value {}", type, channel.getUID(), - value); - } - } - } - return result; - } - - private final void putQuantityType(Map targetMap, Channel channel, long value, double factor, - Unit unit) { - // make sure that values are stored as long if no factor is to be applied - State val = factor == UNSCALED ? new QuantityType<>(value, unit) : new QuantityType<>(value * factor, unit); - targetMap.put(channel, val); - logger.debug("Channel {} transformed to QuantityType ({}*{} {}) -> {}", channel.getUID().getId(), value, factor, - unit, val); - } - - private final void putOnOffType(Map targetMap, Channel channel, long value) { - State val = ChannelUtil.mapValue(channel, value); - targetMap.put(channel, val); - logger.debug("Channel {} transformed to OnOffType ({}) -> {}", channel.getUID().getId(), value, val); - } - - private final void putDecimalType(Map targetMap, Channel channel, long value, double factor) { - // make sure that values are stored as long if no factor is to be applied - State val = factor == UNSCALED ? new DecimalType(value) : new DecimalType(value * factor); - targetMap.put(channel, val); - logger.debug("Channel {} transformed to DecimalType ({}*{}) -> {}", channel.getUID().getId(), value, factor, - val); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/GenericDataResponse.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/GenericDataResponse.java deleted file mode 100644 index 9dcd2fc9db..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/GenericDataResponse.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * 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.nibeuplink.internal.model; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jdt.annotation.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.annotations.SerializedName; - -/** - * data class to map the json status response - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class GenericDataResponse implements DataResponse { - private final Logger logger = LoggerFactory.getLogger(GenericDataResponse.class); - - public static class Value { - @SerializedName("VariableId") - private @Nullable String variableId; - @SerializedName("CurrentValue") - private @Nullable String currentValue; - @SerializedName("CurrentIntValue") - private @Nullable Long currentIntValue; - @SerializedName("IsLoading") - private boolean isLoading; - } - - @SerializedName("IsOffline") - private @Nullable String isOffline; - @SerializedName("OnlineImage") - private @Nullable String onlineImage; - @SerializedName("Date") - private @Nullable String date; - @SerializedName("FuzzyDate") - private @Nullable String fuzzyDate; - @SerializedName("Values") - private List values = new ArrayList<>(); - - @Override - public Map getValues() { - Map valueMap = new HashMap<>(); - for (Value value : values) { - String id = value.variableId; - if (!value.isLoading && id != null) { - if (logger.isDebugEnabled()) { - logger.debug("Channel {} updated to: {} ({})", value.variableId, value.currentIntValue, - value.currentValue); - } - valueMap.put(id, value.currentIntValue); - } - } - return valueMap; - } - - public @Nullable String getIsOffline() { - return isOffline; - } - - public @Nullable String getOnlineImage() { - return onlineImage; - } - - public @Nullable String getDate() { - return date; - } - - public @Nullable String getFuzzyDate() { - return fuzzyDate; - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ValidationException.java b/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ValidationException.java deleted file mode 100644 index 85d6e5a766..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/java/org/openhab/binding/nibeuplink/internal/model/ValidationException.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * 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.nibeuplink.internal.model; - -import org.eclipse.jdt.annotation.NonNullByDefault; - -/** - * exception whichs is used to state a validation error - * - * @author Alexander Friese - initial contribution - */ -@NonNullByDefault -public class ValidationException extends RuntimeException { - private static final long serialVersionUID = 1L; - - public ValidationException() { - super(); - } - - public ValidationException(String message) { - super(message); - } - - public ValidationException(Throwable cause) { - super(cause); - } - - public ValidationException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/addon/addon.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/addon/addon.xml deleted file mode 100644 index 20598a6d7e..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/addon/addon.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - binding - NibeUplink Binding - This is the binding for NibeUplink. - cloud - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/config/config.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/config/config.xml deleted file mode 100644 index 3fd80dbe61..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/config/config.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - Authentication settings. - - - - Connection settings. - - - - General settings. - - - - Custom Channel configuration - - - - - The Username to login at NibeIplink. - - - - password - The Password to login at NibeIplink. - - - - The ID to identify the heat pump at NibeIplink. - - - - Interval in which data is polled from Nibe Uplink (in seconds). - 60 - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink.properties b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink.properties deleted file mode 100644 index 395d07f08f..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink.properties +++ /dev/null @@ -1,474 +0,0 @@ -# add-on - -addon.nibeuplink.name = NibeUplink Binding -addon.nibeuplink.description = This is the binding for NibeUplink. - -# thing types - -thing-type.nibeuplink.f1145.label = Nibe F1145 -thing-type.nibeuplink.f1145.description = Nibe F1145 heat pump connected through Nibe UpLink -thing-type.nibeuplink.f1155.label = Nibe F1155 -thing-type.nibeuplink.f1155.description = Nibe F1155 heat pump connected through Nibe UpLink -thing-type.nibeuplink.f730.label = Nibe F730 -thing-type.nibeuplink.f730.description = Nibe F730 heat pump connected through Nibe UpLink -thing-type.nibeuplink.f750.label = Nibe F750 -thing-type.nibeuplink.f750.description = Nibe F750 heat pump connected through Nibe UpLink -thing-type.nibeuplink.vvm310.label = Nibe VVM310 / VVM500 -thing-type.nibeuplink.vvm310.description = Nibe VVM310 / VVM500 heat pump connected through Nibe UpLink -thing-type.nibeuplink.vvm320.label = Nibe VVM320 / VVM325 -thing-type.nibeuplink.vvm320.description = Nibe VVM320 / VVM325 heat pump connected through Nibe UpLink - -# thing types config - -thing-type.config.nibeuplink.web.group.authentication.label = Authentication -thing-type.config.nibeuplink.web.group.authentication.description = Authentication settings. -thing-type.config.nibeuplink.web.group.connection.label = Connection -thing-type.config.nibeuplink.web.group.connection.description = Connection settings. -thing-type.config.nibeuplink.web.group.customChannels.label = Custom Channels -thing-type.config.nibeuplink.web.group.customChannels.description = Custom Channel configuration -thing-type.config.nibeuplink.web.group.general.label = General -thing-type.config.nibeuplink.web.group.general.description = General settings. -thing-type.config.nibeuplink.web.nibeId.label = Nibe ID -thing-type.config.nibeuplink.web.nibeId.description = The ID to identify the heat pump at NibeIplink. -thing-type.config.nibeuplink.web.password.label = Password -thing-type.config.nibeuplink.web.password.description = The Password to login at NibeIplink. -thing-type.config.nibeuplink.web.pollingInterval.label = Polling Interval -thing-type.config.nibeuplink.web.pollingInterval.description = Interval in which data is polled from Nibe Uplink (in seconds). -thing-type.config.nibeuplink.web.user.label = Username -thing-type.config.nibeuplink.web.user.description = The Username to login at NibeIplink. - -# channel group types - -channel-group-type.nibeuplink.base-base.label = Base Channels -channel-group-type.nibeuplink.base-base.channel.10012.label = Compressor Blocked -channel-group-type.nibeuplink.base-base.channel.10012.description = states if the compressor is blocked -channel-group-type.nibeuplink.base-base.channel.10033.label = Int. El.add. Blocked -channel-group-type.nibeuplink.base-base.channel.10033.description = states if internal electric additional heater is blocked -channel-group-type.nibeuplink.base-base.channel.40004.label = BT1 Outdoor Temperature -channel-group-type.nibeuplink.base-base.channel.40004.description = Current outdoor temperature -channel-group-type.nibeuplink.base-base.channel.40008.label = BT2 Supply Temp S1 -channel-group-type.nibeuplink.base-base.channel.40008.description = Supply temperature for system 1 -channel-group-type.nibeuplink.base-base.channel.40012.label = EB100-EP14-BT3 Return Temp -channel-group-type.nibeuplink.base-base.channel.40012.description = Return temperature -channel-group-type.nibeuplink.base-base.channel.40033.label = BT50 Room Temp S1 -channel-group-type.nibeuplink.base-base.channel.40033.description = Room Temperature S1 (BT50) -channel-group-type.nibeuplink.base-base.channel.40067.label = BT1 Average -channel-group-type.nibeuplink.base-base.channel.40067.description = EB100-BT1 Outdoor temperature average -channel-group-type.nibeuplink.base-base.channel.40071.label = BT25 Ext. Supply -channel-group-type.nibeuplink.base-base.channel.40071.description = External supply temperature, BT25 -channel-group-type.nibeuplink.base-base.channel.40072.label = BF1 EP14 Flow -channel-group-type.nibeuplink.base-base.channel.40072.description = Current flow EP14|Current flow EP15 -channel-group-type.nibeuplink.base-base.channel.40079.label = EB100-BE3 Current -channel-group-type.nibeuplink.base-base.channel.40079.description = BE3 Current -channel-group-type.nibeuplink.base-base.channel.40081.label = EB100-BE2 Current -channel-group-type.nibeuplink.base-base.channel.40081.description = BE2 Current -channel-group-type.nibeuplink.base-base.channel.40083.label = EB100-BE1 Current -channel-group-type.nibeuplink.base-base.channel.40083.description = BE1 Current -channel-group-type.nibeuplink.base-base.channel.43005.label = Degree Minutes (16 Bit) -channel-group-type.nibeuplink.base-base.channel.43005.description = Degree minutes, 16bit value (-32768 < x < 32767). Values outside valid values are rounded to the closest valid value. -channel-group-type.nibeuplink.base-base.channel.43009.label = Calc. Supply S1 -channel-group-type.nibeuplink.base-base.channel.43009.description = Calculated supply temperature for the climate system -channel-group-type.nibeuplink.base-base.channel.43081.label = Tot. Op.time Add. -channel-group-type.nibeuplink.base-base.channel.43081.description = Total electric additive operation time -channel-group-type.nibeuplink.base-base.channel.43084.label = Int. El.add. Power -channel-group-type.nibeuplink.base-base.channel.43084.description = Current power from the internal electrical addition -channel-group-type.nibeuplink.base-base.channel.43161.label = External Adjustment Activated Via Input S1 -channel-group-type.nibeuplink.base-base.channel.43161.description = External Adjustment Activated Via Input S1 -channel-group-type.nibeuplink.base-base.channel.43437.label = Supply Pump Speed EP14 -channel-group-type.nibeuplink.base-base.channel.43437.description = Supply Pump Speed, EP14 (GP6) -channel-group-type.nibeuplink.base-base.channel.44300.label = Heat Meter - Heat Cpr and Add EP14 -channel-group-type.nibeuplink.base-base.channel.44300.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.base-base.channel.44304.label = Heat Meter - Pool Cpr EP14 -channel-group-type.nibeuplink.base-base.channel.44304.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.base-base.channel.44308.label = Heat Meter - Heat Cpr EP14 -channel-group-type.nibeuplink.base-base.channel.44308.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.base-base.channel.47212.label = Max Int Add. Power -channel-group-type.nibeuplink.base-base.channel.47212.description = Maximum power from the internal electrical addition -channel-group-type.nibeuplink.base-base.channel.48043.label = Holiday -channel-group-type.nibeuplink.base-base.channel.48043.description = states if Holiday mode is activated -channel-group-type.nibeuplink.base-base.channel.48914.label = Max Int Add. Power, SG Ready -channel-group-type.nibeuplink.base-base.channel.48914.description = Maximum power from the internal electrical addition in SG-Ready Mode -channel-group-type.nibeuplink.base-hotwater.label = Hot Water Channels -channel-group-type.nibeuplink.base-hotwater.channel.40013.label = BT7 HW Top -channel-group-type.nibeuplink.base-hotwater.channel.40013.description = Hot water top temperature, BT7 -channel-group-type.nibeuplink.base-hotwater.channel.40014.label = BT6 HW Load -channel-group-type.nibeuplink.base-hotwater.channel.40014.description = Hot water load temperature, BT6 -channel-group-type.nibeuplink.base-hotwater.channel.44298.label = Heat Meter - HW Cpr and Add EP14 -channel-group-type.nibeuplink.base-hotwater.channel.44298.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.base-hotwater.channel.44306.label = Heat Meter - HW Cpr EP14 -channel-group-type.nibeuplink.base-hotwater.channel.44306.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.base-hotwater.channel.47041.label = Hot Water Mode -channel-group-type.nibeuplink.base-hotwater.channel.47041.description = The currently active hotwater mode -channel-group-type.nibeuplink.base-hotwater.channel.47043.label = Start Temperature HW Luxury -channel-group-type.nibeuplink.base-hotwater.channel.47043.description = Start temperature for heating water in Luxury mode -channel-group-type.nibeuplink.base-hotwater.channel.47044.label = Start Temperature HW Normal -channel-group-type.nibeuplink.base-hotwater.channel.47044.description = Start temperature for heating water in Normal mode -channel-group-type.nibeuplink.base-hotwater.channel.47045.label = Start Temperature HW Economy -channel-group-type.nibeuplink.base-hotwater.channel.47045.description = Start temperature for heating water in Economy mode -channel-group-type.nibeuplink.base-hotwater.channel.47046.label = Stop Temperature Periodic HW -channel-group-type.nibeuplink.base-hotwater.channel.47046.description = Stop temperature for heating water in periodic heating -channel-group-type.nibeuplink.base-hotwater.channel.47047.label = Stop Temperature HW Luxury -channel-group-type.nibeuplink.base-hotwater.channel.47047.description = Stop temperature for heating water in Luxory mode -channel-group-type.nibeuplink.base-hotwater.channel.47048.label = Stop Temperature HW Normal -channel-group-type.nibeuplink.base-hotwater.channel.47048.description = Stop temperature for heating water in Normal mode -channel-group-type.nibeuplink.base-hotwater.channel.47049.label = Stop Temperature HW Economy -channel-group-type.nibeuplink.base-hotwater.channel.47049.description = Stop temperature for heating water in Economy mode -channel-group-type.nibeuplink.base-hotwater.channel.48132.label = Temporary Lux -channel-group-type.nibeuplink.base-hotwater.channel.48132.description = Temporary hot water lux mode -channel-group-type.nibeuplink.f1145-airsupply.label = Air Supply/Exhaust Channels -channel-group-type.nibeuplink.f1145-airsupply.channel.40025.label = BT20 Exhaust Air Temp. 1 -channel-group-type.nibeuplink.f1145-airsupply.channel.40025.description = Exhaust Air Temperature (BT20) -channel-group-type.nibeuplink.f1145-airsupply.channel.40026.label = BT21 Vented Air Temp. 1 -channel-group-type.nibeuplink.f1145-airsupply.channel.40026.description = Vented Air Temperature (BT21) -channel-group-type.nibeuplink.f1145-compressor.label = Compressor Channels -channel-group-type.nibeuplink.f1145-compressor.channel.40015.label = EB100-EP14-BT10 Brine in Temperature -channel-group-type.nibeuplink.f1145-compressor.channel.40015.description = Brine in temperature, BT10 -channel-group-type.nibeuplink.f1145-compressor.channel.40016.label = EB100-EP14-BT11 Brine out Temperature -channel-group-type.nibeuplink.f1145-compressor.channel.40016.description = Brine out temperature, BT11 -channel-group-type.nibeuplink.f1145-compressor.channel.40017.label = EB100-EP14-BT12 Condensor Out -channel-group-type.nibeuplink.f1145-compressor.channel.40017.description = Condensor out temperature, BT12 -channel-group-type.nibeuplink.f1145-compressor.channel.40018.label = EB100-EP14-BT14 Hot Gas Temp -channel-group-type.nibeuplink.f1145-compressor.channel.40018.description = Hot gas temperature, BT14 -channel-group-type.nibeuplink.f1145-compressor.channel.40019.label = EB100-EP14-BT15 Liquid Line -channel-group-type.nibeuplink.f1145-compressor.channel.40019.description = Liquid line temperature, BT15 -channel-group-type.nibeuplink.f1145-compressor.channel.40022.label = EB100-EP14-BT17 Suction -channel-group-type.nibeuplink.f1145-compressor.channel.40022.description = Suction temperature, BT17 -channel-group-type.nibeuplink.f1145-compressor.channel.43416.label = Compressor Starts EB100-EP14 -channel-group-type.nibeuplink.f1145-compressor.channel.43416.description = Number of compressor starts -channel-group-type.nibeuplink.f1145-compressor.channel.43420.label = Tot. Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f1145-compressor.channel.43420.description = Total compressor operation time -channel-group-type.nibeuplink.f1145-compressor.channel.43424.label = Tot. HW Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f1145-compressor.channel.43424.description = Total compressor operation time in hot water mode -channel-group-type.nibeuplink.f1145-compressor.channel.43439.label = EP14-GP2 Brine Pump Speed -channel-group-type.nibeuplink.f1145-compressor.channel.43439.description = Brine pump speed EP14 (GP2) -channel-group-type.nibeuplink.f1145-general.label = General Channels -channel-group-type.nibeuplink.f1145-general.channel.43103.label = HPAC State -channel-group-type.nibeuplink.f1145-general.channel.43103.description = State of the HPAC accessory -channel-group-type.nibeuplink.f1145-general.channel.44270.label = Calculated Cooling Supply Temperature S1 -channel-group-type.nibeuplink.f1145-general.channel.44270.description = Calculated supply temperature in cooling mode for the climate system -channel-group-type.nibeuplink.f1145-general.channel.44302.label = Heat Meter - Cooling Cpr EP14 -channel-group-type.nibeuplink.f1145-general.channel.44302.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.f1155-airsupply.label = Air Supply/Exhaust Channels -channel-group-type.nibeuplink.f1155-airsupply.channel.40025.label = BT20 Exhaust Air Temp. 1 -channel-group-type.nibeuplink.f1155-airsupply.channel.40025.description = Exhaust Air Temperature (BT20) -channel-group-type.nibeuplink.f1155-airsupply.channel.40026.label = BT21 Vented Air Temp. 1 -channel-group-type.nibeuplink.f1155-airsupply.channel.40026.description = Vented Air Temperature (BT21) -channel-group-type.nibeuplink.f1155-compressor.label = Compressor Channels -channel-group-type.nibeuplink.f1155-compressor.channel.40015.label = EB100-EP14-BT10 Brine in Temperature -channel-group-type.nibeuplink.f1155-compressor.channel.40015.description = Brine in temperature, BT10 -channel-group-type.nibeuplink.f1155-compressor.channel.40016.label = EB100-EP14-BT11 Brine out Temperature -channel-group-type.nibeuplink.f1155-compressor.channel.40016.description = Brine out temperature, BT11 -channel-group-type.nibeuplink.f1155-compressor.channel.40017.label = EB100-EP14-BT12 Condensor Out -channel-group-type.nibeuplink.f1155-compressor.channel.40017.description = Condensor out temperature, BT12 -channel-group-type.nibeuplink.f1155-compressor.channel.40018.label = EB100-EP14-BT14 Hot Gas Temp -channel-group-type.nibeuplink.f1155-compressor.channel.40018.description = Hot gas temperature, BT14 -channel-group-type.nibeuplink.f1155-compressor.channel.40019.label = EB100-EP14-BT15 Liquid Line -channel-group-type.nibeuplink.f1155-compressor.channel.40019.description = Liquid line temperature, BT15 -channel-group-type.nibeuplink.f1155-compressor.channel.40022.label = EB100-EP14-BT17 Suction -channel-group-type.nibeuplink.f1155-compressor.channel.40022.description = Suction temperature, BT17 -channel-group-type.nibeuplink.f1155-compressor.channel.43122.label = Compr. Current Min.freq. -channel-group-type.nibeuplink.f1155-compressor.channel.43122.description = The current minimum frequency of the compressor -channel-group-type.nibeuplink.f1155-compressor.channel.43123.label = Compr. Current Max.freq. -channel-group-type.nibeuplink.f1155-compressor.channel.43123.description = The current maximum frequency of the compressor -channel-group-type.nibeuplink.f1155-compressor.channel.43136.label = Compressor Frequency, Actual -channel-group-type.nibeuplink.f1155-compressor.channel.43136.description = The compressor frequency the compressor is currently running at -channel-group-type.nibeuplink.f1155-compressor.channel.43416.label = Compressor Starts EB100-EP14 -channel-group-type.nibeuplink.f1155-compressor.channel.43416.description = Number of compressor starts -channel-group-type.nibeuplink.f1155-compressor.channel.43420.label = Tot. Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f1155-compressor.channel.43420.description = Total compressor operation time -channel-group-type.nibeuplink.f1155-compressor.channel.43424.label = Tot. HW Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f1155-compressor.channel.43424.description = Total compressor operation time in hot water mode -channel-group-type.nibeuplink.f1155-compressor.channel.43439.label = EP14-GP2 Brine Pump Speed -channel-group-type.nibeuplink.f1155-compressor.channel.43439.description = Brine pump speed EP14 (GP2) -channel-group-type.nibeuplink.f1155-general.label = General Channels -channel-group-type.nibeuplink.f1155-general.channel.44302.label = Heat Meter - Cooling Cpr EP14 -channel-group-type.nibeuplink.f1155-general.channel.44302.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.f730-airsupply.label = Air Supply/Exhaust Channels -channel-group-type.nibeuplink.f730-airsupply.channel.10001.label = Fan Speed Current -channel-group-type.nibeuplink.f730-airsupply.channel.10001.description = The current fan speed -channel-group-type.nibeuplink.f730-airsupply.channel.40025.label = BT20 Exhaust Air Temp. 1 -channel-group-type.nibeuplink.f730-airsupply.channel.40025.description = Exhaust Air Temperature (BT20) -channel-group-type.nibeuplink.f730-airsupply.channel.40026.label = BT21 Vented Air Temp. 1 -channel-group-type.nibeuplink.f730-airsupply.channel.40026.description = Vented Air Temperature (BT21) -channel-group-type.nibeuplink.f730-airsupply.channel.40101.label = BT28 Airmix Temp -channel-group-type.nibeuplink.f730-airsupply.channel.40101.description = External airmix temperature BT28 -channel-group-type.nibeuplink.f730-airsupply.channel.40919.label = Air Mix -channel-group-type.nibeuplink.f730-airsupply.channel.40919.description = Air Mix -channel-group-type.nibeuplink.f730-airsupply.channel.41026.label = EB100-Adjusted BS1 Air Flow -channel-group-type.nibeuplink.f730-airsupply.channel.41026.description = Adjusted BS1 Air Flow (BT100) -channel-group-type.nibeuplink.f730-airsupply.channel.43124.label = Airflow Ref. -channel-group-type.nibeuplink.f730-airsupply.channel.43124.description = Reference value for the airflow. -channel-group-type.nibeuplink.f730-airsupply.channel.43125.label = Airflow Reduction -channel-group-type.nibeuplink.f730-airsupply.channel.43125.description = Airflow Reduction -channel-group-type.nibeuplink.f730-compressor.label = Compressor Channels -channel-group-type.nibeuplink.f730-compressor.channel.40017.label = EB100-EP14-BT12 Condensor Out -channel-group-type.nibeuplink.f730-compressor.channel.40017.description = Condensor out temperature, BT12 -channel-group-type.nibeuplink.f730-compressor.channel.40018.label = EB100-EP14-BT14 Hot Gas Temp -channel-group-type.nibeuplink.f730-compressor.channel.40018.description = Hot gas temperature, BT14 -channel-group-type.nibeuplink.f730-compressor.channel.40019.label = EB100-EP14-BT15 Liquid Line -channel-group-type.nibeuplink.f730-compressor.channel.40019.description = Liquid line temperature, BT15 -channel-group-type.nibeuplink.f730-compressor.channel.40020.label = EB100-BT16 Evaporator Temp -channel-group-type.nibeuplink.f730-compressor.channel.40020.description = Evaporator Temp (BT16) -channel-group-type.nibeuplink.f730-compressor.channel.40022.label = EB100-EP14-BT17 Suction -channel-group-type.nibeuplink.f730-compressor.channel.40022.description = Suction temperature, BT17 -channel-group-type.nibeuplink.f730-compressor.channel.43066.label = Defrosting Time -channel-group-type.nibeuplink.f730-compressor.channel.43066.description = Defrosting time, no defrosting heater in the product -channel-group-type.nibeuplink.f730-compressor.channel.43122.label = Compr. Current Min.freq. -channel-group-type.nibeuplink.f730-compressor.channel.43122.description = The current minimum frequency of the compressor -channel-group-type.nibeuplink.f730-compressor.channel.43123.label = Compr. Current Max.freq. -channel-group-type.nibeuplink.f730-compressor.channel.43123.description = The current maximum frequency of the compressor -channel-group-type.nibeuplink.f730-compressor.channel.43136.label = Compressor Frequency, Actual -channel-group-type.nibeuplink.f730-compressor.channel.43136.description = The compressor frequency the compressor is currently running at -channel-group-type.nibeuplink.f730-compressor.channel.43181.label = Chargepump Speed -channel-group-type.nibeuplink.f730-compressor.channel.43181.description = Chargepump Speed -channel-group-type.nibeuplink.f730-compressor.channel.43416.label = Compressor Starts EB100-EP14 -channel-group-type.nibeuplink.f730-compressor.channel.43416.description = Number of compressor starts -channel-group-type.nibeuplink.f730-compressor.channel.43420.label = Tot. Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f730-compressor.channel.43420.description = Total compressor operation time -channel-group-type.nibeuplink.f730-compressor.channel.43424.label = Tot. HW Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f730-compressor.channel.43424.description = Total compressor operation time in hot water mode -channel-group-type.nibeuplink.f750-airsupply.label = Air Supply/Exhaust Channels -channel-group-type.nibeuplink.f750-airsupply.channel.40025.label = BT20 Exhaust Air Temp. 1 -channel-group-type.nibeuplink.f750-airsupply.channel.40025.description = Exhaust Air Temperature (BT20) -channel-group-type.nibeuplink.f750-airsupply.channel.40026.label = BT21 Vented Air Temp. 1 -channel-group-type.nibeuplink.f750-airsupply.channel.40026.description = Vented Air Temperature (BT21) -channel-group-type.nibeuplink.f750-airsupply.channel.41026.label = EB100-Adjusted BS1 Air Flow -channel-group-type.nibeuplink.f750-airsupply.channel.41026.description = Adjusted BS1 Air Flow (BT100) -channel-group-type.nibeuplink.f750-airsupply.channel.43124.label = Airflow Ref. -channel-group-type.nibeuplink.f750-airsupply.channel.43124.description = Reference value for the airflow. -channel-group-type.nibeuplink.f750-airsupply.channel.47260.label = Selected Fan Speed -channel-group-type.nibeuplink.f750-airsupply.channel.47260.description = Currently selected fan speed -channel-group-type.nibeuplink.f750-compressor.label = Compressor Channels -channel-group-type.nibeuplink.f750-compressor.channel.40017.label = EB100-EP14-BT12 Condensor Out -channel-group-type.nibeuplink.f750-compressor.channel.40017.description = Condensor out temperature, BT12 -channel-group-type.nibeuplink.f750-compressor.channel.40018.label = EB100-EP14-BT14 Hot Gas Temp -channel-group-type.nibeuplink.f750-compressor.channel.40018.description = Hot gas temperature, BT14 -channel-group-type.nibeuplink.f750-compressor.channel.40019.label = EB100-EP14-BT15 Liquid Line -channel-group-type.nibeuplink.f750-compressor.channel.40019.description = Liquid line temperature, BT15 -channel-group-type.nibeuplink.f750-compressor.channel.40020.label = EB100-BT16 Evaporator Temp -channel-group-type.nibeuplink.f750-compressor.channel.40020.description = Evaporator Temp (BT16) -channel-group-type.nibeuplink.f750-compressor.channel.40022.label = EB100-EP14-BT17 Suction -channel-group-type.nibeuplink.f750-compressor.channel.40022.description = Suction temperature, BT17 -channel-group-type.nibeuplink.f750-compressor.channel.43122.label = Compr. Current Min.freq. -channel-group-type.nibeuplink.f750-compressor.channel.43122.description = The current minimum frequency of the compressor -channel-group-type.nibeuplink.f750-compressor.channel.43123.label = Compr. Current Max.freq. -channel-group-type.nibeuplink.f750-compressor.channel.43123.description = The current maximum frequency of the compressor -channel-group-type.nibeuplink.f750-compressor.channel.43136.label = Compressor Frequency, Actual -channel-group-type.nibeuplink.f750-compressor.channel.43136.description = The compressor frequency the compressor is currently running at -channel-group-type.nibeuplink.f750-compressor.channel.43181.label = Chargepump Speed -channel-group-type.nibeuplink.f750-compressor.channel.43181.description = Chargepump Speed -channel-group-type.nibeuplink.f750-compressor.channel.43416.label = Compressor Starts EB100-EP14 -channel-group-type.nibeuplink.f750-compressor.channel.43416.description = Number of compressor starts -channel-group-type.nibeuplink.f750-compressor.channel.43420.label = Tot. Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f750-compressor.channel.43420.description = Total compressor operation time -channel-group-type.nibeuplink.f750-compressor.channel.43424.label = Tot. HW Op.time Compr. EB100-EP14 -channel-group-type.nibeuplink.f750-compressor.channel.43424.description = Total compressor operation time in hot water mode -channel-group-type.nibeuplink.vvm310-airsupply.label = Air Supply/Exhaust Channels -channel-group-type.nibeuplink.vvm310-airsupply.channel.40025.label = BT20 Exhaust Air Temp. 1 -channel-group-type.nibeuplink.vvm310-airsupply.channel.40025.description = Exhaust Air Temperature (BT20) -channel-group-type.nibeuplink.vvm310-airsupply.channel.40026.label = BT21 Vented Air Temp. 1 -channel-group-type.nibeuplink.vvm310-airsupply.channel.40026.description = Vented Air Temperature (BT21) -channel-group-type.nibeuplink.vvm310-airsupply.channel.40075.label = BT22 Supply Air Temp. -channel-group-type.nibeuplink.vvm310-airsupply.channel.40075.description = Supply Air Temperature (BT22) -channel-group-type.nibeuplink.vvm310-airsupply.channel.40183.label = AZ30-BT23 Outdoor Temp. ERS -channel-group-type.nibeuplink.vvm310-airsupply.channel.40183.description = Outdoor Temperature (BT23) -channel-group-type.nibeuplink.vvm310-airsupply.channel.40311.label = External ERS Accessory GQ2 Speed -channel-group-type.nibeuplink.vvm310-airsupply.channel.40311.description = Indicates the speed of the GQ2 fan speed on the ERS accessory. -channel-group-type.nibeuplink.vvm310-airsupply.channel.40312.label = External ERS Accessory GQ3 Speed -channel-group-type.nibeuplink.vvm310-airsupply.channel.40312.description = Indicates the speed of the GQ3 fan speed on the ERS accessory. -channel-group-type.nibeuplink.vvm310-airsupply.channel.40942.label = External ERS Accessory Block Status -channel-group-type.nibeuplink.vvm310-airsupply.channel.40942.description = Indicates if the ERS accessory is externaly blocked. -channel-group-type.nibeuplink.vvm310-airsupply.channel.47260.label = Selected Fan Speed -channel-group-type.nibeuplink.vvm310-airsupply.channel.47260.description = Currently selected fan speed -channel-group-type.nibeuplink.vvm310-compressor.label = Compressor Channels -channel-group-type.nibeuplink.vvm310-compressor.channel.40737.label = EB101-EP14 Tot. Cooling Op.time Compr -channel-group-type.nibeuplink.vvm310-compressor.channel.40737.description = Total operation time of compressor in cooling mode -channel-group-type.nibeuplink.vvm310-compressor.channel.40782.label = EB101 Cpr Frequency Desired F2040 -channel-group-type.nibeuplink.vvm310-compressor.channel.40782.description = The desired frequency as shown in service info -channel-group-type.nibeuplink.vvm310-compressor.channel.44055.label = EB101-EP14-BT3 Return Temp. -channel-group-type.nibeuplink.vvm310-compressor.channel.44055.description = Return temperature, BT3 -channel-group-type.nibeuplink.vvm310-compressor.channel.44058.label = EB101-EP14-BT12 Condensor Out -channel-group-type.nibeuplink.vvm310-compressor.channel.44058.description = Condensor temperature, BT12 -channel-group-type.nibeuplink.vvm310-compressor.channel.44059.label = EB101-EP14-BT14 Hot Gas Temp -channel-group-type.nibeuplink.vvm310-compressor.channel.44059.description = Hot gas temperature, BT14 -channel-group-type.nibeuplink.vvm310-compressor.channel.44060.label = EB101-EP14-BT15 Liquid Line -channel-group-type.nibeuplink.vvm310-compressor.channel.44060.description = Liquid line temperature, BT15 -channel-group-type.nibeuplink.vvm310-compressor.channel.44061.label = EB101-EP14-BT17 Suction -channel-group-type.nibeuplink.vvm310-compressor.channel.44061.description = Suction temperature, BT17 -channel-group-type.nibeuplink.vvm310-compressor.channel.44069.label = EB101-EP14 Compressor Starts -channel-group-type.nibeuplink.vvm310-compressor.channel.44069.description = Total compressor starts -channel-group-type.nibeuplink.vvm310-compressor.channel.44071.label = EB101-EP14 Tot. Op.time Compr -channel-group-type.nibeuplink.vvm310-compressor.channel.44071.description = Total operation time of compressor -channel-group-type.nibeuplink.vvm310-compressor.channel.44073.label = EB101-EP14 Tot. HW Op.time Compr -channel-group-type.nibeuplink.vvm310-compressor.channel.44073.description = Total operation time of compressor in hotwater mode -channel-group-type.nibeuplink.vvm310-compressor.channel.44362.label = EB101-EP14-BT28 Outdoor Temp -channel-group-type.nibeuplink.vvm310-compressor.channel.44362.description = Current outdoor temperature, BT28 -channel-group-type.nibeuplink.vvm310-compressor.channel.44363.label = EB101-EP14-BT16 Evaporator -channel-group-type.nibeuplink.vvm310-compressor.channel.44363.description = Evaporator temperature, BT16 -channel-group-type.nibeuplink.vvm310-compressor.channel.44396.label = EB101 Speed Charge Pump -channel-group-type.nibeuplink.vvm310-compressor.channel.44396.description = Speed Charge Pump -channel-group-type.nibeuplink.vvm310-compressor.channel.44457.label = EB101-EP14 Compressor State -channel-group-type.nibeuplink.vvm310-compressor.channel.44457.description = Compressor state -channel-group-type.nibeuplink.vvm310-compressor.channel.44699.label = EB101-EP14-BT4 Pressure Sensor -channel-group-type.nibeuplink.vvm310-compressor.channel.44699.description = Pressure Sensor (BT4) -channel-group-type.nibeuplink.vvm310-compressor.channel.44700.label = EB101-EP14 Low Pressure Sensor Outdoor Unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44700.description = Low pressure sensor outdoor unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44701.label = EB101-EP14 Actual Cpr Frequency Outdoor Unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44701.description = Actual compressor frequency of the outdoor unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44702.label = EB101-EP14 Protection Status Register Outdoor Unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44702.description = rotection status register of the outdoor unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44703.label = EB101-EP14 Defrosting Outdoor Unit -channel-group-type.nibeuplink.vvm310-compressor.channel.44703.description = Defrosting state of the outdoor unit -channel-group-type.nibeuplink.vvm310-general.label = General Channels -channel-group-type.nibeuplink.vvm310-general.channel.40121.label = BT63 Add Supply Temp -channel-group-type.nibeuplink.vvm310-general.channel.40121.description = Supply Temp at internal additional heater (BT63) -channel-group-type.nibeuplink.vvm310-general.channel.44270.label = Calc. Cooling Supply S1 -channel-group-type.nibeuplink.vvm310-general.channel.44270.description = Calculated supply temperature in cooling mode for the climate system -channel-group-type.nibeuplink.vvm310-general.channel.44302.label = Heat Meter - Cooling Cpr EP14 -channel-group-type.nibeuplink.vvm310-general.channel.44302.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.vvm310-general.channel.47011.label = Heat Offset S1 -channel-group-type.nibeuplink.vvm310-general.channel.47011.description = Offset of the heat curve, see manual for more information -channel-group-type.nibeuplink.vvm310-general.channel.47394.label = Use Room Sensor S1 -channel-group-type.nibeuplink.vvm310-general.channel.47394.description = When activated the system uses the room sensor 0=Off 1=On -channel-group-type.nibeuplink.vvm310-general.channel.47402.label = Room Sensor Factor S1 -channel-group-type.nibeuplink.vvm310-general.channel.47402.description = Setting of how much the difference between set and actual room temperature should affect the supply temperature. -channel-group-type.nibeuplink.vvm310-general.channel.48793.label = Room Sensor Cool Factor S1 -channel-group-type.nibeuplink.vvm310-general.channel.48793.description = Setting of how much the difference between set and actual room temperature should affect the supply temperature in cooling mode. -channel-group-type.nibeuplink.vvm320-airsupply.label = Air Supply/Exhaust Channels -channel-group-type.nibeuplink.vvm320-airsupply.channel.40025.label = BT20 Exhaust Air Temp. 1 -channel-group-type.nibeuplink.vvm320-airsupply.channel.40025.description = Exhaust Air Temperature (BT20) -channel-group-type.nibeuplink.vvm320-airsupply.channel.40026.label = BT21 Vented Air Temp. 1 -channel-group-type.nibeuplink.vvm320-airsupply.channel.40026.description = Vented Air Temperature (BT21) -channel-group-type.nibeuplink.vvm320-airsupply.channel.40075.label = BT22 Supply Air Temp. -channel-group-type.nibeuplink.vvm320-airsupply.channel.40075.description = Supply Air Temperature (BT22) -channel-group-type.nibeuplink.vvm320-airsupply.channel.40183.label = AZ30-BT23 Outdoor Temp. ERS -channel-group-type.nibeuplink.vvm320-airsupply.channel.40183.description = Outdoor Temperature (BT23) -channel-group-type.nibeuplink.vvm320-airsupply.channel.40311.label = External ERS Accessory GQ2 Speed -channel-group-type.nibeuplink.vvm320-airsupply.channel.40311.description = Indicates the speed of the GQ2 fan speed on the ERS accessory. -channel-group-type.nibeuplink.vvm320-airsupply.channel.40312.label = External ERS Accessory GQ3 Speed -channel-group-type.nibeuplink.vvm320-airsupply.channel.40312.description = Indicates the speed of the GQ3 fan speed on the ERS accessory. -channel-group-type.nibeuplink.vvm320-airsupply.channel.40942.label = External ERS Accessory Block Status -channel-group-type.nibeuplink.vvm320-airsupply.channel.40942.description = Indicates if the ERS accessory is externaly blocked. -channel-group-type.nibeuplink.vvm320-airsupply.channel.47260.label = Selected Fan Speed -channel-group-type.nibeuplink.vvm320-airsupply.channel.47260.description = Currently selected fan speed -channel-group-type.nibeuplink.vvm320-compressor.label = Compressor Channels -channel-group-type.nibeuplink.vvm320-compressor.channel.40737.label = EB101-EP14 Tot. Cooling Op.time Compr -channel-group-type.nibeuplink.vvm320-compressor.channel.40737.description = Total operation time of compressor in cooling mode -channel-group-type.nibeuplink.vvm320-compressor.channel.40782.label = EB101 Cpr Frequency Desired F2040 -channel-group-type.nibeuplink.vvm320-compressor.channel.40782.description = The desired frequency as shown in service info -channel-group-type.nibeuplink.vvm320-compressor.channel.44055.label = EB101-EP14-BT3 Return Temp. -channel-group-type.nibeuplink.vvm320-compressor.channel.44055.description = Return temperature, BT3 -channel-group-type.nibeuplink.vvm320-compressor.channel.44058.label = EB101-EP14-BT12 Condensor Out -channel-group-type.nibeuplink.vvm320-compressor.channel.44058.description = Condensor temperature, BT12 -channel-group-type.nibeuplink.vvm320-compressor.channel.44059.label = EB101-EP14-BT14 Hot Gas Temp -channel-group-type.nibeuplink.vvm320-compressor.channel.44059.description = Hot gas temperature, BT14 -channel-group-type.nibeuplink.vvm320-compressor.channel.44060.label = EB101-EP14-BT15 Liquid Line -channel-group-type.nibeuplink.vvm320-compressor.channel.44060.description = Liquid line temperature, BT15 -channel-group-type.nibeuplink.vvm320-compressor.channel.44061.label = EB101-EP14-BT17 Suction -channel-group-type.nibeuplink.vvm320-compressor.channel.44061.description = Suction temperature, BT17 -channel-group-type.nibeuplink.vvm320-compressor.channel.44069.label = EB101-EP14 Compressor Starts -channel-group-type.nibeuplink.vvm320-compressor.channel.44069.description = Total compressor starts -channel-group-type.nibeuplink.vvm320-compressor.channel.44071.label = EB101-EP14 Tot. Op.time Compr -channel-group-type.nibeuplink.vvm320-compressor.channel.44071.description = Total operation time of compressor -channel-group-type.nibeuplink.vvm320-compressor.channel.44073.label = EB101-EP14 Tot. HW Op.time Compr -channel-group-type.nibeuplink.vvm320-compressor.channel.44073.description = Total operation time of compressor in hotwater mode -channel-group-type.nibeuplink.vvm320-compressor.channel.44362.label = EB101-EP14-BT28 Outdoor Temp -channel-group-type.nibeuplink.vvm320-compressor.channel.44362.description = Current outdoor temperature, BT28 -channel-group-type.nibeuplink.vvm320-compressor.channel.44363.label = EB101-EP14-BT16 Evaporator -channel-group-type.nibeuplink.vvm320-compressor.channel.44363.description = Evaporator temperature, BT16 -channel-group-type.nibeuplink.vvm320-compressor.channel.44396.label = EB101 Speed Charge Pump -channel-group-type.nibeuplink.vvm320-compressor.channel.44396.description = Speed Charge Pump -channel-group-type.nibeuplink.vvm320-compressor.channel.44457.label = EB101-EP14 Compressor State -channel-group-type.nibeuplink.vvm320-compressor.channel.44457.description = Compressor state -channel-group-type.nibeuplink.vvm320-compressor.channel.44699.label = EB101-EP14-BT4 Pressure Sensor -channel-group-type.nibeuplink.vvm320-compressor.channel.44699.description = Pressure Sensor (BT4) -channel-group-type.nibeuplink.vvm320-compressor.channel.44700.label = EB101-EP14 Low Pressure Sensor Outdoor Unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44700.description = Low pressure sensor outdoor unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44701.label = EB101-EP14 Actual Cpr Frequency Outdoor Unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44701.description = Actual compressor frequency of the outdoor unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44702.label = EB101-EP14 Protection Status Register Outdoor Unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44702.description = rotection status register of the outdoor unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44703.label = EB101-EP14 Defrosting Outdoor Unit -channel-group-type.nibeuplink.vvm320-compressor.channel.44703.description = Defrosting state of the outdoor unit -channel-group-type.nibeuplink.vvm320-general.label = General Channels -channel-group-type.nibeuplink.vvm320-general.channel.40121.label = BT63 Add Supply Temp -channel-group-type.nibeuplink.vvm320-general.channel.40121.description = Supply Temp at internal additional heater (BT63) -channel-group-type.nibeuplink.vvm320-general.channel.44270.label = Calc. Cooling Supply S1 -channel-group-type.nibeuplink.vvm320-general.channel.44270.description = Calculated supply temperature in cooling mode for the climate system -channel-group-type.nibeuplink.vvm320-general.channel.44302.label = Heat Meter - Cooling Cpr EP14 -channel-group-type.nibeuplink.vvm320-general.channel.44302.description = Accumulated energy production as calculated by the heat meter -channel-group-type.nibeuplink.vvm320-general.channel.47011.label = Heat Offset S1 -channel-group-type.nibeuplink.vvm320-general.channel.47011.description = Offset of the heat curve, see manual for more information -channel-group-type.nibeuplink.vvm320-general.channel.47374.label = Start Temperature Cooling -channel-group-type.nibeuplink.vvm320-general.channel.47374.description = Start Temperature Cooling in Auto mode -channel-group-type.nibeuplink.vvm320-general.channel.47375.label = Stop Temperature Heating -channel-group-type.nibeuplink.vvm320-general.channel.47375.description = Stop Temperature Heating in Auto mode -channel-group-type.nibeuplink.vvm320-general.channel.47376.label = Stop Temperature Additive -channel-group-type.nibeuplink.vvm320-general.channel.47376.description = Stop Temperature Additive heater in Auto mode -channel-group-type.nibeuplink.vvm320-general.channel.47377.label = Outdoor Filter Time -channel-group-type.nibeuplink.vvm320-general.channel.47377.description = Outdoor Filter Time in Auto mode -channel-group-type.nibeuplink.vvm320-general.channel.47394.label = Use Room Sensor S1 -channel-group-type.nibeuplink.vvm320-general.channel.47394.description = When activated the system uses the room sensor 0=Off 1=On -channel-group-type.nibeuplink.vvm320-general.channel.47402.label = Room Sensor Factor S1 -channel-group-type.nibeuplink.vvm320-general.channel.47402.description = Setting of how much the difference between set and actual room temperature should affect the supply temperature. -channel-group-type.nibeuplink.vvm320-general.channel.48793.label = Room Sensor Cool Factor S1 -channel-group-type.nibeuplink.vvm320-general.channel.48793.description = Setting of how much the difference between set and actual room temperature should affect the supply temperature in cooling mode. - -# channel types - -channel-type.nibeuplink.rwtype-degree-minutes.label = Unnamed Degree Minutes -channel-type.nibeuplink.rwtype-fan-speed.label = Selected Fan Speed -channel-type.nibeuplink.rwtype-fan-speed.state.option.0 = normal -channel-type.nibeuplink.rwtype-fan-speed.state.option.1 = speed 1 -channel-type.nibeuplink.rwtype-fan-speed.state.option.2 = speed 2 -channel-type.nibeuplink.rwtype-fan-speed.state.option.3 = speed 3 -channel-type.nibeuplink.rwtype-fan-speed.state.option.4 = speed 4 -channel-type.nibeuplink.rwtype-filter-time.label = Outdoor Filter Time -channel-type.nibeuplink.rwtype-heat-offset.label = Heat Offset -channel-type.nibeuplink.rwtype-hw-lux.label = Temporary Lux -channel-type.nibeuplink.rwtype-hw-lux.state.option.0 = Off -channel-type.nibeuplink.rwtype-hw-lux.state.option.1 = 3h -channel-type.nibeuplink.rwtype-hw-lux.state.option.2 = 6h -channel-type.nibeuplink.rwtype-hw-lux.state.option.3 = 12h -channel-type.nibeuplink.rwtype-hw-lux.state.option.4 = One time -channel-type.nibeuplink.rwtype-hw-mode.label = Hot Water Mode -channel-type.nibeuplink.rwtype-hw-mode.state.option.0 = Economy -channel-type.nibeuplink.rwtype-hw-mode.state.option.1 = Normal -channel-type.nibeuplink.rwtype-hw-mode.state.option.2 = Luxury -channel-type.nibeuplink.rwtype-room-sensor-factor.label = Room Sensor Factor -channel-type.nibeuplink.rwtype-start-cooling.label = Start Temperature Cooling -channel-type.nibeuplink.rwtype-stop-add-heating.label = Stop Temperature Additive -channel-type.nibeuplink.rwtype-stop-heating.label = Stop Temperature Heating -channel-type.nibeuplink.rwtype-switch.label = Unnamed Switch -channel-type.nibeuplink.type-defrosting-state.label = Defrosting State -channel-type.nibeuplink.type-defrosting-state.state.option.0 = No -channel-type.nibeuplink.type-defrosting-state.state.option.1 = Active -channel-type.nibeuplink.type-defrosting-state.state.option.2 = Passive -channel-type.nibeuplink.type-electric-current.label = Unnamed Current -channel-type.nibeuplink.type-energy.label = Unnamed Energy -channel-type.nibeuplink.type-flow.label = Unnamed Flow -channel-type.nibeuplink.type-frequency-scale10.label = Unnamed Frequency -channel-type.nibeuplink.type-frequency-unscaled.label = Unnamed Frequency -channel-type.nibeuplink.type-hpac-state.label = HPAC State -channel-type.nibeuplink.type-hpac-state.state.option.10 = Off -channel-type.nibeuplink.type-hpac-state.state.option.20 = Wait -channel-type.nibeuplink.type-hpac-state.state.option.30 = Passive -channel-type.nibeuplink.type-hpac-state.state.option.40 = PassiveWait -channel-type.nibeuplink.type-hpac-state.state.option.50 = Active -channel-type.nibeuplink.type-hpac-state.state.option.60 = ActiveWait -channel-type.nibeuplink.type-hpac-state.state.option.70 = ActiveProtWait -channel-type.nibeuplink.type-number-scale10.label = Unnamed Number (0.1) -channel-type.nibeuplink.type-number-scale100.label = Unnamed Number (0.01) -channel-type.nibeuplink.type-number-unscaled.label = Unnamed Number -channel-type.nibeuplink.type-power.label = Unnamed Power -channel-type.nibeuplink.type-pressure.label = Unnamed Pressure -channel-type.nibeuplink.type-speed-percent.label = Unnamed Speed -channel-type.nibeuplink.type-switch.label = Unnamed Switch -channel-type.nibeuplink.type-temperature.label = Unnamed Temperature -channel-type.nibeuplink.type-time-scale10.label = Unnamed Time -channel-type.nibeuplink.type-time-unscaled.label = Unnamed Time - -# status translations - -status.invalid.nibeId = "Most likely your NibeId is wrong. Please check your NibeId" -status.invalid.credentials = "Invalid username or password" diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink_de.properties b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink_de.properties deleted file mode 100644 index e80a2235a5..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/i18n/nibeuplink_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# add-on -addon.nibeuplink.name = Nibe Uplink binding -addon.nibeuplink.description = Abfrage von Nibe Wärmepumpendaten über die Nibe Uplink API. - -# thing types -thing-type.nibeuplink.web.label = Nibe Wärmepumpe -thing-type.nibeuplink.web.description = Wärmepumpenspezifischer WebZugang zu Nibe Uplink - -# groups -thing-type.config.nibeuplink.web.group.authentication.label = Authentifizierung -thing-type.config.nibeuplink.web.group.authentication.description = Einstellungen für die Authentifizierung. -thing-type.config.nibeuplink.web.group.connection.label = Verbindung -thing-type.config.nibeuplink.web.group.connection.description = Einstellungen für die Verbindung. -thing-type.config.nibeuplink.web.group.general.label = Allgemeines -thing-type.config.nibeuplink.web.group.general.description = Allgemeine Einstellungen. -thing-type.config.nibeuplink.web.group.customChannels.label = Benutzerdefinierte Kanäle -thing-type.config.nibeuplink.web.group.customChannels.description = Benutzerdefinierte Kanäle. - -thing-type.config.nibeuplink.web.user.label = Benutzer -thing-type.config.nibeuplink.web.user.description = Benutzer zur Authentifizierung bei Nibe Uplink. -thing-type.config.nibeuplink.web.password.label = Passwort -thing-type.config.nibeuplink.web.password.description = Passwort zur Authentifizierung bei Nibe Uplink. -thing-type.config.nibeuplink.web.nibeId.label = Nibe ID -thing-type.config.nibeuplink.web.nibeId.description = ID der Wärmepumpeninstallation bei Nibe Uplink. -thing-type.config.nibeuplink.web.pollingInterval.label = Abfrageintervall -thing-type.config.nibeuplink.web.pollingInterval.description = Intervall in welchem Abfragen an Nibe Uplink geschickt werden. diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/base-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/base-channel-groups.xml deleted file mode 100644 index 882db8c08f..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/base-channel-groups.xml +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - Current outdoor temperature - - - - EB100-BT1 Outdoor temperature average - - - - Degree minutes, 16bit value (-32768 < x < 32767). Values outside valid values are rounded to the - closest valid value. - - /Manage/4.9.3 - -?[0-9]+ - - - - - Calculated supply temperature for the climate system - - - - External supply temperature, BT25 - - - - Room Temperature S1 (BT50) - - - - External Adjustment Activated Via Input S1 - - 0 - 1 - - - - - Supply temperature for system 1 - - - - Return temperature - - - - Current flow EP14|Current flow EP15 - - - - BE3 Current - - - - BE2 Current - - - - BE1 Current - - - - states if internal electric additional heater is blocked - - 0 - 1 - - - - - Total electric additive operation time - - - - Current power from the internal electrical addition - - - - Maximum power from the internal electrical addition - - - - Maximum power from the internal electrical addition in SG-Ready Mode - - - - Accumulated energy production as calculated by the heat meter - - - - Accumulated energy production as calculated by the heat meter - - - - Accumulated energy production as calculated by the heat meter - - - - states if Holiday mode is activated - - /Manage/4.7 - .* - 0 - 10 - - - - - states if the compressor is blocked - - 0 - 1 - - - - - Supply Pump Speed, EP14 (GP6) - - - - - - - - - Hot water top temperature, BT7 - - - - Hot water load temperature, BT6 - - - - Accumulated energy production as calculated by the heat meter - - - - Accumulated energy production as calculated by the heat meter - - - - Temporary hot water lux mode - - /Manage/2.1 - [01234] - - - - - The currently active hotwater mode - - /Manage/2.2 - [012] - - - - - Start temperature for heating water in Economy mode - - - - Stop temperature for heating water in Economy mode - - - - Start temperature for heating water in Normal mode - - - - Stop temperature for heating water in Normal mode - - - - Start temperature for heating water in Luxury mode - - - - Stop temperature for heating water in Luxory mode - - - - Stop temperature for heating water in periodic heating - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-channel-groups.xml deleted file mode 100644 index 51ad662b1b..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-channel-groups.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - Accumulated energy production as calculated by the heat meter - - - - Calculated supply temperature in cooling mode for the climate system - - - - State of the HPAC accessory - - - - - - - - - Total compressor operation time in hot water mode - - - - Total compressor operation time - - - - Number of compressor starts - - - - Suction temperature, BT17 - - - - Liquid line temperature, BT15 - - - - Hot gas temperature, BT14 - - - - Condensor out temperature, BT12 - - - - Brine in temperature, BT10 - - - - Brine out temperature, BT11 - - - - Brine pump speed EP14 (GP2) - - - - - - - - - Exhaust Air Temperature (BT20) - - - - Vented Air Temperature (BT21) - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-thing.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-thing.xml deleted file mode 100644 index c9d0f37e53..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1145-thing.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Nibe F1145 heat pump connected through Nibe UpLink - - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-channel-groups.xml deleted file mode 100644 index 7eb14bb338..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-channel-groups.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - Accumulated energy production as calculated by the heat meter - - - - - - - - - Total compressor operation time in hot water mode - - - - Total compressor operation time - - - - Number of compressor starts - - - - Suction temperature, BT17 - - - - Liquid line temperature, BT15 - - - - Hot gas temperature, BT14 - - - - Condensor out temperature, BT12 - - - - The compressor frequency the compressor is currently running at - - - - The current minimum frequency of the compressor - - - - The current maximum frequency of the compressor - - - - Brine in temperature, BT10 - - - - Brine out temperature, BT11 - - - - Brine pump speed EP14 (GP2) - - - - - - - - - Exhaust Air Temperature (BT20) - - - - Vented Air Temperature (BT21) - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-thing.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-thing.xml deleted file mode 100644 index 941c99fcfb..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f1155-thing.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Nibe F1155 heat pump connected through Nibe UpLink - - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-channel-groups.xml deleted file mode 100644 index cd93a16f57..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-channel-groups.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - Chargepump Speed - - - - Total compressor operation time in hot water mode - - - - Total compressor operation time - - - - Number of compressor starts - - - - Suction temperature, BT17 - - - - Liquid line temperature, BT15 - - - - Hot gas temperature, BT14 - - - - Condensor out temperature, BT12 - - - - Evaporator Temp (BT16) - - - - The compressor frequency the compressor is currently running at - - - - The current minimum frequency of the compressor - - - - The current maximum frequency of the compressor - - - - Defrosting time, no defrosting heater in the product - - - - - - - - - The current fan speed - - - - Exhaust Air Temperature (BT20) - - - - Vented Air Temperature (BT21) - - - - Reference value for the airflow. - - - - Adjusted BS1 Air Flow (BT100) - - - - Airflow Reduction - - - - Air Mix - - - - External airmix temperature BT28 - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-thing.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-thing.xml deleted file mode 100644 index c1062e24e1..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f730-thing.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Nibe F730 heat pump connected through Nibe UpLink - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-channel-groups.xml deleted file mode 100644 index e0ef79d532..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-channel-groups.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - Chargepump Speed - - - - Total compressor operation time in hot water mode - - - - Total compressor operation time - - - - Number of compressor starts - - - - Suction temperature, BT17 - - - - Liquid line temperature, BT15 - - - - Hot gas temperature, BT14 - - - - Condensor out temperature, BT12 - - - - Evaporator Temp (BT16) - - - - The compressor frequency the compressor is currently running at - - - - The current minimum frequency of the compressor - - - - The current maximum frequency of the compressor - - - - - - - - - Exhaust Air Temperature (BT20) - - - - Vented Air Temperature (BT21) - - - - Reference value for the airflow. - - - - Adjusted BS1 Air Flow (BT100) - - - - Currently selected fan speed - - /Manage/1.2 - [01234] - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-thing.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-thing.xml deleted file mode 100644 index fced2ca8f8..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/f750-thing.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Nibe F750 heat pump connected through Nibe UpLink - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readonly-channel-types.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readonly-channel-types.xml deleted file mode 100644 index e8af9a8cbc..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readonly-channel-types.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - Number - - - - - - Number - - - - - - Number - - - - - - Switch - - - - - Number:Temperature - - - - - - Number:Dimensionless - - - - - - Number:ElectricCurrent - - - - - - Number:Time - - - - - - Number:Time - - - - - - Number:Frequency - - - - - - Number:Frequency - - - - - - Number:Power - - - - - - Number:Energy - - - - - - Number:Pressure - - - - - - Number:Dimensionless - - - - - - Number - - - - - - - - - - - Number - - - - - - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readwrite-channel-types.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readwrite-channel-types.xml deleted file mode 100644 index 1168b49dcc..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/readwrite-channel-types.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - Number - - - - - - Number - - - - - - Number - - - - - - Number - - - - - - Number - - - - - - Number - - - - - - Switch - - - - - Number - - - - - - Number - - - - - - - - - - - - - Number - - - - - - - - - - - Number - - - - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-channel-groups.xml deleted file mode 100644 index b016c89788..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-channel-groups.xml +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - Calculated supply temperature in cooling mode for the climate system - - - - Supply Temp at internal additional heater (BT63) - - - - Accumulated energy production as calculated by the heat meter - - - - Offset of the heat curve, see manual for more information - - /Manage/1.9.1.1-S1 - [-1]*[0-9] - - - - - When activated the system uses the room sensor 0=Off 1=On - - /Manage/1.9.4 - .* - 0 - 1 - - - - - Setting of how much the difference between set and actual room temperature should affect the supply - temperature. - - /Manage/1.9.4 - [0123456]*[0-9] - - - - - Setting of how much the difference between set and actual room temperature should affect the supply - temperature in cooling mode. - - /Manage/1.9.4 - [0123456]*[0-9] - - - - - - - - - - Current outdoor temperature, BT28 - - - - Speed Charge Pump - - - - Defrosting state of the outdoor unit - - - - Total operation time of compressor in hotwater mode - - - - Total operation time of compressor in cooling mode - - - - Total operation time of compressor - - - - Total compressor starts - - - - Suction temperature, BT17 - - - - Liquid line temperature, BT15 - - - - Hot gas temperature, BT14 - - - - Condensor temperature, BT12 - - - - Return temperature, BT3 - - - - Evaporator temperature, BT16 - - - - Pressure Sensor (BT4) - - - - The desired frequency as shown in service info - - - - Actual compressor frequency of the outdoor unit - - - - rotection status register of the outdoor unit - - 0 - 1 - - - - - Low pressure sensor outdoor unit - - - - Compressor state - - - - - - - - - Exhaust Air Temperature (BT20) - - - - Vented Air Temperature (BT21) - - - - Supply Air Temperature (BT22) - - - - Outdoor Temperature (BT23) - - - - Indicates the speed of the GQ2 fan speed on the ERS accessory. - - - - Indicates the speed of the GQ3 fan speed on the ERS accessory. - - - - Indicates if the ERS accessory is externaly blocked. - - 0 - 1 - - - - - Currently selected fan speed - - /Manage/1.2 - [01234] - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-thing.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-thing.xml deleted file mode 100644 index fba0986b69..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm310-thing.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Nibe VVM310 / VVM500 heat pump connected through Nibe UpLink - - - - - - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-channel-groups.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-channel-groups.xml deleted file mode 100644 index 4cb0467e34..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-channel-groups.xml +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - Calculated supply temperature in cooling mode for the climate system - - - - Supply Temp at internal additional heater (BT63) - - - - Accumulated energy production as calculated by the heat meter - - - - Offset of the heat curve, see manual for more information - - /Manage/1.9.1.1-S1 - [-1]*[0-9] - - - - - When activated the system uses the room sensor 0=Off 1=On - - /Manage/1.9.4 - .* - 0 - 1 - - - - - Setting of how much the difference between set and actual room temperature should affect the supply - temperature. - - /Manage/1.9.4 - [0123456]*[0-9] - - - - - Setting of how much the difference between set and actual room temperature should affect the supply - temperature in cooling mode. - - /Manage/1.9.4 - [0123456]*[0-9] - - - - - Start Temperature Cooling in Auto mode - - /Manage/4.9.2 - [0-9]*[0-9] - - - - - Stop Temperature Heating in Auto mode - - /Manage/4.9.2 - [0-9]*[0-9] - - - - - Stop Temperature Additive heater in Auto mode - - /Manage/4.9.2 - [0-9]*[0-9] - - - - - Outdoor Filter Time in Auto mode - - /Manage/4.9.2 - [0-4]*[0-9] - - - - - - - - - - Current outdoor temperature, BT28 - - - - Speed Charge Pump - - - - Defrosting state of the outdoor unit - - - - Total operation time of compressor in hotwater mode - - - - Total operation time of compressor in cooling mode - - - - Total operation time of compressor - - - - Total compressor starts - - - - Suction temperature, BT17 - - - - Liquid line temperature, BT15 - - - - Hot gas temperature, BT14 - - - - Condensor temperature, BT12 - - - - Return temperature, BT3 - - - - Evaporator temperature, BT16 - - - - Pressure Sensor (BT4) - - - - The desired frequency as shown in service info - - - - Actual compressor frequency of the outdoor unit - - - - rotection status register of the outdoor unit - - 0 - 1 - - - - - Low pressure sensor outdoor unit - - - - Compressor state - - - - - - - - - Exhaust Air Temperature (BT20) - - - - Vented Air Temperature (BT21) - - - - Supply Air Temperature (BT22) - - - - Outdoor Temperature (BT23) - - - - Indicates the speed of the GQ2 fan speed on the ERS accessory. - - - - Indicates the speed of the GQ3 fan speed on the ERS accessory. - - - - Indicates if the ERS accessory is externaly blocked. - - 0 - 1 - - - - - Currently selected fan speed - - /Manage/1.2 - [01234] - - - - - diff --git a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-thing.xml b/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-thing.xml deleted file mode 100644 index 724e20caf4..0000000000 --- a/bundles/org.openhab.binding.nibeuplink/src/main/resources/OH-INF/thing/vvm320-thing.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Nibe VVM320 / VVM325 heat pump connected through Nibe UpLink - - - - - - - - - - diff --git a/bundles/pom.xml b/bundles/pom.xml index 94b7664452..569f4d3733 100644 --- a/bundles/pom.xml +++ b/bundles/pom.xml @@ -288,7 +288,6 @@ org.openhab.binding.network org.openhab.binding.networkupstools org.openhab.binding.nibeheatpump - org.openhab.binding.nibeuplink org.openhab.binding.nikobus org.openhab.binding.nikohomecontrol org.openhab.binding.nobohub -- 2.47.3