Sonoff RF Bridge 433

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

Модератор: immortal

Аватара пользователя
KVN
Сообщения: 89
Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Благодарил (а): 25 раз
Поблагодарили: 3 раза

Re: Sonoff RF Bridge 433

Сообщение KVN » Пн мар 04, 2019 2:47 pm

Снова вопрос.
Sonoff RF Bridge 433 прошит прошивкой ESPURNA. MQTT работает в одном направлении - от Бриджа к MDM, а обратно не хочет.
Помогите разобраться, если кто сталкивался?!
Мой CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270
andrusha7778
Сообщения: 85
Зарегистрирован: Сб авг 12, 2017 11:03 am
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Sonoff RF Bridge 433

Сообщение andrusha7778 » Сб мар 09, 2019 12:50 pm

Всем добрый день.
Проверил работу бриджа (на прошивке tasmota 6.4.1.19) с датчиками Ginzzu:
Пульт от сигнализации GiNZZU HS-S12B - видит все 4 кнопки с разными кодами
беспроводной датчик дыма GiNZZU HS-S06W - видит исправно
беспроводной датчик движения GiNZZU HS-S01B - видит исправно
беспроводной дверной/оконный датчик GiNZZU HS-S02B - не всегда генерирует один и тот же код. Один байт в посылке может отличаться (может быть это связано с дальностью).

Осталось продумать нормальный алгоритм передачи данных в MJD и правильную последовательность вызова метода.
Пока что планирую настроить так: создать объект со свойством, которое привязано к топику ../RESULT (RfReceived/Data) - туда мост выкладывает полученный код, в MJD в модуле MQTT JSON уже декодируется так что видно топик как RESULT/RfReceived/Data
Далее необходимо создать метод, который будет на основании полученных данных активировать датчики. Пока что не знаю как это лучше сделать, может общественность подскажет. Однако есть мысль, что для таких датчиков необходимо в их свойства (заранее создать такое свойство) записывать код, который они выдают при срабатывании, а метод должен проверять, у какого из датчиков в свойстве записан этот код и в зависимости от этого активировать его. Очень не хочется прописывать каждую проверку по коду в методе, поэтому пока не придумал как это сделать более менее универсальным, чтобы при добавлении новых датчиков можно было бы просто в их свойства записать код, который они генерируют, а метод, при получении данных мостом, уже бы делал всё сам.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Sonoff RF Bridge 433

Сообщение olehs » Сб мар 09, 2019 3:21 pm

bridge.png
bridge.png (116.82 КБ) 5178 просмотров
Класс во вложении. По картинке разберетесь?
Вложения
Sonoff.txt
(4.44 КБ) 557 скачиваний
За это сообщение автора olehs поблагодарил:
sb1971 (Сб апр 18, 2020 7:31 pm)
Рейтинг: 1.16%
andrusha7778
Сообщения: 85
Зарегистрирован: Сб авг 12, 2017 11:03 am
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Sonoff RF Bridge 433

Сообщение andrusha7778 » Вс мар 10, 2019 12:21 pm

Да спасибо! Думаю всё понятно - основной класс Sonoff (без родительских классов), далее класс Sonoffrfbridge и объект в нем RFBridge
Попробую импортировать класс целиком, посмотрю как сделано!
Kvint
Сообщения: 14
Зарегистрирован: Сб фев 24, 2018 7:19 am
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Re: Sonoff RF Bridge 433

Сообщение Kvint » Пн мар 25, 2019 8:01 pm

На 4pda описан способ снятия показаний счётчиков воды с помощью датчика сигнализации открытия окна Xiaomi. Как считаете, сложно будет повторить тоже самое на sonoff (RF + датчик открытия)?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Sonoff RF Bridge 433

Сообщение nick7zmail » Вт мар 26, 2019 6:48 am

Нет, не сложно. В сухом остатке модуль (или класс) что в случае с сяоми что с сонофф (наверное, но если не так - надо к этому привести) - пишет 1 в значение свойства, и это обрабатывается. Код один и тот же.
За это сообщение автора nick7zmail поблагодарил:
Kvint (Вт мар 26, 2019 5:19 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Kvint
Сообщения: 14
Зарегистрирован: Сб фев 24, 2018 7:19 am
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Re: Sonoff RF Bridge 433

Сообщение Kvint » Вт мар 26, 2019 5:18 pm

Как я понимаю, разница только в процессе подключения шлюза, в случае с сяоми, шлюз можно подключить без перепрошивка (пряма из коробки), через модуль MJD, а в случае с sonoff, шлюз сначала надо перепрошить на правильную прошивку и далее передавать донные по MQTT. Я правильно понимаю, ничего не забыл? ))
И ещё, если у кого-нибудь есть датчики открытия окон sonoff, то подскажите, датчики долго живут от батареек?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Sonoff RF Bridge 433

Сообщение nick7zmail » Ср мар 27, 2019 6:50 am

Чисто теоретически примерно так, как вы описали...только при желании сонофф можно и не перепрошивать. Для него модуль есть viewtopic.php?f=5&t=5871. Только там пока не реализована поддержка датчиков и подобных устройств. Но это можно сделать совместными усилиями)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
andrusha7778
Сообщения: 85
Зарегистрирован: Сб авг 12, 2017 11:03 am
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Sonoff RF Bridge 433

Сообщение andrusha7778 » Ср мар 27, 2019 7:14 pm

Sonoff RF Bridge 433 прошивается очень просто. Достаточно купить программатор за 150 рублей USB-TTL.
На прошивке Tasmota Он чудно шлет в топик RESULT данные RFReceived и 6 символов кода RF 433
Сейчас мне например неудобно, что по каждому полученному коду мне необходимо его анализировать в MJ в каком-то методе или обработчике.
Было бы шикарно, если бы RF Bridge сам мог в зависимости от того какой он принял код от датчика, положить данные в нужный топик.
https://github.com/arendst/Sonoff-Tasmo ... Bridge-433
https://github.com/arendst/Sonoff-Tasmo ... -rf-bridge
London
Сообщения: 76
Зарегистрирован: Чт фев 07, 2019 12:17 pm
Благодарил (а): 14 раз
Поблагодарили: 45 раз

Re: Sonoff RF Bridge 433

Сообщение London » Пт мар 29, 2019 11:01 am

Тоже купил бридж и датчики к нему. Логику работу построил следующим образом:
Объект, в который поступает RFCode из mqtt, в поле status.
Для этого объекта изменил метод statusUpdated следующим образом:

Код: Выделить всё

$status = $params['NEW_VALUE'];
$ignoreList = str_replace(' ','',$this->getProperty('ignoreList'));
$ignoreList = explode(',',$ignoreList);
//$codeExist=0;
if (($status) && !in_array($status,$ignoreList)) {
   $objects = getObjectsByProperty('rfCode');
   foreach ($objects as $object) {
   
     $rfCodes = str_replace(' ','',gg($object.'.rfCode'));
     if (!$rfCodes) continue;
     $rfCodes = explode(',',$rfCodes);
    // DebMes($rfCodes);
     if (in_array($status,$rfCodes)) {
      if ((strpos($object,'Relay') !== FALSE) && (strpos($params['SOURCE'],'mqtt') !== FALSE)) {
       CallMethodSafe($object.'.switch',array('SOURCE' => 'RFBridge'));
      // DebMes('go');
      } else sg($object.'.status',1,0,'RFBridge');
      //$codeExist=1;
     } 
    } 
}
if (!$codeExist) { 
 say('Обнаружен новый код RF: '.$status,-1); 
}

Для всех требуемых классов, устройства которого могут работать у меня по RF (например, SMotions) добавил свойство rfCode, в который прописываю RFCode, соответствующий данному устройству.
Если код ещё не связан ни с одним устройством, отсылаю его в чат. Удобно на время тестов, добавления новых датчиков.
Последний раз редактировалось London Ср ноя 18, 2020 5:26 pm, всего редактировалось 2 раза.
Ответить