diff --git a/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/Channel.java b/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/Channel.java
index 4aaeeb2b7c6b5..8f2dfc41e3d26 100644
--- a/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/Channel.java
+++ b/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/Channel.java
@@ -69,7 +69,7 @@ public enum Channel {
@Nullable
private final DanfossAirUnitWriteAccessor writeAccessor;
- static Channel getByName(String name) {
+ public static Channel getByName(String name) {
for (Channel channel : values()) {
if (channel.getChannelName().equals(name)) {
return channel;
diff --git a/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/DanfossAirUnitHandlerFactory.java b/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/DanfossAirUnitHandlerFactory.java
index fe09832eff090..ee2f3d4972f87 100644
--- a/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/DanfossAirUnitHandlerFactory.java
+++ b/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/DanfossAirUnitHandlerFactory.java
@@ -19,6 +19,7 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.danfossairunit.internal.handler.DanfossAirUnitHandler;
import org.openhab.core.thing.Thing;
import org.openhab.core.thing.ThingTypeUID;
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
diff --git a/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/handler/DanfossAirUnitHandler.java b/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/handler/DanfossAirUnitHandler.java
index 0bf43f57662fe..6b69008c99927 100644
--- a/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/handler/DanfossAirUnitHandler.java
+++ b/bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/handler/DanfossAirUnitHandler.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.danfossairunit.internal;
+package org.openhab.binding.danfossairunit.internal.handler;
import static org.openhab.binding.danfossairunit.internal.DanfossAirUnitBindingConstants.*;
@@ -22,6 +22,13 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.danfossairunit.internal.Channel;
+import org.openhab.binding.danfossairunit.internal.DanfossAirUnit;
+import org.openhab.binding.danfossairunit.internal.DanfossAirUnitCommunicationController;
+import org.openhab.binding.danfossairunit.internal.DanfossAirUnitConfiguration;
+import org.openhab.binding.danfossairunit.internal.DanfossAirUnitWriteAccessor;
+import org.openhab.binding.danfossairunit.internal.UnexpectedResponseValueException;
+import org.openhab.binding.danfossairunit.internal.ValueCache;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import org.openhab.core.thing.ThingStatus;
@@ -73,7 +80,7 @@ public void handleCommand(ChannelUID channelUID, Command command) {
}
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.OFFLINE.NONE,
- "Air unit connection not initialized.");
+ "@text/offline.connection-not-initialized");
return;
}
} catch (IllegalArgumentException e) {
@@ -107,7 +114,7 @@ public void initialize() {
});
} catch (UnknownHostException e) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.OFFLINE.COMMUNICATION_ERROR,
- "Unknown host: " + config.host);
+ "@text/offline.communication-error.unknown-host [\"" + config.host + "\"]");
return;
}
}
diff --git a/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/i18n/danfossairunit.properties b/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/i18n/danfossairunit.properties
new file mode 100644
index 0000000000000..02fe397076e9b
--- /dev/null
+++ b/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/i18n/danfossairunit.properties
@@ -0,0 +1,86 @@
+# binding
+
+binding.danfossairunit.name = DanfossAirUnit Binding
+binding.danfossairunit.description = This is the binding for DanfossAirUnit.
+
+# thing types
+
+thing-type.danfossairunit.airunit.label = Danfoss Air Unit
+thing-type.danfossairunit.airunit.description = The Danfoss Air Unit Heat Exchanger, CCM and Air Dial
+
+# thing types config
+
+thing-type.config.danfossairunit.airunit.host.label = Host
+thing-type.config.danfossairunit.airunit.host.description = Host name or IP address of the Danfoss Air CCM
+thing-type.config.danfossairunit.airunit.refreshInterval.label = Refresh Interval
+thing-type.config.danfossairunit.airunit.refreshInterval.description = Seconds between fetching values from the air unit. Default is 10.
+thing-type.config.danfossairunit.airunit.updateUnchangedValuesEveryMillis.label = Interval for Updating Unchanged Values
+thing-type.config.danfossairunit.airunit.updateUnchangedValuesEveryMillis.description = Interval to update unchanged values (to the event bus) in milliseconds. A value of 0 means that every value (received via polling from the air unit) is updated to the event bus, unchanged or not.
+
+# channel group types
+
+channel-group-type.danfossairunit.humidity.label = Humidity
+channel-group-type.danfossairunit.humidity.channel.humidity.description = Current relative humidity measured by the air unit
+channel-group-type.danfossairunit.main.label = Mode and Fan Speeds
+channel-group-type.danfossairunit.main.channel.boost.label = Boost
+channel-group-type.danfossairunit.main.channel.boost.description = Enables fan boost
+channel-group-type.danfossairunit.main.channel.night_cooling.label = Night Cooling
+channel-group-type.danfossairunit.main.channel.night_cooling.description = Enables night cooling
+channel-group-type.danfossairunit.recuperator.label = Recuperator
+channel-group-type.danfossairunit.recuperator.description = Heat exchaning device in the Air Unit
+channel-group-type.danfossairunit.recuperator.channel.bypass.label = Bypass
+channel-group-type.danfossairunit.recuperator.channel.bypass.description = Disables the heat exchange. Useful in summer when room temperature is above target and outside temperature is below target.
+channel-group-type.danfossairunit.recuperator.channel.exhaust_temp.label = Exhaust Air Temperature
+channel-group-type.danfossairunit.recuperator.channel.exhaust_temp.description = Temperature of the air when pushed outside
+channel-group-type.danfossairunit.recuperator.channel.extract_temp.label = Extract Air Temperature
+channel-group-type.danfossairunit.recuperator.channel.extract_temp.description = Temperature of the air as extracted from the rooms
+channel-group-type.danfossairunit.recuperator.channel.supply_temp.label = Supply Air Temperature
+channel-group-type.danfossairunit.recuperator.channel.supply_temp.description = Temperature of air which is passed to the rooms
+channel-group-type.danfossairunit.service.label = Service
+channel-group-type.danfossairunit.service.channel.battery_life.label = Battery Life
+channel-group-type.danfossairunit.service.channel.battery_life.description = Remaining Air Dial Battery Level
+channel-group-type.danfossairunit.service.channel.filter_life.label = Remaining Filter Life
+channel-group-type.danfossairunit.service.channel.filter_life.description = Remaining life of filter until exchange is necessary
+channel-group-type.danfossairunit.temps.label = Temperatures
+channel-group-type.danfossairunit.temps.channel.outdoor_temp.label = Outdoor Temperature
+channel-group-type.danfossairunit.temps.channel.outdoor_temp.description = Temperature of the air outside
+channel-group-type.danfossairunit.temps.channel.room_temp.label = Room Temperature
+channel-group-type.danfossairunit.temps.channel.room_temp.description = Temperature of the air in the room of the Air Dial
+channel-group-type.danfossairunit.temps.channel.room_temp_calculated.label = Calculated Room Temperature
+channel-group-type.danfossairunit.temps.channel.room_temp_calculated.description = Calculated Room Temperature
+
+# channel types
+
+channel-type.danfossairunit.currentTime.label = Current Time
+channel-type.danfossairunit.currentTime.description = Current time reported by the air unit
+channel-type.danfossairunit.extractFanSpeed.label = Extract Fan Speed
+channel-type.danfossairunit.extractFanSpeed.description = Current rotation of the fan extracting air from the rooms
+channel-type.danfossairunit.extractFanStep.label = Extract Fan Step
+channel-type.danfossairunit.extractFanStep.description = Current step setting of the fan extracting air from the rooms
+channel-type.danfossairunit.filterPeriod.label = Filter Period
+channel-type.danfossairunit.filterPeriod.description = Number of months between filter replacements
+channel-type.danfossairunit.humidity.label = Humidity
+channel-type.danfossairunit.manualFanSpeed.label = Manual Fan Speed
+channel-type.danfossairunit.manualFanSpeed.description = Deprecated, please use Manual Fan Step instead. This channel will be removed in a later version.
+channel-type.danfossairunit.manualFanStep.label = Manual Fan Step
+channel-type.danfossairunit.manualFanStep.description = Controls 10-step setting of the fan when operation mode is manual
+channel-type.danfossairunit.mode.label = Mode
+channel-type.danfossairunit.mode.description = Operation mode of the air unit: Off, Demand, Manual, Program
+channel-type.danfossairunit.mode.state.option.DEMAND = Demand
+channel-type.danfossairunit.mode.state.option.PROGRAM = Program
+channel-type.danfossairunit.mode.state.option.MANUAL = Manual
+channel-type.danfossairunit.mode.state.option.OFF = Off
+channel-type.danfossairunit.percentage.label = Percentage
+channel-type.danfossairunit.percentage.description = Read only percentage
+channel-type.danfossairunit.supplyFanSpeed.label = Supply Fan Speed
+channel-type.danfossairunit.supplyFanSpeed.description = Current rotation of the fan supplying air to the rooms
+channel-type.danfossairunit.supplyFanStep.label = Supply Fan Step
+channel-type.danfossairunit.supplyFanStep.description = Current step setting of the fan supplying air to the rooms
+channel-type.danfossairunit.switch.label = Something that can be turned on or off
+channel-type.danfossairunit.temperature.label = Temperature
+channel-type.danfossairunit.temperature.description = Current temperature
+
+# thing status descriptions
+
+offline.connection-not-initialized = Air unit connection not initialized.
+offline.communication-error.unknown-host = Unknown host: {0}
diff --git a/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/thing/thing-types.xml
index 6fa06e5e0b046..b526e27bb4184 100644
--- a/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/thing/thing-types.xml
@@ -30,6 +30,7 @@
10Seconds
+ Seconds between fetching values from the air unit. Default is 10.