top of page
  • Forfatterens bildeMads Nedrehagen

Home Assistant | Automasjon av ventilasjonsanlegg via Modbus

Oppdatert: 3. jan.

I takt med at smarthus teknologi utvikler seg, blir mulighetene for å fornye og forbedre eksisterende hjemmesystemer stadig mer tilgjengelige.


I denne bloggen gjennomgår vi hvordan et Systemair Villavent VTR-ventilasjonssystem fra 2014 kan revitaliseres gjennom integrasjon med Home Assistant. Med et Elfin EW11 Modbus TCP/IP-kort som bro, vil vi se på hvordan dette systemet kan automatiseres og synkroniseres med andre smarte enheter i hjemmet, og dermed tilby en mer effektiv, responsiv og brukervennlig opplevelse.



Denne guiden er perfekt for deg som ønsker å ta smarthuset ditt til neste nivå med sømløs integrasjon av ventilasjons-systemet. Innlegget er skrevet med ganske overordnet tilnærming i et forsøk på å forenkle prosessen.


Modbus integrasjon kan brukes på en rekke enheter som ventilasjon, iverter, varmepumpe og andre husholdningsapparat.


Jeg har fått masse hjelp og inspirasjon selv før jeg gikk i gang. Spesielt vil jeg trekke frem 2 prosjekter fra github som viser noen langt mer komplekse oppsett, disse er fra GMTrevis og Ztaeyn


Hvorfor automatisere balansert ventilasjon?


Det er flere årsaker til å ønske et automatisert ventilasjonssytem, men ofte er det drevet av ønske om effektivisering av strømforbruk. Vår erfaring er at de fleste ventilasjonsanlegg har stått fast på MEDIUM vifte og relativt lav innstilling for innluft temperatur. Denne kombinasjonen gir ofte unødig utskifting av luft med påfølgende varmetap. Hvorfor bytte luft i boligen flere ganger mens dere er på jobb og skole for eksempel?


Ja... her kan det fort bli diskusjon blant eksperster og "forstå-seg-på'ere" så vi går ikke videre i detaljene.


Motivasjonen for automatisering av vårt anelgg er å ha lavest mulig luftutskifting og varmetap, UTEN at det går på bekostning av inneklima i form av Co2 verdier, og selvfølgelig også påser at luftfuktigheten ikke når dramatisk nivå. Ikke at fukt normalt er et problem i nyere hus med balansert ventlasjon da! Vi kommer snart tilbake til detaljene.

 

Hva kreves for å komme i gang?


Det er egentlig ganske "rett frem" - i det minste synes jeg det nå som jeg har tatt eksamen hos både Google- og YouTube universitetene. Og det er litt derfor jeg tar til bloggen igjen i forsøk på å ufarliggjøre Home Assistant og hjemmeautomasjon.


Det er en rekke forskjellige ventilasjonsanlegg i markedet, og vårt eksempel er for en Villavent VTR 300. Har du et annet anlegg kan du alikevel bruke dette som inspirasjon og veiledning for å komme i gang med ditt system. Du finner trolig masse informasjon om du søker etter din modell + modbus. Lykke til!


For å følge denne veiviseren er det en forutsetning at du har:

  • Modbus -> TCP/IP konverter, for eksempel Elfin EW11 Modbus TCP/IP-kort Dette kortet fungerer som en bro mellom ditt ventilasjonssystem og smarthuset nettverket. EW11-kortet gjør det mulig for Systemair VTR å kommunisere via Modbus-protokollen, som er en standard for industriell kommunikasjon, og gjør data tilgjengelig over TCP/IP-nettverk. Trenger du en slik har Domotics dette i nettbutikken.

  • Home Assistant Dette er smarthjem plattformen som orkestrerer hele oppsettet. Home Assistant samler og analyserer data fra Systemair VTR via Elfin EW11, og tillater brukeren å kontrollere og overvåke systemet gjennom et brukervennlig grensesnitt. Vi kommer tilbake til detaljer om tillegg og HACS installasjoner som er brukt i vårt eksempel.

  • Node-RED Ikke et absolutt behov da du kan opprette automasjoner direkte i brukergrensesnittet i Home Assistant. I vårt eksempel har vi laget automasjonen i Node-RED.


Kort oppsummert skal vi i dette innlegget:

  • Montere Elfin EW11 til ventilasjonsanlegget

  • Konfigurerer Elfin EW11 til å snakke sammen med den interne modus funksjonen i ventilasjonsanlegget

  • Sette opp og konfigurere modbus integrasjonen i Home Assistan

  • Opprette en automasjon for ventilasjon i Node-RED basert på fuktighets sensor på et bad og Co2 verdier fra en Netatmo smart værstasjon


Før vi går over til selve oppsettet og veiledning med eksempler kan vi se litt nærmere på modbus, Home Assistant og Node-RED helt overorndet.


Modbus


Modbus-protokollen spiller en nøkkelrolle i dette systemet. Den tillater pålitelig overføring av informasjon mellom Systemair VTR og Home Assistant gjennom Elfin EW11. Med Modbus kan du hente data som temperatur, luftkvalitet og systemstatus, og gjøre justeringer som endring av viftehastighet eller temperaturinnstillinger direkte fra Home Assistant.

Denne integrasjonen sikrer at ventilasjonssystemet ikke bare fungerer autonomt, men også er fullt tilpasset brukerens preferanser og behov, noe som skaper en mer intelligent og responsiv bolig.


Modbus benytter register adresser som identifikasjon av sensorer som temperatur, viftehastighet eller modus. Dette gjør det mulig for Home Assistant å identifisere og kommunisere med hver sensor eller funksjon separat.


Når Home Assistant sender en kommando eller forespørsel, bruker den Modbus-adressen til den spesifikke enheten. For eksempel, hvis du vil justere viftehastigheten på Systemair VTR, vil Home Assistant sende en kommando til enhetens spesifikke Modbus-adresse. På samme måte, når systemet overfører data tilbake til Home Assistant, som luftkvalitet eller temperaturavlesninger, blir disse dataene sendt fra enhetens Modbus-adresse.


For å sette opp ditt anlegg må du finne modus adresse register for din enhet.

Her er et eksempel fra Systemair.


Utrekk fra et slik adresse register:

Av dette ser vi at vi kan forvente å finne informasjon om viftehastighet på adresse 101, og at denne kan brukes til å både hente og motta data (R/W), adressene fra 102-107 skal innehlode detaljert informasjon om viftenivå for de enkelte stadiene. Hos meg var det slik at alle disse adressene hadde en forskyving på 1. Dermed fant jeg viftenivå på 100. Det tok en del prøving og feiling for å komme frem til dette. Men du finner nok dokumentasjon for ditt modus register. Ellers blir det litt prøving og feiling. Og det er mulig å gjøre raske tester på adressene fra Node-RED f.eks.


Elfin-EW11


En Modbus TCP/IP løsning er nøkkelen og kommunikasjonsbro mellom ventilasjonssystemet og Home Assistant. I vårt eksempel har vi brukt en Elfin EW11. Det finnes flere andre modbus til TCP/IP alterntiver tilgjengelig i handel. Du får finne den som passer for deg. Fordelen med EW11 er at den er liten og plasseringsvennlig med sin 6*3*2cm og 20g. (pluss antenne)


EW11 er utstyrt med både Modbus RTU (over RS485) og Modbus TCP/IP-protokoller, som gjør det mulig å sende data mellom ventilasjonssystemet. EW11 kobler du til ditt trådløse nettverk via innebygget web-UI.




Home Assistant


Vi bruker smarthus systemet Home Assistant som styringsenhet av ventilasjonsanlegget. Vi går ikke i detaljer for Home Assistant her og antar det allerede er på plass siden du er i gang med å lese denne veiledningen.


Ønsker du mer informasjon om Home Assistant kan denne veiledningen for nybegynnere være en god plass å begynne.


Node-RED


I vårt eksempel bruker vi Node-RED for å automatisere ventilasjonsanlegget.


Node-RED er et fantastisk verktøy for å skape gode automatiseringsflyter i i sammenheng med Home Assistant. Ved å bruke dra-og-slipp-noder, lar Node-RED brukere enkelt designe automatiseringsregler, som å justere ventilasjon basert på tidspunkt eller sensoravlesninger, og gjør hele smarthjem systemet mer intelligent og responsivt. I tillegg har Node-RED en egen modbus løsning som kan brukes for raskt å teste hvilke verdi en adresse gir deg. Last ned paletten node-red-contrib-modbus for å komme i gang med modbus fra Node-RED.


Her ser vi f.eks. at adressen 100 gir oss verdien [1], som i dette tilfellet er LAV viftenivå.

Mangler du Node-RED kan den installeres som tillegg direkte i Home Assistant.


 

Installasjon, oppsett og konfigurasjon


Elfin EW11

Her skal vi gjennom 3 steg. Koble Elfin EW11 til strøm og modbus, deretter få den opp på det trådløse nettverket og til slutt konfigurere koblingen mot modbus.


Installere og konfigurere Elfin EW11

Før vi går i gang må du finne informasjon om hvordan du kobler deg til modbus på ditt anlegg, samt finne litt informasjon om anleggets instillinger. Ofte sitter modbus kontakten midt på hovedkortet (ser ut som en vanlig nettverkskontakt), eventuelt er det lagt opp et eget tilkopblingskort på utsiden av anlegget. Noen ganger finnes det som en egen nettverkskabel som henger ut fra anlegget.


PS! HUSK Å TREKKE UT STRØMMEN FØR DU FINNER FREM SKRUJERN!


Dette høres kanskje vanskelig ut, men er egentlig ganske så enkelt, vi skal koble 4 ledninger inn på Elfin EW11 hvor modbus består av 2 kabler/kontakter - ofte omtalt som A + B par. De neste 2 inngangene er strøm. Elfin EW11 støtter inngang på 5-36v og er dermed fleksibel.


Er du usikker?

HØR MED EN ELEKTIRKER! - Noe du kanskje bør gjøre uansett om vi snakker om "svakstrølm"


Hos oss fant jeg RJ45 (nettverksplugg) med modbus på hovedkortet og koblet 12v fra samme utganger som ga strøm til dørpanelet. Dermed er alt gjemt fint inne i selve anlegget og ingen kabler henger ut. Du får selv finne den løsningen som passer med ditt anlegg. Det er også fullt mulig å bruke en strøm-adapter eller mobil-lader for å gi strøm til Elfin EW11.


Jeg fant denne oversikten fra Systemair om hvor jeg kunne finne B- og A+ fra mitt anlegg. Du må finne dokumentasjon for ditt og identifisere hvor du finner B- og A+. Så dermed pin 4 og 5 på nettverkskontakten. Som igjen er det blå paret om vi tenker standard nettverkskabel. Blå er 4 og blå-hvit er 5.


For spesielt interesserte er det en bruksanvisning for Elfin EW11 tilgjengelig her.


Når alt er tilkoblet slår du på strømmen til anlegget ditt igjen og vi er klar for å verifisere at dette virker. Du skal se lys i Elfin EW11. Videre skal det ganske så snart publisere et Wi-Fi netverk (EW1x + mac adresse) som vi må finne og koble oss til for å koble den til vårt eget trådløse nettverk og som selvfølgelig må være tilgjengelig for Home Assistant.


Finn og koble deg til dette nettverket, skal ikke kreve passord. Når du er tilkoblet går du til adressen http://10.10.100.254 fra din nettleser, standard brukernavn/passord for denne menyen er admin/admin. Du skal da komme til en meny for oppsett av Elfin EW11 Her finner Systrem settings og legger inn påloggingsinformasjon til ditt trådløse nettverk.

Lagre og restart Elfin EW11. Sjekk gjerne at den dukker opp på ditt lokal nettverk.

Når den dukker opp der logger du på igjen, men denne gang mot den nye interne IP adressen den er tildelt fra ditt nettverk. Endre gjerne slik at denne får en fast IP adresse om du kan.


I de neste stegene skal vi få opp kommunikasjonen mot modbus på anlegget vårt. Det er forskjellige verdier som benyttes her. I vårt tilfelle var det:


Baud Rate: 9600

Data bit: 8

Parity: Even


Du må finne data for ditt anlegg! Har du panel i døra eller annet eksternt styringspanel finner du det i menyen under "modbus". Let litt rundt i menyen så finner du nok verdiene. Eventuelt sjekk brukerdokumentasjon for ditt anlegg.


I Elfin EW11 sitt grensesnitt skal vi inn med disse verdiene under Serial Port Settings


Deretter videre til Communication settings og legg inn ditt anlegg ved hjelp av +Add.

Det ligger trolig en "template" der fra før som kan skape litt trøbbel. Slett den eventuelt.

Om alt har gått etter planen er vi klar til å sende informasjon til og fra modbus. I neste kapittel setter vi opp kobling mellom Home Assistant og Elfin EW11. Når kobling er satt opp vil du se at det kommer bevevegelse på tellerne under Status


Fullført oppsett av Elfin EW11 og den kommuniserer fint med vår modbus på anlegget vårt.


 

Over til Home Assistant for å sette opp integrasjonen for modbus og få på plass et par verdier fra ventilasjonsanlegget som nye sensorer.


Home Assitant Modbus


I home assistant er det ikke mye som skal til for å få hente inn grunnleggende informasjon fra ventilasjonsanlegget.


For å få dette på plass må vi ha inn litt via config filene. For å støtte videre utvikling og samtidig samle alt som er relatert til ventilasjon har vi pakket dette inn en en fil "systemair.yaml" og laget den som en package. For å få inn tilsvarende hos deg må du sjekke at du har denne i config filen din.

homeassistant:
  packages: !include_dir_named packages

og så sjekke at du har en mappe i Home Assistant som heter packages


i systemair.yaml filen legger vi inn kobling til Elfin EW11 sin nettverksadresse. Under er et forenklet eksempel som gir akkurat nok til å kunne styre anlegget.


################################################################################
# Modbus on SYSTEMAIR SAVE_VTR_300
################################################################################
modbus:

  - name: VTR300
    type: tcp
    host: 192.168.**.***  # Adressen til din Elfin EW11
    port: 502
    timeout: 3
    delay: 3


    sensors:

      - name: VTR300_supply_temperature
        unique_id: VTR300.supply.temperature
        ##hub: VTR300
        device_class: temperature
        slave: 1
        address: 213
        input_type: holding
        unit_of_measurement: °C
        scale: 0.1
        offset: 0
        precision: 1
        data_type: int16

      - name: VTR300_extract_temperature
        unique_id: VTR300.extract.temperature
        ##hub: VTR300
        device_class: temperature
        slave: 1
        address: 214
        input_type: holding
        unit_of_measurement: °C
        scale: 0.1
        offset: 0
        precision: 1
        data_type: int16

      - name: VTR300_temperature_sp
        unique_id: VTR300.temperature.sp
        ##hub: VTR300
        device_class: temperature
        slave: 1
        address: 207
        input_type: holding
        unit_of_measurement: °C
        scale: 0.1
        offset: 0
        precision: 1
        data_type: int16

      - name: VTR300_air_fan_level
        unique_id: VTR300.air.fan.level
        ##hub: VTR300
        slave: 1
        address: 100
        input_type: input
        unit_of_measurement: ""
        data_type: uint16

      - name: VTR300_days_since_filter_change
        unique_id: VTR300.days.since.filter.change
        ##hub: VTR300
        slave: 1
        address: 601
        input_type: holding
        unit_of_measurement: ""
        data_type: uint16

Lagre og omstart din Home Assistant, eventuelt restart YAML konfigurasjon om det holder. Når alt er oppe igjen skal vi ha noen nye sensorer i Home Assistant med data fra ventilasjonsanlegget. Sjekk at du finner verdi på disse.


Bruk for eksempel "Auto Entities" for å finne dem igjen enkelt.

PS! Ovenfor er et eksempel og må selvfølgelig tilpasses ditt anlegg og dine register adresser som tidligere omtalt.

Da skal alt det tekniske være på plass og vi kan starte å automatisere litt ved hjelp av Node-RED


 

Oppsett og konfigurasjon i Home Assistant


Nå som teknikken fungerer ser vi videre på selve oppsett og presentasjon i Home Assistant. Her har vi laget et eget kort for å vise oversikt over status på ventilasjonsanlegget.


Selv om det tekniske virker må vi allikevel fikle litt til for å skape noe fornuft i løsningen vår. Vi har foreløpig fått på plass kommunikasjon fra ventilasjon til Home Assistant som sensor verdier. Men vi mangler å kommunisere tilbake til ventilasjonen. Dette kan gjøres med call_service funksjoner i Home Assistant. Samtidig er det i mage tilfelle et ønske om å endre de fastsatte verdiene modbus kommuniserer med til andre verdier. Vårt anlegg har eksempelvis en temperaturskala som kan settes i 5 nivå på skjerm i døra. Denne er igjen representert som register på modbus med verdiene 1-5. Ved litt undersøkelser fant jeg ut at dette var register verdier for 12, 14.5, 17, 19.5 og 22 grader på adresse 207.

Videre er verdiene 0-4 på adresse 100 viftehastighet Av, Lav, Medium og Høy.

For å få dette litt bedre visualisert har vi laget 3 hjelpere i Home Assistant for å kunne sette temp til grader og ikke nivå. Det samme med viftehastighet. Vi styrer dette via automasjoner som vi kommer tilbake til snart. I tillegg har vi laget en veldig enkel "boost" funsjon som styres via en veksle knapp og en automasjon. Dette er egentlig ikke en skikkelig BOOST da vårt anlegg ikke har dette, men den starter ved HØY fuktighet på badet, setter viftehastighet til HØY og sjekker vis Node_RED hvert 5 minutter om terskelverdier er innefor ønsket nivå. Den stopper så snart terskelverdier er akseptable. Denne er laget fordi automasjonen i Node-RED som styrer hele "baletten" kjører hver 15 minutt for å begrense skriving til modbus.


Vi starter derfor med å opprette disse hjelperne.


Hjelpere


Opprett 2 hjelpere av typen nedtrekk og legg inn disse verdiene. Endre til det som eventuelt passer ditt anlegg.


En for temperaturskala


Og en for viftenivå


Og til slutt en veksle knapp for å kunne styre/overstyre "Boost" funksjon.


Da har vi også fått på plass de siste tekniske komponentene i Home Assistant og vi er klar for å visualisere dette.


Home Assistant Lovelace kort


Vi har valgt et Bubble Card for å samle alle funksjoner for ventilasjon i et felles "pop-up-cads". Her må du velge den tilnærmingen som passer deg. Det er også avhengig av Mushroom Card og Multi Entity Row Card. Uansett her er kortet.


Som dere ser er det også noen elementer som ikke er nevnt i detalj tidligere. Blant annet en Co2 sensor og en luft-fuktighets sensor. Co2 står hos oss i stuen, fuktighet på "master" bad. Og det er disse 2 verdiene vi setter terskelverdier basert på. Kommer litt tilbake til dette i Node-Red flyten som vi setter opp i siste del av dette innlegget. Det ligger også innen litt forbruksinformasjon som du eventuelt fjerner eller tilpasser eget oppsett.


Her er forresten YAML koden for dette kortet.

Bubble Card Yaml

Da er vi gjennom oppsett av alt i Home Assistant og det gjenstår bare å få hele "baletten" automatisert. Til dette har vi valgt å bruke Node RED og automasjoner i Home Assistant.

 

Selv om vi har fått inn data fra ventilasjonsanlegget via modbus har vi ikke sett på hvordan vi sender kommandoer tilbake eller styrer anlegget fra Home Assistant. Det blir avsluttende kapittel i denne veiledningen.


Vi starter med Home Assistant automasjoner som brukes for å sende kommandoer til ventilasjonsanlegget.


Vi skal ha på plass 3 automasjoner, en for å sende viftenivå, en for temperatur og en som syrer/oversyrer etter "boost" funksjon som kan startes fra Node-RED.


Vi starter med sending av temperatur i.h.t. den hjelperen vi laget nettopp.


alias: Auto Ventilasjon - Setpunkt temperatur description: "" trigger: - platform: state entity_id: - input_select.ventilasjon_temperatur condition: [] action: - service: modbus.write_register data_template: hub: VTR300 unit: 1 address: 206 value: > {% if is_state('input_select.ventilasjon_temperatur', '12.0') %} 1 {% elif is_state('input_select.ventilasjon_temperatur', '14.5') %} 2 {% elif is_state('input_select.ventilasjon_temperatur', '17.0') %} 3 {% elif is_state('input_select.ventilasjon_temperatur', '19.5') %} 4 {% elif is_state('input_select.ventilasjon_temperatur', '22.0') %} 5 {% else %} 1 {% endif %} mode: single


Og en for å sende viftehastighet etter hjelperen for dette


alias: Auto Ventilasjon - Viftehastighet description: "" trigger: - platform: state entity_id: input_select.viftemodus action: - service: modbus.write_register data_template: hub: VTR300 unit: 1 address: 100 value: > {% if is_state('input_select.viftemodus', 'Av') %} 0 {% elif is_state('input_select.viftemodus', 'Lav') %} 1 {% elif is_state('input_select.viftemodus', 'Medium') %} 2 {% elif is_state('input_select.viftemodus', 'Høy') %} 3 {% else %} 1 {% endif %}


Og til slutt en som styrer/overstyrer "boost" funksjonen som kan trigges fra Node-RED flyten vi bruker for å automatisere hele "baletten".


alias: Auto Ventilasjon - Boost aktivert description: "" trigger: - platform: state entity_id: - input_boolean.boost_ventilasjon to: "on" condition: [] action: - service: input_select.select_option data: option: Høy target: entity_id: input_select.viftemodus mode: single


Da er vi i mål med oppsett og konfigurasjon og kan bevege oss over til Node_RED for å aktivere automasjon for ventilasjonsanlegget vårt.


Node-RED automasjon


Denne flyten passer på alt sammen og sikrer at vi har lavt utkast av varm luft samtidig som vi ivaretar inneklima.

Her er hele flyten som kan importeres til Node_RED. Endre slik at det passer dine behov og ditt oppsett.

Node-REF flyt for automasjon

Håper dette innlegget kan gi deg inspirasjon til å teste ut mulighetene for å automatisere eget ventilasjonsanlegg. Eventuelt andre enheter med modbus. Lykke til med ditt prosjekt!

 

Domotics leverer ferdig installerte løsniger for Home Assistant. Du finner både ferdig installerte Home Assistant Mini-PC'er og Elfin EW11 hos oss.

 

Takk for at du tok deg tid til å lese gjennom vår blogg! Har du innspill til endringer eller andre kommentarer ser vi frem til å se din kommentar under.


Takk!


Domotics


1 611 visninger2 kommentarer

2 Comments


Ri Mi
Ri Mi
Feb 15

Ser veldig bra ut! Kan denne brukes samtidig med Systemair SAVE Connect?

Like
Mads Nedrehagen
Mads Nedrehagen
Feb 15
Replying to

Hei Ri Mi


Det har jeg ikke teste ut og kjenner dermed ikke til hvordan det eventuelt vil oppføre seg.

Like
bottom of page