Systemair SAVECare Ventilation unit

@technot - you are correct. All SAVE devices have standardized modbus address list, so if you do integration for one model - you have done it for all.
Regarding the modbus parameter list - REV 29 is still OK, even though the newest is REV 39, but it has very limited differences, basically just some registers added for functions that are less important for end users such as yourself.
Please note there are huge amount of modbus registers that are not publicly available (we try to keep the public document shorter) but if you would let me know which functions you are interested in particular - I could provide you all the neccessary information

@rickard1 the REV_36 is the latest public one, even though there is now a version 39 available, but the changes in the 37, 38 and 39 versions are irrelevant for end customers.
Please have in mind there are thousands of undisclosed addresses so if you would let me know what functions you are interested in particular - I could hand pick it from the “untidy” modbus list and provide here.

@Ziiiz hey!
Why not control the fans directly?
The picture below gives you a procedure how to set up an external fan control via modbus.
Link to picture: modbus-list hosted at ImgBB — ImgBB

SAVE device has a function called “DCV - Directly Controlled air Volume”, which you can utilise directly - by providing you own 0-10V control signals to the universal Inputs on the SAVE unit, OR via modbus (registers and procedure in picture). Each fan can be controlled separately.
So if you have any other IOT device that could provide 0-10V output for fan control - you can connect it to the Universal Inputs configured as Analog Inputs and assigned SAFC and EAFC (Supply and Extract Air Fan Control) functions. Please note the fan control mode has to be set to “External” (Service → Control Regulation → Fan Control → Airflow Type). The unit has to be also set to AUTO mode.
Link to picture: home-screen hosted at ImgBB — ImgBB

Also, for fans to be allowed to be turned off completely - Manual Fan Stop setting has to be enabled (Service → Control Regulation → Fan Control → Manual fan stop allowed (set toggle to green).

Could you upload, or maybe send the “untidy” list? :slight_smile:

@DariusSystemair Is it possible to send CO2 readings to the device through Modbus? I have multiple sensors around the house, and I would prefer not to add another Systemair CO2 sensor when I really want to use the “average CO2 level in the house” for control. Currently, I manually control the fan speeds via automations to compensate for the CO2 levels.

@PatrickJanson Yes, there is such a register, actualy for both CO2 and RH sensors.

REG_SENSOR_MODBUS_CO2 12113 Holding public 0 2000 ppm ModbusCo2Sensor
REG_SENSOR_MODBUS_RHS 12114 Holding public 0 100 % ModbusRhSensor

PPM value is expected here for CO2 sensor (range 0 - 2000 ppm)

Which registers do you use to override fan controls right now?
Be careful though, all settings goes into NVM, which has a lifetime of around 300,000 writes, so if you use it too often - you will kill the EEPROM. So if you do the fan regulation using fan level settings - it will use the EEPROM. Best way to do it is through external fan control function, I replied about it to @Ziiiz in a post above

I hope this helps!

@PatrickJanson , I will really have to clean it up from confidential and sensitive registers, so it will take some time. I will be leaving for holidays starting Monday though, so not before the end of July. Apologies for that!

1 Like

I will have to look in to this! Thank you for this information :slight_smile:
I use 1412 and 1413 for this. And I am sending it way to often if there is a max limit.

1412 and 1413 are definitely in the NVM (SAF and EAF settings for LOW fan speed), so avoid using it too often :slight_smile:

Also, if 12113 and 12114 wont work for CO2/RH readings - try using 12112 and 12113 respectively. These by the way do not go into NVM (as well as any other sensor reading)

Ok, so if I manage to get the unit to adjust its own speed based on the CO2 value I give, Ill be fine? :slight_smile: It will also save me from many of my automations :stuck_out_tongue:

12112 worked :slight_smile:
Thank you, this should make my automations way easier :slight_smile:

Now that I can remove some of my automations, how do I use my VAV the best way using the internal automations of the ventilation unit? (keep in mind that I dont have a display, only modbus).

I tried changing 1273 to “VAV” but then the fans just stopped. I guess there is some more settings I need to configure?

@PatrickJanson apologies for delay in reply, vacation :slight_smile:
VAV does not work because I assume you have no pressure sensor inputs configured, what you’d have to do is configure the pressure sensor inputs for Supply and Extract sides and override the sensor inputs over modbus.
I am not in the office for another two weeks so I hope this can wait - I can provide detailed instructions once back in the office.
I hope it works for you!

1 Like

No problem, the ventilation unit already works alot better :slight_smile:

Hello everyone, I’m new with SAVE unit and I’m glad for this topic. I own SAVE VTR150 unit which should be controlled via HA. I already bought actuators to control supply air to all rooms with air supply (living room, bedroom, children’s room). Actuators should be controlled by CO2 detectors in each of these room. To reach static pressure in system I also have VAV conversion kit. My idea is to find fan speed which covers my needs with small reserve and if needed, I can turn the unit off (I also have actuator on supply and exhaust air so it should be save). Is it good way to control the system this way?

As I mentioned, I have actuator with emergency function to close valve when the unit will be switched off. I bought Shelly relay to control this actuator by HA, but the Shelly relay can be also controlled by switch. Is there some contact on the unit which came on/off depending on status of unit? If so, I could leave control of the actuator on SAVE unit.
EDIT:
RTFM :grinning: Anyway, SAVE controls supply/exhaust valve by 0/24V and switch on Shelly relay expects 110-230V. So one option is another relay or I will control valve by HA automation.

Thanks to @DariusSystemair for the notification about NVM. Could you please send us which registers are saved to NVM? Hope it’s not hundreds of them :slightly_smiling_face:

Thank you in advance for all advice.

Hello @rickard1, I bought Elfin EW11A as you recomended, but I can’t get working with SAVE unit. I can see that request from HA goes thru EW11A to SAVE unit, but I cannot get any reply from SAVE unit. I have same configuration in EW11A and in modbus settings in SAVE unit, but still no reply. Could you please share you settings?
EDIT: I already solved this issue. Problem was that saving of EW11A is a bit tricky and sometime helps reset device multiple times. Also is good to export current settings in XML to check what is actually in settings.

BTW How did you reach to have EW11A on static IP. I can get it working on DHCP, but when I try to set static IP, the EW11A is unreachable and not visible on router settings. I have to hard reset it then.

I do DHCP reservation for the EW11As IP-adress in my DHCP server.
I do not use stativ IP-adress.

Is there a way to write to the room temperature?
I tried address 12103, but it doesnt look like it wants to update.
I would really like to get this to work to be able to stop the freecooling when the room is cold enough.

I do the same as you.

but i just turn of freecooling when desired temp is met.

- name: vtr250_frikjoling
  unique_id: vtr250_frikjoling
  address: 4100
  slave: 1
  command_on: 1 
  command_off: 0 
  write_type: holding
  verify:

Thank you. It was plan B, but first choice was to set static IP directly on device :slightly_smiling_face:

I have issue too with System Air VTR 500.

I use this configuration :

modbus:
  - name: VTR500
    # See https://www.home-assistant.io/integrations/modbus/
    type: tcp           #User setting
    host: 192.168.9.105 #User setting
    port: 8899          #User setting
    timeout: 3          #Timeout for slave response in seconds (default=3)
    delay: 2            #Time to sleep in seconds after connecting and before sending messages (defualt=0)
    message_wait_milliseconds: 50 #Increased to hopefully reduce errors in my serial comm (Default:30 for serial connection, 0 for all other connections.)
    

    climates:
      - name: vent_VTR500
        unique_id: vent_VTR500
        address: 12102
        slave: 1
        scale: 0.1
        offset: 0
        precision: 1
        max_temp: 30
        min_temp: 15
        temp_step: 1
        target_temp_register: 2000



It newer worked. :confused:

As I see bytes moving on serial port, I assume bound rate is correct.

Maybe some ideas what to check ?