RS485 Термостат для теплого пола

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 08 июн 2018, 22:15

Andrew_A писал(а):
08 июн 2018, 21:14
bnx писал(а):
08 июн 2018, 09:46
все значения устанавливает - а окошки у текущих всегда пустые - это нормально? или у меня не работает программа Delphi
Кнопку "Запросить статус" нажимаете ?
В окне лога ответов термостата (под кнопкой Clear) что-нибудь есть ?

Возможно, проблема аппаратная - отвалилась линия TX от термостата (а RX работает т.к. параметры устанавливаются).
Термостат работает - в программе в логе все появляется но окошки пустые

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 08 июн 2018, 22:54

bnx писал(а):
08 июн 2018, 22:15
Термостат работает - в программе в логе все появляется но окошки пустые
Скиньте этот лог, посмотрю

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 09 июн 2018, 01:48

Andrew_A писал(а):
08 июн 2018, 22:54
bnx писал(а):
08 июн 2018, 22:15
Термостат работает - в программе в логе все появляется но окошки пустые
Скиньте этот лог, посмотрю
Вот как программа работает:
Снимок.PNG
Снимок.PNG (33.37 КБ) 1153 просмотра

Сделал парсер ответа - Node.JS:
Снимок22.PNG
Снимок22.PNG (10.64 КБ) 1153 просмотра

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 09 июн 2018, 02:27

Ясно, просто программа предполагает, что посылка от термостата будет приходить в едином блоке данных. А судя по скриншоту, у вас она разбивается на несколько блоков. Должна быть одна строка ответа на каждый запрос, а у вас по три. Происходит это скорей всего из-за кривого драйвера конвертора UART2USB - у меня на CH340 и под Win7 x64 работает нормально. В принципе, можно доработать алгоритм обработки входящих данных, чтобы программа "склеивала" пакеты, приходящие с малой задержкой друг относительно друга. Если очень надо - можем попробовать.

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 09 июн 2018, 08:48

Andrew_A писал(а):
09 июн 2018, 02:27
Ясно, просто программа предполагает, что посылка от термостата будет приходить в едином блоке данных. А судя по скриншоту, у вас она разбивается на несколько блоков. Должна быть одна строка ответа на каждый запрос, а у вас по три. Происходит это скорей всего из-за кривого драйвера конвертора UART2USB - у меня на CH340 и под Win7 x64 работает нормально. В принципе, можно доработать алгоритм обработки входящих данных, чтобы программа "склеивала" пакеты, приходящие с малой задержкой друг относительно друга. Если очень надо - можем попробовать.
У меня FTDI чип

В своей программе я сделал так:
Сообщение считается новым если начинается с 500.
Потом все склеивается пока не будет длины в 28.
Сверяется подпись по последним двум знакам и они отбрасываются.
Отбрасывается 50 и код устройства(001 и тп) и передаются парсеру настройки из которого делается красивый объект.
Записывается в БД для истории.

По интервалу опрашивается каждые 5 минут. По надобности отдельно и после каждого изменения.

Чем понравилось решение в NodeJS: пакет для него написан на C++ и работает везде(включая Распберри), не требует консольных утилит, получается единое решение.
И легко пользоваться:

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

const SerialPort = require('serialport');

port = new SerialPort('COM3', { autoOpen: true, baudRate: 4800});
port.on('data', (data) => { // Данные пришли } );

port.write(signer(`a0${pid}0000000000000000`), 'hex'); // отправляем данные

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 09 июн 2018, 13:53

Да, резонно. Рад, что все заработало.

FlyRouter
Сообщения: 3
Зарегистрирован: 30 авг 2018, 15:09

Re: RS485 Термостат для теплого пола

Сообщение FlyRouter » 15 дек 2018, 23:46

Приветствую

Утилитка для работы с RS485 в OpenWrt, только собрал и выложил, думаю пригодится :) - https://github.com/ZigFisher/Glutinium/ ... modbus-cli

Ответить