РЕКЛАМА НА ФОРУМХАУС выжила карта, заново на нее записал образ, грешу на USB коннектор, вроде бы полярность перепутана была
Modbus 1. х прописал в modbus. cfg Код: serial.t3066.connection=/dev/ttyUSB0:19200:8:none:1:rtu:35:1500:none:none serial.t3066.id=1 serial.t3066.type=input serial.t3066.start=0 serial.t3066.length=8 получаю ошибку Код: 2019-02-06 18:29:33.719 [ERROR] [t.wimpi.modbus.io.ModbusRTUTransport] - Last request: 01 04 00 00 00 08 f1 cc 2019-02-06 18:29:33.722 [ERROR] [t.wimpi.modbus.io.ModbusRTUTransport] - failed to read: Error reading response (EOF) 2019-02-06 18:29:33.727 [ERROR] [pi.modbus.io.ModbusSerialTransaction] - execute try 1/3 error: I/O exception - failed to read. Request: net.wimpi.modbus.msg.ReadInputRegistersRequest@511103 (unit id 1 & transaction 34). Serial parameters: SerialParameters@57ba43[portName=/dev/ttyUSB0,baudRate=19200,flowControlIn=none,flowControlOut=none,databits=8,stopbits=1,parity=none,encoding=rtu,echo=false,receiveTimeoutMillis=1500] может кто поймет, что ему надо? как писали выше - #serial.t3066.connection=/dev/ttyUSB0:19200:8:even:1:rtu:500:3000 вообще не алё
выше писали, что с темой модбас и конкретного девайса надо разбираться, все параметры в подключении сугубо индивидуальны - от скорости, четности до id&type. Мой пример был на WP3066 от welllpro и предварительно настроен на 19200 и далее по списку.
Добился что ошибка уже желтая) Код: [WARN ] [inding.modbus.internal.ModbusBinding] - Slave t3066 (endpoint ModbusSerialSlaveEndpoint@17a2bfa[portName=/dev/ttyUSB0]) has different retry/connection delay (EndpointPoolConfiguration) etc. settings. Replacing EndpointPoolConfiguration@1734d37[passivateBorrowMinMillis=20,interConnectDelayMillis=0,connectMaxTries=3,reconnectAfterMillis=-1,connectTimeoutMillis=0] with EndpointPoolConfiguration@c28e35[passivateBorrowMinMillis=500,interConnectDelayMillis=0,connectMaxTries=3,reconnectAfterMillis=-1,connectTimeoutMillis=0] но где это все настраивать то? ни в конфиге ни в приборе этих BorrowMinMillis
Блин с адресами не понимаю, к железке написаны адреса в hex 0x0001 тип данных signed int16 как этот адрес в конфиге написать? описание протокола читал читал так ни фига и не понял
@-Kirill-, сейчас жду из Китая пару счетчиков с модбасом. Уже чувствую, что напляшусь с ними до потери пульса. Вот смотрите, в последней Вашей ошибке прописано, что устройства имеют разное установленное время задержки retry/connection. В мануале к ОпенХабу написано, что в конфигурационном файле есть такие параметры https://www.openhab.org/addons/bindings/modbus1/ interTransactionDelayMillis: Time to wait between consecutive modbus transactions (to the same host or serial device), in milliseconds. Each modbus transaction corresponds to read or write operation. Default 35 for serial slaves and 60 for tcp slaves. reconnectAfterMillis: Time after which connection is disconnected and re-established, in milliseconds. Default 0 (closes connection after every transaction). interConnectDelayMillis: Time to wait between consecutive connection attempts (to the same host or ip), in milliseconds. Default 0. connectMaxTries: Maximum tries when establishing connection. Default 3. connectTimeout: Maximum time to wait for connection establishment, in milliseconds. Default is zero which corresponds to infinite/OS default. receiveTimeoutMillis: Maximum time to wait for a single "read operation" (sequence of bytes) before giving up, in milliseconds. Default 1500. flowControlIn: Flow control for the input data. Default none. Valid values: none, xon/xoff in, rts/cts in. flowControlOut: Flow control for the output data. Default none. Valid values: none, xon/xoff out, rts/cts out. Какой-то из них, видимо отвечает за эту самую задержку.
Вместо фантазий начали бы вы чтение мануалов по модбасу, ОН по модбасу и конкретного устройства. Пока не наступит понимания по типам регистров, поллингу и как работает модбас в принципе - дальше двигаться бессмысленно. У меня 630 счетчик увиделся сразу, месяц простоял в режиме чтения данных, без сбоев. Пока щиток в доме не собирал - поэтому большее сказать не могу.
Не совсем про опенхаб, но тем не менее: у меня уже второй год успешно работает самый обычный smappee monitor (не солар, не проф). работает на 3ех фазах (ввод в дом). в принципе всем доволен, софт регулярно обновляется, мобильное приложение и вебсайт улучшается. давным давно нашел скрипт на github на питоне, который делал трансляцию в mqtt. Скрипт этот постоянно вылетал, поэтому вчера переделал все на node-red. Реализован веб запрос и его разборка по запятым (на возврате из запроса json, внутри string-html) а дальше "вычленение" ватт по фазам и отправка всего этого в mqtt раз в 30 секунд
Попробуй сначала подключится со своим свистком через ModbusPool. Так же возможно для нормальной работы RS485 может потребоваться подтяжка питания в шину. SMD630 без питания не взлетел Так же ты начинаешь читать с 0 регистра, hex 0x0001 = Регистр 1 - попробуй в конфиге изменить на: serial. t3066.connection=/dev/ttyUSB0:19200:8:none:1:rtu:35:1500:none:none serial. t3066.id=1 serial. t3066.start=1 serial. t3066.length=8 serial. t3066.type=holding serial. t3066.valuetype=int16
Не подскажете пару ссылок на мануалы, которые были бы на Ваш взгляд наиболее полезны для изучения? Читать-то начал, информации много, но полного понимания, действительно, пока нет.
По модбасу имхо неплохой мануал в аттаче. Физический уровень можно не читать, но по регистрам и операциям с ними обязательно. Ну и описание в ОН по самому биндингу. Сейчас выложена 2 версия, но лучше начать с 1. х - там имхо проще. А в самом начале лучше разобраться с serial и подключиться через Modbus Poll.
и мануал kam711 Спасибо! помогло но что за странное поведение OH2? ошибки шли сплошным потоком, пока не откатился назад, по чистой поставил версию 1. x ModBas и все заработало как часы, потом пытаюсь добавить второй адрес (возможно и неправильный) и снова куча ошибок, удаляю его и даже файл modbus. cfg перегружаю, и все равно показания с slave1 считываются как ни в чем небывало c slave2 куча ошибок прет... чо он такой злопамятный то?)
@-Kirill-, есть еще файлы с расширением config, на которые ориентируется runtime и по какому-то странному стечению обстоятельств не всегда меняются. Вот их стоит посмотреть и удалить. Во всяком случае я сталкивался с таки неоднократно.
А откуда Вы берете адреса устройств? В мануалах пишут обычно что-то вроде "адрес устройства можно посмотреть на наклейке на устройстве"