From e53bbcc7d88d461b15544a1db1038d3c8e81a0dd Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <67171972+IoTManagerProject@users.noreply.github.com> Date: Tue, 6 Dec 2022 16:22:31 +0100 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=B8=D0=BC=D0=B8=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D1=86=D0=B2=D0=B5=D1=82=20=D0=BD=D0=BE=D0=B4?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_svelte/items.json | 5 +++- platformio.ini | 2 -- src/modules/exec/MySensors/MySensorsGate.cpp | 24 +++++++++++++------- src/modules/exec/MySensors/modinfo.json | 5 +++- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/data_svelte/items.json b/data_svelte/items.json index 40047ca5..78b0e596 100644 --- a/data_svelte/items.json +++ b/data_svelte/items.json @@ -627,10 +627,13 @@ "name": "43. MySensorsNode", "type": "Reading", "subtype": "MySensorsNode", - "id": "nd", + "id": "n", "widget": "anydataTmp", "page": "MySensors", "descr": "Температура", + "orange": 60, + "red": 120, + "offline": 180, "round": 1, "num": 43 }, diff --git a/platformio.ini b/platformio.ini index 477443b6..e5806c94 100644 --- a/platformio.ini +++ b/platformio.ini @@ -113,8 +113,6 @@ build_src_filter = ${env:esp8266_4mb_fromitems.build_src_filter} [env:esp32_4mb] -;upload_port = COM13 -;monitor_port = COM13 lib_deps = ${common_env_data.lib_deps_external} ${env:esp32_4mb_fromitems.lib_deps} diff --git a/src/modules/exec/MySensors/MySensorsGate.cpp b/src/modules/exec/MySensors/MySensorsGate.cpp index 12d29ab9..ba820351 100644 --- a/src/modules/exec/MySensors/MySensorsGate.cpp +++ b/src/modules/exec/MySensors/MySensorsGate.cpp @@ -345,6 +345,9 @@ class MySensorsGate : public IoTItem { class MySensorsNode : public IoTItem { private: String id; + int orange; + int red; + int offline; int _minutesPassed = 0; String json = "{}"; bool dataFromNode = false; @@ -353,6 +356,9 @@ class MySensorsNode : public IoTItem { MySensorsNode(String parameters) : IoTItem(parameters) { SerialPrint("i", "MySensors", "Node initialized"); jsonRead(parameters, F("id"), id); + orange = jsonReadInt(parameters, F("orange")); + red = jsonReadInt(parameters, F("red")); + offline = jsonReadInt(parameters, F("offline")); dataFromNode = false; } @@ -386,16 +392,18 @@ class MySensorsNode : public IoTItem { void setNewWidgetAttributes() { if (dataFromNode) { - jsonWriteStr(json, "info", String(_minutesPassed) + " min"); - if (_minutesPassed < 60) { - jsonWriteStr(json, "color", ""); - } else if (_minutesPassed >= 60) { - jsonWriteStr(json, "color", "orange"); //сделаем виджет оранжевым когда более 60 минут нода не выходила на связь - } else if (_minutesPassed >= 120) { - jsonWriteStr(json, "color", "red"); //сделаем виджет красным когда более 120 минут нода не выходила на связь + jsonWriteStr(json, F("info"), String(_minutesPassed) + " min"); + if (_minutesPassed < orange) { + jsonWriteStr(json, F("color"), ""); + } else if (_minutesPassed >= orange) { + jsonWriteStr(json, F("color"), F("orange")); //сделаем виджет оранжевым + } else if (_minutesPassed >= red) { + jsonWriteStr(json, F("color"), F("red")); //сделаем виджет красным + } else if (_minutesPassed >= offline) { + jsonWriteStr(json, F("info"), F("offline")); } } else { - jsonWriteStr(json, "info", "awaiting"); + jsonWriteStr(json, F("info"), F("awaiting")); } sendSubWidgetsValues(id, json); } diff --git a/src/modules/exec/MySensors/modinfo.json b/src/modules/exec/MySensors/modinfo.json index a9cf0fc5..fbad41d6 100644 --- a/src/modules/exec/MySensors/modinfo.json +++ b/src/modules/exec/MySensors/modinfo.json @@ -16,10 +16,13 @@ "name": "MySensorsNode", "type": "Reading", "subtype": "MySensorsNode", - "id": "nd", + "id": "n", "widget": "anydataTmp", "page": "MySensors", "descr": "Температура", + "orange": 60, + "red": 120, + "offline": 180, "round": 1 } ],