VooDooN писал(а): Ср ноя 13, 2019 12:18 pm
Я прошивал больше года назад на Tasmoto. Работает круглосуточно без проблем. Каждый "пойманный" код от датчика бридж передает через MQTT в MajorDoMo. В МД создал новый класс SonoffRFBridge, у которого есть свойство receivedCode и метод receivedCode. У этого свойства есть настройка "Запускать метод при изменении", где указано запускать receivedCode каждый раз, когда прилетает новое значение в это свойство. Вот каждый код через MQTT передается в свойство receivedCode, откуда оно передается в метод receivedCode. А в методе такой простой php-код:
switch($params['NEW_VALUE']) {
//Датчик двери
case "45D11F": //Код от датчика двери
setGlobal('Openclose01.status', 1); // В простых устройствах уже есть такой объект для датчика и ему выставляется статус 1
say("Входная дверь открылась.",1); // не обязательная строка, её можно использовать и через простые устройства
break;
//Датчики протечки ------------------
case "B32099": //Датчик протечки под стиралкой
say("ВНИМАНИЕ! Сработал датчик протечки под стиралкой!",2); //Или вместо этого, можно тоже передать статус в простые устройства или запустить скрипт
break;
//------------- и т.д. для каждого датчика, а потом:
default:
if (getGlobal('ThisComputer.logAllUnknownRFCodes')==1) {
say($params['NEW_VALUE'], 0);
}
}
А так же, в свойствах объекте ThisComputer (можно было и в классе SonoffRFBridge, чтобы далеко не ходить) я создал новое свойство logAllUnknownRFCodes. Если там указать значение 1 (в коде выше есть проверка ThisComputer.logAllUnknownRFCodes), то МД будет сообщать о каждом коде от датчика (известном или неизвестном). А если поставить значение 0, то ничего не будет сообщать. Это нужно для удобства, если купили новый датчик и не понятно, какой код он шлет.
Спасибо! Отлично работает с датчиками движения.
А как быть с датчиками открытия-закрытия, чтобы статус менялся 1 или 0? Что нужно изменить в коде? Просто у этого датчика всегда 1.
Спасибо.
VooDooN писал(а): Ср ноя 13, 2019 12:18 pm
Я прошивал больше года назад на Tasmoto. Работает круглосуточно без проблем. Каждый "пойманный" код от датчика бридж передает через MQTT в MajorDoMo. В МД создал новый класс SonoffRFBridge, у которого есть свойство receivedCode и метод receivedCode. У этого свойства есть настройка "Запускать метод при изменении", где указано запускать receivedCode каждый раз, когда прилетает новое значение в это свойство. Вот каждый код через MQTT передается в свойство receivedCode, откуда оно передается в метод receivedCode. А в методе такой простой php-код:
switch($params['NEW_VALUE']) {
//Датчик двери
case "45D11F": //Код от датчика двери
setGlobal('Openclose01.status', 1); // В простых устройствах уже есть такой объект для датчика и ему выставляется статус 1
say("Входная дверь открылась.",1); // не обязательная строка, её можно использовать и через простые устройства
break;
//Датчики протечки ------------------
case "B32099": //Датчик протечки под стиралкой
say("ВНИМАНИЕ! Сработал датчик протечки под стиралкой!",2); //Или вместо этого, можно тоже передать статус в простые устройства или запустить скрипт
break;
//------------- и т.д. для каждого датчика, а потом:
default:
if (getGlobal('ThisComputer.logAllUnknownRFCodes')==1) {
say($params['NEW_VALUE'], 0);
}
}
А так же, в свойствах объекте ThisComputer (можно было и в классе SonoffRFBridge, чтобы далеко не ходить) я создал новое свойство logAllUnknownRFCodes. Если там указать значение 1 (в коде выше есть проверка ThisComputer.logAllUnknownRFCodes), то МД будет сообщать о каждом коде от датчика (известном или неизвестном). А если поставить значение 0, то ничего не будет сообщать. Это нужно для удобства, если купили новый датчик и не понятно, какой код он шлет.
Спасибо! Отлично работает с датчиками движения.
А как быть с датчиками открытия-закрытия, чтобы статус менялся 1 или 0? Что нужно изменить в коде? Просто у этого датчика всегда 1.
Спасибо.
У меня датчики односторонние - что на открывание, что на движение, методы думаю подойдут так же - я не пробовал еще
имеется в виду - на движение получаю код 009000 - на закрытие или открытие 000900 - то есть я не вижу что открылась дверь или закрылась - я вижу только действие - датчики эти гавно от сонофф