Modbus ar MQTT namų duomenims: sąžiningas palyginimas
Du visiškai skirtingi būdai duomenims judėti po namus — vienas klausia, kitas pats praneša. Štai kaip rinktis be reklaminio triukšmo.
Kaip pasirinkti: 4 praktiniai žingsniai
Pažiūrėk, kas jau 'kalba'
Jei tavo invertorius, energijos skaitiklis ar šilumos siurblys iš gamyklos jau kalba Modbus kalba, dažnai to pakanka priežasčiai jį naudoti toliau — nereikia keisti jau veikiančio ryšio.
Nuspręsk, kas užduoda klausimus
Modbus yra apklausos modelis — vienas magistralinis įrenginys (master) paeiliui klausia kiekvieno prietaiso pagal tavo nustatytą grafiką. MQTT tai apverčia — prietaisai patys publikuoja duomenis tą akimirką, kai kažkas pasikeičia, per centrinį brokerį.
Pritaikyk modelį savo projektui
Jei kuri savo jutiklių tinklą nuo nulio (ESPHome mazgai, Zigbee2MQTT tiltai), tai natūraliai atitinka MQTT publikavimo stilių. Jei jungiesi prie jau esamos pramoninio tipo įrangos — tai atitinka Modbus 'klausk ir lauk' stilių.
Sujunk abu, o ne rinkis amžiams
Nebūtina visam namui rinktis vieno protokolo. Šliuzas (gateway) gali apklausti Modbus prietaisus ir jų reikšmes perpublikuoti kaip MQTT pranešimus — taip abu gyvuoja kartu.
Kuo iš tikrųjų skiriasi Modbus ir MQTT
modeliai, vienas namų tinklas
Modbus apklausia, MQTT publikuoja — žinant, su kuriuo iš jų dirbi, tampa aišku beveik kiekvienas laidų ir programinės įrangos sprendimas.
Modbus: master klausia, prietaisas atsako
Modbus master paeiliui apklausia kiekvieną prietaisą naudodamas funkcijų kodus — pavyzdžiui, FC03/FC04 registrams skaityti, FC06/FC16 rašyti. Prietaisas niekada nekalba pats, tik atsako į klausimą.
MQTT: prietaisai publikuoja, brokeris platina
MQTT sistemoje prietaisai ('klientai') publikuoja pranešimą temai (topic) centriniame brokeryje tą akimirką, kai pasikeičia jų būsena; visi, kas užsiprenumeravę tą temą, gauna duomenis iš karto, nieko neklausdami.
RTU laidai prieš IP tinklą
Modbus RTU veikia per RS-485 dviejų laidų magistralę, prietaisai sujungti grandine (daisy-chain), su 120Ω terminatoriais abiejuose magistralės galuose ir vienodu perdavimo greičiu visiems prietaisams. Modbus TCP ir MQTT abu naudoja tavo esamą Ethernet ar Wi-Fi tinklą.
Kur kiekvienas yra 'gimtoji kalba' iš gamyklos
Pramoninio tipo įranga — invertoriai, energijos skaitikliai, PLC — Modbus kalba nuo 1979 metų ir dažniausiai tai daro tiesiai iš dėžės. Šiuolaikinės DIY jutiklių ekosistemos, tokios kaip ESPHome ar Zigbee2MQTT tiltai, natūraliai kalba MQTT.
Nei vienas pagal nutylėjimą neturi įjungtos apsaugos
Klasikinis Modbus (RTU ar TCP) bazinėje specifikacijoje neturi autentifikacijos ar šifravimo — bet koks prietaisas magistralėje ar tinkle gali išsiųsti galiojančią komandą. MQTT brokeriai gali turėti naudotojo vardą, slaptažodį ir TLS šifravimą, bet tai reikia susikonfigūruoti pačiam — nei vienas iš jų nėra saugus 'iš dėžutės'.
Ką smarteg.lv siūlo abiem keliams
Kad ir kokiu protokolu kalbėtų tavo prietaisai, štai kas padės juos teisingai prijungti.
- RS-485 kabelis ir jungtys Modbus RTU laidams
- 120Ω terminuojantys rezistoriai magistralės galams
- DIN bėgelio korpusai ir tvirtinimai jutiklių montavimui
- Su ESPHome suderinami jutikliai ir moduliai DIY MQTT sprendimams
- Praktiniai gidai apie laidus, adresavimą ir gedimų paiešką
Dažniausi klausimai
Kas geriau namams — Modbus ar MQTT?
Nei vienas nėra 'geresnis' — jie tinka skirtingiems uždaviniams. Modbus tinka prietaisams, kurie jau iš gamyklos kalba šia kalba (invertoriai, skaitikliai); MQTT tinka jutiklių tinklui, kurį kuri pats, pavyzdžiui su ESPHome ar Zigbee2MQTT.
Ar galima viename name naudoti ir Modbus, ir MQTT?
Taip — dažnas sprendimas yra šliuzas, kuris apklausia Modbus prietaisus (RTU ar TCP) ir jų registrų reikšmes perpublikuoja kaip MQTT temas, taip visi duomenys atsiduria vienoje vietoje.
Kodėl Modbus reikia master, kuris nuolat klausia?
Modbus yra apklausos protokolas — prietaisai yra 'slave', kurie atsako tik kai jų paklausiama. Tai daro magistralę nuspėjamą, bet reiškia, kad duomenys yra tokie šviežūs, kokia šviežia paskutinė apklausa.
Ar sunku teisingai atlikti Modbus RTU laidus?
Pagrindinės klaidos paprastos, bet griežtos — visi prietaisai RS-485 magistralėje turi turėti vienodą perdavimo greitį, unikalų adresą (1-247) ir 120Ω terminatorius tik dviejuose fiziniuose magistralės galuose, o ne prie kiekvieno prietaiso.
Ar MQTT pakankamai saugus namų automatikai?
Pats MQTT pagal nutylėjimą neturi įjungtos apsaugos, bet brokeriai dažniausiai palaiko naudotojo vardo/slaptažodžio autentifikaciją ir TLS šifravimą — kaip ir su Modbus, saugumą reikia susikonfigūruoti pačiam, jis neateina nemokamai.
Nesi tikras, kuris protokolas tinka tavo sistemai?
Apžiūrėk laidų ir jutiklių pasiūlą mūsų parduotuvėje arba paskaityk susijusius gidus žemiau, prieš pasirenkant protokolą.