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



    Sliter med å få kontakt med gateway..

     

    Ser den i Unifi Controller, men den har ikke fått tak i IP

    image.thumb.png.0fee7073146931eb958824b66db53be2.png

     

    Bakpå står det at standard IP er 192.168.0.7, så kanskje problemet er at den ikke får det fra min router som tildeler på 192.168.1-range?

     

    Har forsøkt å gi den fast IP fra Unifi, men ser ikke ut til at den "tar" det.

     

    Finner den heller ikke med scanner.

     

    EDIT: Av frykt for å fucke til noe uforklarlig på nettverket ved å endre til .0.1/24 så gikk jeg heller for å koble gateway til en gammel router, koblet med på den med laptop og endret der range til .0.1/24 før jeg på gateway endret til fast IP på .1.1/24 range som gjør at jeg nå får tak i den også på det vanlige nettverket mitt :)

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

    Noen som kan hjelpe meg i gang med å legge til devicer? Jeg forstår ikke helt hvordan jeg skal lese dokumentet med adresser..

     

    Det er jo flere verdier med adresse "201" for eksempel. Det står noe innledningsvis om konvertering til globale adresser, men det er jeg for dum til å forstå tydeligvis..

     

    Modbus dokumentet til Nilan finnes her: https://www.nilan.dk/Files//Filer/Download/French/Documentation/Guide de montage/Modbus CTS 602/MODBUS_CTS-602_2.30_Installation-and-user-guide.pdf

     

    Eksempelvis hva er adressen for relativ fuktighet som står som input register med adresse 221. Hadde trodd jeg fikk den opp med enten adresse 221 eller 30221, men ingen av de gir resultat. 

     

    image.thumb.png.2e96437ff0f0532ea2c72c7d05a5c27d.png

     

    image.thumb.png.1def5ff6cf2ef6b42ce4a4f57ea83fc2.png

     

    image.thumb.png.59bbd6fbb81e7c1feae13ed9f1373de5.png

    image.png.18a7a933d643d3509e26cc1e5ae450fc.png

    image.png

    Lenke til kommentar
    Del på andre sider

    Er det eventuelt ander forslag til hvorfor jeg ikke får data? 

     

    Testing av hoved-enheten gir i utgangspunktet positivt resultat, men er vel ingen test av at gateway har kontakt med aggregatet..

    image.png.d944b822dd41452c610fe3d73a2e428a.png

    Endret av Fredrick
    Lenke til kommentar
    Del på andre sider

    12 timer siden, Fredrick skrev:

    Finnes også som holding register lenger ned i dokumentet, men de blandes kanskje ikke?

    Godt spørsmål. Jeg trodde at en adresse bare kunne forekomme en gang, men jeg er ingen Modbus-ekspert.

     

    10 timer siden, Fredrick skrev:

    Testing av hoved-enheten gir i utgangspunktet positivt resultat, men er vel ingen test av at gateway har kontakt med aggregatet..

    Passed connectivity test tror jeg er litt for enkel til at den "garanterer" resultater.

    Lenke til kommentar
    Del på andre sider

    9 minutes ago, bergen77 said:

    Det kan jo tenkes at ett av registrene brukes ved skriving og ett annet ved lesing.

     

    Står i dokumentet at alle inputs også kan legges til som holding, bare ved å legge til offset på 10 000.

    Lenke til kommentar
    Del på andre sider

    1 minutt siden, Fredrick skrev:

    Står i dokumentet at alle inputs også kan legges til som holding, bare ved å legge til offset på 10 000.

    .... da har du svaret på det, iallfall. :) 

    Lenke til kommentar
    Del på andre sider

    Har prøvd diverse offsets, uten hell..

     

    Står at input registers har adresser 30001-39999, så da tenkte jeg kanskje at input fra tabellen som er benevnt "222" (CO2) burde blitt 30222, men får ikke noe data der heller

    Lenke til kommentar
    Del på andre sider

    17 minutes ago, MrE said:

    Bruk egnet verktøy for å scanne/teste modbus. Ikke bruk HS sin modbus-plugin, denne søker ikke og gir ikke feilmelding. Legg det inn i HS når du vet du får tilbake verdien du forventer.

     

     

    Takk for bra tips.

     

    Jeg får timeout når jeg prøver å scanne på denne adressen. Er det noe jeg gjør feil? Det er samme IP som jeg kommer inn på gateway i nettleser.

     

    Har prøvd ulike Slave ID (standard 255, 1 og 11). Ulike offsets og ulik length. Jeg har også oppdatert port under settings til den samme som i gateway web interface.

     

    Screenshot_20200311-124251.thumb.jpg.ed0bb04b095eb6c67e9aaff6b9327eee.jpg

    Lenke til kommentar
    Del på andre sider

    1 time siden, Fredrick skrev:

     

    Takk for bra tips.

     

    Jeg får timeout når jeg prøver å scanne på denne adressen. Er det noe jeg gjør feil? Det er samme IP som jeg kommer inn på gateway i nettleser.

     

    Har prøvd ulike Slave ID (standard 255, 1 og 11). Ulike offsets og ulik length. Jeg har også oppdatert port under settings til den samme som i gateway web interface.

     

    (bilde)

     

    Har ikke prøvd mobil-versjonen så er på tynn is.

    Men prøv å sett slave id til 30

    Function 0x03

    Offset 221

     

    Lenke til kommentar
    Del på andre sider

    3 hours ago, Moskus said:

     

     

    image.png

     

    Takk, det ser altså ganske likt ut hos deg.

     

    2 hours ago, MrE said:

    Har ikke prøvd mobil-versjonen så er på tynn is.

    Men prøv å sett slave id til 30

    Function 0x03

    Offset 221

     

    Testet Windows versjonen nå, med samme resultat. Prøvde også med dine verdier, men får ikke opp noe mer dessverre

     

    Appene til Windows og mobil er forøvrig identiske.

     

     

    EDIT: har også sjekket fysiske tilkoblinger og kan ikke se noe galt. Det er altså et panel koblet til A2/B2 også har jeg koblet med til A1/B1 og G med gateway.

     

     

    Endret av Fredrick
    Lenke til kommentar
    Del på andre sider

    2 minutter siden, Fredrick skrev:

     

    Takk, det ser altså ganske likt ut hos deg.

     

     

    Testet Windows versjonen nå, med samme resultat. Prøvde også med dine verdier, men får ikke opp noe mer dessverre

     

    Appene til Windows og mobil er forøvrig identiske.

     

    Okei, har såvidt brukt mobil versjonen, syns windows var mer oversiktlig. På windows kan du bruke discover for å finne korrekt slave id. Dernest kan den scanne adresser i en gitt funksjon.

    Discover viser device (slave id) og hvilke funksjoner den støtter.

    I scanner fyller du inn i Offset(1) som er adresse oppgitt av aggregat leverandør. Integer16(2) viser avlest verdi.

    image.png.a4e63d9f6a6d3430ca2ae8b1315467f6.png

     

     

    image.png

    Lenke til kommentar
    Del på andre sider

    15 minutes ago, MrE said:

    Okei, har såvidt brukt mobil versjonen, syns windows var mer oversiktlig. På windows kan du bruke discover for å finne korrekt slave id. Dernest kan den scanne adresser i en gitt funksjon.

     

     

    Her har jeg visst fått tak i feil versjon. De har tydeligvis "appen" som jeg kjørte først i windows store, men så lå den en exe fil på nettsiden deres også. Når jeg lastet ned exe filen ser jeg de samme bildene som du har.

     

    Ser derimot som om resultatet er det samme.. Nå har jeg også forsøkt med både port 8234 og port 502, med timeout over hele fjøla

     

    image.thumb.png.e6c92f0ad85e6d3884892ee56abbcce0.png

     

    Her er innstillingene mine i gateway. Skal sammenfalle med manualen fra Nilan.

     

    image.thumb.png.7ca81aa462b011204c8c9b43ddaeed14.png

     

    Endret av Fredrick
    Lenke til kommentar
    Del på andre sider

    Dette skulle ikke være lett.. 

     

    Jeg leser det som at gateway får data fra aggregatet ettersom telleren for RX øker når den står på.

     

    Jeg får også kontakt med gateway via IP direkte. 

     

    Men så timer det ut mot Modbus TCP-server. Med mistanke om at det kanskje skyldtes brannmur eller andre router-hindringer har jeg forsøkt det jeg kan av åpninger, jeg har også forsøkt å gi den ny IP. Automatisk IP, endret porter osv. Fremdeles samme resultat.

     

    EDIT: har også forsøkt å koble fra det andre panelet som er koblet til på aggregatet (medfølgende styringspanel), men det er samme greia.

    Endret av Fredrick
    Lenke til kommentar
    Del på andre sider

    Vel.

     

    Etter mye "hacking" idag har det vært oppturer og nedturer.. Etter tips på HS-forumet satt jeg "Parity: Even" og fikk da ikke lenger timeout feilene. Jeg hadde kontakt og kunne hente ut noen verdier. Med scanneren finner jeg ut at en del verdier er forskjøvet med 1 adresse fra manualen, men det er håndterbart.

     

    Tester så om jeg kan styre den og legger til Holding Registers som under. 

     

    image.thumb.png.d36c6ac09f9edbabc7beb93e9d6124c5.png

     

    Nå har jeg altså klart å skru den av, men klarer faen ikke få den på igjen. Samme hvilken verdi jeg styrer den bort fra så setter den ikke igang. Har også prøvd å koble fra gatewayen og bruke det medfølgende kontrollpanelet, men det er samme problem. Trykker på start, men da får jeg bare "Status venter" som i følge manualen kun brukes ved energisparemodus, som jeg ikke har aktivert.

     

    Lenke til kommentar
    Del på andre sider

    Yes!

     

    Etter en hel ettermiddag fant jeg heldigvis ut av det! Før jeg forsto forskyvningen på 1 verdi endret jeg adresse 1000 (altså det jeg trodde var verdi 1001). Det er en verdi som ikke er laget for å endre under bruk, men en instilling for om modbus-panelet styrer et VPL 15 M2 aggregat som i mitt tilfelle, et VPL 10 aggregat, er i testmodus eller en service modus. Jeg klarte ikke kjøre noen form for fabrikknullstilling, men etter å ha manuelt prøvd meg frem med ulike verdier for denne adressen fant jeg tilbake til at den skulle være 4 for mitt aggregat.

     

    Har også opplevd en del ustabilitet enten mot gateway, eller mellom gateway og aggregat som jeg ikke helt har funnet ut av. Tror jeg skal øke poll interval etterhvert som jeg legger til adresser, og har også økt delay between each adress poll for å unngå korking. Likevel er det en del error i loggen som dette:

     

    Quote
    mar-12 21.49.51   Modbus Error I'm not going to poll any remaining registers on this gateway as it seems there is a communication issue.
    mar-12 21.49.51   Modbus Error Read error for Temperatur panel T15
    mar-12 21.49.51   Modbus Error Error in Read: Response was not of expected transaction ID. Expected 151, received 149.
    mar-12 21.49.51   Modbus Error Error in ReadValue: Response was not of expected transaction ID. Expected 151, received 149.
    mar-12 21.49.21   Modbus Error I'm not going to poll any remaining registers on this gateway as it seems there is a communication issue.
    mar-12 21.49.21   Modbus Error Read error for Temperatur panel T15
    mar-12 21.49.21   Modbus Error Error in Read: Response was not of expected transaction ID. Expected 148, received 147.
    mar-12 21.49.21   Modbus Error Error in ReadValue: Response was not of expected transaction ID. Expected 148, received 147.

     

     

    Noen tips? Det virker av og til, av og til ikke ser det ut som.

    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.