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

    Mini-guide: Hvordan bruke Modbus (med HomeSeer)

    Med en Modbus-plugin og et hardware-interface kan du enkelt få til å styre utstyr som støtter det. Modbus er ikke en uvanlig standard når det gjelder ventilasjonsutstyr og varmepumper, bl.a. fordi den er enkel å implementere i utstyret og relativt enkel for andre å bruke.

     

    Vi fikk montert et Systemair VTR-500 anlegg rundt påske, og fikk beskjed om at det gamle Z-wave adapteret dessverre ikke ville fungere med dette (som jeg fremdeles mener hadde vært den foretrukne metoden). Da ble Modbus redningen. :)

     

    Modbus er i utgangspunktet en forholdsvis enkel protokoll, hvor det spørres om eller sendes informasjon på en adresse (dvs. et heltall). Ulempen med den er at det er litt arbeid å få det til, fordi det ikke finnes noen ferdige oppsett.

     

    PS. Denne guiden er i utgangspunktet ment for HomeSeer-brukere, men prinsippet vil gjelde for alle.

    Jeg fikk hjelp til mitt første oppsett av en vennlig sjel på HomeSeer-forumet, det følgende er nærmest en gjenfortelling. Takk skal du ha, du vet hvem du er! :) 

     

    Hva du trenger:

    • Interface.
      Du trenger et. I praksis er det to valg; enten et som kobles til via USB eller et som går via nettverket. Jeg valgte det siste, og kjøpte dette interfacet for vi har fått lagt opp nettverk til loftet hvor aggregatet står fra teknisk rom i kjeller.
       
    • Modbus-plugin
      Installer, aktiver og start. Den ligger under "Lighting & Primary Technology"

     

     

    1. Oppkobling.

    Den korte versjonen: Kolbe A til A, B til B og G til G.

     

    Jeg brukte en CAT6-kabel og rensket endene på lederne. Tvinnet lederne sammen pr. farge, og brukte orange for A, grønn for B og brun for G.

     

    image.png

     

    Det samme på selve aggregatet. RS485-porten er øverst til høyre (eller nederst til venstre, alt etter som du ser på livet), merket med A(+), B(-) og G.

     

    image.png

     

    Koble så adapteret til nettverket og til strøm.

    image.png

     

    2. Konfigurasjon (for de med nettverksinterface)

    Utfordringen kan være å finne boksen. Der kan en nettverksscanner (f.eks. Advanced IP Scanner) være til hjelp. Finn enheten som har den samme MAC-adressen som står på baksiden av interfacet. Jeg har en Fingbox, og fikk selvfølgelig notifikasjon da den ble plugget inn.

     

    Tast inn IP-adressen i nettleseren med http:// foran, f.eks. http://192.168.0.174. Brukernavn og passord er "admin".

     

    Endre IP-adresse til en fast adresse:

    Gå til Local IP config. Endre IP Type til Static IP, og sett inn en adresse som er ledig. Trykk Save.

    image.png
     

    Sett nå inn den nye IPen i nettleseren. :)

     

    RS485 konfigureres slik (de røde innstillingene er viktige):

    image.png

    Baud-rate må settes til det som er støttet for ditt spesifikke aggregat. Nyere modeller har 115200 som maks hastighet, mens eldre modeller har lavere hastigheter. Ellers er data size = 8, Parity = None, Stop-bit = 1, og Flow kan fint være RTS/CTS.

     

    Workmode skal være "TCP Server" og "ModbusTCP". Hvorfor standardport ikke funker vet jeg ikke, men HS-forum-fyren hadde også endret denne. Det måtte jeg også. 8234 fungerer fint.

     

    Trykk Save. ;)

     

     

    3. Plugin-installasjon

    Modbus-plugin'en ligger i Updateren, dvs nederst under "Additional Interfaces" -> "Lighting & Primary Technology" (øverst).

    Velg denne, og trykk Installer-knappen som dukker opp under plugin-listen din.

    Aktiver plugin'en.

     

     

    4. Plugin konfigurasjon

    Gå til Plugins -> Modbus -> Modbus Config.

    image.png

    Nå skal vi legge til interfacet ditt.

    Har du et IP-interface som jeg, så trykker du på knappen til venstre (Add IP-RTU Master), hvis du har et som kobles til med USB, så trykker du på knappen til høyre (Add Serial RTU-Master).

     

    Trykk, og du blir videresendt til konfigurasjon av interface-devicen. Her kommer oppsett for IP-interfacet:

    image.png

    Endre IP og port  til det du satte opp interfacet til å bruke.

    Om polling spurte jeg SystemAir, og fikk til svar at det ikke var noe problem å polle hvert sekund om jeg ville. Jeg safer den litt med 10 sekunder. Dette kan imidlertid være avhengig av hvilket aggregat du har og hvor gammelt det er.

     

    5. Oppsett

    Nå begynner det spennende. Eller kjedeligste, alt ettersom hvordan man ser det. Hver parameter man vil lese ut må man legge inn manuelt. Det som gjør det ekstra spennende er at adressene ikke er standardiserte som man kunne ønske seg. De er forskjellige fra leverandør til leverandør, men også fra modell til modell og til og med forskjellig mellom revisjoner eller årsmodeller.

     

    Vi har et VTR-500. Det har hatt det samme modellnummeret lenge, men har blitt oppgradert fra år til år. Da var det ikke bare å google for å finne frem (noe som forøvrig anbefales). Jeg fant til slutt beskrivelsen av Modbus-adressene på systemair.com. Jeg søkte etter "modbus", og under "Documents" på søkeresultater fant jeg til slutt SAVE Modbus Variable List 20190116 (Rev. 29).pdf (1 214 kb).

     

    Du må altså finne ut hvilke parametre ditt aggregat bruker.

     

    Når du har funnet den er det bare å legge inn de verdiene du vil. Problemet er vel kanskje å finne hvilke du ønsker deg...

     

     

    Eksempel 1: Hastighet på viftene for tilluft og fratrekk.

    I PDF-dokumentet over fant jeg denne:

    image.png

     

    Altså må jeg bruke modbus-adresse 12401 for tilluft-hastigheten og 12402 for fratrekk. Det er et "Read Input Register", det vil si at man kun kan lese variabelen.

     

    Gå til Plugins -> Modbus -> Modbus Config. Der ser du interfacet og en knapp hvor det står "Add Device".

    image.png

    Trykk på "Add Device".

     

    Da kommer du til en ny Device. Der konfigurerer vi Modbus-parametre ihht. adressen vi legger til.

    image.png

     

    Det kan være en idé å endre Status Graphics også:

    image.png

     

     

    Eksempel 2: Viftehastighet

    For meg er det register 1131 og 1132:

    image.png

     

    Dette er et "Holding Register", dvs. man kan skrive verdier til den. Det legges inn på samme måte, men nå bruker man "Holding Register" istedenfor "Input Register".

     

    image.png

     

    Det er litt ulogisk at vi skal ha en "Read Only Device", men ellers får man et tekstfelt og vi må jo gjøre det litt mer praktisk enn det.

    image.png

     

     

     

    ... så er det bare å legge til andre verdier. Dette er mine:

    image.png

     

    ... som jeg har konfigurert slik:

    image.png

     

    Dette gir tilstrekkelig informasjon kontroll over anlegget, men det er mulig jeg har oversett noe.

    Hvilke verdier har du lagt inn? :) 

     

     

    PS! Det er en ganske solid bug i konfigurasjonen pr. dags dato (juni 2019) når man skal sette "Multiplier". Se under:

    Spoiler

     

    Denne er viktig å ha riktig hvis man f.eks. skal lese ut temperaturer ettersom de er multiplisert med 10, dvs. 15,8 grader rapporteres som 158. For å få riktig verdi i HomeSeer, skal man altså gange det tallet med 0,1.

     

    Problemet er at man ikke kan sette noe annet enn 1 med andre nettlesere enn Internet Explorer, av alle ting:

     

    image.png

     

     

    Endret av Moskus

    Brukertilbakemelding

    Anbefalte kommentarer



    På 5.1.2020 den 15.08, Moskus skrev:

    Dette er nok det viktigste. Flexit burde jo vite dette?

    Ja jeg måtte jo spørre Flexit og ventet på svar i en uke. Og svaret var av en eller annen grunn ikke helt uventet.

    De er ikke veldig hjelpsomme

     

    Takk for din henvendelse.
    
    Det eksisterer dessverre ingen dokumentasjon/manual på dette pr dags dato. Vi har dessverre ikke noe mer informasjon om når dette vil komme.
    
    Med vennlig hilsen 
    
    Frode
    
    

     

    Lenke til kommentar
    Del på andre sider

    På 6.1.2020 den 0.55, MrE skrev:

     

    @einarli Kom du noen vei med Flexit aggregatet? Modbus listen ligger her:

    https://www.flexit.no/globalassets/catalog/documents/27014_modbus-3.xlsx

     

     

    Nei, ble litt travel og jeg mista litt motet. Har prøvd meg på noen modus capture med IO ninja som er et kommersielt produkt med 7 dagers prøveversjon. Fikk veldig lite fornuftig ut av det. Det meste kom tilbake som "wrong packet header".  Må kanskje prøve å finne noen annen software som kanskje funker bedre.  Det dokumentet har jeg forsåvidt prøvd noen adresser fra, uten at jeg fikk noen fornuftig tilbake til HS3. Derfor begynte jeg å mistenke om det var noen feil på modus-siden. Enten baudrate ol. Sendte derfor en mail til Flexit for å be om et lignende dokument som det du linker til. I det minste kunne bekrefte at det dokumentet også gjelder mitt Flexit nordic S4 aggregat.

    Lenke til kommentar
    Del på andre sider

    57 minutter siden, einarli skrev:

    Ja jeg måtte jo spørre Flexit og ventet på svar i en uke. Og svaret var av en eller annen grunn ikke helt uventet.

    De er ikke veldig hjelpsomme

     

    
    Takk for din henvendelse.
    
    Det eksisterer dessverre ingen dokumentasjon/manual på dette pr dags dato. Vi har dessverre ikke noe mer informasjon om når dette vil komme.
    
    Med vennlig hilsen 
    
    Frode
    
    

     

    Hvordan pokker er det ikke mulig å ha dokumentasjon på dette? De har jo implementert det i aggregatet! :( 

    Lenke til kommentar
    Del på andre sider

    Jeg mener jeg sjekket mulighetene på flexit før jeg valgte systemair, husker det var begrenset og at systemair hadde flere muligheter. I tillegg var det bare fleksit som kunne regulere på trykk.

    Lenke til kommentar
    Del på andre sider

    Hei igjen,

     

    Her for et par dager siden fikk jeg plutselig en mail fra Flexit. Hadde trodd saken min var lukket og glemt.

    Men til min overraskelse så kom det en mail der de forklarte at nå var dokumentasjonene og og vedlagt.

     

    Jeg selv med rette modbus adresser får jeg ikke noe fornuftig inn i homseer, så jeg er vel nødt til å finne meg en modus-sniffe greie for å se om det er adapteren eller i homseer problemet ligger. Jeg mistenker det første.

     

    Men om andre har den nye Flexit nordic serien og har lyst å prøve seg så legger jeg ved det jeg fikk tilsendt.

     

    Mvh

    Einar

    117989-01_modbus_veiledning.pdf Modbus Nordic Basic.xlsx

    • Like 1
    Lenke til kommentar
    Del på andre sider

    Er temmelig sikker på at jeg så modbus oversikten til Flexit før jeg bestemte meg for Systemair. Ikke at det alene var avgjørende for valget da.

    Fikk ikke lastet ned vedleggene til einarli, men uansett bra å dele erfaringer med flere her!

    Lenke til kommentar
    Del på andre sider

    Er det mulig å styre viftene eksternt via modbus? Eneste jeg finner er å sette hastighet/trykk for hver modus. Kan jo sikkert bruke det kombinert med å tvinge den i rett modus. Skal behovstyre ventilasjonen.
    Noen som har prøvd å sende co2 eller fuktighet til aggregatet via modbus?

    Lenke til kommentar
    Del på andre sider

    Hei, jeg er nå tom for ideer, får ikke til å hente data fra min VTR-500, håper noen kan dytte meg i rette retning videre. Jeg har et eldre apparat enn det som er brukt i guiden her (uten fargeskjerm). Jeg har heller ikke koblingsboksen, men det er en RJ45 Modbus utgang direkte på hovedkortet jeg har koblet meg til med en standard cat5e kabel.

     

    IMG_0370.jpg.613bcf1945d88ae4c01668961b990a6e.jpg

     

    På andre siden av cat5e kabelen har jeg koblet meg på en USR-TCP232-304 kjøpt fra AliExpress ved å bruke pin 4 og 5 for hhv A og B (beskrevet i denne forumposten, post 65). Jeg har fått tilgang til adapteret og endret IP adresse samt satt opp serial porten til å matche det jeg finner på displayet på anlegget (Adresse: 1, Baud-rate: 9600, Paritet: None).

    912439739_Skjermbilde2020-02-22kl_15_12_47.thumb.png.6f3d4cd640cb1f349b559722ef0236d2.png

    Jeg bruker Home Assistant for å koble meg på adapteret, det går forsåvidt fint, men jeg klarer ikke å hente noe data i det hele tatt. Jeg har sikkert ikke samme register som i det siste pdf-dokumentet fra SystemAir, men jeg finner heller ikke noen dokumentasjon på eldre apparat der. Jeg har ved å google funnet en eldre pdf (Modbus for residential units fra 2017) som har andre registeradresser, feks 101 for REG_SPEED_FAN_LEVEL. Jeg har derfor satt opp noen forskjellige adresser i Home Assistant, både fra gammel og ny pdf, men ingen gir data. På adapterens web server kan jeg se at jeg er koblet på, men det er bare data på RX, ingenting på TX. Jeg har også lastet ned Pymodbus for å teste om jeg kan hente data fra en annen klient, men ser ikke ut til at jeg får respons der heller (mulig jeg ikke gjør dette helt riktig, men ser nokså enkelt å greit ut). EDIT: Har også prøvd gjennom Node-Red; får ikke data der heller, enten feil adresser ellers er det ikke data fra villaventen?

     

    2001705225_Skjermbilde2020-02-22kl_15_17_34.thumb.png.6d924868552c59b3c179578d60ba163d.png

     

    Håper noen kan gi meg et lite hint av hva jeg kan prøve nå..

     

     

    IMG_0373.jpg

    MODBUS_FOR_RESIDENTIAL_D24810_USER_MANUAL_EN__A007_.PDF

    Endret av 2jan
    Lenke til kommentar
    Del på andre sider

    Er det noen av dere som behovstyrer ventilasjonen, altså å kjøre opp og ned viftehastighet alt etter behovet for luftutskifting? Typisk etter målinger av co2 og/eller fuktighet.

     

    Jeg regulerer mitt på trykk og ønsker å øke og senke trykket alt etter behovet.

    Lenke til kommentar
    Del på andre sider

    1 minutt siden, bergen77 skrev:

    Er det noen av dere som behovstyrer ventilasjonen, altså å kjøre opp og ned viftehastighet alt etter behovet for luftutskifting? Typisk etter målinger av co2 og/eller fuktighet.

    Ja

    Viftehastighet og varme styres. Jeg har Östberg Heru 160 anlegg med modbus. En egen raspberry pi zero med Home Assistant ligger oppe på aggregatet og kommuniserer ved hjelp av mqtt med en annen Home Assistant enhet som styrer automatiseringen. Settpunkt på temperatur på varme, CO2 nivå og hjemme/borte status er slikt som styrer aggregatet. 

    Lenke til kommentar
    Del på andre sider

    MrE:

    Men da skifter du bare mellom modusene da? Jeg kunne tenkt meg å regulere dette gradvis slik at viftehastighet er lavest mulig uten at det går ut over luftkvalitet.

    Blir jeg nødt til å sette dette i ett av modusene kansje, og tvinge aggregatet til å bruke det moduset? Målet er å ikke bruke disse modusene i det hele tatt men ha kontinuerlig regulering av trykket alt etter behov.

     

    sigvi:

    Jeg skal definitift ikke ha varme ved hjelp av aggregatet, men turtemp kan jo være greit å styre likevel så man har en fornuftig varmeveksling. Samme med luftfuktighet igrunn.

     

    Kan man skrive luftfuktighet og/eller co2 verdier til aggregatet via modbus? Kun for infomasjon skyld tenkte jeg.

    Lenke til kommentar
    Del på andre sider

    For noen dager siden røk reim til rotor på varmeveksler og hadde ikke oppdaget det så fort hvis ikke denne var "automatisert". Ser at Home Assistant 0.106 får støtte for modbus sine binære input registre (er bare coils, holding og analoge registre som er støttet i 0.105) så da skal jeg få alarmer inn i automatiseringen også.

    Endret av stigvi
    Lenke til kommentar
    Del på andre sider

    1 minutt siden, bergen77 skrev:

    Jeg skal definitift ikke ha varme ved hjelp av aggregatet,

     

    Aggregatet har et element på 1700W som jeg bruker aktivt. Normalt settes aggregatets lufttemperatur til 2 grader under det som er panelovners sett-temperatur. Men er det stort behov for varme så settes aggregatets element på fullt. Hele aggregatet med kanaler er innenfor husets isolasjon så dette er 1700W som ikke er tapt. Minuset er at det blir varm luft som legger seg oppunder taket så det brukes kun som en "boost" for å øke romtemperaturen raskere enn det panelovnene klarer alene.

    Lenke til kommentar
    Del på andre sider

    22 minutter siden, bergen77 skrev:

    Er det noen av dere som behovstyrer ventilasjonen, altså å kjøre opp og ned viftehastighet alt etter behovet for luftutskifting? Typisk etter målinger av co2 og/eller fuktighet.

    CO2 er ikke et problem lenger etter at balansert ventilasjon kom på plass, så jeg gir blaffen i å styre etter det.

     

    Men jeg har aktiv forsering av anlegget etter fuktighet på badene. :) 

    Bruke Device History til å hente ut gjennomsnittsfuktighet i går, og hvis fuktigheten er 7% høyere enn dette settes motorene til "High". Når RH synker til under 5% høyere enn snittet, så settes det tilbake til "Normal" (RH blir ganske mye høyere enn snittet, så dette fungerer utmerket).

    Lenke til kommentar
    Del på andre sider

    Stigvi:
    Jeg skal ha vannbatteri som forvarmer kun tilluft mot stue, da kan jeg ha det kjøligere på soverom.

    Med varmepumpe er det ikke ønskelig å bruke varmeelementet.

     

    Moskus:

    Hvilke nivåer har du da? Jeg ønsker å minimere luftutskiftingen men få kontroll på CO2 og luftfuktighet. Luftfuktigheten er vel nede i 30% hos meg, burde nok lagt litt høyere.

    Lenke til kommentar
    Del på andre sider

    På 22.2.2020 den 15.25, 2jan skrev:

    Hei, jeg er nå tom for ideer, får ikke til å hente data fra min VTR-500, håper noen kan dytte meg i rette retning videre.

     

    Et "problem" jeg hadde var at Östberg (produsent av aggregatet mitt) og modbus komponenten i Home Assistant indekserte registrene forskjellig. Register 10 i Östberg sin beskrivelse måtte legges inn som register 9 i Home Assistant.

    Ellers stusser jeg over at jord ikke er koblet til. Kanskje ikke viktig for akkurat dine problemer, men kan allikevel være lurt å ha tilkoblet.
    Du har sjekket polariteten på de to lederene du har koblet til?

    Og jeg stusser også på så høye registeradresser som >12000, men samtidig er det ok med det også.

    Modbus ASCII eller RTU, har du sjekket at du bruker riktig?
     

    Endret av stigvi
    Lenke til kommentar
    Del på andre sider

    Nå kjenner jeg ikke til systemair sin måte å adressere registre på, men hvis de beskriver at noe er på register adresse 40001 så betyr det gjerne holding register 0 i home assistant. Eller register 30005 som er input register 4 i Home Assistant

    PS. Dette er med et stort forbehold om feil. Adressene er kun brukt som eksempler på at det finnes mer enn 1 måte å navngi på. Hvordan gjør systemair det?

    Lenke til kommentar
    Del på andre sider

    1 time siden, bergen77 skrev:

    MrE:

    Men da skifter du bare mellom modusene da? Jeg kunne tenkt meg å regulere dette gradvis slik at viftehastighet er lavest mulig uten at det går ut over luftkvalitet.

    Blir jeg nødt til å sette dette i ett av modusene kansje, og tvinge aggregatet til å bruke det moduset? Målet er å ikke bruke disse modusene i det hele tatt men ha kontinuerlig regulering av trykket alt etter behov.

     

    Kan man skrive luftfuktighet og/eller co2 verdier til aggregatet via modbus? Kun for infomasjon skyld tenkte jeg.

    Ja - skifter bare mellom modusene. Dette fordi jeg ønsker at displayet som er montert i gangen viser hvilken modus aggregatet er på, og ikke bare "Manuell".

     

    Det er egne adresser for å sette RPM på viftene, det er kanskje det som er best å regulere for deg hvis du ønsker proporsjonell regulering i forhold til trykk. Kanskje det går å lage en "stepping profil" som gradvis øker RPM etter behov.

    Da endrer du RPM i en bestemt modus - for eksempel Manuell - og har alltid aggregatet i manuell modus.

     

    Se side 29 i Modbus variable list til Systemair - 2.17 Analog Input values (Temperatures, CO2, RH), der ser du ut som du kan skrive verdiene til aggregatet.

    Lenke til kommentar
    Del på andre sider




    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 en kommentar...

    ×   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.