Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Systemair Villavent VSR 500 og ESPHome (i Home Assistant)


Anbefalte innlegg

Jeg forsøker å koble meg til via modbus til mitt nymonterte Systemair SAVE VSR 500 anlegg. Styrepanelet til disse er mangelvare på grunn av chipmangel, så imens vi venter på dette tenkte jeg å se om jeg får kontakt via modbus.

 

Jeg har kjøpt meg en NodeMCU ESP32, flashet med ESPHome, og koblet meg til RS458 som beskrevet i manualen (https://shop.systemair.com/upload/assets/SAVE_VSR_300_500_INSTALLATION_NO_V1.PDF?2245b253)

 

image.thumb.png.f9f91f1b237c3e4e46d2a3ef9ae8f984.png

 

Foreløpig ser config'en min ut som følger

 

esphome:
  name: "esp-32s"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

uart:
  id: mod_bus
  tx_pin: 17
  rx_pin: 16
  baud_rate: 9600
  stop_bits: 1
  debug:

modbus:
  id: modbus1

modbus_controller:
  - id: villavent
    ## the Modbus device addr
    address: 0x1
    modbus_id: modbus1
    setup_priority: -10

sensor:
  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "Supply air fan RPM"
    id: REG_SENSOR_RPM_SAF
    register_type: read
    address: 12400
    unit_of_measurement: "rpm"
    value_type: U_WORD

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-66A24C"
    password: "HK9OiKIXhjw8"

captive_portal:
    

 

Jeg har forsøkt litt forskjellige varianter av tx_pin og rx_pin (usikker på hva som er A+ og B- kontra TX og RX), baud rate, og forskjellige adresser, men får samme respons uansett hva jeg gjør

 

[20:40:33][D][modbus_controller:032]: Modbus command to device=1 register=0x3070 countdown=0 no response received - removed from send queue

 

Noen som har satt opp lignende styring, og kan hjelpe meg litt på veien?

 

EDIT: Nå har jeg forsøkt å lese registre med litt lavere verdier, og da får jeg i alle fall respons. Men responsen ser litt rar ut. 1001 skal være mellom 0 og 1, og 1002 skal være mellom 0 og 2000. Kunne jo vært noe desimalfeil, men når samme verdier gjentar seg på andre registre (1011 har samme verdi som 1001), så blir jeg litt skeptisk.

 

Jeg frykter at modbus må aktiveres på styringspanelet på noe vis, at jeg ikke får gjort noe her før jeg får panelet. Men setter stor pris på tips og triks!

image.png.15ddf2d00c988903c1479e73e75e7399.png

Endret av FSund
Lenke til kommentar
Del på andre sider

Jeg har nå gått gjennom baud rate fra 9600 til 115200, testet parity NONE, EVEN og ODD, og diverse andre parametre, men får fortsatt ikke noe fornuftig respons fra anlegget. Skal sjekke med montør på mandag om modbus er tilgjengelig som standard, eller om det må aktiveres manuelt.

Lenke til kommentar
Del på andre sider

FSund skrev (3 timer siden):

Jeg har nå gått gjennom baud rate fra 9600 til 115200, testet parity NONE, EVEN og ODD, og diverse andre parametre, men får fortsatt ikke noe fornuftig respons fra anlegget. Skal sjekke med montør på mandag om modbus er tilgjengelig som standard, eller om det må aktiveres manuelt.

Du må ha kontroll på hvilke registre du leser og så er det slik at nummerering av registre varierer. Noen bruker null indeks og andre ikke. Så register 2 kan godt være register 1, alt etter som.

Lenke til kommentar
Del på andre sider

1 hour ago, stigvi said:

Du må ha kontroll på hvilke registre du leser og så er det slik at nummerering av registre varierer. Noen bruker null indeks og andre ikke. Så register 2 kan godt være register 1, alt etter som.

Jeg har gått ut fra at oversikten over registre som jeg fant her var korrekt, men jeg har fått dårlige resultater så langt. Jeg har forsøkt å trekke fra og legge til på flere av registrene i tilfelle feil indeksering, men heller ikke det ser ut til å hjelpe. 

 

Jeg skal forsøke noen av de eldre listene over registre jeg har funnet, i tilfelle jeg er på en gammel firmware eller lignende.

 

Vet du forresten hvilken av RX og TX som korresponderer til A(+) og B(-)? Jeg har brukt GPIO16 og 17 på ESP32 som nevnt her, men får samme resultat om jeg bytter om rx og tx i oppsettet.

Endret av FSund
Lenke til kommentar
Del på andre sider

Jeg har en VTR500 selv og kommunisere med HA modbus (https://www.home-assistant.io/integrations/modbus/) ved hjelp av en Systemair IAM over modbus/tcp. For mitt oppsett måtte modbus adressene i Modbus Variable List dokumentet substraheres med -1 dvs at 12401 må bli 12400.  

 

image.png.4da5b9f159f886b677a59891b7a2a64b.png

 

Ser ingen direkte feil i esphome modbus konfigurasjonen, men dokumentasjonen sier at det er modbus/rtu som skal brukes. Protokoll er RS485. Regner med at du har lest denne artikkelen her.

 

Her er mitt oppsett:

modbus:
  - name: VTR500
    type: tcp
    host: 10.0.0.107
    port: 502
    delay: 2
    sensors:
      - name: "VTR500 Outdoor Air Temperature"
        unit_of_measurement: °C
        device_class: temperature
        slave: 1
        address: 12101
        scale: 0.1
        precision: 1
        data_type: int16
        scan_interval: 30
      - name: "VTR500 Supply Air Temperature"
        unit_of_measurement: °C
        device_class: temperature
        slave: 1
        address: 12102
        scale: 0.1
        precision: 1
        data_type: int16
        scan_interval: 30
      - name: "VTR500 Overheat Temperature"
        unit_of_measurement: °C
        device_class: temperature
        slave: 1
        address: 12107
        scale: 0.1
        precision: 1
        data_type: int16
        scan_interval: 30
      - name: "VTR500 Extract Air Temperature"
        unit_of_measurement: °C
        device_class: temperature
        slave: 1
        address: 12543
        scale: 0.1
        precision: 1
        data_type: uint16
        scan_interval: 30
      - name: "VTR500 Heat Exchanger AO state"
        unit_of_measurement: '%'
        device_class: power_factor
        slave: 1
        address: 14102
        data_type: uint16
        scan_interval: 30
      - name: "VTR500 Relative Humidity Sensor"
        unit_of_measurement: '%'
        device_class: humidity
        slave: 1
        address: 12135
        data_type: uint16
        scan_interval: 30
      - name: "VTR500 Supply Air Fan RPM"
        unit_of_measurement: 'rpm'
        slave: 1
        address: 12400
        data_type: uint16
        scan_interval: 30
      - name: "VTR500 Extract Air Fan RPM"
        unit_of_measurement: 'rpm'
        slave: 1
        address: 12401
        data_type: uint16
        scan_interval: 30
      - name: "VTR500 Fan speed level"
        slave: 1
        address: 1130
      - name: "VTR500 Eco level"
        slave: 1
        address: 2504
        data_type: uint16
        scan_interval: 30
      - name: "VTR500 User level"
        slave: 1
        address: 1160
        data_type: uint16
        scan_interval: 30

 

template:
  - sensor:
      - name: "VTR500 aktiv viftemodus"
        state: >
          {% set usermode = states('sensor.vtr500_fan_speed_level')|int(0) %}
          {% set options = ['Off', 'Off(1)', 'Low', 'Normal', 'High'] %}
          {{options[usermode]}}
          
      - name: "VTR500 aktiv ecomodus"
        state: >
          {% set usermode = states('sensor.vtr500_eco_level')|int(0) %}
          {% set options = ['Off', 'On'] %}
          {{options[usermode]}}
          
      - name: "VTR500 aktiv usermodus"
        state: >
          {% set usermode = states('sensor.vtr500_user_level')|int(0) %}
          {% set options = ['Auto', 'Manual', 'Crowded', 'Refresh', 'Fireplace', 'Away', 'Holiday', 'Cooker Hood', 'Vacuum Cleaner'] %}
          {{options[usermode]}}

 

Slik ser mitt oppsett ut i Lovelace:

 

 

image.png

Endret av haraldov
  • Like 1
Lenke til kommentar
Del på andre sider

3 hours ago, haraldov said:

Ser ingen direkte feil i esphome modbus konfigurasjonen, men dokumentasjonen sier at det er modbus/rtu som skal brukes. Protokoll er RS485. Regner med at du har lest denne artikkelen her.

 

 

Akkurat det med RTU vs TCP har jeg lurt litt på, for jeg finner ingen steder å konfigurere det i ESPHome. Men jeg har koblet meg direkte til Systemair RS485 interfacet via 3 ledninger rett inn på ESP32, så jeg tror kanskje at RTU er det eneste som er mulig? Veldig usikker på dette her egentlig.

 

Sånn ser i alle fall koblingene ut:

20220708_233613.thumb.jpg.a52f9ffbe0ba0cd658c78ab357322b07.jpg

 

20220708_233627.thumb.jpg.651c0de87cda8647f7a02e8331910c46.jpg

 

Jeg har lest guiden og 15 sider med kommentarer, uten å bli noe klokere.

 

Tusen takk for deling av oppsettet, satser på det kommer til nytte når jeg endelig får kontakt 🙏

Lenke til kommentar
Del på andre sider

Ok, slik kan du ikke koble det. Du må skaffe deg et rs-485 <-> esp32 adapter. Det er bare å søke litt på google.

PS. Det er en viss fare for at du har tatt knekken på inngangene på din esp32. Ha det i bakhodet hvis det fortsatt ikke virker med en rs-485<-> esp32 sak.

Endret av stigvi
Lenke til kommentar
Del på andre sider

Takk folkens 👍 Begynte å mistenke at jeg manglet en dings her ja etter å ha tenkt litt på det.

 

Vil denne kunne fungere? https://www.elfadistrelec.no/no/rs485-click-utviklingskort-5v-mikroelektronika-mikroe-925/p/30155029

 

Ser de har masse på AliExpress som passer, men ville helst hatt litt frisk luft nå i sommer 😁

Lenke til kommentar
Del på andre sider

Hvorfor ikke kjøpe en ethernet til rs485 hub for å kommunisere mellom vtr500 og home assistant. Jeg skal bytte ut min IAM med denne https://www.amazon.de/dp/B07RQ7MHN2/ref=pe_27091401_487024491_TE_item. Du kan da bruke HA modbus istedenfor esphome modbus.

 

Jeg bytter ut IAM da jeg får  en god del slike meldinger i loggen. Har prøvd å flere forsøk på å fjerne disse, men har nå gitt opp.

Pymodbus: VTR500: Exception Response(131, 3, SlaveBusy)

 

 

Lenke til kommentar
Del på andre sider

35 minutes ago, stigvi said:

Sannsynligvis, men jeg kjenner ikke til den. 

Her er en annen: https://artigereliv.no/produkt/elektronikk/mikrokontrollere/sensorer-og-tilbehor/rs485-modul

Men kjenner ikke til nettbutikken........

 

Takk for tipset, den ser jo akkurat ut som den jeg trenger! Ser de har ESP32 også, så da bestiller jeg det også, i tilfelle jeg har klart å ødelegge den jeg har.

 

25 minutes ago, haraldov said:

Hvorfor ikke kjøpe en ethernet til rs485 hub for å kommunisere mellom vtr500 og home assistant. Jeg skal bytte ut min IAM med denne https://www.amazon.de/dp/B07RQ7MHN2/ref=pe_27091401_487024491_TE_item. Du kan da bruke HA modbus istedenfor esphome modbus.

 

Jeg bytter ut IAM da jeg får  en god del slike meldinger i loggen. Har prøvd å flere forsøk på å fjerne disse, men har nå gitt opp.

Pymodbus: VTR500: Exception Response(131, 3, SlaveBusy)

 

 

 

Jeg har denne her på vei, så jeg kan eksperimentere litt med hva som fungerer best. Men takk for tipset!

Endret av FSund
Lenke til kommentar
Del på andre sider

Da er RS458 modul i boks, og jeg har koblet opp slik jeg tror det skal være. Her er en skisse:

 

image.thumb.png.b8843d239a46fc86f1f9d0ed0dc572d5.png

 

RX2 == GPIO16 og TX2 == GPIO17 (kilde).

 

A er koblet til A(+) og B til B(-) på anlegget.

 

Men jeg får fortsatt samme verdier fra ESPHome, noe som for meg virker veldig merkelig. F.eks register 1001 gir verdi 888, men skal gi verdier mellom 0 og 100. Har også forsøkt 0-indekserte registre uten hell. Register 1161 (evt. 1160) gir ikke noe svar.

 

EDIT: Jeg kom på at jeg har ikke testet å bruke 5V istedenfor 3.3V for å drive RS485 modulen. Kanskje det hjelper?

Endret av FSund
Lenke til kommentar
Del på andre sider

En liten oppfølging siden sist: jeg har testet med ny ESP32, i tilfelle den forrige var skadet av tidligere eksperimentering. Fortsatt ingen fornuftige svar fra ventilasjonsanlegget.

 

Så fikk jeg også en USR-TCP232-410s modbus til ethernet converter i posten for noen dager siden. Denne satt jeg opp ifølge guiden her på forumet, og forsøkte å koble til både via Node-Red modbus og direkte via Modbus integrasjonen i Home Assistant, men heller ikke der fikk jeg noen fornuftige svar. Så gjorde jeg et siste forsøk via ModScan64 koblet til ethernet converter, men den gav heller ingen gode svar (kanskje ikke så rart, siden den også brukte ethernet converteren).

Lenke til kommentar
Del på andre sider

Jeg har tidligere brukt Airiana til å kommunisere mot min vtr500. Du kunne jo ha prøvd dette programmet for å se om du får riktig kommunikasjon?

 

For at du skal kunne kjøre prgrammet på Raspberry Pi "Bullseye" som har Python 3 som default må du installere programmet herfra: https://github.com/BeamCtrl/Airiana/tree/python3-migration

Har kommunisert med utvikleren for å teste utvikling til Python 3 støtte https://github.com/BeamCtrl/Airiana/issues/22.

 

Ønsker du å integrere Airiana mot HA så kan du bruke denne configen:

#Rest commands to airiana
rest_command:
  toggle_pressure:
    url: "http://10.0.0.168:8000/command?7"
    method: "get"
  toggle_auto:
    url: "http://10.0.0.168:8000/command?1"
    method: "get"
  force_vent:
    url: "http://10.0.0.168:8000/command?8"
    method: "get"
  vent_high:
    url: "http://10.0.0.168:8000/command?99"
    method: "get"
  vent_norm:
    url: "http://10.0.0.168:8000/command?98"
    method: "get"
  vent_low:
    url: "http://10.0.0.168:8000/command?97"
    method: "get"
  toggle_exchanger:
    url: "http://10.0.0.168:8000/command?0"
    method: "get"
  auto_off:
    url: "http://10.0.0.168:8000/command?14"
    method: "get"
  fire_start:
    url: "http://10.0.0.168:8000/command?9"
    method: "get"

mqtt:
# Airiana Sensors
  sensor:
    - name: "Exhaust"
      state_topic: "airiana"
      value_template: "{{ value_json.exhaust | round(2)}}"
      unit_of_measurement: "  C"

    - name: "Rotor speed"
      state_topic: "airiana"
      value_template: "{{ value_json.rotorSpeed }}"
      unit_of_measurement: "%"

    - name: "Inlet"
      state_topic: "airiana"
      device_class: "temperature"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.inlet | round(2) }}"

    - name: "Extract"
      state_topic: "airiana"
      device_class: "temperature"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.extract | round(2) }}"
 
    - name: "Supply"
      state_topic: "airiana"
      device_class: "temperature"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.supply | round(2) }}"

    - name: "ref RH%"
      state_topic: "airiana"
      device_class: "humidity"
      unit_of_measurement: "%"
      value_template: "{{ value_json.referenceHumidity | round(2) }}"

    - name: "RH%"
      state_topic: "airiana"
      device_class: "humidity"
      unit_of_measurement: "%"
      value_template: "{{ value_json.measuredHumidity | round(2) }}"

    - name: "Ambient Pressure"
      state_topic: "airiana"
      device_class: "pressure"
      unit_of_measurement: "hPa"
      value_template: "{{ value_json.pressure | round(0) }}"

    - name: "Exchanger Efficiency"
      state_topic: "airiana"
      unit_of_measurement: "%"
      value_template: "{{ value_json.efficiency | round(0) }}"

    - name: "Filter remaining"
      state_topic: "airiana"
      unit_of_measurement: "%"
      value_template: "{{ value_json.filterPercentRemaining | round(0) }}"

    - name: "Filter time"
      state_topic: "airiana"
      unit_of_measurement: "days"
      value_template: "{{ value_json.filterInstalledDays | round(0) }}"

    - name: "Electric power"
      state_topic: "airiana"
      unit_of_measurement: "W"
      value_template: "{{ value_json.electricPower | round(0) }}"

    - name: "Electric power total"
      state_topic: "airiana"
      unit_of_measurement: "Wh"
      state_class: "total_increasing"
      device_class: "energy"
      value_template: "{{ value_json.electricPowerTotal }}"

    - name: "Rotor active"
      state_topic: "airiana"
      unit_of_measurement: ""
      value_template: "{{ value_json.rotorActive }}"
      
# Airina Binary sensors
  binary_sensor:
    - name: "Shower mode"
      state_topic: "airiana"
      value_template: "{{ value_json.shower }}"
      payload_off: "false"
      payload_on: "true"

    - name: "Cooling mode"
      state_topic: "airiana"
      value_template: "{{ value_json.coolingMode }}"
      payload_off: "false"
      payload_on: "true"  

 

  • Thanks 1
Lenke til kommentar
Del på andre sider

  • 1 måned senere...

Etter litt frem og tilbake med leverandør og Systemair fikk jeg tips om å laste ned "SAVE PC tool": https://www.systemair.com/no/support/programmer/save-pc-tool/

 

Da måtte jeg naturligvis ha enda en RS-485, denne gangen til USB. Men med dette verktøyet klarte jeg faktisk å koblet meg til og styre anlegget mitt 🥳

 

Så gjenstår bare spørsmålet om hvorfor det funker via USB verktøyet, men ikke alle andre forsøk jeg har gjort. Jeg håper kanskje at noe måtte "aktiveres" et sted, og at USB verktøyet har ordnet dette. Har ikke fått testet med de andre adapterene etter dette, men krysser fingrene.

  • Like 1
  • Thanks 1
Lenke til kommentar
Del på andre sider

19 hours ago, Moskus said:

Ah, bra! :) 

Hva mer kan man gjøre med det? Kan man oppdatere firmware?

Litt usikker, har ikke testa det så mye. Trykka bare på noen knapper til jeg fikk kontakt, og fikk skrudd ned hastigheten til et fornuftig nivå.

  • Like 1
Lenke til kommentar
Del på andre sider

Testa på ny med ESP32 og RS485 modul, og nå fikk jeg kontakt!  🥳

 

Virker kanskje som anlegget må "settes i gang" eller lignende før modbus fungerer ordentlig, og at "PC Tool" har ordnet dette for meg.

Lenke til kommentar
Del på andre sider

Har du satt opp "flow control"? Så ikke noe av det i åpningsposten din......

Modbus Component — ESPHome

 

Jeg er forresten i ferd med å sette opp en esp32 med esphome selv. Fram til nå har jeg brukt en Raspberry pi zero w med home assistant, men den krever mer oppsett og en mqtt broker. Og den krever vedlikehold. Nå terminerer jeg den og prøver noe nytt.

Lenke til kommentar
Del på andre sider

flow_control_pin er satt ja.

 

Her er oppsettet mitt akkurat nå. Ikke så mye som er lagt inn av styring enda, utenom hastighet på avtrekk og tilluft

 

esphome:
  name: "esp32-loft"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: DEBUG # make uart stream available in esphome logstream
  baud_rate: 0  # disable logging over uart
  logs:
    modbus_controller: DEBUG
    uart: DEBUG
    modbus: DEBUG

# Enable Home Assistant API
api:

ota:

# Enable boot up messages
debug:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-Ec3548"
    password: "iG4pVh8BmFgM"

captive_portal:

## MODBUS
uart:
  id: mod_bus
  rx_pin: 16
  tx_pin: 17
  # for systemair: 9600, 19200, 28800, 38400, 57600, 76800, 115200
  baud_rate: 115200
  data_bits: 8  # 8 is default
  parity: NONE
  stop_bits: 1
  debug:
    direction: BOTH
    after:
      delimiter: "\n"
    #sequence:
    #  - lambda: UARTDebug::log_string(direction, bytes);

modbus:
  id: modbus1
  flow_control_pin: 5
  send_wait_time: 250ms # default 250ms

modbus_controller:
  - id: villavent
    # use unit id 1 to read/write modbus registers and id 2 for IAM registers
    address: 1  # 1 to 254?
    modbus_id: modbus1
    setup_priority: -10
    command_throttle: 100ms  # [default 0ms] minimum time between requests

number:
  - platform: modbus_controller
    modbus_controller_id: villavent
    id: REG_FAN_LEVEL_SAF_NORMAL_RPM
    name: "REG_FAN_LEVEL_SAF_NORMAL_RPM"
    address: 1414
    value_type: U_WORD
    unit_of_measurement: "rpm"

  - platform: modbus_controller
    modbus_controller_id: villavent
    id: REG_FAN_LEVEL_EAF_NORMAL_RPM
    name: "REG_FAN_LEVEL_EAF_NORMAL_RPM"
    address: 1415
    value_type: U_WORD
    unit_of_measurement: "rpm"

sensor:
  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1001 REG_DEMC_RH_HIGHEST"
    register_type: read
    address: 1000
    value_type: U_WORD
    unit_of_measurement: "%"

  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1002 REG_DEMC_CO2_HIGHEST"
    register_type: read
    address: 1001
    value_type: U_WORD
    unit_of_measurement: "ppm"

  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1161 REG_USERMODE_MODE"
    register_type: read
    address: 1160
    value_type: U_WORD
    unit_of_measurement: "-"
    
  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1305 REG_FAN_LEVEL_SAF_NORMAL"
    register_type: read
    address: 1304
    value_type: U_WORD
    unit_of_measurement: "rpm"

  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1306 REG_FAN_LEVEL_EAF_NORMAL"
    register_type: read
    address: 1305
    value_type: U_WORD
    unit_of_measurement: "rpm"

  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1405 REG_FAN_LEVEL_SAF_NORMAL_PERCENTAGE"
    register_type: read
    address: 1404
    value_type: U_WORD
    unit_of_measurement: "%"
    
  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1406 REG_FAN_LEVEL_EAF_NORMAL_PERCENTAGE"
    register_type: read
    address: 1405
    value_type: U_WORD
    unit_of_measurement: "%"

  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1415 REG_FAN_LEVEL_SAF_NORMAL_RPM"
    register_type: read
    address: 1414
    value_type: U_WORD
    unit_of_measurement: "rpm"
    
  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "1416 REG_FAN_LEVEL_EAF_NORMAL_RPM"
    register_type: read
    address: 1415
    value_type: U_WORD
    unit_of_measurement: "rpm"

  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "12401 REG_SENSOR_RPM_SAF"
    register_type: read
    address: 12400
    value_type: U_WORD
    unit_of_measurement: "rpm"
    
  - platform: modbus_controller
    modbus_controller_id: villavent
    name: "12402 REG_SENSOR_RPM_EAF"
    register_type: read
    address: 12401
    value_type: U_WORD
    unit_of_measurement: "rpm"

 

Lenke til kommentar
Del på andre sider

Etter å ha studert modbus oversikten til Systemair litt mer kan det kanskje være noen av disse registrene som må settes før man får noe mer informasjon ut av enheten.

 

image.png.1c9e1546a482974033a6e6929c84fe5f.png

Evt. noe av det her

image.png.cf550f56990f21f59d7d69add9220544.png

 

Det må i alle fall finnes et eller annet register som det er mulig å skrive til for å sette det ordentlig i gang, for jeg brukte jo en modbus-USB adapter med PC Tool for å "aktivere" anlegget.

Lenke til kommentar
Del på andre sider

  • 1 måned senere...

@FSund
 

Mulig du har funnet løsningen nå? Men hos meg fungerte det fint uten å måtte aktivere anlegget på noe vis. Har et helt nytt Systemair VSR 300.

 

Her er min ESPhome config. Fikk satt inn aggregatet i helgen som var, så er work in progress :)

 

esphome:
  name: "esp32-systemair-vsr-300"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "#############"

ota:
  password: "###############"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

uart:
  id: mod_uart
  tx_pin: 17
  rx_pin: 16
  baud_rate: 115200
  stop_bits: 1

modbus:
  id: modbus1
  uart_id: mod_uart
  flow_control_pin: 5

modbus_controller:
  - id: systemair
    ## the Modbus device addr
    address: 1
    modbus_id: modbus1
    update_interval: 10s

select:
  - platform: modbus_controller
    name: "Systemair Fan speed level for mode manual"
    icon: mdi:fan
    address: 1130
    value_type: S_WORD
    optionsmap:
      "High": 4
      "Normal": 3
      "Low": 2

  - platform: modbus_controller
    name: "Systemair Set new user mode"
    icon: mdi:account
    address: 1161
    value_type: S_WORD
    optionsmap:
      "None": 0
      "AUTO": 1
      "Manual": 2
      "Crowded": 3
      "Refresh": 4
      "Fireplace": 5
      "Away": 6
      "Holiday": 7

number:
  - platform: modbus_controller
    name: "Systemair Temperature setpoint"
    address: 2000
    value_type: S_WORD
    min_value: 12
    max_value: 30
    icon: mdi:home-thermometer
    unit_of_measurement: "°C"
    multiply: 10

switch:
  - platform: modbus_controller
    name: "Systemair ECO mode"
    icon: mdi:leaf-circle
    address: 2504
    register_type: holding
    bitmask: 1

  - platform: modbus_controller
    name: "Systemair Cooling Recovery"
    icon: mdi:snowflake-thermometer
    address: 2133
    register_type: holding
    bitmask: 1

  - platform: modbus_controller
    name: "Systemair Free Cooling"
    icon: mdi:snowflake-thermometer
    address: 4100
    register_type: holding
    bitmask: 1

  - platform: modbus_controller
    name: "Systemair Cooker Hood"
    icon: mdi:stove
    address: 11421
    register_type: holding
    bitmask: 1

sensor:
  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Active user mode"
    icon: mdi:account
    register_type: read
    address: 1160
    value_type: S_WORD

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Remaning filter time"
    icon: mdi:air-filter
    address: 7004
    value_type: S_DWORD_R
    register_type: read
    unit_of_measurement: 'seconds'
  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Supply Air Fan RPM"
    icon: mdi:fan
    register_type: read
    address: 12400
    value_type: S_WORD
    filters:
        - throttle: 5s
        - delta: 10.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Extract Air Fan RPM"
    icon: mdi:fan
    register_type: read
    address: 12401
    value_type: S_WORD
    filters:
        - throttle: 5s
        - delta: 10.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Outdoor Air Temperature"
    register_type: read
    address: 12101
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    - or:
        - throttle: 5s
        - delta: 2.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Extract Air Temperature"
    register_type: read
    address: 12543
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    - or:
        - throttle: 5s
        - delta: 2.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Supply Air Temperature"
    register_type: read
    address: 12102
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    - or:
        - throttle: 5s
        - delta: 2.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Over Heat Temperature"
    register_type: read
    address: 12107
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    - or:
        - throttle: 5s
        - delta: 2.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Relative Humidity Sensor"
    register_type: read
    address: 12135
    value_type: S_WORD
    unit_of_measurement: "%"
    device_class: humidity
    accuracy_decimals: 0
    filters:
        - throttle: 5s
        - delta: 2.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Heat Exchanger Usage"
    icon: mdi:sync-circle
    register_type: read
    address: 14102
    value_type: S_WORD
    unit_of_measurement: "%"
    accuracy_decimals: 0
    filters:
        - throttle: 5s
        - delta: 2.0

  - platform: modbus_controller
    modbus_controller_id: systemair
    name: "Systemair Heater Coil Usage"
    icon: mdi:heating-coil
    register_type: read
    address: 2148
    value_type: S_WORD
    unit_of_measurement: "%"
    accuracy_decimals: 0
    filters:
        - throttle: 5s
        - delta: 2.0



Det ser slik ut i Home Assistant
Systemair.thumb.png.28a864b134898d1cd1f51b01903b3cb7.png

Endret av Dennis87
Lenke til kommentar
Del på andre sider

15 hours ago, Dennis87 said:

Mulig du har funnet løsningen nå? Men hos meg fungerte det fint uten å måtte aktivere anlegget på noe vis. Har et helt nytt Systemair VSR 300.

 

Her er min ESPhome config. Fikk satt inn aggregatet i helgen som var, så er work in progress :)

 

Jeg fikk kontakt via ESPHome etter å ha koblet meg til med PC-tool en gang, så det har vert oppe å gå en stund.

 

Veldig bra oppsett du har der, switch og select elementene var jeg ikke klar over at var mulig. Takk!

Lenke til kommentar
Del på andre sider

@Dennis87

 

Hvor får du "Power Usage" fra (den nederste sensoren i HA bildet)?

 

Og har du peiling på om det er mulig å skru av heater coil helt? Med tanke på strømforbruk må det være bedre å skru på/opp varmepumpa litt enn å la villaventen varme luften med strøm.

Lenke til kommentar
Del på andre sider

  • FSund endret tittelen til Systemair Villavent VSR 500 og ESPHome (i Home Assistant)

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.