Systemair SAVECare Ventilation unit

Anything I need to do on the systemair? I see that it’s set as «user locked». Does this stop communication?

I can’t see anything on my VSR that says “user locked”.

Read the manual to find out how to activate modbus?

This is my modbus settings

My manual doesn’t mention modbus :grimacing:

Jippi! Found it - now it seems to working fine :blush: Thank you!!

1 Like

There is/was a separate modbus manual for the VSR units. At least it was that for me when I installed mine.

Or else you can call Systemair technical support and ask how to activate it?
They are good and very helpful.

How did you fix it?

I found the menu when I realiced there was a second page to the setup page :yum:

Changed the slave and baudrate and then it worked like a charm :slight_smile:

Does anyone have a script for setting the temperature?

I tried setting up this example from above, but when checking the config it just kept working forever and not saying if it was ok or not.


modbus:
  - name: hub1
    type: serial
    method: rtu
    port: /dev/ttyUSB0
    baudrate: 9600
    stopbits: 1
    bytesize: 8
    parity: N

  
    climates:
       - name: Ventilasjon
         slave: 1
         data_type: uint
         data_count: 1
         scale: 0.1
         offset: 0
         precision: 1
         max_temp: 30
         min_temp: 15
         temp_step: 1
         target_temp_register: 2000
         current_temp_register: 12102

I found this on Facebook earlier. I haven’t tested it out yet, just saved it for later use.

Have a look at this:

###### MODBUS GREJ FRÅN FACEBOOK

#configuration.yaml
 
#Systemair VSR300
modbus:
  type: serial
  method: rtu
  port: /dev/ttyUSB0
  baudrate: 9600
  stopbits: 1
  bytesize: 8
  parity: N
 
input_number:
  ftx_fan_speed:
    name: Fan speed
    min: 0
    max: 3
    step: 1
    unit_of_measurement: step
    icon: mdi:fan
  ftx_temperature:
    name: Temperature
    min: 0
    max: 5
    step: 1
    unit_of_measurement: step
    icon: mdi:thermometer
    
sensor: !include sensors.yaml
    
#sensors.yaml
- platform: modbus
  registers:
    - name: ftx_fan_speed
      slave: 1
      register: 100
      scale: 1
      offset: 0
    - name: ftx_temperature_set
      slave: 1
      register: 206
    - name: ftx_supply_air
      unit_of_measurement: °C
      slave: 1
      register: 213
      scale: 0.1
      precision: 1
    - name: ftx_extract_air
      unit_of_measurement: °C
      slave: 1
      register: 214
      scale: 0.1
      precision: 1
    - name: ftx_outdoor_air
      unit_of_measurement: °C
      slave: 1
      register: 217
      scale: 0.1
      precision: 1
    - name: ftx_filter_age
      unit_of_measurement: days
      slave: 1
      register: 601
      
#Lägg in i automations.yaml
- alias: Set fan speed for FTX
  trigger:
    platform: state
    entity_id: input_number.ftx_fan_speed
  action:
    service: modbus.write_register
    data:
      unit: 1
      address: 100
    data_template:
      value: '{{ states.input_number.ftx_fan_speed.state|int }}'
  id: 3d42387195d34898a4edde7186bdb645
- alias: Update FTX fan speed slider value
  trigger:
    platform: state
    entity_id: sensor.ftx_fan_speed
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ftx_fan_speed
      value: '{{ states.sensor.ftx_fan_speed.state }}'
  id: 3c7c8d33a2fa4df99b3c91efdbc8cbe1
- alias: Set temperature for FTX
  trigger:
    platform: state
    entity_id: input_number.ftx_temperature
  action:
    service: modbus.write_register
    data:
      unit: 1
      address: 206
    data_template:
      value: '{{ states.input_number.ftx_temperature.state|int }}'
  id: e4f26fbd37814141b29616fe1d2e337d
- alias: Update FTX temperature slider value
  trigger:
    platform: state
    entity_id: sensor.ftx_temperature_set
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ftx_temperature
      value: '{{ states.sensor.ftx_temperature_set.state }}'
  id: 779da92b67e64212aa533f96d8096267
  
# Exempel på entities card
 
entities:
  - entity: sensor.ftx_supply_air
  - entity: sensor.ftx_extract_air
  - entity: sensor.ftx_outdoor_air
  - entity: sensor.ftx_filter_age
  - entity: input_number.ftx_fan_speed
  - entity: input_number.ftx_temperature
show_header_toggle: false
theme: Backend-selected
title: FTX
type: entities

Ahh! That made it a bit cleaner :slight_smile: I fidled around a bit more today and ended up making a drop down selector for temperature and one automation for each single temperature selection. Something like this would cut down on number of automations :smiley:


action:
    service: modbus.write_register
    data:
      unit: 1
      address: 2000
    data_template:
      value: '{{ states.input_select.temp_vtr|int }}'

1 Like

Let me know when you are done, so I can copy your config :smiley:

I would like to have a full blown integration for Systemair, or at least for ventilation units in general. Like the Climate integration.

I have this input_select:

I then made a sensor that multiplies the input_select state by 10


  - platform: template
    sensors:
      temp_sendt_vtr:
        value_template: '{{ ((states.input_select.sett_vtr_temp.state | float * 10)) | round(0) }}'
        friendly_name: 'Temp sendt til vtr'

And then made this automation:


- id: '1635445362223'
  alias: Sett vtr temp
  description: ''
  trigger:
  - platform: state
    entity_id: input_select.sett_vtr_temp
    for:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  condition: []
  action:
  - service: modbus.write_register
    data:
      address: 2000
      unit: 1
      hub: hub1
    data_template:
      value: '{{ states.sensor.temp_sendt_vtr.state }}'
  mode: single  

1 Like

Why such a fuss for the temps? Easy as that

modbus:
#  - name: hub1
    type: serial
    method: rtu
    port: /dev/ttyUSB0
    baudrate: 9600
    stopbits: 1
    bytesize: 8
    parity: N
    climates:
    - name: vent_VSR500
      address: 12102
      slave: 1
      data_type: uint
      data_count: 1
      scale: 0.1
      offset: 0
      precision: 1
      max_temp: 30
      min_temp: 15
      temp_step: 1
      target_temp_register: 2000
    sensors: !include VSR/NEW_VSR_500.yaml

Thank you :slight_smile: Finally a version of the climate code I could get to work. Others have eather failed in check or had state «unavailable»

Post no2 in this thread by @Tempo_Trevis
All credits to him. Read through the first 30-50 messages. He had a lot to offer
For the modbus manual by systemair you have to take the address and -1. So if it states 501 address you put 500 in HA config. At least the case for me

3 Likes

Your right - great work!

I couldn’t get his climate code to work - but now I can’t remember if maybe I used 2001 and not 2000 as you point out :slight_smile:

After a “lifetime” is the repository for the Systemair Save ventilation units ready (hopefully :grinning:):

3 Likes

This is beautiful. Ill give it a shot when I get some free time. If you add “buy me a coffee” on git we can say thank you for all the hard work :slight_smile:

1 Like

Repo just done, the same day I find out my Systemair can be connected to HA (Prob).

I see systemair also has an app.
For starters I would just see how much use of it I have. (Not including gadget and fun factor)
Anyone tried it as well?
I need an IAM_ID to connect the app, which I cant seem to find.
I can also connect to WLAN on the panel itself, but it does not find any networks. My guess is that I need some sort of ethernet module installed to the ventialtion?

In order to use the Systemair app or Modbus TCP, you need to have the IAM gateway, the IAM_ID is located on the back of the IAM gateway. An alternative is modbus RTU, which is available from the A(+)/B(-) terminals on the terminal card, but then you also need serial → ethernet converter or USB, whichever that suits your installation).