Добавлен локальный веб-интерфейс и распиновка в 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:
@@ -19,7 +19,7 @@ static String deviceIdFromCommandTopic(const String& topic) {
|
||||
return topic.substring(8, topic.length() - 9); // strip "devices/" and "/commands"
|
||||
}
|
||||
|
||||
static void publishAck(const String& deviceId, JsonDocument& state) {
|
||||
void mqttPublishAck(const String& deviceId, JsonDocument& state) {
|
||||
JsonDocument ackDoc;
|
||||
ackDoc["state"] = state.as<JsonObject>();
|
||||
|
||||
@@ -54,7 +54,7 @@ static void onMessage(char* topic, byte* payload, unsigned int length) {
|
||||
|
||||
JsonDocument state;
|
||||
if (devicesApplyCommand(deviceId, action, level, state)) {
|
||||
publishAck(deviceId, state);
|
||||
mqttPublishAck(deviceId, state);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user