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

Mini-guide: Hvordan bruke Modbus (med HomeSeer)


Moskus

Anbefalte innlegg

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

 

 


Vis full oppføring

  • Like 1
Lenke til kommentar
Del på andre sider

  • 3 uker senere...

Takk for god gjennomgang. Jeg vurderer og etablerer et trådløst modbus nettverk ved siden av zwave. Regner med å basere dette på Xbee-modulene. Dette for enklere å kunne ta i bruk low cost cpu-kort og modbus Io-moduler til forskjellige oppgaver i huset. 

Lenke til kommentar
Del på andre sider

Tusen takk @Moskus

Har hatt problemer med å få dette til å funke, men ser nå at det ikke er så rart.

Jeg var i kontakt med Systemair og fikk tilsendt modbus dokumentasjon på mitt anlegg, men fikk det ikke til å fungere.

Men når jeg brukte verdiene i PDF'en du la ut, så fungerte det med en gang.

Kan se ut til at de ikke har helt kontroll selv ?

 

MEN.. det er en ting jeg ikke får til. Det er å endre setpunkt på temperaturen.

image.thumb.png.aa10b547449743315a7205c7e9bbae53.png

Kunne du tatt en screenshot av Device Graphics på denne? :)


 

Lenke til kommentar
Del på andre sider

@JohnMartin Fordi da kan han lage til forsert(økt) avtrekk ved dusjing, bading, klestørk, etc. og forsert tilluft ved vedfyring, bruk av kjøkkenventilator, bruk av sentralstøvsuger, etc.

Det er ikke mulig om de to "følger" hverandre slavisk.

Helt vanlig å gjøre det slik i den Smarrthusverden jeg har vert borti. (Knx)

Lenke til kommentar
Del på andre sider

9 hours ago, Jarle F said:

@JohnMartin Fordi da kan han lage til forsert(økt) avtrekk ved dusjing, bading, klestørk, etc. og forsert tilluft ved vedfyring, bruk av kjøkkenventilator, bruk av sentralstøvsuger, etc.

Det er ikke mulig om de to "følger" hverandre slavisk.

Helt vanlig å gjøre det slik i den Smarrthusverden jeg har vert borti. (Knx)

 

Ja, kan se behovet for høyere tilluft enn avtrekk.

Men øker man avtrekket pga dusj, klestørk etc., så må man jo også øke tilluften, ellers så vil man jo bare få et stort undertrykk i huset som eventuelt drar inn luft igjennom sprekker og åpninger. 

Hvis jeg kjører avtrekk høyere enn tilluft, så får jeg såpass undertrykk i huset at minstejenta hadde problemer med å åpne ytterdøra. ?

 

Har bare kjørt ventilasjonen manuelt på aggregatet frem til nå, men må vel sikkert tenke litt nytt nå når jeg har fått det koblet opp mot huset. :)

 

Lenke til kommentar
Del på andre sider

På 14.6.2019 den 20.48, JohnMartin skrev:

Også nysgjerrig på hvorfor du kjører extract og supply fan hver for seg?
Ikke greit at de er på samme nivå for å opprettholde balansen? 

... fordi de er hver for seg? Er det en måte å sette dem felles på?

Lenke til kommentar
Del på andre sider

5 hours ago, Moskus said:

... fordi de er hver for seg? Er det en måte å sette dem felles på?

Adresse 1131 styrer de i en gruppe. Som om du skulle gjort det direkte på skjermen på aggregatet. 

 

5 hours ago, Moskus said:

Hmmm! Når du sier det virker den ikke her heller... må undersøke.

?

Endret av JohnMartin
Lenke til kommentar
Del på andre sider

Da er det sikkert en innstilling som er satt som sier at de skal kjøre parallelt, for det står vitterlig "Supply Air Fan" (se også beskrivelsen til høyre). Linja under er EAF, dvs. Extract Air Fan.

 

image.png

Lenke til kommentar
Del på andre sider

36 minutes ago, Moskus said:

Da er det sikkert en innstilling som er satt som sier at de skal kjøre parallelt, for det står vitterlig "Supply Air Fan" (se også beskrivelsen til høyre). Linja under er EAF, dvs. Extract Air Fan.

 

image.png

 

Spørs det, ja.

Skal ikke protestere på det du sier, når jeg så begge ble endret, så tenkte jeg ikke noe mer over det. ?

Skal prøve å legge til 1132 også, og se om jeg får noen andre utslag på viftene når jeg bruker den.

 

Edit:

etter rask testing, så ser jeg at 1132 ikke gir noe endring hos meg. 1131 som styrer både avtrekk og tilluft. Status endres også på display når jeg bruker 1131. Men kan jo være noe innstillinger som gjør dette.

Men 1132 svarer/endres når jeg prøver, men skjer bare ikke noe med viftene.

Endret av JohnMartin
Lenke til kommentar
Del på andre sider

 

 

På 16.6.2019 den 11.30, Moskus skrev:

Hmmm! Når du sier det virker den ikke her heller... må undersøke.

Vanskelig å se hvordan du har satt det opp, men det er viktig at settpunkt er satt opp med Function code 6 (eller 16 om du skal skrive flere samtidig). 

litt avhengig av hvordan pluginen fungerer, er det mulig du må både lese og skrive mot samme holding adressen. Dette gjøres for å få med hvis noen endrer i panelet på aggregatet.

 

Typisk måte å gjøre dette på er:

1.Ved endring i SP fra homeseer -> Skriv endring til aggregat. 

2.Les endring fra aggregat

 

man vil da ha kontroll på at endringen er oppdatert i begge ender.

 

Der er iallefall slik jeg må gjøre det når jeg programmerer modbus i PLS'ene på jobb. 

Kan som sagt være innebygget funksjon i pluginen, men det vet jeg ikke.

 

 

Se forøvrig liste over de forskjellige funksjonskodene som er brukt i modbus under.

 

image.png.7b13d33839035023267902eb17955b6f.png

Lenke til kommentar
Del på andre sider

Kanskje et dumt spørsmål, men hvis jeg ønsker å koble til mer utstyr. 

Er det da bare å koble ledningene til samme interface. Og så vil enhetene løse kommunikasjonen ved adressen som settes?

Eller trenger man 1 interface for hver enhet man vil koble til?

Lenke til kommentar
Del på andre sider

Sitat

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.

Ved sammenkoble parret forsvinner vel hovedfordelen med å bruke revolvert-kabel? Tverrsnitt er vel ikke et tema opp til 1200m med Cat 6 kabel og rs485. Ikke at jeg tror du vil merke forskjell i et hus, men prinsippielt. 

 

17 timer siden, JohnMartin skrev:

Kanskje et dumt spørsmål, men hvis jeg ønsker å koble til mer utstyr. 

Er det da bare å koble ledningene til samme interface. Og så vil enhetene løse kommunikasjonen ved adressen som settes?

Eller trenger man 1 interface for hver enhet man vil koble til?

Rs485 skal støtte multidrop, altså at du kobler mer utstyr i parallell. Men det må være samme spesifikasjoner (baud rate, pairity, stop bit, og forskjellig adresse)

  • Like 1
Lenke til kommentar
Del på andre sider

18 minutes ago, Holmis said:

Rs485 skal støtte multidrop, altså at du kobler mer utstyr i parallell. Men det må være samme spesifikasjoner (baud rate, pairity, stop bit, og forskjellig adresse)

 

Det var en vesentlig detalj, ja. :)

Tror ikke det var samme baud rate, bare samme pairity og stop bit.

Kan man endre baud rate eller må det være slik det er fra fabrikk?

Lenke til kommentar
Del på andre sider

9 timer siden, Holmis skrev:

Ved sammenkoble parret forsvinner vel hovedfordelen med å bruke revolvert-kabel?

Jepp. Men strekket er kort, så det er helt uinteressant. Som jeg sa et annet sted kunne jeg brukt binders uten at det gjorde noe forskjell. :) 

 

9 timer siden, JohnMartin skrev:

Tror ikke det var samme baud rate, bare samme pairity og stop bit.

Kan man endre baud rate eller må det være slik det er fra fabrikk?

Hvis det er samme parity og stopbit, kan du prøve å redusere hastigheten til den laveste felles-hastigheten. Men vær oppmerksom på at 9600 kan være litt for treigt for et nytt Systemair-aggregat. Visstnok.

Lenke til kommentar
Del på andre sider

Aha. RS485 tilsier jo bare at kommunikasjonen er jo vanlig å bruke for seriell kommunikasjon, akkurta som RS232. Men det betyr ikke at det er snakk om Modbus. Det kan jo likevel være at du kan lese og skrive til den på et fornuftig vis, men da trenger du litt mer info om kommunikasjonen.

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