Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Управление через TCP-сокеты

Управление через TCP-сокеты 28 Май 2015 14:32 #12473

  • Vital
  • Vital аватар
  • Вне сайта
  • Укротитель реле
  • Vera 3 и Vera Edge
  • Сообщений: 376
  • Спасибо получено: 79
  • Репутация: 9
Добрый день!

Помогите плз! Я написал на форуме Микасы, но никто там не отвечает. Может быть здесь найдется кто-нибудь, кто разбирается в программировании.

Я все мучаю реле (www.z-wave.ru/forum/vera-veralite/5651-ethernet-rele-i-vera-3.html) и хочу попробовать управлять им командами, на сколько я понял это то что называется TCP-сокет.

Например, я должен послать команду $KE,REL,2,1 чтобы включить реле 2

Вот как это работает через некую программу KeTerm:

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Я нашел на форуме Микасы, что мой код должен быть такой:
local socket = require("socket")
tcp = assert(socket.connect("192.168.0.101", 2424))
tcp:send("$KE,REL,2,1" .. "\r\n")
tcp:close()
Но у меня не работает. Выглядит это так:

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

В мануале написана следующая информация:

Любая KE команда, отсылаемая модулю, должна начинаться с символов ‘$KE’. Также все
команды должны заканчиваться символом возврата каретки <CR> и символом перехода на
новую строку <LF> (в шестнадцатеричном формате эти символы имеют коды 0x0D и 0x0A
соответственно).
$KE,Команда<CR><LF>


Я так понимаю, что "\r\n" - это оно и есть. Или нет? Как тогда правильно написать?

Вот так тоже не работает:

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Управление через TCP-сокеты 30 Май 2015 09:06 #12489

  • Vital
  • Vital аватар
  • Вне сайта
  • Укротитель реле
  • Vera 3 и Vera Edge
  • Сообщений: 376
  • Спасибо получено: 79
  • Репутация: 9
Если вдруг кому интересно: помогла вставка задержки.

Т.е. вот так вот реле срабатывает:
local socket = require("socket")
tcp = assert(socket.connect("192.168.0.101", 2424))
tcp:send("$KE,REL,2,1" .. "\r\n")
luup.sleep(50)
tcp:close()
Последнее редактирование: 30 Май 2015 09:07 от Vital.
Спасибо сказали: Acute, dimonius88, Andrei_Ch
Время создания страницы: 0.201 секунд