Network relay switch

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Shemmy
Сообщения: 25
Зарегистрирован: Вт авг 30, 2016 2:28 am
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Network relay switch

Сообщение Shemmy » Ср сен 14, 2016 12:10 am

Доброго времени суток!

Подскажите, может есть у кого опыт прикручивания сетевого контроллера с 8-мью входами/выходами?
Вот ссылка

У этого контроллера есть простенькая вебморда, позволяющая управлять входами и выходами, и отрисовывающая текущее состояние каждой релюшки.
Нашел в инете информацию как им управлять с помощью curl:
curl --request POST "http://admin:12345678@192.168.1.166/control.cgi" --data "saida1on=1"
curl --request POST "http://admin:12345678@192.168.1.166/control.cgi" --data "saida1off=1"

Вдруг есть у кого наработки аналогичного девайса?

У самого программирование было 15 лет назад и порядком подзабылось :(
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Network relay switch

Сообщение nick7zmail » Ср сен 14, 2016 10:01 am

Shemmy писал(а):Доброго времени суток!

Подскажите, может есть у кого опыт прикручивания сетевого контроллера с 8-мью входами/выходами?
Вот ссылка
Чем то он мне напоминает Laurent...мне кажется управление схожее http://majordomo.smartliving.ru/forum/v ... p?f=8&t=31
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Shemmy
Сообщения: 25
Зарегистрирован: Вт авг 30, 2016 2:28 am
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Network relay switch

Сообщение Shemmy » Пн сен 19, 2016 7:30 pm

Покопавшись, нашел документацию.
Оказывается, он элементарно управляется телнетом, и также отдает информацию о статусе выходов и состоянии выключателей.
Закину эту информацию сюда на хранение, и с надеждой, что кто-то сможет облачить это в код =)

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

1. Parameters of controller
Default IP:192.168.1.166
Default TCP port :1234
2. Operation of relays
(1) Open the relay
L(n) n=1:8,Such as the need to open the relay 1, then send the string “L1”. The board will return “Relayon 1” after the relay in operation.
(2) Close the relay
D(n) n=1:8,Such as the need to close the relay 3, then send the string “D3”. The board will return “Relayoff 3” after the relay in operation.
(3) 800ms pluse,Open relay for 800ms,then close.
P(n) n=1:8,Such as the need to pluse the relay 1, then send the string “P1”. The board will return “Press 1” after the relay in operation.
(4) Read status of relays
R(n) n=1:8,Such as the need to read the status of relay 1, then send the string “R1”. The board will return “Relayon 1” or “Relayoff 1”.
(5) Read input status
I(n) n=1:8, Such as the need to read the status of input 1, then send the string “I1”. The board will return “IL 1” or “IH 1”.
(6) Burst mode read status
Send strings ”DUMP” or “dump”,the board will return all status of relays and inputs by end of “OK”.
(7) Examples
1. Connect to TCP port;
2. Send command, all commad by ends of “\r\n”;
3. If the PC within 30s no data is sent to the controller, the controller will disconnect to PC.
PC Board
L1 Relayon 1
DUMP Relayon 1
Relayoff 2
Relayoff 3
Relayoff 4
Relayoff 5
Relayoff 6
Relayoff 7
Relayoff 8
IL 1
IL 2
IL 3
IL 4
IL 5
IL 6
IL 7
IL 8
OK
Rad81
Сообщения: 193
Зарегистрирован: Пт апр 01, 2016 2:42 pm
Благодарил (а): 10 раз
Поблагодарили: 10 раз

Re: Network relay switch

Сообщение Rad81 » Сб ноя 12, 2016 12:05 am

Relays-> turnOff * exec('curl --request POST "http://admin:12345678@192.168.1.166/control.cgi" --data "saida1off=1"');

Relays-> turnOn * exec('curl --request POST "http://admin:12345678@192.168.1.166/control.cgi" --data "saida1on=1"');
Rad81
Сообщения: 193
Зарегистрирован: Пт апр 01, 2016 2:42 pm
Благодарил (а): 10 раз
Поблагодарили: 10 раз

Re: Network relay switch

Сообщение Rad81 » Чт окт 12, 2017 5:57 pm

update
andrusha7778
Сообщения: 85
Зарегистрирован: Сб авг 12, 2017 11:03 am
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Network relay switch

Сообщение andrusha7778 » Вс окт 15, 2017 9:31 am

У меня такая железка в хозяйстве есть. Вижу очень большой минус в ней - при управлении через веб морду в режиме импульс (или curl) реле управляются по заранее заложенному алгоритму, а именно - смыкается ровно на одну секунду.
Так же у меня не получилось через импульс управлять одновременно несколькими релешками, то есть пока одна импульс исполняет, то остальное ничего не работает. Возможно надо поэксперементировать просто со вкл выкл, может будет по другому.
PS - поэксперементировал. Действительно если отдельно вкл выкл управлять то всё работает достаточно быстро, то есть команда выполняется моментально и интервал меньше одной секунды.
Кстати по curl всё работает но при этом 404 ошибку выдает в HTTP запросе.
Всё ж таки наверное правильно будет ее через modbus подключать, чтобы использовать еще и для чтения регистров (состояния реле и входов)
Вложения
реле.PNG
Веб морда реле
реле.PNG (27.37 КБ) 7309 просмотров
andrusha7778
Сообщения: 85
Зарегистрирован: Сб авг 12, 2017 11:03 am
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Network relay switch

Сообщение andrusha7778 » Пн ноя 06, 2017 5:20 pm

Всем добрый день. Попробовал в TCP режиме - действительно реле отвечает. Теперь вопрос - есть ли какой-то способ подружить с MD по TCP?
Понятно, что наверное можно попробовать работать напрямую через TCP сокеты в Linux, но все же может есть что-то более удобное?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Network relay switch

Сообщение nick7zmail » Пн ноя 06, 2017 6:13 pm

Есть протокол MODBUS TCP. Случайно не по нему работает? Недавно кому-то настраивал подобную релюшку.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
andrusha7778
Сообщения: 85
Зарегистрирован: Сб авг 12, 2017 11:03 am
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Network relay switch

Сообщение andrusha7778 » Пн ноя 06, 2017 8:01 pm

TCP Modbus эта железка тоже умеет, но там другой порт и другой протокол.
А тут всё просто, я putty в RAW режиме коннекчусь на порт 1234 и отправляю команды, оно отвечает. Если за 30 сек ничего не отправлю TCP сессия закрывается.
Немного поразвлекался в PHP

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

dump_state.php
<?php
$client = stream_socket_client("tcp://XXX.XXX.XXX.XXX:1234", $errno, $errorMessage);

if($client === false){
                throw new UnexpectedValueException("Failed to connect: $errorMessage");
        }
        
        fwrite($client, "DUMP\r\n");
       
$variable = stream_get_contents($client);
echo $variable;

fclose($client);
?>
отдает нормально свое состояние. Проблема в том что TCP сессия не закрывается пока девайс ее не закроет, это автоматически через 30 секунд происходит.
По всей видимости надо другой алгоритм работы использовать
ЗЫ - попробовал ограничивать буфер чтения количеством байт, stream_get_contents($client, 140) например так, - тогда скрипт не ждет разрыва сессии и отдает данные сразу, но в зависимости от состояния релешек могут разной длины ответы приходить
к примеру relayoff 1 и relayon 1 на 1 байт же отличаются :-(
Последний раз редактировалось andrusha7778 Пн ноя 06, 2017 8:11 pm, всего редактировалось 1 раз.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Network relay switch

Сообщение nick7zmail » Пн ноя 06, 2017 8:08 pm

Может таки через modbus попробовать? Модуль есть в маркете.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить