SmartLiving.ru
https://majordomo.smartliving.ru/forum/

Network relay switch
https://majordomo.smartliving.ru/forum/viewtopic.php?f=8&t=3189
Страница 1 из 2

Автор:  Shemmy [ Ср сен 14, 2016 12:10 am ]
Заголовок сообщения:  Network relay switch

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

Подскажите, может есть у кого опыт прикручивания сетевого контроллера с 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 [ Ср сен 14, 2016 10:01 am ]
Заголовок сообщения:  Re: Network relay switch

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

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

Чем то он мне напоминает Laurent...мне кажется управление схожее viewtopic.php?f=8&t=31

Автор:  Shemmy [ Пн сен 19, 2016 7:30 pm ]
Заголовок сообщения:  Re: Network relay switch

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

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 [ Сб ноя 12, 2016 12:05 am ]
Заголовок сообщения:  Re: Network relay switch

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 [ Чт окт 12, 2017 5:57 pm ]
Заголовок сообщения:  Re: Network relay switch

update

Автор:  andrusha7778 [ Вс окт 15, 2017 9:31 am ]
Заголовок сообщения:  Re: Network relay switch

У меня такая железка в хозяйстве есть. Вижу очень большой минус в ней - при управлении через веб морду в режиме импульс (или curl) реле управляются по заранее заложенному алгоритму, а именно - смыкается ровно на одну секунду.
Так же у меня не получилось через импульс управлять одновременно несколькими релешками, то есть пока одна импульс исполняет, то остальное ничего не работает. Возможно надо поэксперементировать просто со вкл выкл, может будет по другому.
PS - поэксперементировал. Действительно если отдельно вкл выкл управлять то всё работает достаточно быстро, то есть команда выполняется моментально и интервал меньше одной секунды.
Кстати по curl всё работает но при этом 404 ошибку выдает в HTTP запросе.
Всё ж таки наверное правильно будет ее через modbus подключать, чтобы использовать еще и для чтения регистров (состояния реле и входов)

Вложения:
Комментарий к файлу: Веб морда реле
реле.PNG
реле.PNG [ 27.37 КБ | Просмотров: 592 ]

Автор:  andrusha7778 [ Пн ноя 06, 2017 5:20 pm ]
Заголовок сообщения:  Re: Network relay switch

Всем добрый день. Попробовал в TCP режиме - действительно реле отвечает. Теперь вопрос - есть ли какой-то способ подружить с MD по TCP?
Понятно, что наверное можно попробовать работать напрямую через TCP сокеты в Linux, но все же может есть что-то более удобное?

Автор:  nick7zmail [ Пн ноя 06, 2017 6:13 pm ]
Заголовок сообщения:  Re: Network relay switch

Есть протокол MODBUS TCP. Случайно не по нему работает? Недавно кому-то настраивал подобную релюшку.

Автор:  andrusha7778 [ Пн ноя 06, 2017 8:01 pm ]
Заголовок сообщения:  Re: Network relay switch

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 байт же отличаются :-(

Автор:  nick7zmail [ Пн ноя 06, 2017 8:08 pm ]
Заголовок сообщения:  Re: Network relay switch

Может таки через modbus попробовать? Модуль есть в маркете.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/