MODBUS and System air

Anyone tested using Systemair Internet Access Module (IAM) against the Modbus binding (thus apparently using some Virtual Serial Port Server due to “Modbus TCP to RTU”)?

Have a setup with OpenHabian (Rpi3b+) running for the primary functions of the house, and I am now considering to implement Systemair VSR500 ventilation into OpenHab. A cabled solution between Rpi and VSR (RS485) would be an impractical solution for me, thus evaluating the IAM.

There are WiFi to modus dongle available on Amazon which probably would be cheaper then buying the system air version. You could also run a second rpi and use that one to control the system air. I personally run a 10m phone cable from the system air to my rpi.

Appreciate your response.

Does that mean that a Modbus RTU to WiFi Converter could work with the Modbus binding? Something like (as presented further up in this thread):
https://www.usriot.com/products/modbus-rtu-to-wifi-converter.html

Just a follow up, for future reference:

I ended up with the HF221, and it was pretty much plug and play after connecting to Villavent VSR 500 modbus port, connecting to wifi network and installing/configuring Modbus binding.

3 Likes

@kjoglums What settings do you use for Usermodes? Does it just set fan speed or something else?

@skatun, the user mode selection is just based on a default modbus adr. for my VSR 500, meaning it will just set fan speed according to predefined levels.

The selection widget I have used:
https://community.openhab.org/t/custom-widget-selection/31935/11

I’ve tried to connect my VTR-500 from RJ45 port on main board directly to a USR-TCP232-304 with a cat5e cable using A=pin5 and B=pin4 like shown in post 65 above. No data whatever register I try (seen at least three versions of documents with different registers from SystemAir). Has anyone experienced that other pins work? My VTR-500 is installed in 2014 and does not have the connection box on top.
IMG_0371

The USR TCP232-304 does not support Modbus directly (you would need a TCP232-410 instead).
How are you trying to drive it at this stage?

Well that explains alot… I also have one of these, a raspberry pi 3b and a couple of ESP32 boards lying around… what route should I try next in your minds?

You could use the TCP232-304 - if you can come up with a means to drive it as a virtual/remote serial port.
On a Windows host for example, you’d install the USR supplied VCOM software that allows the TCP232-304 to appear as a COM port.
openHAB binding would then use the COM port with Modbus-RTU as though it were an onboard port.

I have no idea how you do that in *nix.

I’d advise getting a gateway with Modbus support, like the TCP232-410. I use these and they work a treat.

The USB RS485 adaptor will work, but of course you’ll need to run a cable - use Cat5 up to a kilometre long.

Could you provide you configuration and modbus binding and also items and sitemap?

For my HF221 (Modbus RTU to WiFi), I have the following configuration for Modbus TCP and WAN configuration. I.e. static IP and port 8234.

My Modbus bridge is created in PaperUI, pointing to the static IP / port 8234 of the adapter:

My Modbus Poller things and Modbus Data things are also created in PaperUI based on Modbus addresses for my Villavent VSR 500. Then I have linked Items using Visual Studio Code. An example of a Poller thing and Data thing is shown below:

I do not use Sitemap, only HabPanel, where setup is created in graphical view.

Superb, but you did write code in items?

My Modbus items:

Number ActiveUserMode "Active User Mode [MAP(activeusermode.map):%s]" {channel="modbus:data:userMode:number"}
Number ChangeUserMode "Change User Mode" {channel="modbus:data:changeUserMode:number"}

Number SupplyFanWrite "SAF Fan Control [MAP(airflowsupply.map):%s]" {channel="modbus:data:safControlRPM:number", autoupdate="false"}
Number ExhaustFanWrite "EAF Fan Control [MAP(airflowexhaust.map):%s]" {channel="modbus:data:eafControlRPM:number", autoupdate="false"}

Number SupplyFanRead "SAF Fan Speed (read) [%s RPM]" <fan> {channel="modbus:data:safRPM:number"}
Number ExhaustFanRead "EAF Fan Speed (read) [%s RPM]" <fan> {channel="modbus:data:eafRPM:number"}

Number TemperatureSetpoint "Temperature Setpoint [%.1f °C]" {channel="modbus:data:temperatureSetpoint:number", autoupdate="false"}
Number OutdoorTemperature "Outdoor Temperature [%.1f °C]" {channel="modbus:data:outdoorTemperature:number"}
Number SupplyAirTemperature "Supply Temperature [%.1f °C]" {channel="modbus:data:supplyairTemperature:number"}
Number OverHeatTemperature "Over Heat Temperature [%.1f °C]" {channel="modbus:data:overheatTemperature:number"}
Number RelativeHumidity "Relative Humidity [%s %%]" <humidity> {channel="modbus:data:relativeHumidity:number"}
Number ExhaustAirTemperature "Exhaust Temperature [%.1f °C]" {channel="modbus:data:exhaustairTemperature:number"}


Switch HeaterDigitalState "Heater State [%s]" <switch> {channel="modbus:data:exchangerDigitalState:number"}
Number HeaterAnalogueState "Heater State" {channel="modbus:data:exchangerAnalogueState:number", autoupdate="false"}
Switch ExchangerDigitalState "Exchanger State [%s]" <switch> {channel="modbus:data:heaterDigitalState:switch"}
Number ExchangerAnalogueState "Exchanger State" {channel="modbus:data:heaterAnalogueState:number", autoupdate="false"}
Switch PressureGuardSwitch "Pressureguard State [%s]" <switch> {channel="modbus:data:pressureSwitch:switch"}

Anyone up for making a Systemair Internet Access Module (IAM) binding? :slight_smile:

Or is there another way of using the IAM module to openhab (via cloud or direct to IAM)

Systemair IAM enables two setup options: Either as internet access module, enabling use of the Systemair app, alternatively as Modbus TCP, enabling use of the Modbus binding / openHAB. You can not achieve both using only IAM (as I am aware of).

For me, having the Villavent SAVE VSR 500 ventilation system I have the IAM module set up with internet access, enabling use of the app. I have also purchased a cheap Modbus RTU to wifi converter: HF2211, which I use against the Modbus binding (see “mini-guide” how to set up Modbus using converter: Link). This setup is working perfect for me, enabling both options, and the Modbus binding is working flawlessly retrieving updates/enabling sending commands to my ventilation system using OH - Based on Modbus register as provided by Systemair: Link

Hello, i bougt The HF221

I did not connect any ground, since all i could find was connections A-A and B-B

But struggeling with an error
Error with read: org.openhab.io.transport.modbus.internal.ModbusSlaveIOExceptionImpl: Modbus IO Error with cause=ModbusIOException, EOF=false, message='I/O exception

Same connection as me then.

And you have managed to connect your HF221 to your wifi network? And have configured your HF221 as described under Post 144? I have also set up the following under “Serial Port Settings”:

For me, after having configured the HF221, installing the Modbus binding from PaperUI, my Modbus bridge was created using PaperUI and connected instantly.

Yes thank you foryour reply, it is first time with modbus configuration. I till get this IO error, i maybe seem to be missing simething (the first tcp slave is online but the rest i cant figure out…

Is there anything I need to do on the HMI screen?

Teamwiever? :slight_smile:

Norsk by the way :slight_smile:

YES! i got it working, changed baudrate in hmi and set to id 2, also powercycled the systemair system.
After changing the settings.

1 Like