Добавлен локальный веб-интерфейс и распиновка в README
Плата поднимает страницу + JSON API (/api/state, /api/command) на порту 80
для наблюдения и управления актуаторами независимо от MQTT/Laravel.
Команда с веб-UI публикует тот же ack в devices/{id}/ack, что и MQTT-команда,
поэтому device shadow платформы не расходится с реальным состоянием.
Включается/выключается флагом ENABLE_WEB_UI в config.h.
В README добавлены ASCII-схема подключения DHT22/реле и раздел про сборку
через arduino-cli (включая обходной путь для проблемы с правами на
~/Documents/Arduino на macOS).
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
|
||||
// Подключение к mosquitto, подписка на devices/+/commands, диспетчеризация
|
||||
// команд в devices.cpp и публикация ack. См. протокол в README.md.
|
||||
@@ -10,3 +11,10 @@ void mqttLoop();
|
||||
|
||||
// Публикует одно показание телеметрии в devices/{deviceId}/telemetry.
|
||||
void mqttPublishTelemetry(const String& deviceId, const String& sensorType, double value);
|
||||
|
||||
// Публикует ack {"state": ...} для deviceId. Используется и обработчиком
|
||||
// MQTT-команд, и веб-интерфейсом — команда, отданная локально через веб-UI,
|
||||
// должна так же обновлять device shadow платформы (Redis), как и команда
|
||||
// из device-control-service, иначе состояние в UI Laravel разойдётся с
|
||||
// реальным железом.
|
||||
void mqttPublishAck(const String& deviceId, JsonDocument& state);
|
||||
|
||||
Reference in New Issue
Block a user