diff --git a/src/EventsAndOrders.cpp b/src/EventsAndOrders.cpp index 2af00a66..20416471 100644 --- a/src/EventsAndOrders.cpp +++ b/src/EventsAndOrders.cpp @@ -51,10 +51,16 @@ void handleEvent() { if (eventBuf.length()) { String event = selectToMarker(eventBuf, ","); SerialPrint("i", F("EVENT"), event); + String enentIdName = selectToMarker(event, " "); + + // распространяем событие через хуки + for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { + (*it)->onRegEvent(findIoTItem(enentIdName)); + } //здесь нужно пропускать данное событие через условия сценариев //и если оно есть в условии сценария и совподает - iotScen.exec(selectToMarker(event, " ")); + iotScen.exec(enentIdName); eventBuf = deleteBeforeDelimiter(eventBuf, ","); } diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index bb79c6b5..73918f46 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -101,11 +101,6 @@ void IoTItem::regEvent(const String& value, const String& consoleInfo, bool erro if (genEvent) { generateEvent(_id, value); - // распространяем событие через хуки - for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { - (*it)->onRegEvent(this); - } - // отправка события другим устройствам в сети если не было ошибки if (_global && !error) { String json = "{}";