Страница 9 из 14

Re: Sonoff RF Bridge 433

Добавлено: Пн мар 04, 2019 2:47 pm
KVN
Снова вопрос.
Sonoff RF Bridge 433 прошит прошивкой ESPURNA. MQTT работает в одном направлении - от Бриджа к MDM, а обратно не хочет.
Помогите разобраться, если кто сталкивался?!

Re: Sonoff RF Bridge 433

Добавлено: Сб мар 09, 2019 12:50 pm
andrusha7778
Всем добрый день.
Проверил работу бриджа (на прошивке 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
Далее необходимо создать метод, который будет на основании полученных данных активировать датчики. Пока что не знаю как это лучше сделать, может общественность подскажет. Однако есть мысль, что для таких датчиков необходимо в их свойства (заранее создать такое свойство) записывать код, который они выдают при срабатывании, а метод должен проверять, у какого из датчиков в свойстве записан этот код и в зависимости от этого активировать его. Очень не хочется прописывать каждую проверку по коду в методе, поэтому пока не придумал как это сделать более менее универсальным, чтобы при добавлении новых датчиков можно было бы просто в их свойства записать код, который они генерируют, а метод, при получении данных мостом, уже бы делал всё сам.

Re: Sonoff RF Bridge 433

Добавлено: Сб мар 09, 2019 3:21 pm
olehs
bridge.png
bridge.png (116.82 КБ) 6626 просмотров
Класс во вложении. По картинке разберетесь?

Re: Sonoff RF Bridge 433

Добавлено: Вс мар 10, 2019 12:21 pm
andrusha7778
Да спасибо! Думаю всё понятно - основной класс Sonoff (без родительских классов), далее класс Sonoffrfbridge и объект в нем RFBridge
Попробую импортировать класс целиком, посмотрю как сделано!

Re: Sonoff RF Bridge 433

Добавлено: Пн мар 25, 2019 8:01 pm
Kvint
На 4pda описан способ снятия показаний счётчиков воды с помощью датчика сигнализации открытия окна Xiaomi. Как считаете, сложно будет повторить тоже самое на sonoff (RF + датчик открытия)?

Re: Sonoff RF Bridge 433

Добавлено: Вт мар 26, 2019 6:48 am
nick7zmail
Нет, не сложно. В сухом остатке модуль (или класс) что в случае с сяоми что с сонофф (наверное, но если не так - надо к этому привести) - пишет 1 в значение свойства, и это обрабатывается. Код один и тот же.

Re: Sonoff RF Bridge 433

Добавлено: Вт мар 26, 2019 5:18 pm
Kvint
Как я понимаю, разница только в процессе подключения шлюза, в случае с сяоми, шлюз можно подключить без перепрошивка (пряма из коробки), через модуль MJD, а в случае с sonoff, шлюз сначала надо перепрошить на правильную прошивку и далее передавать донные по MQTT. Я правильно понимаю, ничего не забыл? ))
И ещё, если у кого-нибудь есть датчики открытия окон sonoff, то подскажите, датчики долго живут от батареек?

Re: Sonoff RF Bridge 433

Добавлено: Ср мар 27, 2019 6:50 am
nick7zmail
Чисто теоретически примерно так, как вы описали...только при желании сонофф можно и не перепрошивать. Для него модуль есть viewtopic.php?f=5&t=5871. Только там пока не реализована поддержка датчиков и подобных устройств. Но это можно сделать совместными усилиями)

Re: Sonoff RF Bridge 433

Добавлено: Ср мар 27, 2019 7:14 pm
andrusha7778
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

Re: Sonoff RF Bridge 433

Добавлено: Пт мар 29, 2019 11:01 am
London
Тоже купил бридж и датчики к нему. Логику работу построил следующим образом:
Объект, в который поступает 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, соответствующий данному устройству.
Если код ещё не связан ни с одним устройством, отсылаю его в чат. Удобно на время тестов, добавления новых датчиков.