diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index 372a77d4..f08b22aa 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -36,7 +36,7 @@ class IoTItem { IoTValue value; // хранение основного значения, которое обновляется из сценария, execute(), loop() или doByInterval() bool iAmDead = false; // признак необходимости удалить объект из базы - bool iAmLocal = true; // признак локальной переменной + bool iAmLocal = true; // признак того, что айтем был создан локально bool needSave = false; bool enableDoByInt = true; @@ -59,6 +59,8 @@ class IoTItem { int _map3; int _map4; int _round; // 1, 10, 100, 1000, 10000 + + bool _global = false; // характеристика айтема, что ему нужно слать и принимать события из внешнего мира }; IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index b8a98c19..93213c9e 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -16,6 +16,8 @@ IoTItem::IoTItem(String parameters) { if (!jsonRead(parameters, F("plus"), _plus, false)) _plus = 0; if (!jsonRead(parameters, F("round"), _round, false)) _round = -1; + if (!jsonRead(parameters, F("global"), _global, false)) _global = false; + String valAsStr; if (jsonRead(parameters, F("val"), valAsStr, false)) // значение переменной или датчика при инициализации если есть в конфигурации if (value.isDecimal = isDigitDotCommaStr(valAsStr)) { @@ -83,6 +85,12 @@ void IoTItem::setValue(IoTValue Value) { void IoTItem::regEvent(String value, String consoleInfo = "") { generateEvent(_id, value); publishStatusMqtt(_id, value); + + // проверка если global установлен то шлем всем о событии + if (_global) { + SerialPrint("i", F("=>ALLMQTT"), "Broadcast event: "); + } + //отправка события другим устройствам в сети============================== // if (jsonReadBool(settingsFlashJson, "mqttin")) { // String json = "{}";