Добавляем свойство глобальности для айтема

This commit is contained in:
2022-08-23 23:17:59 +03:00
parent d3cb26af30
commit 06472912e8
2 changed files with 11 additions and 1 deletions

View File

@@ -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); // поиск экземпляра элемента модуля по имени

View File

@@ -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 = "{}";