Skip to content

Tvalley71/dantherm

Repository files navigation

Dantherm

Home Assistant integration for Dantherm ventilation units

Tip

The integration also exist in a version for Pluggit ventilation units here.

Currently only support for Modbus over TCP/IP.

Known supported units:

  • HCV300 ALU
  • HCV700 ALU
  • HCV400 P2
  • HCV460 P2
  • RCV320 P1/P2
  • HCH5 MKII

Note

The listed units are known to have been used with this integration. Basicly all units that can be used with the Dantherm Residential app ought to work with the integration (Google Play or Apple Store). If you know of any not included in the list, please feel free to contact me here.

Controls and sensors

Buttons Entities Description
alarm_reset Reset alarm
filter_reset Reset remain filter time
Calendar Entity Description
calendar Operation Calender
Cover Entity Description
bypass_damper Bypass damper*
Number Entities Description
boost_presence_timeout Boost presence timeout
bypass_minimum_temperature Bypass minimum temperature
bypass_maximum_temperature Bypass maximum temperature
eco_presence_timeout Eco presence timeout
filter_lifetime Input filter lifetime
manual_bypass_duration Manual bypass duration* †
home_presence_timeout Home presence timeout
Select Entities Description
boost_operation_selection Boost operation selection
default_operation_selection Default operation selection
eco_operation_selection Eco operation selection
fan_level_selection Fan level selection
home_operation_selection Home operation selection
operation_selection Mode of operation selection
week_program_selection Week program selection
Sensor Entities Description
air_quality Air quality sensor*
alarm Alarm sensor
exhaust_temperature Exhaust temperature sensor
extract_temperature Extract temperature sensor
fan_level Fan level
fan1_speed Fan 1 speed
fan2_speed Fan 2 speed
filter_remain Remaining filter time
filter_remain_level Remaining filter time level
humidity Humidity sensor*
internal_preheater_dutycycle Preheater power dutycycle* †
operation_mode Operation mode
outdoor_temperature Outdoor temperature sensor
room_temperature Room temperature sensor* †
supply_temperature Supply temperature sensor
work_time Work time
Switch Entities Description
away_mode Away mode
boost_mode Boost mode
eco_mode Eco mode
fireplace_mode Fireplace mode
home_mode Home mode
manual_bypass_mode Manual bypass mode*
night_mode Night mode
summer_mode Summer mode
Text Entities Description
night_mode_end_time Night mode end time text
night_mode_start_time Night mode start time text

* Some of the entities may not install due to lack of support or installation in the particular unit.

† The entity is disabled by default.

Strikethrough is a work in progress, planned for version 0.5.0.

Installation

Installation via HACS (Home Assistant Community Store)

  1. Ensure you have HACS installed and configured in your Home Assistant instance.
  2. Open the HACS (Home Assistant Community Store) by clicking HACS in the side menu.
  3. Click on Integrations and then click the Explore & Download Repositories button.
  4. Search for "Dantherm" in the search bar.
  5. Locate the "Dantherm Integration" repository and click on it.
  6. Click the Install button.
  7. Once installed, restart your Home Assistant instance.

Manual Installation

  1. Navigate to your Home Assistant configuration directory.
    • For most installations, this will be '/config/'.
  2. Inside the configuration directory, create a new folder named 'custom_components' if it does not already exist.
  3. Inside the 'custom_components' folder, create a new folder named 'dantherm'.
  4. Download the latest release of the Dantherm integration from the releases page into the 'custom_components/dantherm' directory:
  5. Once the files are in place, restart your Home Assistant instance.

Configuration

After installation, add the Dantherm integration to your Home Assistant configuration.

  1. In Home Assistant, go to Configuration > Integrations.
  2. Click the + button to add a new integration.
  3. Search for "Dantherm" and select it from the list of available integrations.
  4. Follow the on-screen instructions to complete the integration setup.

Skærmbillede 2024-05-04 090018 Skærmbillede 2024-05-04 090125

Support

If you encounter any issues or have questions regarding the Dantherm integration for Home Assistant, feel free to open an issue or start a discussion on this repository. I welcome any contributions or feedback.

Languages

Currently supported languages:

Danish, Dutch, English, German and French.

Note

Want to help translate? Grab a language file on GitHub here and post it here. You are also welcome to submit a PR.


Screenshots

Skærmbillede fra 2025-02-09 15-49-04

Skærmbillede fra 2025-02-09 15-26-39 Skærmbillede fra 2025-02-09 15-27-48

Skærmbillede fra 2025-02-09 15-28-23 Skærmbillede fra 2025-02-09 15-28-58

Skærmbillede fra 2025-02-09 15-31-03

Note

The HAC module functions are currently unsupported due to limited testing possibilities. If support for these functions are desired, please contact me for potential collaborative efforts to provide the support.


Examples

Picture-elements card

This is a modified version of a dashboard card posted by @cronner on Home Assistant Community. This will show alarms, filter remain level and change according to the current bypass state. Kinda like the Dantherm app.

Skærmbillede 2024-05-21 182357

Skærmbillede 2024-05-21 182443

Skærmbillede 2024-05-21 182154

The details for the above picture-elements card (challenging).

I might consider creating a custom card based on this in the future.

To integrate this into your dashboard, begin by downloading and extracting this zip file. Copy the contained files into the "www" folder within your configuration directory on Home Assistant. You can use the Samba share add-on, the upload feature in the Studio Code Server add-on, or other preferred methods.

Next, insert the following code into your dashboard. If your Home Assistant setup uses a language other than English, make sure to modify the entity names in the code accordingly. You also need to enable the filter_remain_level sensor.

The code

  - type: picture-elements
    image: /local/dantherm1.png
    elements:
      - type: image
        entity: sensor.dantherm_filter_remain_level
        state_image:
          '0': /local/dantherm4.png
          '1': /local/dantherm5.png
          '2': /local/dantherm6.png
          '3': /local/dantherm7.png
        style:
          transform: scale(1,1)
          left: 0%
          top: 0%
        tap_action:
          action: more-info
      - type: conditional
        conditions:
          - entity: switch.dantherm_summer_mode
            state: 'off'
        elements:
          - type: image
            entity: cover.dantherm_bypass_damper
            state_image:
              closed: /local/dantherm2.png
              closing: /local/dantherm2.png
              open: /local/dantherm3.png
              opening: /local/dantherm3.png
            style:
              left: 26.6%
              top: 50%
              transform: scale(0.693,0.693)
            tap_action:
              action: more-info
          - type: conditional
            conditions:
              - entity: cover.dantherm_bypass_damper
                state:
                  - closed
                  - closing
            elements:
              - type: state-label
                entity: sensor.dantherm_outdoor_temperature
                style:
                  top: 64.5%
                  left: 78%
              - type: state-label
                entity: sensor.dantherm_extract_temperature
                style:
                  top: 64.5%
                  left: 49%
              - type: state-label
                entity: sensor.dantherm_exhaust_temperature
                style:
                  top: 81%
                  left: 78%
              - type: state-label
                entity: sensor.dantherm_supply_temperature
                style:
                  top: 81%
                  left: 49%
          - type: conditional
            conditions:
              - entity: cover.dantherm_bypass_damper
                state:
                  - open
                  - opening
            elements:
              - type: state-label
                entity: sensor.dantherm_extract_temperature
                style:
                  top: 64.5%
                  left: 49%
              - type: state-label
                entity: sensor.dantherm_outdoor_temperature
                style:
                  top: 81%
                  left: 78%
      - type: conditional
        conditions:
          - entity: switch.dantherm_summer_mode
            state: 'on'
        elements:
          - type: image
            image: /local/dantherm8.png
            style:
              left: 26.6%
              top: 50%
              transform: scale(0.693,0.693)
            tap_action:
              action: none
          - type: state-label
            entity: sensor.dantherm_extract_temperature
            style:
              top: 64.5%
              left: 49%
      - type: conditional
        conditions:
          - entity: sensor.dantherm_alarm
            state_not: '0'
        elements:
          - type: state-label
            entity: sensor.dantherm_alarm
            style:
              top: 15%
              left: 50%
              width: 100%
              font-weight: bold
              text-align: center
              color: white
              background-color: red
              opacity: 70%
      - type: state-label
        entity: select.dantherm_operation_selection
        style:
          top: 45%
          left: 36%
          font-weight: bold
          font-style: italic
          text-align: center
          font-size: 100%
      - type: state-label
        entity: sensor.dantherm_humidity
        style:
          top: 29%
          left: 38%
          font-size: 100%
      - type: state-label
        entity: select.dantherm_fan_selection
        style:
          top: 29%
          left: 63%
          font-weight: bold
          font-style: italic
          font-size: 100%

Mushroom-chips card

An example of a Mushroom-chips card showing the current state of operation and fan level in a single display. This can also be achieved with many of the other entities.

Skærmbillede 2024-05-21 104804

Mushroom-chips card details.

The following cards need the Mushroom frontend repository installed under HACS.

Mode of operation and fan level chips card (shown above)

  - type: custom:mushroom-chips-card
    chips:
      - type: conditional
        conditions:
          - condition: state
            entity: sensor.dantherm_fan_level
            state_not: unavailable
        chip:
          type: entity
          entity: sensor.dantherm_fan_level
          icon_color: blue

Alert chips card

Alert chip displaying any current alert along with its descriptions. A hold action is available to attempt resetting the alarm.

  - type: custom:mushroom-chips-card
    chips:
      - type: conditional
        conditions:
          - condition: state
            entity: sensor.dantherm_alarm
            state_not: unavailable
          - condition: state
            entity: sensor.dantherm_alarm
            state_not: '0'
        chip:
          type: entity
          entity: sensor.dantherm_alarm
          icon_color: red
          hold_action:
            action: call-service
            service: button.press
            data: {}
            target:
              entity_id: button.dantherm_reset_alarm

Note

Starting from version 2024.8 of Home Assistant, the new badges can be used to achieve same results as the Mushroom chips card.

Dashboard Badges

Here are some examples of badges added to the dashboard. The pop-up that appears when clicking on a badge will vary depending on the selected entities, either displaying information or enabling manipulation of the Dantherm unit.

Skærmbillede badge example


Using the "Dantherm: Set State" and "Dantherm: Set configuration" Actions

The Dantherm: Set state action allows you to control the state of your Dantherm ventilation unit directly from a Home Assistant automation. This action provides a wide range of options to customize the operation of your unit, making it suitable for various scenarios.

Steps to Use the "Set State" Action

  1. Create a New Automation:

    • Navigate to Settings > Automations & Scenes.
    • Click on Add Automation and select Start with an empty automation.
  2. Configure a Trigger:

    • Add a trigger that fits your use case. For example:
      • A time-based trigger to schedule changes.
      • A sensor-based trigger to react to environmental changes.
        • Air Quality Sensor: Trigger when CO2 levels exceed a threshold, e.g., 1000 ppm.
        • Humidity Sensor: Trigger when humidity exceeds, e.g., 70%.
        • Window Sensor: Trigger when a window opens.
        • Cooker Hood: Trigger when the smart plug detects power usage above a threshold.
  3. Add the "Dantherm: Set State" Action:

    • Under the Actions section, click Add Action.
    • Search for Dantherm: Set state in the action picker and select it.
  4. Configure the Action:

    • Use the options provided to control the Dantherm ventilation unit:
      • Targets: Choose the area, device, or entity to apply the action.
      • Operation Selection: Set the desired operating mode (e.g., Standby, Automatic, Manual, or Week Program).
      • Fan Selection: Choose the desired fan level (Level 0–4).
      • Modes: Toggle special modes like:
        • Away Mode: Enable or disable away mode.
        • Summer Mode: Turn summer mode on or off.
        • Fireplace Mode: Activate fireplace mode for a limited period.
        • Manual Bypass Mode: Enable or disable manual bypass.

Skærmbillede fra 2025-02-09 14-46-28

  1. Save the Automation:
    • Once configured, save the automation. The Dantherm unit will now respond to the specified trigger and perform the desired action.

The Dantherm: Set configuration action allows you to adjust various configuration settings of your Dantherm device directly from Home Assistant. This action can be used in automations, scripts, or manually through the Developer Tools.

Skærmbillede fra 2025-02-09 14-49-25

>>> The remaining sections are work in progress, planned for version 0.5.0

Integration enhancements

The integration enhances the control of Dantherm ventilation units by introducing Home Mode, Boost Mode, Eco Mode, and a Calendar Function for advanced scheduling and automation. These features ensure efficient operation based on both schedules and various triggers, providing a comfortable and energy-efficient environment.

Home Mode 🏡

Home Mode allows for automatic adjustments based on a Home Mode Trigger, ensuring efficient ventilation when you are unexpectedly home.

  • Home Mode Switch: This must be enabled for Home Mode to activate.
  • Trigger-Based Activation: If Home Mode is enabled and the Home Mode Trigger is active, the operation of the unit switches to the Home Operation Selection.
  • Home Mode Timeout: This entity specifies the timeout duration for Home Mode. Once triggered, the unit will continue to operate in Home Operation Selection for the specified timeout. The timeout resets if triggered again during this time.
  • Fallback Behavior: When a Home Mode session ends, the unit falls back to the operation when the session started, unless overridden by a calendar schedule.

The available operations in Home Operation Selection are Automatic, Level 3, Level 2, Level 1, or Week Program.

Boost Mode 🚀

Boost Mode is similar to Home Mode but is designed for short bursts of increased ventilation, useful after activities like cooking or showering.

  • Boost Mode Switch: This must be enabled for Boost Mode to activate.
  • Trigger-Based Activation: If Boost Mode is enabled and the Boost Mode Trigger is active, the operation of the unit switches to the Boost Operation Selection.
  • Boost Mode Timeout: This entity specifies the timeout duration for Boost Mode. Once triggered, the unit will operate in Boost Operation Selection for the specified timeout. The timeout resets if triggered again during this time.
  • Fallback Behavior: When a Boost Mode session ends, the unit falls back to the operation when the session started, unless overridden by a calendar schedule.

The available operations in Boost Operation Selection are Level 4, Level 3, or Level 2.

Important

The Dantherm unit has a built-in automatic setback from Level 4 to Level 3 after a fixed time period. This may cause Boost Mode to behave unexpectedly if Level 4 is used for longer periods.

Eco Mode 🌱

Eco Mode is designed to reduce fan speed under specific environmental conditions, optimizing efficiency and supporting the unit’s defrost mechanism in cold weather.

  • Eco Mode Switch: This must be enabled for Eco Mode to activate.
  • Trigger-Based Activation: If Eco Mode is enabled and the Eco Mode Trigger is active, the operation of the unit switches to the Eco Operation Selection.
  • Eco Mode Timeout: This entity specifies the timeout duration for Eco Mode. Once triggered, the unit will operate in Eco Operation Selection for the specified timeout. The timeout resets if triggered again during this time.
  • Fallback Behavior: When an Eco Mode session ends, the unit falls back to the operation when the session started, unless overridden by a calendar schedule.

The available operations in Eco Operation Selection are Standby and Level 1.

Important

The Dantherm unit has a built-in automatic setback from Standby to Level 3 after a fixed time period. This may cause Eco Mode to behave unexpectedly if Standby is used for longer periods.

Mode Triggers ⚡

Home, Boost, and Eco Modes rely on Mode Triggers, which are binary sensors that determine when a mode should activate.

A Mode Trigger can be:

  • A motion sensor (e.g., presence detection in Home Mode)
  • A humidity sensor (e.g., detecting high humidity after a shower)
  • A power sensor (e.g., detecting when a stove or shower fan is running)
  • An external temperature sensor (e.g., lowering fan speed in cold weather for Eco Mode)
  • A custom logic helper combining multiple conditions

Mode Triggers are manually configured in the integration settings.

Configuring a Mode Trigger

Steps to configure a Mode Trigger:

  1. Go to Home Assistant → Integrations → Dantherm.
  2. Select your Dantherm device and open the integration settings.
  3. Enable the desired Mode (Home, Boost, or Eco Mode).
  4. Enter the Mode Trigger entity:
    • In the respective Mode field (e.g., Home Mode Trigger, Boost Mode Trigger, Eco Mode Trigger), enter the entity ID of the binary sensor that will trigger the mode. This can be a motion sensor, humidity sensor, power sensor, or custom binary sensor.
    • Example entities could be: binary_sensor.kitchen_motion, binary_sensor.living_room_presence, binary_sensor.outdoor_temperature_low, etc.
  5. Save the configuration.

Once configured, the ventilation unit will automatically switch to the selected operation whenever the Mode Trigger entity is activated. ⚡


Calendar Function 📅

The Calendar Function allows precise scheduling of different operation modes, providing full automation of the ventilation system.

  • Integration - Calendar Events:
    By entering an event word into the summary of a calendar event, the selected operation will take effect when the event starts, assuming it has a higher priority event words than an ongoing event. When the event ends, the system will revert to the previously active event. If no underlying event exists, the unit will revert to the Default Operation Selection.

  • Event Words: You can schedule "Level 1", "Level 2", "Level 3", "Automatic", "Away Mode", "Night Mode", "Boost Mode", "Home Mode", "Eco Mode", and "Week Program". These terms will be translated according to the selected language in Home Assistant, assuming your language is supported by the integration.

    • If Level 1 to Level 3 is scheduled, the unit will run in Manual mode at the selected fan level.
    • If Automatic is scheduled, the unit will operate in Demand Mode.
    • If Away Mode is scheduled, Away Mode will be enabled at the start and disabled at the end of the event.
    • If Night Mode is scheduled, Night Mode will be enabled at the start and disabled at the end of the event.
    • If Boost Mode, Home Mode, or Eco Mode is scheduled, the respective mode’s trigger will be enabled at the start and disabled at the end, allowing the unit to switch modes dynamically.
    • If Week Program is scheduled, the unit will follow the selected program in Week Program Selection.
  • Priority System: The following is the priority order for calendar scheduling:

    1. Away Mode (highest priority)
    2. Boost Mode
    3. Night Mode
    4. Home Mode
    5. Eco Mode
    6. Level 3
    7. Level 2
    8. Level 1
    9. Automatic
    10. Week Program (lowest priority)

The available operations in Default Operation Selection are Automatic, Level 3, Level 2, Level 1, or Week Program.

Important

The Dantherm unit has built-in Night Mode Start Time and Night Mode End Time. Scheduling Night Mode outside of these times may not function as expected.

These features provide seamless automation and intelligent airflow control, ensuring the ventilation system adapts dynamically to both planned schedules and real-time environmental conditions. 🚀🏡🌱📅

<<<

Disclaimer

The trademark "Dantherm" is owned by Dantherm Group A/S.

The trademark "Pluggit" is owned by Pluggit GmbH.

All product names, trademarks, and registered trademarks mentioned in this repository are the property of their respective owners.

I am not affiliated with Dantherm or Pluggit, except as the owner of a Dantherm HCV400 P2 unit.

The author does not guarantee the functionality of this integration and is not responsible for any damage.

Tvalley71