New binding suggestion: Wavin AHC 9000 / Jablotron AC-116

Hello Peter,

Are you planning on releasing the plugin?

Best regards,
Mikkel Holm Olsen

Also very interested in this binding! I am new to Openhab but eager to get my Wavin connected :slight_smile:

I have ordered the adapter mentioned in one of the first posts. Is it correct that this is all I will need in terms of extra hardware? I have OH2 running on a RPI but not sure if I can I connect directly to it?

/Thomas

If there is a spare USB port on your RPi, I believe it will work (or use a hub if running out of ports). The only other “hardware” you will need is a cable with Rj-45 connector in one end, and connected to the screw terminals of the USB dongle at the other. I recommend just using a cat-5 network patch cable and cutting off one end.

I have not heard anything from @zmartify regarding if he is planning on releasing the plugin, but looking at http://zmartify.eu/, it seems that may not be the case.

On my part, the plugin development has stalled. I would love to pick it up again, but unfortunately my spare time for this is limited. I would love to get one or more developers involved in this (and I am sure that would also motivate me to spend some more time on it).

My day job is low-level embedded SW developer, so the communication protocol part is easy for me, but Java and OH are mostly uncharted territories for me, so getting the OH plugin infrastructure set up is somewhat more challenging.

And any suggestions from OH developers on the best architecture to use, in terms of bridges, things, etc., would be very welcome. Is Peters approach with a bridge for the modbus controller, and each of the main controller, actuators and thermostats as devices a good bet?

Br,
Mikkel Holm Olsen

Hi Mikkel,

It’s been a busy time - I am testing a new version right now, which you can download from here - try to give it a go :slight_smile:

https://1drv.ms/f/s!AjVxQMEeTLvohPxoPH3kcoRiKeXGMg

Add it and select modbus serial - you just need to configure the port address.

It supports autodiscovery and read/writing parameters.

Med venlig hilsen / Best regards,

Peter Kristensen
CEO / Founder

Zmartify ApS, Stavlundvej 8, DK-7540 Haderup
www.zmartify.dk- tel: +45 2046 4587 - email: peter@zmartify.dk

2 Likes

Great:-) Now I can’t wait to get the hardware!

Hi Peter,

Good to hear from you :wink:

I will see if I can get it up and running tonight, or one of the next evenings, and let you know how it goes.

Can you shed some light on your plans regarding the plugin? Will it be publicly available? What about the source code for the plugin? It seems you are planning on selling a solution/service built on top of this, is that correct?

OK, I managed to get the plugin installed and connected.

It detected my AHC9000 controller, 16 actuators and 13 wired thermostats. So far, so good.

But now I think I have a task of creating and linking items to all those things. That will be another day.

Br,
Mikkel

What is the status of this plugin?

I am using this project to fetch some data from the wavin-controller.


Using this simple script (I am not a python programmer)

However, i would like json output like @Levring did create with his example.
I just need a nice way to describe names of sensors/rooms.

In the end, I would like to add all data to Zabbix/Grafana or another monitoring system.

(sorry if this is too offtopic, since I am not using openhab yet, but only have a Athom Homey)

Hi,

I hope some of you could give me an helping hand with @zmartify’s wavin binding.

I have a Raspberry Pi with USB to RS-485 adapter.
I can successfully communicate with my Wavin ACH 9000 with the help of @spiff42’s pyhon script on /dev/ttyUSB0.

Now i have installed the binding on my openhab instance and the binding is only able to discover a “Nilan CTS 602”.
I do not have any Nilan devices. Only my AHC9000 is connected to modbus.

The Modbus Serial Controller do not show any information on message count and have the status of “ONLINE - BRIDGE_OFFLINE”

My thing file looks like this

Bridge zmartmodbus:serialbridge:controller [ serialport="/dev/ttyUSB0", baudrate="38400", databits="8", 
stopbits="1", parity="0", txmode="RTU" ] {

}

I have tried to set slave_nilancts602=“0” and slave_jablotronac116=“1” (1-7) with no success.

Here is a little info from the log file

2018-09-26 13:57:26.029 [DEBUG] [iscovery.ModbusSlaveDiscoveryService] - Start discovery scan for 
Modbus connected devices

2018-09-26 13:57:26.032 [INFO ] [iscovery.ModbusSlaveDiscoveryService] - DeviceDiscovered: 
zmartmodbus:nilancts602
    
2018-09-26 13:57:26.033 [INFO ] [iscovery.ModbusSlaveDiscoveryService] - unitAddress=1, channelId=63, 
elementId=63

2018-09-26 13:57:26.036 [INFO ] [iscovery.ModbusSlaveDiscoveryService] - Adding new ModbusFunction 
Thing zmartmodbus:nilancts602:controller:slave1 to smarthome inbox (nilancts602)
    
==> /var/log/openhab2/events.log <==

2018-09-26 13:57:26.040 [home.event.InboxAddedEvent] - Discovery Result with UID 
'zmartmodbus:nilancts602:controller:slave1' has been added.

==> /var/log/openhab2/openhab.log <==

2018-09-26 13:57:26.042 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 
'zmartmodbus:nilancts602:controller:slave1' to inbox.

I really hope you can help me out here.
// CC: @zmartify @spiff42

Hi Henrik,

Unfortunately, I don’t think I can be of much assistance. After an upgrade of OpenHAB half a year ago, I have not been able to get the binding to work anymore. I was in touch with Peter (@zmartify), and he said he had an updated version of the binding, but unfortunately he never got around to sending it to me :frowning:

I’m sorry to say that my hopes are not too high of getting Peters binding working. I once asked him if there was any plans to release the source, but never got a definite answer. The thought of having to start over from scratch and develop a new binding for Wavin is quite annoying, but maybe that is the best way to progress. Now that the central heating is once again turned on, it would be nice to get the Wavin controller working with OpenHAB again.

To get back to your problem, maybe it is related to your slave_nilancts602=“0”, since on the Wavin-controller, address 0 is the broadcast address (all controllers reply to this address, and also to their own address, which is usually 1).

But here is a little information about my setup, when it worked:

I don’t have a .things file, but simply configured with paperUI, and initially the controller and all thermostats were detected.

Then I created items like the following:

// 11. Bad 1 forĂŠldre
Number Bathroom1AirTemp             "BadevÊrelse forÊldre luft [%.1f  °C]" <temperature> (gHeatingAirTemps) { channel="zmartmodbus:jablotrontp150:407cef13:adr1c10e12:AirTemperature" }

// 12. ForĂŠldresovevĂŠrelse
Number MasterBedroomAirTemp         "ForÊldresovevÊrelse luft [%.1f  °C]" <temperature> (gHeatingAirTemps) { channel="zmartmodbus:jablotrontp150:407cef13:adr1c11e11:AirTemperature" }

Then i put it in the sitemap and was able to get the temperatures from thermostats.

1 Like

Hi guys

I will drop you a working version this afternoon

Best regards

Peter

1 Like

Hi @zmartify and @spiff42.

Thank you very much for your comments.
It sounds like that it’s a problem with the binding and not my skills :smile:

It’s cool you want to share your code with us all @zmartify, im very happy about it :+1:

Let’s see if we can get the binding working before it’s so cold that we must turn on the heating again.
I will get back when i have tested the new binding with the resultsm and an example .things and .items file to help others.

Best
Henrik

Hi @zmartify,

Good to hear from you again. I’m looking forward to seeing the working version, and hopefully get the OpenHAB-to-Wavin integration working again. :smiley:

Best regards,
Mikkel

Hi Guys,

Here is a link to latest version of the jar which I am currently using - let me hear how it goes.,

https://1drv.ms/f/s!AjVxQMEeTLvohPxoPH3kcoRiKeXGMg

Med venlig hilsen / Best regards,

Peter Kristensen
CEO / Founder

Zmartify ApS, Stavlundvej 8, DK-7540 Haderup
www.zmartify.dk- tel: +45 2046 4587 - email: peter@zmartify.dk

Hi @zmartify

Thank you for sharing the new binding.
I do however, get an error when installing the plugin. See attached log

==> /var/log/openhab2/openhab.log <==

2018-09-28 11:17:21.032 [DEBUG] [org.openhab.binding.zmartmodbus     ] - BundleEvent INSTALLED - 
org.openhab.binding.zmartmodbus

2018-09-28 11:17:22.100 [WARN ] [org.apache.felix.fileinstall        ] - Error while starting bundle: 
file:/usr/share/openhab2/addons/org.openhab.binding.zmartmodbus-2.4.0-SNAPSHOT.jar

org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.zmartmodbus [245]

Unresolved requirement: Import-Package: gnu.io

at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1221) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:515) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) 
[9:org.apache.felix.fileinstall:3.6.4]

2018-09-28 11:17:22.187 [WARN ] [org.apache.felix.fileinstall        ] - Error while starting bundle: 
file:/usr/share/openhab2/addons/org.openhab.binding.zmartmodbus-2.4.0-SNAPSHOT.jar

org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.zmartmodbus [245]

Unresolved requirement: Import-Package: gnu.io

at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) 
[9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) 
[9:org.apache.felix.fileinstall:3.6.4]

==> /var/log/openhab2/events.log <==

Hi again @zmartify.

I binding is loading perfect now.
I had to do feature:install openhab-transport-serial from the openhab-cli console.

The binding still only detects an Nilan CTS tho :frowning:

==> /var/log/openhab2/events.log <==

2018-09-28 11:42:20.599 [hingStatusInfoChangedEvent] - 'zmartmodbus:serialbridge:controller' changed 
from ONLINE (BRIDGE_OFFLINE): Zmartify ModbusFunction controller online to OFFLINE 
(BRIDGE_OFFLINE): Offline - controller offline

==> /var/log/openhab2/openhab.log <==

2018-09-28 11:42:20.603 [INFO ] [internal.controller.ModbusController] - Starting ModbusFunction controller     0

2018-09-28 11:42:20.604 [INFO ] [tmodbus.internal.protocol.ModbusNode] - NODE 0: Creating a new     modbus node

2018-09-28 11:42:20.605 [INFO ] [tmodbus.internal.protocol.ModbusNode] - modbusFunction standard     defined

2018-09-28 11:42:20.606 [DEBUG] [tmodbus.internal.protocol.ModbusNode] - New slave created class         org.openhab.binding.zmartmodbus.internal.protocol.ModbusFunction

2018-09-28 11:42:20.607 [INFO ] [internal.controller.ModbusController] - ModbusActionQueue

2018-09-28 11:42:20.611 [INFO ] [us.internal.factory.ModbusActionFeed] - register actionListener

2018-09-28 11:42:20.612 [INFO ] [g.zmartmodbus.internal.ModbusHandler] - register Action listener

2018-09-28 11:42:20.613 [INFO ] [odbus.internal.factory.ModbusFactory] - Factory register Action listener

2018-09-28 11:42:20.614 [INFO ] [internal.controller.ModbusController] - ModbusStateFromModbusQueue

2018-09-28 11:42:20.623 [INFO ] [g.zmartmodbus.internal.ModbusHandler] - register Message listener

2018-09-28 11:42:20.624 [INFO ] [internal.controller.ModbusController] - ModbusStateFromModbusQueue

2018-09-28 11:42:20.625 [INFO ] [odbus.internal.factory.ModbusFactory] - Factory register State listener

2018-09-28 11:42:20.626 [INFO ] [internal.controller.ModbusController] - ModbusStateToModbusQueue

2018-09-28 11:42:20.629 [DEBUG] [org.openhab.binding.zmartmodbus     ] - ServiceEvent REGISTERED -     {org.eclipse.smarthome.config.discovery.DiscoveryService}={service.id=398, service.bundleid=245,     service.scope=singleton} - org.openhab.binding.zmartmodbus

==> /var/log/openhab2/events.log <==

2018-09-28 11:42:20.635 [hingStatusInfoChangedEvent] - 'zmartmodbus:serialbridge:controller' changed     from OFFLINE (BRIDGE_OFFLINE): Offline - controller offline to ONLINE (BRIDGE_OFFLINE): Zmartify     ModbusFunction controller online

2018-09-28 11:42:20.638 [me.event.ThingUpdatedEvent] - Thing 'zmartmodbus:serialbridge:controller' has     been updated.

==> /var/log/openhab2/openhab.log <==

2018-09-28 11:42:40.783 [DEBUG] [iscovery.ModbusSlaveDiscoveryService] - Start discovery scan for     Modbus connected devices

2018-09-28 11:42:40.785 [INFO ] [iscovery.ModbusSlaveDiscoveryService] - DeviceDiscovered:     zmartmodbus:nilancts602

2018-09-28 11:42:40.786 [INFO ] [iscovery.ModbusSlaveDiscoveryService] - unitAddress=1, channelId=63,     elementId=63

2018-09-28 11:42:40.789 [INFO ] [iscovery.ModbusSlaveDiscoveryService] - Device already known. slave1

==> /var/log/openhab2/events.log <==

Change nilan to off and wavin to 1 before inbox search

It is tried @zmartify
It finds nothing then :frowning:

My things file look like this

Bridge zmartmodbus:serialbridge:controller [ slave_jablotronac116="1", slave_nilancts602="0" ] {

}

What about
slave_jablotronac116=“0”, slave_nilancts602=“off”

Nope it does not help @spiff42.

This is my options

       <parameter name="slave_jablotronac116" type="integer" groupName="modbusslaves">
            <label>AC-116 Unit Address</label>
            <description>Jablotron AC-116 / Wavin hydronic floor heating - Off or unit address</description>
            <default>0</default>
            <limitToOptions>true</limitToOptions>
            <options>
                <option value="0">Off</option>
                <option value="1">On (unit address 1)</option>
                <option value="2">On (unit address 2)</option>
                <option value="3">On (unit address 3)</option>
                <option value="4">On (unit address 4)</option>
                <option value="5">On (unit address 5)</option>
                <option value="6">On (unit address 6)</option>
                <option value="7">On (unit address 7)</option>
            </options>
        </parameter>            

        <parameter name="slave_nilancts602" type="integer" groupName="modbusslaves">
            <label>Nilan CTS 602 Unit Address</label>
            <description>Nilan CTS 602 ventilation controller - Off or unit address</description>
            <default>1</default>
            <limitToOptions>true</limitToOptions>
            <options>
                <option value="0">Off</option>
                <option value="1">On (unit address 1)</option>
                <option value="30">On (unit address 30)</option>
                <option value="31">On (unit address 31)</option>
                <option value="32">On (unit address 32)</option>
            </options>