Код ниже отправляет сообщения в телеграм, если значение с датчика движения больше 30.
defineRule("MotionCheck", {
whenChanged: ["wb-msw-v3_136/Current Motion", "wb-msw-v3_59/Current Motion", "wb-msw-v3_112/Current Motion", "wb-msw-v3_127/Current Motion", "wb-msw-v3_62/Current Motion", "wb-msw-v3_133/Current Motion"],
then: function (newValue, devName, cellName) {
if (newValue > 30) {
SendTelegramMsg('Есть движение в ' + devName + '. Уровень ' + newValue); // Call global function
log ("Message 1 sent"); // Write to debug console log message
}
}
});
Только сообщение выглядит не очень понятным.
Есть движение в wb-msw-v3_59. Уровень 31
Как сделать, чтобы вместо wb-msw-v3_59 выводилось название датчика?
Типа Есть движение на кухне. Уровень 31
dust
July 28, 2023, 5:31am
2
Простейший вариант:
var txtMessage = '';
if (devName == 'wb-msw-v3_59') {
txtMessage = 'кухне';
}
SendTelegramMsg('Есть движение в ' + txtMessage + '. Уровень ' + newValue);
2 Likes
Если датчиков пара штук, то ок.
Но если их штук 6-10, то уже много раз один и тот же код придется копировать - как минимум читать код неудобно.
Можно как-то сделать массив текстовых полей и его уже подставлять ?
sensor = ["wb-msw-v3_59/Current Motion", "wb-msw-v3_62/Current Motion", "wb-msw-v3_112/Current Motion", "wb-msw-v3_127/Current Motion", "wb-msw-v3_133/Current Motion", "wb-msw-v3_136/Current Motion"]
sensorName = ["комната1", "комната2", "комната3", "комната4", "комната5", "комната6"]
defineRule("MotionCheck", {
whenChanged: sensor[],
then: function (newValue, devName, cellName, sensorName) {
if (newValue > 30) {
SendTelegramMsg('Есть движение в ' + sensorName + '. Уровень ' + newValue);
}
}
});
dust
July 31, 2023, 5:21am
4
Можно:
sensor = ["wb-msw-v3_59/Current Motion", "wb-msw-v3_62/Current Motion", "wb-msw-v3_112/Current Motion", "wb-msw-v3_127/Current Motion", "wb-msw-v3_133/Current Motion", "wb-msw-v3_136/Current Motion"]
sensorName = ["комната1", "комната2", "комната3", "комната4", "комната5", "комната6"]
defineRule("MotionCheck", {
whenChanged: sensor,
then: function (newValue, devName, cellName) {
if (newValue > 30) {
var index = sensor.indexOf(devName + '/' + cellName);
SendTelegramMsg('Есть движение в ' + sensorName[index] + '. Уровень ' + newValue);
}
}
});
2 Likes
system
Closed
August 7, 2023, 5:21am
5
Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.