# DanfossAirUnit Binding

This binding supports controlling and monitoring Danfoss Air heat recovery ventilation units via Ethernet connection.

# Supported Things

This binding has been tested/reported to work with the Danfoss Air w2 / a2 / a3 devices.

# Discovery

Air units in the LAN are automatically discovered via broadcast and added to the Inbox.

# Thing Configuration

These are the available configuration parameters:

  • host Hostname/IP of the air unit (automatically set by discovery service)
  • refreshInterval Time (in seconds) between monitoring requests to the air unit. Smaller values mean more network load, typically set between a few seconds and a minute. Defaults to 10 seconds.
  • updateUnchangedValuesEveryMillis Minimum time between state updates sent to the event bus for a particular channel when the state of the channel didn't change. This should avoid spamming the event bus with unnecessary updates. When set to 0, all channel state are updated every time the air unit requests are sent (see refresh interval). When set to a non zero value, unchanged values are only reported after the configured timespan has passed. Changed values are always sent to the event bus. Defaults to 60.000 (one minute), so updates are sent every minute or if the state of the channel changes.

# Channels

channel channel group type readable only (RO) or writable (RW) description
current_time main DateTime RO Current time reported by the air unit.
mode main String RW Value to control the operation mode of the air unit. One of DEMAND, PROGRAM, MANUAL and OFF
manual_fan_step main Dimmer RW Value to control the fan step when in MANUAL mode (10 steps)
supply_fan_speed main Number:Frequency RO Current rotation of the fan supplying air to the rooms (in rpm)
extract_fan_speed main Number:Frequency RO Current rotation of the fan extracting air from the rooms (in rpm)
supply_fan_step main Dimmer RO Current step setting of the fan supplying air to the rooms
extract_fan_step main Dimmer RO Current step setting of the fan extracting air from the rooms
boost main Switch RW Enables fan boost
night_cooling main Switch RW Enables night cooling
room_temp temps Number:Temperature RO Temperature of the air in the room of the Air Dial
room_temp_calculated temps Number:Temperature RO Calculated Room Temperature
outdoor_temp temps Number:Temperature RO Temperature of the air outside
humidity humidity Number:Dimensionless RO Current relative humidity measured by the air unit
bypass recuperator Switch RW Disables the heat exchange. Useful in summer when room temperature is above target and outside temperature is below target.
supply_temp recuperator Number RO Temperature of air which is passed to the rooms
extract_temp recuperator Number RO Temperature of the air as extracted from the rooms
exhaust_temp recuperator Number RO Temperature of the air when pushed outside
battery_life service Number RO Remaining Air Dial Battery Level (percentage)
filter_life service Number RO Remaining life of filter until exchange is necessary (percentage)
filter_period service Number RW Number of months between filter replacements (between 3 and 12). This value affects calculation of filter_life by the unit, and might get overwritten by Air Dial or Link CC Controller.

# Full Example

# Things

Suppose your autodiscovered air unit is identified by the id "danfossairunit:airunit:myairunit" (see section "Discovery"). The channel will then be identified by <air unit id>:<channel group>#<channel>

You can also manually configure your air unit in case you don't want to use autodiscovery (e. g. if you want to have a portable configuration): Create a new file, e. g. danfoss.things, in your things configuration folder:

Thing danfossairunit:airunit:myairunit [host="192.168.0.7",
refreshInterval=5,
updateUnchangedValuesEveryMillis=30000]

# Items

Dimmer DanfossHRV_ManualFanStep "Manual Fan Step [%s]" { channel = "danfossairunit:airunit:myairunit:main#manual_fan_step" }
Number:Frequency DanfossHRV_SupplyFanSpeed "Supply Fan Speed" { channel = "danfossairunit:airunit:myairunit:main#supply_fan_speed", unit="rpm" }
Number:Frequency DanfossHRV_ExtractFanSpeed "Extract Fan Speed" { channel = "danfossairunit:airunit:myairunit:main#extract_fan_speed", unit="rpm" }
String DanfossHRV_Mode "Operation Mode" { channel = "danfossairunit:airunit:myairunit:main#mode" }
Switch DanfossHRV_Boost "Boost" { channel = "danfossairunit:airunit:myairunit:main#boost" }
Switch DanfossHRV_Bypass "Bypass" { channel = "danfossairunit:airunit:myairunit:recuperator#bypass" }
Number:Dimensionless DanfossHRV_Humidity "Relative humidity" <humidity> { channel = "danfossairunit:airunit:myairunit:humidity#humidity" }
Number:Temperature DanfossHRV_RoomTemperature "Room air temperatuyre" <temperature> { channel = "danfossairunit:airunit:myairunit:temps#room_temp" }
Number:Temperature DanfossHRV_OutdoorTemperature "Outdoor air temperature" <temperature> { channel = "danfossairunit:airunit:myairunit:temps#outdoor_temp" }
Number:Temperature DanfossHRV_SupplyAirTemperature "Supply air temperature" <temperature> { channel = "danfossairunit:airunit:myairunit:recuperator#supply_temp" }
Number:Temperature DanfossHRV_ExtractAirTemperature "Extract air temperature" <temperature> { channel = "danfossairunit:airunit:myairunit:recuperator#extract_temp" }
Number:Temperature DanfossHRV_ExhaustAirTemperature "Exhaust air temperature" <temperature> { channel = "danfossairunit:airunit:myairunit:recuperator#exhaust_temp" }
Number DanfossHRV_RemainingFilterLife "Remaining filter life" { channel = "danfossairunit:airunit:myairunit:service#filter_life" }
Number DanfossHRV_FilterPeriod "Filter period" { channel = "danfossairunit:airunit:myairunit:service#filter_period" }

# Sitemap

sitemap danfoss label="Danfoss" {
    Frame label="Control" {
        Selection item=DanfossHRV_Mode mappings=[DEMAND="Demand", OFF="Off", PROGRAM="Program", MANUAL="Manual"]
        Slider item=DanfossHRV_ManualFanStep step=10 visibility=[DanfossHRV_Mode=="MANUAL"]
        Switch item=DanfossHRV_Bypass
        Switch item=DanfossHRV_Boost
    }
    Frame label="Measurements" {
        Text item=DanfossHRV_Humidity
        Text item=DanfossHRV_RoomTemperature
        Text item=DanfossHRV_OutdoorTemperature
        Text item=DanfossHRV_SupplyAirTemperature
        Text item=DanfossHRV_ExtractAirTemperature
        Text item=DanfossHRV_ExhaustAirTemperature
    }
    Frame label="Fan" {
        Text item=DanfossHRV_SupplyFanSpeed
        Text item=DanfossHRV_ExtractFanSpeed
    }
    Frame label="Filter" {
         Text item=DanfossHRV_RemainingFilterLife
         Slider item=DanfossHRV_FilterPeriod minValue=3 maxValue=12
    }
}