1 2 3 4 5 6 7 8 9 10 0/10 0,00оценок: 0

OpenHAB, RPi, Modbus. Требуется помощь

Тема в разделе "Умный дом", создана пользователем Rhadosvet88, 03.09.15.

  1. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    OpenHAB, RPi, Modbus. Требуется помощь
    Добрый день!
    Реализую проект умного дома на основе Raspberry Pi с использованием переходника http://www.ebay.com/itm/381097954687?_t ... EBIDX%3AIT
    Для управления нагрузками выбрал модуль http://www.ebay.com/itm/161791895138?_t ... EBIDX%3AIT
    Он управляется по протоколу Modbus RTU. Для контроля всей системы использую проект OpenHAB.
    В Windows получается отправлять команды и управлять модулем по протоколу Modbus.
    Требуется прикрутить управление к Raspberry.
    Сейчас уже установлен адаптер.
    root@raspberrypi:~# lsusb
    Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 003: ID 0424: ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
    Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

    Нашел несколько примеров на питоне для работы с modbus, но они довольно трудоемки для реализации.
    Существует ли возможность управлять по Modbus используя стандартные процедуры вывода Linux, например echo > /dev/ttyUSB0 ?
    Или возможно управлять из OpenHAB напрямую?
    Как вариант думал использовать скрипты питона и выполнять их через exec.
     
    Rhadosvet88 , 03.09.15
    #1 + Цитировать
  2. up-system-msk
    Регистрация:
    04.10.11
    Сообщения:
    261
    Благодарности:
    75

    up-system-msk

    Живу здесь

    up-system-msk

    Живу здесь

    Регистрация:
    04.10.11
    Сообщения:
    261
    Благодарности:
    75
    Адрес:
    Москва
    А не проще ли использовать windows-компьютер вместо Raspberry, коли в среде windows все работает? Тем более, что сейчас в наличии множество достаточно дешевых безвентиляторных компьютеров разных форм-факторов. Не говоря уже о тех, что вставляются в HDMI-порт телевизора, типа Intel Stick.
    Или "мы простых путей не ищем" ?
     
    up-system-msk , 03.09.15
    #2 + Цитировать
  3. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549
    Адрес:
    Россия
    @Rhadosvet88, openhab
    Подключите модуль modbus и управляйте.
    Проще нет ни чего.
    Получите хороший интерфейс и сильный логический движек.
    Посмотрите соседние ветки, в некотрых я выкладывал свои настройки. Там как раз все управление по modbus
    Ps. Ставить круглосуточные сервисы на винде - тупиковый путь.
    Rpi прекрасно работает с openhab.
     
    Smith2007 , 03.09.15
    #3 + Цитировать
  4. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    Именно желание уйти от Windows и породило переход на RPi.
    На сегодняшний момент ситуация следующая:
    логи openhab:
    12:31:20.690 [DEBUG] [b.m.internal.ModbusSerialSlave:117 ] - connection was null, going to create a new one
    12:31:21.213 [ERROR] [i.modbus.io.ModbusRTUTransport:166 ] - Last request: 03 01 00 10 00 09 fc 2b
    12:31:21.215 [ERROR] [i.modbus.io.ModbusRTUTransport:167 ] - failed to read: Error reading response
    12:31:21.218 [ERROR] [w.m.io.ModbusSerialTransaction:197 ] - execute try 1 error: I/O exception - failed to read

    настройки порта в конфиге jpenhab:
    modbus: serial. slave2.connection=/dev/ttyUSB0:19200:8:even:1:rtu
    modbus: serial. slave2.id=3
    modbus: serial. slave2.start=16
    modbus: serial. slave2.length=9
    modbus: serial. slave2.type=coil

    Smith2007, обыскал весь форум, ответа не нашел
     
    Rhadosvet88 , 03.09.15
    #4 + Цитировать
  5. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549
    Адрес:
    Россия
    Что подключено к ЮСБ?
    Устройство настроено?
    Вы считываете начиная с 16 адреса 9 бит. Это что?
     
    Smith2007 , 03.09.15
    #5 + Цитировать
  6. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    К USB подключено http://www.ebay.com/itm/381097954687?_t ... EBIDX%3AIT
    переходник настраивал следующими командами:
    modprobe ftdi_sio vendor=0x1a86 product=0x7523
    ls -al /dev/ttyU*
    mknod /dev/ttyUSB0 c 188 0
    chmod 777 /dev/ttyUSB*
    переходник определяется:
    Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

    непосредственно устройство по идеи работает из коробки, не считая переключателей, задающих адрес, но они выставлены на адрес=3.
    насчет адресов: это вроде как управление релейными выходами. но пока не уверен. первый раз с modbus
     

    Вложения:

    Rhadosvet88 , 03.09.15
    #6 + Цитировать
  7. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    С адресами думаю разберусь в процессе настройки опенхаба
    главный вопрос, почему modbus не получает ответ от устройства
    failed to read: Error reading response
     
    Rhadosvet88 , 03.09.15
    #7 + Цитировать
  8. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    Более того, не устанавливается соединение с устройством. на устройстве есть индикатор modbus - он не активен
     
    Rhadosvet88 , 03.09.15
    #8 + Цитировать
  9. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549
    Адрес:
    Россия
    1. К openhab подключен интерфейс modbus (addon)
    2. USB и конвертер в системе определились
    Но сам конвертер скорее всего "прозрачен" для openhab. Т. е. последний не увидит ни какой разницы есть конвертер физического интерфейса или нет.
    Значит openhab должен подключаться к вашему модулю вывода.
    как раз говорит Вам о том, что не удалось подключиться.

    Я строил систему несколько иначе (modbus tcp) и не экспериментировал с modbus serial. Но тоже по началу были проблемы с адресацией.

    зы. На мой взгляд можно было подешевле девайс взять и с более известным брендом.
    Сравните сами: Ваш девайс около $150 или почти 10 тыр за 8 портов. (1300 р/порт) да еще и работает на скорости не выше 19200 kbt
    Или вот такой с Российской поддержкой 5 тыр или 625 руб/порт
    А если взять на 32 порта то вовсе получается 340 руб/порт.

    ззы. Не работаю в сфере автоматики и не продаю ни чего :)
     
    Последнее редактирование: 03.09.15
    Smith2007 , 03.09.15
    #9 + Цитировать
  10. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549
    Адрес:
    Россия
    Мне подсказывали АСУшники, что адресацию в модбас желательно делать с шагом 16.
    Т. е. 16,32,48 и т. д. Не знаю почему но говорили иначе могут быть проблемы с некоторым оборудованием.
     
    Smith2007 , 03.09.15
    #10 + Цитировать
  11. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    Получены следующие результаты: индикатор Modbus на устройстве REL-0808 показывает наличие обмена по RS-485.
    Теперь проблема в таком виде:
    execute try 1 error: I/O exception - failed to read
    Last request: 03 01 00 c8 00 08 bd d0
    Error reading response
    И еще момент: подскажите, пожалуйста, как в конфиге опенхаба рассчитать начальный адрес для команды допустим 0x01 0x05 0x00 0x00 0xFF 0x00
     
    Rhadosvet88 , 04.09.15
    #11 + Цитировать
  12. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549
    Адрес:
    Россия
    @Rhadosvet88, В опенхаб команды определяются значением

    modbus: serial. slave2.connection=/dev/ttyUSB0:19200:8:even:1:rtu
    modbus: serial. slave2.id=3
    modbus: serial. slave2.start=16
    modbus: serial. slave2.length=9 8 попробуйте считать 8 бит
    modbus: serial. slave2.type=coil/input/holding оставьте coil
    Не требуется еще как либо их указывать.

    wiki
     
    Smith2007 , 04.09.15
    #12 + Цитировать
  13. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    Smith2007, а можете скинуть для примера ваши items для Modbus TCP?
     
    Rhadosvet88 , 06.09.15
    #13 + Цитировать
  14. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.063
    Благодарности:
    549
    Адрес:
    Россия
    Пожалуйста
     

    Вложения:

    Smith2007 , 06.09.15
    #14 + Цитировать
  15. Rhadosvet88
    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0

    Rhadosvet88

    Участник

    Rhadosvet88

    Участник

    Регистрация:
    03.09.15
    Сообщения:
    8
    Благодарности:
    0
    Благодарю!
    Попробовал запустить openhab на тестовой машине с виндой - все заработало сразу. Реле щелкают, показания снимаются. Значит все таки неправильно настроены порты на линукс машине...
    Буду с ними разбираться...
     
    Rhadosvet88 , 07.09.15
    #15 + Цитировать

Смотрите также