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 @@ 10 Seconds + Seconds between fetching values from the air unit. Default is 10.