
MQTT – IoT ziņojumapmaiņas protokols
Mūsdienu IoT publicēšanas-abonēšanas ziņojumapmaiņas mugurkauls. Kā MQTT iekļaujas viedajā mājā un ēku automatizācijā kopā ar KNX, DALI un Home Assistant.
Kas ir MQTT?
MQTT (Message Queuing Telemetry Transport) ir viegls publicēšanas-abonēšanas ziņojumapmaiņas protokols, kas sākotnēji tika izstrādāts satelītu savienojumiem 1990. gados (IBM/Eurotech). Šodien tas ir dominējošais protokols IoT ierīču un serveru saziņai – no ESP8266 sensoriem līdz rūpnieciskiem PLC.
Atšķirībā no KNX (kopnes bāzēts) vai Modbus (meistars/vergs), MQTT izmanto brokera modeli: ierīces publicē ziņojumus par tēmām centrālajā brokerī (piem., Mosquitto), un jebkurš abonents, kas klausās šo tēmu, saņem ziņojumu. Nav tiešas ierīces-ierīcei saziņas.
Pamatjēdzieni:
- Brokeris: Centrālais serveris, kas maršrutē visus ziņojumus (Mosquitto, HiveMQ, EMQX). Viedajā mājā = darbojas uz HA servera vai atsevišķa Pi.
- Tēma: Hierarhisks virknes ceļš, piem.,
home/livingroom/light/state - Publicēt: Ierīce nosūta ziņojumu uz tēmu
- Abonēt: Klients klausās tēmu un saņem visus tai publicētos ziņojumus
- Saglabāts ziņojums: Brokeris glabā pēdējo vērtību – jauni abonenti to saņem uzreiz
- QoS 0/1/2: Ne vairāk kā vienreiz / Vismaz vienreiz / Tieši vienreiz piegādes garantija
MQTT specifikācija
| Parametrs | Vērtība |
|---|---|
| Standarts | ISO/IEC 20922 (MQTT 3.1.1), MQTT 5.0 |
| Transports | TCP/IP (ports 1883) vai TLS (ports 8883) |
| Topoloģija | Zvaigzne (brokera centrēta) |
| Virziens | Divvirzienu publicēt/abonēt |
| Datu saturs | Jebkurš binārs/teksts – parasti JSON vai vienkārša vērtība |
| Tēmas atdalītājs | / (slīpsvītra), piem., home/floor1/room2/temp |
| Aizstājējzīme (viena līmeņa) | + (plus), piem., home/+/light |
| Aizstājējzīme (vairāku līmeņu) | # (hash), piem., home/# |
| QoS 0 | Aizdedzi un aizmirsti – nav piegādes garantijas |
| QoS 1 | Vismaz vienreiz – saņēmējs apstiprina (var dublēties) |
| QoS 2 | Tieši vienreiz – 4-pakāpju rokasspiediens |
| Saglabātie ziņojumi | Brokeris glabā pēdējo ziņojumu katrai tēmai |
| Gribas ziņojums | Brokeris nosūta, ja klients negaidīti atvienojas |
| Autentifikācija | Lietotājvārds/parole, TLS sertifikāti |
| Ports (nešifrēts) | 1883 |
| Ports (TLS) | 8883 |
MQTT viedajā mājā – ekosistēma
MQTT ir kopējā valoda DIY un daļēji profesionālai viedajai mājai. Vairāki lieli projekti to izmanto kā transporta slāni:
Zigbee2MQTT
zigbee2mqtt.ioPārtulko Zigbee radio telegrammas uz MQTT. Pievienojiet Zigbee koordinatoru (CC2530, SkyConnect) HA, palaidiet Zigbee2MQTT, un 2500+ Zigbee ierīces parādās kā MQTT tēmas. Nav nepieciešams Philips Hue centrmezgls.
Tasmota / ESPHome
tasmota.github.ioAtvērtā pirmkoda programmatūra ESP8266/ESP32 moduļiem. Ievietojiet lētu Sonoff releju ar Tasmota, un tas kļūst par MQTT publicējošu viedo slēdzi. ESPHome ir HA dzimtā.
Home Assistant MQTT integrācija
home-assistant.ioHA var publicēt un abonēt jebkuru MQTT tēmu. Konfigurējiet caur YAML vai UI. MQTT Discovery automātiski izveido HA entītijas, kad ierīce paziņo par sevi caur noteiktu tēmu.
Node-RED
nodered.orgPlūsmas bāzēta vizuālā programmēšana, kas abonē MQTT tēmas, pielieto loģiku un publicē uz citām tēmām vai KNX/HTTP galapunktiem. Bieži izmanto kopā ar HA sarežģītai maršrutēšanai.
WirenBoard
wirenboard.comKrievu DIN-sliedes kontrolieris izmanto MQTT kā primāro protokolu. WirenBoard publicē visus sensoru rādījumus un pieņem vadību caur MQTT tēmām. Darbojas ar HA un Node-RED.
Tēmu struktūras piemēri
MQTT tēmu koka piemērs (viedā māja)
home/ ├── livingroom/ │ ├── light/state "ON" / "OFF" │ ├── light/brightness "75" (0-100%) │ ├── light/color_temp_k "3000" │ ├── temperature "21.5" │ └── occupancy "true" / "false" ├── kitchen/ │ ├── light/state "ON" │ └── humidity "45" ├── bedroom/ │ ├── blind/position "75" (0=open, 100=closed) │ └── thermostat/setpoint "20.5" └── panel/ ├── meter/power_w "1247" └── meter/energy_kwh "1852.3"
MQTT vs KNX – kad lietot kuru
| Aspekts | MQTT | KNX TP |
|---|---|---|
| Infrastruktūra | IP tīkls (Ethernet/WiFi) | Īpašs TP kopnes kabelis |
| Uzticamība | Atkarīga no tīkla + brokera darbības laika | Determinēta, kopne vienmēr ieslēgta |
| Aizkave | Milisekundes (IP) + brokera aprites laiks | <50ms (tieša kopnes telegramma) |
| Mērogojamība | Neierobežota (horizontāla mērogošana) | 255 adreses uz līniju, max 15 līnijas |
| Iestatīšanas sarežģītība | Zema (brokeris + publicēt/abonēt) | Augsta (ETS programmēšana, adresēšana) |
| Aparatūras izmaksas | Zemas (ESP8266 = €2) | Augstas (KNX izpildmehānisms = €50–200+) |
| Sertifikācija | Nav nepieciešama | KNX sertificēts + ETS licence |
| Darbojas bez servera | Brokerim jābūt ieslēgtam | Vietējā kopne darbojas bez servera |
| Labākais lietojums | Sensoru dati, IoT integrācija, elastīgs DIY | Drošībai kritiska vadība, komerciāla ēka |
| Tipisks lietotājs | Izgatavotājs, HA integrētājs, IoT izstrādātājs | Elektroinženieris, DALI/KNX speciālists |
Īstā atbilde: Labi izstrādātā premium instalācijā KNX apstrādā aparatūras vadību (pārslēgšana, aptumšošana, žalūzijas), bet MQTT/IP apstrādā sensoru datu apkopošanu un programmatūras integrācijas (enerģijas uzraudzība, klātbūtne, laikapstākļi). Tie ir papildinoši – nevis konkurējoši.
KNX + MQTT integrācijas iespējas
Home Assistant (KNX + MQTT integrācijas)
Gan KNX, gan MQTT integrācijas darbojas HA. Automatizācijas var nolasīt MQTT sensoru vērtības un aktivizēt KNX izpildmehānismus – vai otrādi. Nav nepieciešams papildu aparatūra.
knx-mqtt-bridge (atvērtais pirmkods)
Atsevišķs Node.js pakalpojums, kas divvirzienu režīmā savieno KNX grupu adreses ar MQTT tēmām. Katra KNX GA tiek kartēta uz MQTT tēmu. Darbojas uz Pi vai Docker.
Node-RED KNX + MQTT mezgli
node-red-contrib-knx + MQTT mezgli. Vizuāla plūsmas programmēšana: MQTT tēma transformācija KNX telegramma. Piemērots sarežģītai nosacījumu maršrutēšanai.
WirenBoard WB-MGW vārteja
WirenBoard vārtejas iekārta var tulkot starp RS-485/Modbus ierīcēm un MQTT. Tad HA nolasa MQTT un publicē uz KNX. Izplatīts Austrumeiropā.
KNX + MQTT arhitektūra, kas izstrādāta jūsu projektam
Mēs integrējam MQTT sensoru tīklus ar KNX vadības paneļiem – Zigbee2MQTT, enerģijas skaitītāji, HVAC sensori – visi vienotā sistēmā.
Pieprasīt piedāvājumu