Support for Flexit Nordic S4 (IP/Modbus)

For those interested in the future for the Flecis (BACnet) integration, @piotrbulinski has created a page for that: Flexit Nordic (BACnet) - Roadmap & ideas

I tried it today. It is -16.7C outside and the efficiency dropped to 73%

The extract air temperature does not seem to work for me, neither does the room temp. They are reported on the display unit.

Device Name: HvacFnct21y_A
operation_mode: 3
ventilation_mode: 3

outside_air_temperature: -16.7
supply_air_temperature: 17.5
exhaust_air_temperature: -7.5
extract_air_temperature: 0.0
room_temperature: 0.0
room_1_humidity: 0.0
room_2_humidity: 0.0
room_3_humidity: 0.0

heat_exchanger_efficiency: 73%

air_filter_polluted: False

Well, I would still say that the heat exchanger works really well. Its minus 17°C outside and the unit still can push air with a temperature of almost 18°C into your house.

What model (or serial) number do you have on your device? Give me the first six digits.

I’m curious where do you live?

I live in Norway

Serial Number: 800121-xxxxxx

Here is the data when stopped. The intake temperature is +3.7C, so little change to freeze.

Device Name: HvacFnct21y_A
Operation_mode: Off
Ventilation_mode: Stopped

Outside air temp.: 3.7 °C
Supply air temp.: 16.9 °C
Extract air temp.: 0.0 °C
Exhaust air temp.: 2.3 °C
Room air temp.: 0.0 °C

[edit] The unit is placed in a heated room

You have the Vent.aggregat Nordic S3 REL then :smiley:

Not sure what sensors that unit have. I have the S4 RER. That is one of the things we have to understand, what differs between the models.

Correct, Flexit Nordic S 3 R E 500 L 230, to be precise
How can I help to find the differences / sensors?

In case you don’t want to wait until the sensors are in the integration here is a hack:

  1. you need to have pyscript installed (available in HACS)
  2. in your pyscript directory place a .py file with the following content:
from flexit_bacnet import FlexitBACnet.   # should be availabel if you have the flexit integration

# create the sensors
state.set("sensor.flexit_efficiency",  new_attributes={'unit_of_measurement': '%'})
state.set("sensor.flexit_outside_air_temperature",  new_attributes={'unit_of_measurement': '°C'})
state.set("sensor.flexit_supply_air_temperature",  new_attributes={'unit_of_measurement': '°C'})
state.set("sensor.flexit_extract_air_temperature",  new_attributes={'unit_of_measurement': '°C'})
state.set("sensor.flexit_exhaust_air_temperature",  new_attributes={'unit_of_measurement': '°C'})
device = FlexitBACnet('', 2)    # your ip address, and device id
# update the sensors every 5minutes
@time_trigger("period(now, 5min)")
def get_flexit_device_info():
    await device.update()
    state.set("sensor.flexit_efficiency", value=device.heat_exchanger_efficiency)
    state.set("sensor.flexit_outside_air_temperature", value=device.outside_air_temperature)
    state.set("sensor.flexit_supply_air_temperature", value=device.supply_air_temperature)
    state.set("sensor.flexit_extract_air_temperature", value=device.extract_air_temperature)
    state.set("sensor.flexit_exhaust_air_temperature",  value=device.exhaust_air_temperature)

I have already added a PR for the sensors. It is a lot of work, but eventually they will be added to HA.

Maybe you can test the flexit_bacnet library directly on your computer and put the output here so we can see what sensors you have.

Run the example code from here:

device.extract_air_temperature is missing (reporting 0) and there should be at least 1 humidity sensor. Room temperature is also not showing up on the display unit. The rest seems to be fine.

And even at -19.8C this night, still running at 77% efficiency! According to my wife, the heat exchanger was not working anymore when it was -23C or something like that.

Device Name:                    HvacFnct21y_A
Operation_mode:                 Home
Ventilation_mode:               Home

Outside air temp.:              -19.2 °C
Supply air temp.:               18.6 °C
Extract air temp.:              0.0 °C
Exhaust air temp.:              -10.5 °C
Room air temp.:                 0.0 °C
Room 1 humidity:                0.0%
Room 2 humidity:                0.0%
Room 3 humidity:                0.0%
Comfort button state:           True
Air temp. setpoint Away:        18.0 °C
Air temp. setpoint Home:        20.0 °C
Fireplace duration remaining:   10 minutes
Rapid vent. duration remaining: 10 minutes
Supply air fan control signal:  50 %
Supply air fan speed:           2106 rpm
Exhaust air fan control signal: 50 %
Exhaust air fan speed:          2092 rpm
Electric heater:                True
Electric heater nominal power:  0.8 kW
Electric heater power:          0.797 kW
Fan sp - supply air Home:       50%
Fan sp - supply air high:       100%
Fan sp - supply air Away:       33%
Fan sp - supply air Cooker:     90%
Fan sp - supply air Fireplace:  90%
Fan sp - extract air Home:      50%
Fan sp - extract air High:      100%
Fan sp - extract air away:      33%
Fan sp - extract air Cooker:    50%
Fan sp - extract air Fireplace: 50%
Air filter operating time:      1004.0 hours
Air filter exchange interval:   4380.0 days
Air filter polluted:            False
Heat-exchanger efficiency:      78%
Heat-exchanger speed:           100%

Interesting! It is amazing that the heat exchanger efficiency is still so high.

Could you go here Issues · piotrbulinski/flexit_bacnet · GitHub and create an issue please. Also, for additional feature requests discussion is here Flexit Nordic (BACnet) - Roadmap & ideas

In Sindres integration I had the possibility to call “Boost temporary” I use Node Red to call a temporary boost when co2 or humidity “claims” it. With this integration “Boost temporary” is non existing. Also in Sindres when I used the thermostat card I had the possibility to turn on/off the electric Heater as a hvac mode. I miss those functions, but it is possible I have overlooked something.

Boost temporary is a feature we will add. Also Fireplace mode.

But at the moment it’s only me working on the integration and time is extremely limited for me. Maybe after the summer I will work on this.