Протокол MQTT
MQTT за умния дом: един контракт, много уредби и без облак
Който говори home/v1, вече е в системата.
Какво е готово в контракта, какво липсва за реален broker и как се включва ваше устройство.
Накратко
MQTT е лек протокол за публикуване и слушане: уредбата публикува състоянието си в тема, сървърът го записва и прилага правилата. HoumeOS описва дома си с контракт home/v1 — състояние, команди и събития за всяка уредба. Панелът и симулацията вече говорят по него; broker-ът с истинските уредби предстои.

Защо MQTT е езикът на дома
MQTT е стар, малък и ясен: има broker, има теми, всеки публикува и всеки слуша. Той не иска облачен акаунт, не държи сесии и не прави уредбата зависима от приложението на производителя. За нас той е не просто транспорт, а договор: който го спазва, влиза в същия екран, със същите права и същата история.
- Публикуване и слушане по теми, без директна връзка между уредите
- Задържани съобщения: новият клиент вижда последното състояние веднага
- Всеки език за програмиране има MQTT клиент — драйверът е малка част
Контрактът home/v1
Контрактът е дефиниран в код и описва уредбата като три неща: състояние, команда и събитие. Темите за състояние носят наличност и описание на уредбата, темата за режим носи глобалния режим на дома, командите и събитията си имат отделен път. Интеграционният панел показва същия контракт, за да не търсите документацията на сляпо.
Какво работи днес
Симулацията минава по същия път като реалните уредби, затова интерфейсът, правилата и журналът вече са тествани с контракта. Киоскът говори със сървъра през HTTP и SSE поток с токен за достъп, а всяка команда минава през правата, потвърждението за критичните действия и аудита. Това е реалният днес път на данните — без broker отвън.
Какво предстои: broker-ът с истински уредби
Кодът за връзка с реален broker съществува, но MQTT пакетът не е в зависимостите на проекта и не е тестван с брокер. Следващата стъпка е broker в локалната мрежа, по желание с TLS, после откриване на уредби и първите интеграции. Докато това не е направено, не казваме „включете вашия MQTT уред днес“.
Как се включва ваше устройство
От страната на уредбата се иска само контрактът: публикувайте състояние по темата на устройството и приемайте команди от него. За производители без обратен път има режим само за четене — уредбата се показва, но командите не се обещават. Има симулационен режим без хардуер и тествано ядро, затова драйверът се разработва без обект.
Какво работи днес и какво предстои
Не представяме предстоящо за налично. Списъкът съвпада с пътна карта на платформата.
Работи днес
- Контрактът home/v1: състояние, команди и събития, дефинирани в кода
- Интеграционен панел, който показва контракта и топиките
- Симулация, която говори по същия път и тества правилата с него
- HTTP+SSE фасадата към киоска с токен, права, потвърждения и аудит
Скоро
- MQTT пакетът в зависимостите и broker в локалната мрежа
- Тест с реален broker: уредбата променя състояние, а спреният broker дава статус и известие
По-нататък
- Откриване на уредби в мрежата и TLS по желание
- Външни зарядни по OCPP и HTTPS отдалечен достъп
Често задавани въпроси
Има ли готов MQTT broker в HoumeOS?
Не е готов. Готово е описанието: топиките home/v1, формата на състоянието и на командите, и панелът, който показва контракта. Broker-ът, към който истинските уредби ще се качат, е следващата стъпка. Днес същият контракт се използва от симулацията, затова интерфейсът и правилата вече са тествани с него.
Каква е разликата между HTTP+SSE и MQTT?
Те са на две различни места. MQTT е вътрешният език между уредбите и сървъра; HTTP и SSE потокът са фасадата, през която киоскът чете състоянието и изпраща команди. Киоскът не се нуждае от MQTT клиент, а уредбите не се нуждаят от браузър — затова двете са разделени.
Как изглежда един топик?
По темата на устройството: темата за състояние носи наличност и описание на уредбата, темата за команда носи исканото действие, темата за събитие носи промените, които системата отбелязва. Глобалният режим на дома си има собствена тема със задържано съобщение, за да го вижда всеки нов клиент.
Мога ли да пращам команди отвън?
Днес отвън говорите със сървъра, не с broker-а: командите минават през HTTP фасадата с токен за достъп, минават през правата и потвърждението за критичните действия и оставят следа в журнала. Когато реалният broker е готов, същият път ще може да се използва и от външни MQTT клиенти.
Как се пази сигурността на топиките?
Всичко остава в локалната мрежа: адресът на сървъра е постоянен и се пази в настройките, достъпът е с токен, а потребителските права и ПИН кодът се проверяват на сървъра. При реален broker е предвиден и TLS по желание — не като задължителна бариера, а като възможност за по-големи инсталации.
Показваме системата на жив екран
Демонстрацията е с вашия въпрос: кои уредби, кои протоколи и какви сценарии искате.