Danfoss Air Unit - Ethernet-Connection

Hi @JonasPed

They are here: https://github.com/leaxidd/openhab2-addons/tree/DanfossHRV/addons/binding/org.openhab.binding.danfossairunit

@JonasPed
Yes I didn’t posted the link to the GitHub repo so far, only send it to Peter. You will not yet find the new version of the binding there. Just give me a few more days to include all interesting channels. Before testing is not really worth. But you can setup Eclipse already :wink:

@petero
I checked the devilink document. I reviewed all the 33 pages but have to state this is completely different to what is send over network.

Too bad, that is the only Danfoss Protocol reference I can find anywhere :frowning:

Hi all,

I pushed the binding to GitHub. So whoever want to test …

I changed the communication procedure of the binding slightly. As it polls all data in a given interval, between these two points there is no connection to the CCM required. So I disconnect at this time and connect before the next access again. However I have a few issues now, that from time to time I lose the connection until the next polling (binding goes OFFLINE).

I also created a JAR, but I can’t upload this here directly. Where are such “binaries” usually stored?

Regards,
Ralf

Hi @leaxi,

some developers created a binary branch and upload them directly to GitHub. :wink:

Greetz,
Carsten

Hi @BlackAlpha,

right, I thought about this as well, but wasn’t sure if this is a good idea. Meanwhile I found the right way:

I will do this …

Hi @leaxi,

the Eclipse IoT Marketplace works, but has one little problem: If you want to load a binding from there, you have to use PaperUI. You can’t load it with addons.cfg!

Greetz,
Carsten

Awesome work guys… looking forward to test it :slight_smile:

Hi @leaxi

Been running this for a couple of days. Seems to work fine. Finally are able to store the ventilation values over time, and create some nice graphs.

Found a couple of more addresses that might could be interesting to have in the binding:

OperationTime:
0x000403e0
Returns minutes of operation time.(converted from hex) Shown as hours on the airdial/PC tool.

Read the current Supply/Exhaust fan speed (mine are always the same value so not 100 % on the order)
0x01041428/0x01041429
Convert from hex to get percentage.

Read the current Supply/Exhaust RPM
0x04041450/0x04041451
Convert from hex to get the RPM speed.

/Kristoffer

Hi @all,

I don’t have a running build environment. Is there somewhere a binary available? :grimacing:

Greetings,
Carsten

to build biniaries you can try to “pull request” the source. I tried it allready ( [https://github.com/openhab/openhab2-addons/pull/3683] ), but i failed because the source missing “Sign your work”. Look at the part “Sign your work” under [https://github.com/openhab/openhab2-addons/blob/master/CONTRIBUTING.md]

@leaxi please Sign your work, then we will see your binding at openhab.jfrog

Hi guys

Do you have any idea if this binding will still work when the air unit is connected to a Danfoss link cc instead of the Air Dial?
The PC tool gets very limited functionality when this is the case.

I would very much like to try out this binding but cannot get the build environment to work.
Can somebody send me the jar file? email: asbjoern_at_mejnertsen.dk

Thanks a lot

Asbjørn

Hi @all,

could someone please upload a compiled binary somewhere? :grimacing:

Greetings,
Carsten

Hi there,

I was really surprised to find some new infos here since I was trying to get this stuff running with openhab some 3 years back and gave it up.

Since I didn’t find a binary as well I tried to compile it myself, failed to do so (Maven build failed with the version from the github repo, and when I finally got it running with the current openhab master merged in the Binding wouldn’t load in openhab ).

So I started a new binding myself, ported the code from leaxi and finally saw some values from the air unit last night.

So the question is, how to continue?
@leaxi are you still actively developing?

Otherwise I’d get the binding into a state which can be pushed to github and make a release for others to download.
When its tested we can send a pull reuquest to the openhab master.

@BlackAlpha: are you still interested in the binary? I could send you my current version in the meanwhile.

@pravussum
great job! please send me the binary too.

edit: see below for the github link including the binary of the binding.

I’ll try to get this stuff on github soon, basically it’s all leaxis code.
@leaxi hope you don’t mind

I added a thing via configuration file, so that I can set the host parameter (didn’t find a way via Paper UI, i suppose the autodiscovery has to be changed to add the thing automatically).
danfoss.thing with just a single line:

danfossairunit:airunit:airunit [host="192.168.0.7"]

(replace by the correct IP obviously)

Hi,
@pravussum I don’t mind :smile: Thanks that you took the time to get it to a state that it can be shared with others.

I tried your binary as well, as I was never able to got mine working really outside of Eclipse. Unfortunately same result with your binary. In Paper UI I’m not able to add a “Danfoss thing”. The Binding is listed, but it doesn’t show any supported things. You probably have to review the xml again.

I didn’t try the config files, as I purely use openhab without config files and also my goal when writing the binding was full integration with paper ui configuration. So I had spend a lot time on discovery. The discovery itself was working well, but the integration with openhab framework was only working correctly inside eclipse.

Regards

Hey leaxi,

I removed the thing configuration from danfoss.things and restarted openhab to reproduce your issue.
Apart from that I have just copied the jar to /usr/share/openhab2/addons directory in my openhabian installation.

In PaperUI under Configuration | Bindings | DanfossAirUnit Binding there is “Danfoss Air Unit” listed under “Supported Things” (just check it, nothing to do there)

Under Inbox | + symbol | Danfoss AirUnit Binding | Danfoss AirUnit I am able to type in the configuration parameters
(hey, at least now I know how this is supposed to work)
When I confirm, the thing is added and i can link all the channels to newly created items that are visible under “Control”…

I did no black magic to my openhab installation, just vanilla openab and the jar copied to addons.

Which version of openhab are you using? I changed the version of the bundle aka binding to 2.4 in the manifest.

Anything in the logs when you restart openhab?

Can someone else confirm this is working?

BR
Robert

Hey, I uploaded the stuff to Github and made a release, which can be found here:

Added some items + persistence rules manually so the stuff is written to an influx database.
Result looks like this:

Only the fan speed does not seem right. It stays always at 10 (%), even in boost mode.
I suppose some conversion issue. I’ll look into it as soon as I find some time, or maybe @leaxi you can take a more educated guess at what could be the reason?

Hi,

the fan speed of the air unit ist available in certain registers with different meanings and units. I used the register, which allows setting the fan speed in manual mode. This register contains a byte with the values 0 to 10. 0 = OFF, 10 = 100%
As I coded this as a PercentValue state in OpenHab I had to add a rounding, when the user sets something like 53%. This value would bei rounded to step 5.
Question ist now wheter your air unit was running on step 10 or 1 or something else. You can check that in parallel using the air dial.
10 would simply mean a unit issue. 1 would mean correct. Any other would mean Something completely wrong.
But when you run the air unit in demand or program mode or with burst on, then reading the register of manual step setting doesn’t tell you the actual speed. This would be a different register, so you also should provide a second read only channel for this information.
I think you need the Info registers, they are not in the danfosshrv.java so far. Just add:

private static final byte[] FAN_SPEED_SUPPLY = { 0x14, 0x28 };
private static final byte[] FAN_SPPED_EXTRACT = { 0x14, 0x29 };

public PercentType getFanSpeedSupply() throws IOException {
    return new PercentType(BigDecimal.valueOf(getByte(REGISTER_1_READ, FAN_SPEED_SUPPLY)));
}

and for extract accordingly.

And in the handler.java the update method need to be adjusted, the channels need to be added and probably a new group etc.

1 Like