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

+7 495 204-27-80

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

ТЕМА: Ethernet реле и Vera 3

Ethernet реле и Vera 3 14 Июль 2015 19:57 #12772

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Vital, а можешь подробнее расписать какой брал плагин виртуального выключателя и куда именно прописывал команды luup.inet.wget("192.168.0.101/cmd.cgi?cmd=REL,1,1").
У меня есть похожие устройства, пытался запустить через сцены (прописывал в ЛУУПе), но ничего не вышло. Для моего контролера( который управляется по http) команда на включение выглядит так "http://192.168.0.15/sec/?cmd=8:1".устройства покупал от сюда www.ab-log.ru/smart-house/ethern.
Буду признателен за любую помощь.

Ethernet реле и Vera 3 15 Июль 2015 11:17 #12775

  • Vital
  • Vital аватар
  • Вне сайта
  • Укротитель реле
  • Vera 3 и Vera Edge
  • Сообщений: 376
  • Спасибо получено: 79
  • Репутация: 9
Я уже точно не помню, поскольку прекратил эксперименты с http-запросами, как бесперспектиные, и перешел на эксперименты с TCP-сокетами. Даже "написал плагин", который работает, но пока не позволяет отображать реальное состояние.

Вроде было так:

Плагин виртуального выключателя вот такой:
Virtual ON/OFF Switches
App id: 1408

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

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


Соответственно создаем сцены, где включение и выключение этого виртуального выключателя является триггерами:

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

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


Я бы искал проблему так:

Первый шаг. Набрать ваш адрес http://192.168.0.15/sec/?cmd=8:1 в браузере и посмотреть сработает ли.

Второй шаг. Выполнить напрямую LUUP-код

luup.inet.wget("192.168.0.15/sec/?cmd=8:1")

Здесь: Apps -> Develop apps -> Test Luup code (Lua)

и посмотреть сработает ли.

Третий шаг. Вставить этот LUUP-код в сцену и попробовать ее запускать напрямую без выключателя.
Спасибо сказали: Acute, Sanchesman

Ethernet реле и Vera 3 15 Июль 2015 18:03 #12779

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Спасибо, буду пробовать. В любом случае первый шаг работает. все остальное нет. попробую перейти на UI7. может что выйдет

Ethernet реле и Vera 3 07 Авг 2015 21:14 #13131

  • Vital
  • Vital аватар
  • Вне сайта
  • Укротитель реле
  • Vera 3 и Vera Edge
  • Сообщений: 376
  • Спасибо получено: 79
  • Репутация: 9
Итак, сделал я следующим образом.
Основной файл - I:

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


Все работает нормально. Можно отключить и включить, реальное состояние тоже опрашивается. Сделал с помощью функции luup.call_timer, которая когда выполняется - то сама себя перевызывает с задержкой (как-то так).

Но сразу скажу, что я понял, что все придется переделывать, но как временное решение - пойдет, и, может быть, кому-нибудь мои изыскания пригодятся.

Вот мои файлы устройства: D, I и S: cloud.mail.ru/public/GQwf/RyzSkDqig

Я там сделал даже проверку доступности реле перед запуском и использование пароля.

Создаем устройство через Apps -> Develop apps -> Create device

Переменные вводятся в настройках устройства.

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


Итак, в чем же проблема и почему надо делать иначе.
Это одно реле, а ведь мне надо опрашивать несколько. И еще датчики опрашивать. И если выключатель можно опросить раз в минуту, то некоторые датчики надо раз в секунду. Т.е. там получится каша из запросов и ответов, они будут мешаться друг другу. Каждый раз при запросе открывается сокет, и значит другой запрос уже не сможет сокет открыть. Так что это не прокатит.
Спасибо сказали: Acute

Ethernet реле и Vera 3 15 Авг 2015 21:29 #13229

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Vital, подскажите пожалуйста. весь день мучаюсь не могу отправить на устройство команду через tsp socet. если команда "192.168.0.15/sec/?cmd=7:1" включает свет в комнате, то как ее отправить через tsp socet? Напишите пожалуйста кусок кода. команда luup.inet.wget("192.168.0.15/sec/?cmd=7:1") работает на ура, но все же хотелось бы использовать ваш опыт с сокетами.

Ethernet реле и Vera 3 16 Авг 2015 11:38 #13240

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

Я сам не большой специалист в этом, но TCP/IP-сокеты - это никак не связано с http-запросами, про которые вы говорите. Это разные протоколы, и, конечно, просто так один другим не заменить.

Я мельком глянул на сайте вашего устроуства, там написано, что оно работает и с http-запросами и с TCP/IP-сокетами, но там не написан формат запроса, может я невнимательно смотрел, или есть отдельный мануал.

У меня, скажем так, в мануале написано, что команда $KE,REL,1,1 - посланная через гипертерминал или другой подобный софт, приведет к включению реле 1.

Т.е. код, вставленный в
Apps -> Develop apps -> Test Luup code (Lua)
должен быть такой:

local socket = require("socket")
local tcp = assert(socket.tcp())
tcp:settimeout(1)
tcp:connect("192.168.0.101", 2424)
tcp:send("$KE,REL,1,1".."\r\n")
luup.sleep(50)
tcp:close()

Т.е. вам нужно найти такую команду у себя в мануале (если она есть), а то что вы пишете - это http-запрос.

А чем вас не устраивают http-запросы?
У меня просто не все из них срабатывают (я написал производителю, но он что-то не чешется, а по гарантии менять лень), и сложнее организовать опрос состояния. Поэтому и пришлось перейти на сокеты.

Ethernet реле и Vera 3 16 Авг 2015 11:55 #13241

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Спасибо за информацию. Http запросы всем хороши вот только не получается с их помощью получать значения реле в текущий момент. И соответственно отслеживать положения выключателей тоже не получится. Ко всему этому нет уверенности что удаленно отправленная команда достигла цели. В добавок ко всему при использование сокетов, можно было бы понавешивать датчиков на эту мегу и с них тоже брать показания. Сейчас жду ответа от производителя, но он как и все другие тоже не торопится.
Последнее редактирование: 16 Авг 2015 11:56 от Sanchesman.

Ethernet реле и Vera 3 27 Сен 2015 13:40 #13511

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

Дело в том, что полученный выключатель нормально не включается внешними запросами. Т.е. команда на включение и выключение его приводит только к переключению в другое состояние.

Например, код
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", "1", 34)
(запущенный, например, в окне тестирования) должен в любом случае включать устройство. Но он включает устройство, если оно было выключено, и выключает, если было включено. Это же неправильно.

Или, например, в такой сцене, когда при наступлении ночи (с использованием плагина day night) должна включаться лампочка - она меняет свое состояние (выключается, если была включена).

Я думаю, что дело в этой части плагина (из I-файла):
<action>
     <serviceId>urn:upnp-org:serviceId:SwitchPower1</serviceId>
     <name>SetTarget</name>
      <run>
		-- Запрашиваем состояние реле (не реальное, а сохраненное в Вере)
		local switchOnOff = luup.variable_get("urn:upnp-org:serviceId:SwitchPower1", "Status", lul_device)
 
		-- Запрашиваем переменные
		local IP = luup.variable_get("urn:upnp-org:serviceId:Laurent1", "LaurentIP", lul_device)
		local Port = luup.variable_get("urn:upnp-org:serviceId:Laurent1", "LaurentPort", lul_device)
		local Relay = luup.variable_get("urn:upnp-org:serviceId:Laurent1", "RelayID", lul_device)
		local Password = luup.variable_get("urn:upnp-org:serviceId:Laurent1", "Password", lul_device)
 
		-- Если было включено - то выключаем так
		if (switchOnOff == "1") then
			-- Сначала пишем в переменную состояние для правильного отображения
			luup.variable_set("urn:upnp-org:serviceId:SwitchPower1","Status",0,lul_device)
			local socket = require("socket")
			local tcp = assert(socket.tcp())
			tcp:settimeout(1)
			tcp:connect(IP, Port)
			tcp:send("$KE,REL,"..Relay..",0".."\r\n")
			local TurnOffAnswer = tcp:receive()
			-- Пишем ответ в лог
			luup.log("Laurent "..IP.." - Answer when turn off - "..TurnOffAnswer)
			luup.sleep(50)
			tcp:close()
 
 
		-- Иначе - включаем	так		
		else
			-- Сначала пишем в переменную состояние для правильного отображения
			luup.variable_set("urn:upnp-org:serviceId:SwitchPower1","Status",1,lul_device)
			local socket = require("socket")
			local tcp = assert(socket.tcp())
			tcp:settimeout(1)
			tcp:connect(IP, Port)
			tcp:send("$KE,REL,"..Relay..",1".."\r\n")
			local TurnOnAnswer = tcp:receive()
			-- Пишем ответ в лог
			luup.log("Laurent "..IP.." - Answer when turn on - "..TurnOnAnswer)
			luup.sleep(50)
			tcp:close()
		end
		</run>
    </action>
Как-то это странно выглядит. Но я где-то содрал, а как сделать нормально - не знаю.

Ethernet реле и Vera 3 30 Сен 2015 17:38 #13521

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

В чем дело разобрался, теперь плагин работает и в сценах.

Обновил свои файлы: cloud.mail.ru/public/z2Hs/y4UuMncv6
(Также там есть плагин для исходящей линии, работает также)

P.S. Использование пароля сейчас отключено
Последнее редактирование: 30 Сен 2015 17:42 от Vital.
Спасибо сказали: Acute, aov

Ethernet реле и Vera 3 28 Окт 2015 10:50 #13839

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

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

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

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


cloud.mail.ru/public/K1Qb/s9kjX9DqG

В сценах можно использовать, но, конечно, ImperiHome его не видит. Так что далее планирую чтобы он мог создавать стандартные устройства по необходимости.

Интересно, а можно этот плагин разместить в маркете Веры? Ну, может быть, кому-нибудь будет полезно, а мой скорбный труд даром не пропадет...
Спасибо сказали: Acute

Ethernet реле и Vera 3 28 Окт 2015 21:04 #13843

  • Acute
  • Acute аватар
  • Вне сайта
  • Администратор
  • Сообщений: 3104
  • Спасибо получено: 459
  • Репутация: 70
А не пробовал загружать? Я не в курсе, но вроде можно apps.mios.com/add-plugin.php
Группа форума в Telegram t.me/zwaveforum
Спасибо сказали: Vital

Ethernet реле и Vera 3 28 Окт 2015 21:45 #13847

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

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

Спасибо, я тогда там повнимательнее пороюсь, как будет время.

Ethernet реле и Vera 3 29 Нояб 2015 13:18 #14404

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Vital, подскажи пожалуйста как написать простейший плагин с жестко зашитыми ip, password, rele_number. Пытался написать плагин на примере виртуального выключателя и твоего первого плагина. ниже привел I_файл
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Последнее редактирование: 29 Нояб 2015 13:19 от Sanchesman. Причина: корректировка

Ethernet реле и Vera 3 29 Нояб 2015 13:20 #14405

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Итогом должно быть отображение состояния реле. но ничего не работает. подскажите что не так.

Ethernet реле и Vera 3 29 Нояб 2015 17:10 #14408

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

Ну во-первых - в чем проявляется что не работает? При перезагрузке он пишет наверху что-то типа Lua failed с номером устройства?

Из критичных ошибок я вижу, что нет функции запуска.

Написано <startup>initialisation</startup>, но самой функции initialisation нет.
Возможно, пропущено ее объявление в самом начале - типа после слов
<functions>
должно быть
function initialisation(lul_device)

Также не надо два раза перезапускать функцию опроса
luup.call_timer("request", 1, Period, "")
у вас она два раза перезапускается - в начале и в конце. Я ставлю в начале, чтобы она перезапускалась в любом случае, даже если до конца не дойдет.

Лучше переменные делать local (например, local period = ...)
Такие коментарии нормально ли? <!--
Лучше ставить ставить стандартные --

Ethernet реле и Vera 3 30 Нояб 2015 07:12 #14416

  • empenoso
  • empenoso аватар
  • Вне сайта
  • Завсегдатай
  • Сообщений: 254
  • Спасибо получено: 40
  • Репутация: 5
Это вы MegaD-328 подключаете?

Ethernet реле и Vera 3 30 Нояб 2015 14:07 #14422

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Да. Есть какая то информация по подключению?

Ethernet реле и Vera 3 30 Нояб 2015 14:13 #14423

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Спасибо, вечером поправлю. Проверю еще раз. А не подскажете, может есть какое описание по написанию плагинов для веры? Если есть, скиньте пожалуйста ссылки.

Ethernet реле и Vera 3 30 Нояб 2015 20:11 #14426

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

У них на вики есть какой-то типа гид по написанию плагина на каком-то примере, но на мой взгляд это лажа. Я ничего не понял. Возможно, это было рассчитано на того кто немного в теме, а не совсем на ньюба.

Я сам изучал готовые плагины, смотрел как они работают, что-то менял, смотрел что из этого получается и т.д. Пару вещей (по LUA) мне подсказал друган, который программист. Что-то полезное находил там на форуме. Сам я не программист.

Ethernet реле и Vera 3 30 Нояб 2015 20:25 #14427

  • Sanchesman
  • Sanchesman аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 8
  • Репутация: 0
Попробовал внести изменения, результат тот же. Видимо ошибка где то в написание самих файлов D_, S_, I_. потому что структура
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

выполняется корректно и виртуальному выключателю (устройство 54) задает нужное положение (зависит от положения порта 7 по адресу 192.168.0.15).
может кто что подсказать по структуре I_ файла. Я на данном этапе не знаю почти ничего о нем. ну или закиньте кто нибудь пример как задать состояние устройству №55 (виртуальный выключатель) значение 1. Нужен именно сам I_файл. заранее спасибо
Последнее редактирование: 30 Нояб 2015 20:26 от Sanchesman.
  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.409 секунд