Нужна помощь по приводу NICE RD400

beemer

Гость
Регистрация
19 Сен 2021
Сообщения
12
Реакции
3
Адрес
Санкт-Петербург
Добрый день. Возникла у меня идея подружить контроллер Nice с контроллером esp32. В общем создать аналог Nice IT4WIFI. Каким образом можно реализовать? Хотелось бы полная интеграция, то есть узнать статус открытия, закрытия ворот, движутся ли они и в какую сторону. Далее esp32 интегрируется в Home Assistant. Может есть у кого принципиальная схема?
 

passkal

Эксперт
Регистрация
20 Мар 2012
Сообщения
5,651
Реакции
6,530
Адрес
Санкт-Петербург
Последнее редактирование:

Vaikis

Новичок
Регистрация
18 Сен 2021
Сообщения
22
Реакции
15
Адрес
Aba
вам нужно прочитать линию CAN-шины между IBT4N и IT4WIFI
должно быть возможно с MCP2515 + ESP8266
 

Mr_Dredd

Активный
Регистрация
8 Сен 2015
Сообщения
66
Реакции
39
Адрес
Раменское
Врядли получится совместить RD с esp... Мысли вслух: Считывать аналогом контакты концевых и двигателя паралельно блоку ардуинкой, а дальше в любой удобный протокол инфу...
 

Vaikis

Новичок
Регистрация
18 Сен 2021
Сообщения
22
Реакции
15
Адрес
Aba
надо покупать IT4WIFI и взламывать, может быть через несколько месяцев когда появится свободное время :)
 

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
Нас уже больше чем один с такими желаниями!

На текущий момент существуют заводские решения:
Nice Bidi-WiFi - пока не держал в руках, заказал
Nice BiDi-ZWave - для ZWave, у нас чаще Zigbee используют
IT4WIFI - цепляется через HomeKit к умному дому

Альтернатива: дёргать через реле выводами SbS, Open, Close и считывать статус с лампы. Это работает, но хочется более элегантного решения с глубокой интеграцией.

Собственно, появилось желание разобраться в протоколе для управления воротами Nice. Переспектива - дешёвые устройства на базе esp8266 с вебсервером и mqtt, для управлением из умного дома.

Что знаю про BusT4:

- Можно подключать несколько устройств
- Длина кабеля до 1200м, значит скорость обмена должна быть небольшой
- Судя по схемам Nice IBT4N, rba3-c, rba3-a, в основе лежит CAN-Bus с его железом. Но логически пакетов кан там может и не быть ( например, в счетчике Меркурий).
- Схема обмена данными примерно такая: Процессор привода <-> кан-трансивер LTC2875 в IBT4N <длинный провод> кан-трансивер LTC2875 внутри OVIEW или IT4WIFI <-> процессор OVIEW или IT4WIFI.
- Отличие от стандартной кан-шины: терминаторы на концах по 270 Ом вместо 120 Ом.

Современные блоки управления приводами имеют разъем BusT4, на который выведены GND, +24V, Rx, Tx. Дальше в случае программатора OVIEW или IT4WIFI должен идти Nice IBT4N (обычный CAN-Трансивер) и само устройство.

Что сделано:
1. Подключил FTDI232 к GND, Rx, Tx разъема BusT4. UART не был обнаружен. Может, плохо искал?
2. Собрал CAN-Sniffer на основе Arduino + MC2551 c TJA1050. Поискал пакеты на стандартных скоростях кан-шины, данных не увидел. Может скорость не смог подобрать, может сниффер не годится, может кан-трансиверы не совместимы: TJA1050 простой, дешёвый и распространённый, а Nice выпендрился, поставил редкий и навороченный LTC2875.

Посмотрел аналоговым осциллографом сигналы на CAN-H и CAN-L. При подключенном OView пакетов нет, пока кнопки не нажимаешь на панели OVIEW. При нажатии кнопок пакеты есть!

Нужно поискать цифровой осциллограф и посмотреть запись формы сигнала. Хотя бы скорость шины прикинуть можно будет. Измеряем длительность последнего импульса в пакете, делим миллион на эту длительность в миллисекундах.


Что осталось сделать:
  1. Собрать другой кан-сниффер с кан-трансивером и получить пакеты.
  2. Попробовать получить пакеты не после кан-трансивера, а до, на разъеме BusT4 с выводов Rx Tx. Чем-то, как-то... Ведь если хотим подключать ESP, вроде как лишний элемент в виде кан-трансивера нам ни к чему.
  3. Провести реверс-инжениринг, найти команды для Open, Close, режим калитки, Stop, получить статус.
  4. Написать конфигурацию для EspHome, чтобы все данные поступали в Home Assistant.
Собственно, пока что я в ступоре, нужна помощь грамотного человека.
 

passkal

Эксперт
Регистрация
20 Мар 2012
Сообщения
5,651
Реакции
6,530
Адрес
Санкт-Петербург
Попробовать получить пакеты не после кан-трансивера, а до, на разъеме BusT4 с выводов Rx Tx. Чем-то, как-то... Ведь если хотим подключать ESP, вроде как лишний элемент в виде кан-трансивера нам ни к чему.
- мне видится, что это правильный путь, но это связь только "оттуда-сюда", надо ещё найти связь "отсюда-туда"
 
Последнее редактирование:

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
Когда будут получены и расшифрованы пакеты, отправить такие же не составит труда. В теории)
 

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
Смотрю на плату MCA5 618-A LC.
Есть разъем BusT4, который дальше соединяется с CAN-трансивером.
Кроме того, RX и Tx этого разъема идут через диод Шоттки на SMXI Led Ext и P Ext. Также через диоды BusT4 идёт на процессор R5F51305ADFM. Этот процессор похоже не имеет встроенного CAN контроллера, как ESP32. Но могу и ошибаться.

Я с CAN-шиной пока мало работал, но вроде должно быть примерно так: процессор (Ардуино или ESP8266) направляет данные через SPI интерфейс на CAN-контроллер (MCP2515). Контроллер делает структуру с данными, идентификаторами, контрольной суммой и прочим. Это скармливается CAN-трансиверу, который по проводам передаёт данные другому трансиверу. Тот выдает поток данных по CRx b Ctx в CAN-контроллер. Контроллер разбирает структуры, если данные есть - выдаёт их процессору устройства для дальнейшей обработки.

Вот только я не вижу у Найс CAN контроллера. Есть предположение, что и структуры CAN не увижу.
 

Vaikis

Новичок
Регистрация
18 Сен 2021
Сообщения
22
Реакции
15
Адрес
Aba
Нас уже больше чем один с такими желаниями!

На текущий момент существуют заводские решения:
Nice Bidi-WiFi - пока не держал в руках, заказал
Nice BiDi-ZWave - для ZWave, у нас чаще Zigbee используют
IT4WIFI - цепляется через HomeKit к умному дому

Альтернатива: дёргать через реле выводами SbS, Open, Close и считывать статус с лампы. Это работает, но хочется более элегантного решения с глубокой интеграцией.

Собственно, появилось желание разобраться в протоколе для управления воротами Nice. Переспектива - дешёвые устройства на базе esp8266 с вебсервером и mqtt, для управлением из умного дома.

Что знаю про BusT4:

- Можно подключать несколько устройств
- Длина кабеля до 1200м, значит скорость обмена должна быть небольшой
- Судя по схемам Nice IBT4N, rba3-c, rba3-a, в основе лежит CAN-Bus с его железом. Но логически пакетов кан там может и не быть ( например, в счетчике Меркурий).
- Схема обмена данными примерно такая: Процессор привода <-> кан-трансивер LTC2875 в IBT4N <длинный провод> кан-трансивер LTC2875 внутри OVIEW или IT4WIFI <-> процессор OVIEW или IT4WIFI.
- Отличие от стандартной кан-шины: терминаторы на концах по 270 Ом вместо 120 Ом.

Современные блоки управления приводами имеют разъем BusT4, на который выведены GND, +24V, Rx, Tx. Дальше в случае программатора OVIEW или IT4WIFI должен идти Nice IBT4N (обычный CAN-Трансивер) и само устройство.

Что сделано:
1. Подключил FTDI232 к GND, Rx, Tx разъема BusT4. UART не был обнаружен. Может, плохо искал?
2. Собрал CAN-Sniffer на основе Arduino + c TJA1050. Поискал пакеты на стандартных скоростях кан-шины, данных не увидел. Может скорость не смог подобрать, может сниффер не годится, может кан-трансиверы не совместимы: TJA1050 простой, дешёвый и распространённый, а Nice выпендрился, поставил редкий и навороченный LTC2875.

Посмотрел аналоговым осциллографом сигналы на CAN-H и CAN-L. При подключенном OView пакетов нет, пока кнопки не нажимаешь на панели OVIEW. При нажатии кнопок пакеты есть!

Нужно поискать цифровой осциллограф и посмотреть запись формы сигнала. Хотя бы скорость шины прикинуть можно будет. Измеряем длительность последнего импульса в пакете, делим миллион на эту длительность в миллисекундах.


Что осталось сделать:
  1. Собрать другой кан-сниффер с кан-трансивером и получить пакеты.
  2. Попробовать получить пакеты не после кан-трансивера, а до, на разъеме BusT4 с выводов Rx Tx. Чем-то, как-то... Ведь если хотим подключать ESP, вроде как лишний элемент в виде кан-трансивера нам ни к чему.
  3. Провести реверс-инжениринг, найти команды для Open, Close, режим калитки, Stop, получить статус.
  4. Написать конфигурацию для EspHome, чтобы все данные поступали в Home Assistant.
Собственно, пока что я в ступоре, нужна помощь грамотного человека.
MC2551 потенциально может быть слишком медленным по сравнению с LTC2875, пакеты искали при нажатии кнопок пульта ДУ ? По мне он отправляет данные когда вы инициируете например открытие, закрытие, остановку. MC2551 используется в режиме "listen mode" ?
2. BusT4 - это не может быть UART кaк вce идет от основного процессора. Также проверил, похоже нет никаких уровней сигнала UART.
 
Последнее редактирование:

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
Пакеты can-l can-h видел на аналоговом советском осциллографе в момент нажатия кнопки oview. Пульт с приемником 433mhz не подключал пока, новый блок. Конечно, для анализа пакета советский осциллограф не годится.

Заказал логический анализатор, может с его помощью пойму что-то.

По второму пункту не понял.
Раз с процессора идет сигнал, то uart может быть. Софтовый или хардварный, не важно.
Раз уж обменивается данными процессор с can трансивером по rx tx, значит uart. Магию, наверное, исключим. Другой момент, что uart может быть там нестандартный. По скорости или битовому потоку.

Опять же, надеюсь логический анализатор прольёт свет.
 

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
После нажатия кнопки Стоп на блоке MC800, вижу в шине такую картину:
Can_Stop1.png

Возможно, это команда.
Дальше приходит второй пакет, возможно новый статус или ответ на команду.

CAN_Stop2.png

Примерно то же я вижу на Rx выводе дорогого и редкого трансивера LTC2875

LTC2875.jpg

И похожая картина получается на выходе дешёвого китайского TJA1005
TJA1005.png

Значит, прочитать эту шину дешёвым трансивером скорее всего получится.

Я пока не умею видеть фреймы стандартной кан-шины в осциллограммах, но кажется их здесь нет.

Похоже, что эта шина 10кГц.

Как бы теперь считать эти же сигналы через Ардуино или ESP и хотя бы показать в HEX? Чтобы позже отправлять такие же...
 

passkal

Эксперт
Регистрация
20 Мар 2012
Сообщения
5,651
Реакции
6,530
Адрес
Санкт-Петербург
Сигналы считать не проблема, а вот понять в какой кодировке идёт сигнал, чтобы конвернуть в hex тут нужен опытный глаз
 

Vaikis

Новичок
Регистрация
18 Сен 2021
Сообщения
22
Реакции
15
Адрес
Aba

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
Эти способы были попробованы в первую очередь.
Но в с сигнале нет фреймов кан-шины, библиотеки Ардуино не могут ничего показать.
Вот если показать raw-данные, а затем их отправить в том же виде - возможен успех.

UART там всё же есть, но какой-то не такой.
На осциллограмме видно, что слишком большой стартовый бит для стандартного UART.
Если взять FTDI232 + терминал, подключить RX на выход LTC2875, вижу данные hex в терминале при нажатии кнопок.
Только данные испорченные, потому что терминал выгрызает то, что считает стартовыми и стоповыми битами.

Нужно научиться оперировать raw данными.
 

passkal

Эксперт
Регистрация
20 Мар 2012
Сообщения
5,651
Реакции
6,530
Адрес
Санкт-Петербург

Вложения

  • logAnalis.jpg
    logAnalis.jpg
    28 KB · Просмотры: 21
  • manchester.jpg
    manchester.jpg
    37.7 KB · Просмотры: 19

Vaikis

Новичок
Регистрация
18 Сен 2021
Сообщения
22
Реакции
15
Адрес
Aba
Эти способы были попробованы в первую очередь.
Но в с сигнале нет фреймов кан-шины, библиотеки Ардуино не могут ничего показать.
Вот если показать raw-данные, а затем их отправить в том же виде - возможен успех.

UART там всё же есть, но какой-то не такой.
На осциллограмме видно, что слишком большой стартовый бит для стандартного UART.
Если взять FTDI232 + терминал, подключить RX на выход LTC2875, вижу данные hex в терминале при нажатии кнопок.
Только данные испорченные, потому что терминал выгрызает то, что считает стартовыми и стоповыми битами.

Нужно научиться оперировать raw данными.
откуда думаешь что нет никаких фреймов кан-шины? A по MC2551:

coryjfowler

Jan '14

Try the library here: https://github.com/coryjfowler/MCP2515_lib
I have fixed a lot of the issues I encountered with the Seeedstudio library and the examples. It has been working pretty well at this point even hooked up to highly utilized CAN Buses. I also have the intention to add support for multiple MCP2515 ICs, error support, and a better interrupt handling method.
Also, using the MCP2515 in "listen" mode causes it to NOT acknowledge any messages it receives. It is in a purely ears-only mode. If you use this mode on a CAN bus with only one other active CAN transceiver, you will find messages are sent infinitely till its controller errors out and shuts down
 

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
откуда думаешь что нет никаких фреймов кан-шины?
Это предположение, которое следует из отсутствия железного кан-контроллера в устройстве.
И ещё из формы осциллограммы, которая отличается от стандартных осциллограмм кан-пакетов.
И ещё из того, что я не смог найти в этой шине кан-пакетов.
Конечно, может я криворукий, но пока оставил направление кан.
попробуй через лог анализатор
Жду китайцев. Мой логический анализатор на таможне. Тоже возлагаю большие надежды на этот способ.
 

pruwait

Активный
Регистрация
27 Дек 2019
Сообщения
114
Реакции
101
Адрес
Майкоп
Вообще, на данном этапе есть прогресс. Мы можем даже по кривым данным из UART однозначно понимать, что привод открыт, закрыт, открывается или закрывается. Биты меняются с ожидаемым постоянством. Добавить к этому дёрганье входами через реле - и задача выполнена. Кривовато, конечно, но начало есть.
 
Сверху Снизу