Sonoff RF Bridge 433

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Sergey.Chek
Сообщения: 107
Зарегистрирован: Ср фев 13, 2019 9:50 pm
Благодарил (а): 219 раз
Поблагодарили: 19 раз

Re: Sonoff RF Bridge 433

Сообщение Sergey.Chek » Ср мар 03, 2021 9:57 pm

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.
Спасибо.
Raspberry pi 4
Аватара пользователя
andrewee
Сообщения: 5
Зарегистрирован: Ср ноя 25, 2020 3:25 pm
Откуда: Сахалин
Благодарил (а): 0
Поблагодарили: 0

Re: Sonoff RF Bridge 433

Сообщение andrewee » Пн мар 15, 2021 1:46 pm

Sergey.Chek писал(а):
Ср мар 03, 2021 9:57 pm
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.
Спасибо.
У меня датчики односторонние - что на открывание, что на движение, методы думаю подойдут так же - я не пробовал еще
Аватара пользователя
andrewee
Сообщения: 5
Зарегистрирован: Ср ноя 25, 2020 3:25 pm
Откуда: Сахалин
Благодарил (а): 0
Поблагодарили: 0

Re: Sonoff RF Bridge 433

Сообщение andrewee » Пн мар 15, 2021 1:49 pm

имеется в виду - на движение получаю код 009000 - на закрытие или открытие 000900 - то есть я не вижу что открылась дверь или закрылась - я вижу только действие - датчики эти гавно от сонофф
Аватара пользователя
andrewee
Сообщения: 5
Зарегистрирован: Ср ноя 25, 2020 3:25 pm
Откуда: Сахалин
Благодарил (а): 0
Поблагодарили: 0

Re: Sonoff RF Bridge 433

Сообщение andrewee » Пн мар 15, 2021 1:54 pm

вот не могу привязать приемо-передатчик 433 к апельсинке - ну ни как, ну это другой топик, дабы избавится от моста
Ответить