Страница 1 из 4
RS485 Термостат для теплого пола
Добавлено: 30 янв 2015, 19:47
non100p
Здравствуйте!
Помогите разобраться пожалуйста, ситуация следующая. Купил для пробы себе вот такой термостат с интерфейсом RS485\modbus
http://ru.aliexpress.com/item/BHT-1000- ... dVersion=1. Прислали описание (см вложение). Вроде как все понятно.
Купил USB переходник на RS485. Скачал для теста программу ModBusPoll установил на Windows 7. Проверил - все работает: отправляю команду A0 10 00 00 00 00 00 15 получаю в ответ 50 10 00 12 10 00 16 0A 28 24 24 B7. Вроде бы все хорошо, ну думаю запущу все на Raspberry Pi.
Взял за основу скрипт на php с вашего сайта.
Код ниже
Код: Выделить всё
<?php
exec('stty -F /dev/ttyUSB0 cs8 2400 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts');
// $fd = dio_open('/dev/ttyUSB0', O_RDWR | O_NOCTTY | O_NDELAY);
$fd = dio_open('/dev/ttyUSB0', O_RDWR );
// dio_fcntl($fd, F_SETFL, O_SYNC);
// dio_tcsetattr($fd, array(
// 'baud' => 2400,
// 'bits' => 8,
// 'stop' => 1,
// 'parity' => 0
// ));
dio_write($fd, "\xA0\x10\x00\x00\x00\x00\x00\x15");
// dio_write($fd, "\xA4\x10\x00\x00\x00\x00\x00\x11", 8); #turn off
// dio_write($fd, "\xA4\x10\x00\x10\x00\x00\x00\x11", 8); #turn on
print "writing ";
print "";
// usleep(4 * 1000);
$result = dio_read($fd);
print $result;
print "";
// var_dump($result);
?>
Выдает какую-то несуразицу.
Код: Выделить всё
pi@raspberrypi /var/www $ php php.php
writing P
($$?pi@raspberrypi /var/www $
Куда дальше копать идеи кончались
Re: RS485 Термостат для теплого пола
Добавлено: 31 янв 2015, 14:41
non100p
Коллеги),
Может у кого-нить есть идеи что нужно сделать или проверить. Может какие-нибудь тесты сделать?
Re: RS485 Термостат для теплого пола
Добавлено: 31 янв 2015, 19:30
non100p
Пользуюсь вот таким адаптером
http://www.aliexpress.com/store/product ... 14570.html, может он по разному в Windows и в Debian работатет?
Re: RS485 Термостат для теплого пола
Добавлено: 31 янв 2015, 19:56
aurodionov
так можно глянуть как он определился
а можно вопрос, чем он у Вас рулит. котёл? электро тёплый пол?
Re: RS485 Термостат для теплого пола
Добавлено: 31 янв 2015, 20:38
non100p
Идея следующая. Независимо от температуры котла рулить сервоприводами водяного теплого пола в каждой комнате с помощью термостата. Но чтобы в любой момент времени можно было быстро и просто сбросить температуру с комфортной до 18С, для экономии энергоносителя. Делать это предполагаю как раз через web страничку на raspberry pi с использованием RS485. Собственно команды успешно отправляются, устройство их принимает и например меняет температуру, но вот в обратку не отправляет ответ в виде HEX. Как я уже писал в винде с ModBusPoll все показывает и то что отправил и то что вернулось. Может быть я как-то недонастроил stty, или вообще не в том направлении смотрю.
Т.е. На данный момент у меня по какой-то причине не получается прочитать ответ от термостата.
Что касается как определился:
Код: Выделить всё
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 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.
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Код: Выделить всё
pi@raspberrypi ~ $ dmesg | grep USB0
[ 7.068784] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
Re: RS485 Термостат для теплого пола
Добавлено: 27 фев 2015, 22:58
karlismoto
Здравствуйте!
мне было интересно Как Удачи с этим проекoм. Есть ли успех?
Я также ищу хороший комнатного термостат.
Re: RS485 Термостат для теплого пола
Добавлено: 27 фев 2015, 23:36
non100p
Нет, пока все глухо. Проблема не в термостате а в ПО. Решил пока отложить и заказать на проверку другой USB адаптер с другим чипом, может быть с ним получится. В любом случае управлять термостатом я могу, проблема только в получении ответа от термостата.
Re: RS485 Термостат для теплого пола
Добавлено: 28 фев 2015, 00:24
Evgeniy
Если работает с ModbusPoll то железка в норме.
Где-то косяк в пакете данных. Я когда то делал по другому... поднимал ser2net. этим превращал ком порт с переходником в сетевой порт и на этом же компе используя от это
https://code.google.com/p/phpmodbus/ реализуем хотелки!
Re: RS485 Термостат для теплого пола
Добавлено: 01 мар 2015, 21:26
Kopylov
Попробуйте с симулятором модбас-слэйва - без термостата, только RPi и комп с симулятором.
Симулятор бесплатный:
http://www.plcsimulator.org/
Re: RS485 Термостат для теплого пола
Добавлено: 07 мар 2015, 22:50
D D D
Друзья, вопрос не совсем по теме но может подскажете. Имею терморегулятор электрического теплого пола с датчиком температуры DS18B20. Можно ли его датчик параллельно использовать для считывание системой управления домом. Питание управляющей схемы терморегулятора через встроенный делитель и стабилизатор от 220в. Опасаюсь пробоя высокого напряжения в сеть 1-wire в случае нарушения работы этого стабилизатора и вообще возможно ли получать данные от одного датчика DS18B20 двумя разными системами опроса (сам термостат и система управления УД). Может выход защитить DS9503?
Re: RS485 Термостат для теплого пола
Добавлено: 12 мар 2015, 17:01
YVN
non100p писал(а):Коллеги),
Может у кого-нить есть идеи что нужно сделать или проверить. Может какие-нибудь тесты сделать?
Тут ещё многое что можно проверять. Я бы начал с PHP под Windows (где заведомо работала цепочка ModBusPoll - АдаптерUSB-RS485 - Термостат).
На рабочем компьютере под Windows и отлаживать программу на порядок проще.
>> может он по разному в Windows и в Debian работатет?
Нет, он работает одинаково.
Если с PHP под Windows проблемы с примером - напишите, я пример приведу.
>> Взял за основу скрипт на php с вашего сайта
Для Windows, в данном случае, так делать не надо.
Re: RS485 Термостат для теплого пола
Добавлено: 23 мар 2015, 14:34
non100p
Всем привет.
Наконец-то удалось победить данную проблему. Все дело было в конфигурировании stty для USB0 в ОС. Сегодня постараюсь написать как нужно конфигурировать чтобы все завелось.
Re: RS485 Термостат для теплого пола
Добавлено: 24 мар 2015, 01:16
non100p
Продолжаю.
В общем на решение проблемы наткнулся совершенно случайно. Для начала решил подключить в параллель второй USB-RS485 преобразователь и посмотреть что происходит в Windows и Linux при отправке команд из Windows и из Linux. У меня команды отправлялись и получались устройством одинаково хорошо, а вот ответ я получал в винде правильный, а в Linux - мусор. Я думал так что, по идеи, если проблема в железе, то при посылке команды из Linux ответ на адаптер подключенный к Windows должен придти искореженный, если проблема в настроках софта - то ответ придет одинаковый.
Поискал в интернете софт - нашел два замечательных варианта, правда пользуюсь одним -
http://www.compt.ru/, второй -
http://www.compump.narod.ru/. И в той и другой версии есть режим перехвата трафика и всегда можно увидеть что происходит на интерфейсе.
Дальше. Загрузил Debian. Начал запускать команды - гляжу команда отправляются и приходит ответ что с винды, что с Linux одинаково в неискаженном форме.
Начал перебирать настройки stty и методом тыка наткнулся на правильную комбинацию. Что значат все эти настройки для меня до сих пор загадка, но факт в том, что все это работает=)
Код: Выделить всё
stty -F /dev/ttyUSB0 speed 2400 min 0 time 0 cs8 -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
Код: Выделить всё
pi@raspberrypi ~ $ stty -a -F /dev/ttyUSB0
speed 2400 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
Re: RS485 Термостат для теплого пола
Добавлено: 05 апр 2015, 23:44
karlismoto
Интересно следить за вашим проект ! Впервые я вижу, что кто-то пытаюсь запустить сети с комнатным термостатом.
Вы первый который Я нашел на этой неделе с два веб-сайта (
http://www.ab-log.ru ,
http://www.smartliving.ru)
следует вопрос Исходя из Вашего опыта - стоит ли покупать это термостат с rs485 адаптер?
(планируется контролироват с MajorDoMo)
До сих пор у меня Такое ощущение, что все, используя только управление свет и датчики температуры и это все
Re: RS485 Термостат для теплого пола
Добавлено: 10 апр 2015, 09:40
Evgeniy
non100p у Вас при связи термостата с компом на экране появляется значок? Я что-то никак не могу добиться ответа от этого чуда китайской промышленности, ни через modbus poll ни через PLC ни из консоли. В меню пункт 7 стоит значение 1. И ещё в нормальном режиме у Вас кнопка М как нить работает? у меня она тоько подсветку включает,но режимы не меняет
Re: RS485 Термостат для теплого пола
Добавлено: 17 апр 2015, 00:07
non100p
Евгений, значек не появляется - by design) modbus poll ни PLC с ним работать не будут - у него свой протокол как аказалось, там сначала идет команда, а потом уже адрес утройства... вооьщем это не модбас. Я им управляю через обычный запрос, я в начале темы прикрепил архив и там есть описание протокола с описанием функции проверки четности. Иначе говоря без компа тут не прокатит(
Re: RS485 Термостат для теплого пола
Добавлено: 17 апр 2015, 00:09
non100p
Там кстати есть еще один косяк который тоже by design - это при переключении в режим контроля температуры пола надпись room не меняется на floor))). Но в любом случае эти устройства по цене дешевле чем все что я мог найти)
Re: RS485 Термостат для теплого пола
Добавлено: 21 апр 2015, 16:53
Evgeniy
Согласен, полезность его превышает недочеты. Разобрался уже с протоколом, накидал на php скрипт для обмена с термостатами. работает пока через костыль типа RS485<->USB<->ser2net<->php socket<->apache2.
Можно конечно работа напрямую с /dev/ttyUSB0 но тогда апачу надо давать права,а мне лениво ) да и при таком раскладе получить доступ к преобразователю usb<->rs485 из любого места в сети
Re: RS485 Термостат для теплого пола
Добавлено: 11 окт 2015, 18:17
Михаил23
Прошу откликнутся пользователей этого чуда китайской продукции.
купил несколько таких термостатов (4 шт). И теперь не знаю что делать...
Подключил термостаты на тестовом стенде подвел питание, в место электро пола завел лампочку.
Все работает пока... Не дотронешься до внешней металической рамки лицивой панели...После этого проскакивает разряд (ну небольшое статическое эл-во) и чудо техники отключается. И уже ничего не помагает пока его от питания не отрубишь. Это случается не всегда, а периодически (видно когда рука или термостат накопит некий заряд).
Было у кого такое?
Re: RS485 Термостат для теплого пола
Добавлено: 14 окт 2015, 11:49
Acid_Reptile
Разбирать и изолировать рамку от цепей контроллера?