Dukaone ventilation with heat exchanger and Home Assistant

 

The dukaone S6W is a one room ventilation system with a heat exchanger with up to 95% heat efficiency (running on the lowest speed). The S6W model has build it WiFi and can be controlled from an app on your phone/tablet. I have made an integration for Home Assistant so you can control the dukaone from within HA – read more below

What is this “ding”?

The “ding” has a fan behind a ceramic heat exchanger, and will run for 70 seconds one way and then change 70 seconds the other way. The ceramic heat exchanger will heat up when blowing air out of the house and cool down when blowing air in the house (assuming the air in the house is warmer). In the low mode is has an efficiency of 95% – in this mode the air flow is 15m³ per hour. I have only had if for about 3 months, and it has not yet been really cold in that period – only about 5°, but you can feel the air blowing in is not cold, so it is doing some heat exchange.

The duka one s6w is a Danish brand and you can read about it here: Duka Ventilation It may be a re-brand of similar a product in other countries, and you can find several products using the same heat exchanger. I bought this one because of the WiFi connectivity and I think it is one of the best looking devices. It is a bit more expensive than similar products – I got if for 3998 DKr.  

The inside part of dukaone is glossy white plastic with a small curve. The device fits in a 16 cm hole in the wall. The inside part can be closed completely,by manually pressing the front. I guess that is in case of a storm to prevent air blowing in. The control panel has 3 touch buttons to select speed or turnoff and the mode. The regular in-out mode where the device is working as a heat exchanger, or you can have it running constantly in or out. (When it is warm, it is nice to have it blow cool air in at night).

The dukaone S6W also includes an IR remote control.

 
Ceramic heat exchanger

Behind the cover inside you can see the ceramic heat exchanger and a filter. The heat exchanger can be disconnected and pulled out using the wire. You need to be able to do that for cleaning and changing the filter once every 3 month.

 

The outside part is made in the same white plastic. (You can get the outside part in a few other colors). The front can be removed for cleaning.

 

WiFi and App

You connect the device to your WiFi using an app on your phone or tablet. I will not go into details about it, since I am only going to be using it for the initial setup. The app is not that great.

One thing I don’t like is that when the dukaone has been setup to connect to your WiFi, it will not start if it loose the connection. So if your WiFi dies you have no ventilation!

API for connecting to dukaone

I asked the manufacture about an API or any documentation about how to connect to the dukaone, but did any answer at all! Normally that would have made me choose another product, but I could not find any other similar product with the WiFi connectivity. 

I had to inspect the UDP packages send to/from the dukaone and decipher then meaning of it.  The dukaone constantly broadcast a packet each second to tell its current state. Unfortunately it is broadcasting it to destination 0.0.0.0 (maybe not initialized?). I have not found a way to receive these in python (If you know leave a comment below). I guess you can do it using a “RAW” socket, but since that is not always allowed, I have not looked further into it. (The broadcast could have been used for a nice auto discover functionality)

I have made a python dukaone sdk implementing the basic functionality:

  • Set speed (low,medium,high)
  • Set mode (in, inout, out)
  • Turn on/off
  • Listen for state changes (of the above) 

You can get the dukaone sdk here on github:

https://github.com/dingusdk/dukaonesdk

A simple example is included if you want to try it. The dukaonesdk has also been uploaded to pypi. 

Home Assistant integration

The home assistant integration is based on the above dukaonesdk. It includes a configuration flow so your can set it up from the UI in HA. You need to know the dukaone deviceid. You can get this from the dukaone app. If you know the IP address of the device you can specify it, or you can use the broadcast address of you network. If you use a broadcast address it is only used internally the first time to connect  to the device. After a response has been received the device IP address will be used.

You can get the HA integration here: https://github.com/dingusdk/ha-dukaone

The easiest way to install, is using HACS (adding the above url as a user defined repository). Or you can copy the custom_components/dukaone folder manually.

The dukaone integrates as a fan in HA, but also adds an additional “dukaone.set_mode” service function.

To control the fan mode I have made a custom lovelace UI – you can get here on github

The custom UI adds button for mode (in, in-out, out):

Duka one entity rom in HA

I hope someone else can use this integration – if you do leave a comment below.

16 responses to “Dukaone ventilation with heat exchanger and Home Assistant”

  1. Morten says:

    I tried out DukaoneSDK and it works great. The clock in my unit is very imprecise and runs 2-3 hours too fast per day. Therefore I have to sync it every day to for the schedule to work. Is there any chance you would implement clock sync in the SDK like in the app?

    • Jens says:

      I don’t think I will be doing that. I don’t use the app or the scheduling functionallity in ther device. I use home assistant to control it. You could setup scheduling from Home assistant, and then skip the scheduling in the device.

      All the code is there on github, if someone else want to go further.
      The manufacture did not reply to my email about how to communicate with the device, and it was a lot of work just to figuring out the basic communication.
      (I an still disapointed about not getting any answer)

  2. Kristoffer says:

    Hi,

    Got mine DUKAs install just before Christmas. I already played a little with Packet Capture and UDP commands to control them. Yesterday night I spend several hours to capture all packages… Today I found your integration…. Working out of the box! Thanks a lot for sharing.

    Just in progress with Node-red to make my schedules instead of using the app.

    Also tried to contact DUKA earlier this year and with same response – They didn’t wanted to provide any documentation.

  3. Tord says:

    Great work with the dukaoneSDK for python!

    I got it to work in windows(virtualized env) and rpi4, but I am currently struggling a bit when using it with docker.

    The ports used are 4000 and 1024? (any more)?

    Also, cool webpage!

    • Jens says:

      I run it myself on docker, but I have it set to “host” network. I don’t think broadcast works from docker if you don’t have “host” – so you must specify the exact dukeone IP address (not just the broadcast IP). The communication is UDP and you should map 4000/udp (not just 4000 – because that is default tcp as I remember). The dukaone device will reply back on 4001/udp – so that should also be added.

  4. Morten S says:

    Cool! You got it working! I don’t get why Duka hasn’t done something like that themselves. Any ide how to get it working with Smartthings?

    • Jens says:

      I dont have a samsung smartthings, but you could just connect it to home assistant, so you have all the possibilities with home assistant!

  5. Jasper . Bojsen says:

    I’m considering buying three of these for my basement. Having integration to Home Assistant is a must, so was super happy to see your work here! Thank you!

    I have a PIR in all three rooms where I consider placing the ventilator and I want configure Home Assistant to turn down or turn off the ventilator when someone is in the room – I’m already doing the same with the light.

    The reason being is that I want to be able to control the noise level in the room. Apparently these devices have a noise level of 25-35db. Not really sure how much this translate to in real-life noise experience.

    What is your experience of the noise level?

    Once again, thank you for doing this work and for sharing!

    • Jens says:

      You are right about noice levels – because some manufacture does not measure it correctly. You should measure it 1m away, but some are doing it further away and you have to read it in the fine print or they do not specify it. This makes it hard to compare different models.

      I have one Dukaone in my cellar on one in my bedromm (1.floor). It was my intension to turn it off in the night, but I am runnig it at the lowest level and it is barely noticable. I have automations in HA so when I get up in the morning it will automatically switch to medium level, and when I go to bed it will switch to low level.
      One thing that can be anoying is the beep each time you send a command to Dukaone, the only exception is the set manual speed command – so you can use this to avoid the beep.

  6. Fredrik says:

    Hi,
    I installed the DukaOne integration in HA via HACS, and i see the folder under custom_componentents, but it is not showing up when i go to Configuration, add integration(+). Pretty new to this so any help much appreciated.

  7. Fredrik says:

    Do you have a plan to expand functionality to read the integrated humidity sensor?

    • Jens says:

      Yes I will add the integrated humidity sensor. I have it working in the python dukaone sdk (not comitted yet to github), so I just need to add it to the HA integration.

      • Fredrik says:

        Cool! Your work is much appreciated, and my gateway drug into the black hole of a smart home and home assistant:)

        • Jens says:

          Version 1.0.3 just released has support for the humidity sensor. You can see it as an attribute on the fan and it also has its own HA sensor.

  8. Frederik says:

    Hi, got everything up and running with my Duka S6W. Got rid of the skyserver and I hope this may also help get rid of my random alerts where the Duka seems to go into alert due to lost connectivity. Have Firmware: 0.4 20-12-2019.
    Great work

Leave a Reply to Morten S Cancel reply

Your email address will not be published. Required fields are marked *