Плагин MegaD

Программная платформа для систем автоматизации.
Диспетчеризация, Умный дом.
intrapro
Сообщения: 458
Зарегистрирован: 13 дек 2016, 09:14

Re: Плагин ab-log

Сообщение intrapro » 07 июн 2019, 15:09

Pulkin писал(а):
07 июн 2019, 10:20
Привет.
Никак не получается законнектить IH и контроллер ab-log
Система установлена на Raspberry Pi B+, контроллер подключен по LAN.
После запуска плагин останавливается через 5 секунд, в отладчике вот такая информация:
07.06 11:10:53.285 IH: Run /var/lib/intrahouse-c/plugins/megad/megad.js megad1
07.06 11:10:53.993 megad1: MegaD plugin has started.
07.06 11:10:54.020 megad1: Listen server start
07.06 11:10:54.046 megad1: Listening localhost:8081
07.06 11:10:54.256 megad1:
07.06 11:10:54.257 megad1: localhost => 192.168.0.21 HTTP GET /sec/?cmd=all
07.06 11:10:57.383 megad1: localhost <= 192.168.0.21 Error EHOSTUNREACH. Stopped.
07.06 11:10:57.397 IH: Plugin exit with code 3
07.06 11:10:57.398 IH: restart timer 5
Чего только не пробовал, но вылечить не получается. Спасайте!)
Raspberry контроллер не видит :(
Попробуйте с консоли Raspberry пинговать 192.168.0.21

Erik
Сообщения: 356
Зарегистрирован: 23 окт 2018, 13:09

Re: Плагин MegaD

Сообщение Erik » 23 июн 2019, 11:59

Вопрос.

У меня к меге подключены обычные выключатели, а не кнопки.
Они и так работают, конечно, во взаимодействии с мегой проблем нет.
В поле Act стоит 9:3, например, и выход 9 повторяет состояние выключателя на входе.

А во взаимодействии с сервером слишком много вариантов.

вариант 1.
Создать расширения, и в поле ответ поставить те же самые 9:3.

Вариант 2.
Создать расширения, и мультисценарий, который в зависимости от состояния входа устанавливавет состояние выхода. В этом случае поле "отправить в ответ" и "установить состояние каналов" в расширении оставить пустым?

Вариант 3.
Расширения не создавать, создать мультисценарий, запускающийся при изменении входа, и устанавливающий состояние выхода в соответствии с изменением.


Как правильно?

intrapro
Сообщения: 458
Зарегистрирован: 13 дек 2016, 09:14

Re: Плагин MegaD

Сообщение intrapro » 24 июн 2019, 08:55

Erik писал(а):
23 июн 2019, 11:59
Вопрос.

У меня к меге подключены обычные выключатели, а не кнопки.
Они и так работают, конечно, во взаимодействии с мегой проблем нет.
В поле Act стоит 9:3, например, и выход 9 повторяет состояние выключателя на входе.

А во взаимодействии с сервером слишком много вариантов.

вариант 1.
Создать расширения, и в поле ответ поставить те же самые 9:3.

Вариант 2.
Создать расширения, и мультисценарий, который в зависимости от состояния входа устанавливавет состояние выхода. В этом случае поле "отправить в ответ" и "установить состояние каналов" в расширении оставить пустым?

Вариант 3.
Расширения не создавать, создать мультисценарий, запускающийся при изменении входа, и устанавливающий состояние выхода в соответствии с изменением.

Как правильно?
Не бывает слишком много вариантов в нашем многовариантном мире :)
И единственно правильного решения тоже нет. Все зависит от задачи
Erik писал(а):
23 июн 2019, 11:59
вариант 1.
Создать расширения, и в поле ответ поставить те же самые 9:3.
Этот вариант самый быстрый - и по скорости реакции, и по реализации
Ответ отправляется как response на request сервера.
Еще плюс - вход как устройство (и даже как канал) можно не создавать.
Этот вариант заточен на контроллер MegaD, который дает возможность передать команду в ответ на request о переключении состояния
Erik писал(а):
23 июн 2019, 11:59
Вариант 2.
Создать расширения, и мультисценарий, который в зависимости от состояния входа устанавливавет состояние выхода.
Здесь будет задержка на выполнение сценария (которая реально конечно не заметна)
Опять можно обойтись без создания устройства для входа. В сценарий передается тело запроса.
Логично использовать, если существуют какие-то условия для выполнения команды, которые нужно проверить сценарием
Erik писал(а):
23 июн 2019, 11:59
В этом случае поле "отправить в ответ" и "установить состояние каналов" в расширении оставить пустым?
Да. "отправить в ответ" - это отправить response на request сервера. Здесь команда на контроллер пойдет отдельным запросом,
И состояние выхода будет установлено как результат выполнения этой команды
Erik писал(а):
23 июн 2019, 11:59
Вариант 3.
Расширения не создавать, создать мультисценарий, запускающийся при изменении входа, и устанавливающий состояние выхода в соответствии с изменением.
Здесь придется создать для каждого входа устройство. Это универсальный вариант, не связанный с функционалом контроллера

Erik
Сообщения: 356
Зарегистрирован: 23 окт 2018, 13:09

Re: Плагин MegaD

Сообщение Erik » 24 июн 2019, 12:19

В варианте 1. Сервер отобразит лампу включенной? Или что нужно настроить?

В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?

intrapro
Сообщения: 458
Зарегистрирован: 13 дек 2016, 09:14

Re: Плагин MegaD

Сообщение intrapro » 24 июн 2019, 12:55

Erik писал(а):
24 июн 2019, 12:19
В варианте 1. Сервер отобразит лампу включенной? Или что нужно настроить?
Нужно "установить состояние каналов" для выхода:
Так как у вас команда 3, то номер выхода=%значение входа% , например, 7=%ext0% (зависит от входящего сообщения)
Erik писал(а):
24 июн 2019, 12:19
В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?
Сервер на любой запрос меги отвечает кодом 200. Он просто не передаст команду в ответ.

Из священного мануала:
Флажок (чекбокс) справа от поля Act определяет логику работы сценария. Если он не установлен (по умолчанию), то сценарий выполняется ТОЛЬКО если сервер не прописан, недоступен или HTTP-статус отличен от 200. Если флажок установлен, то сценарий выполняется всегда независимо от наличия сервера. Контроллер в этом случае будет сообщать на сервер о событиях, но его ответные команды в рамках одной TCP-сессии будут проигнорированы.

Erik
Сообщения: 356
Зарегистрирован: 23 окт 2018, 13:09

Re: Плагин MegaD

Сообщение Erik » 24 июн 2019, 13:32

intrapro писал(а):
24 июн 2019, 12:55
Erik писал(а):
24 июн 2019, 12:19
В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?
Сервер на любой запрос меги отвечает кодом 200. Он просто не передаст команду в ответ.

Из священного мануала:
Флажок (чекбокс) справа от поля Act определяет логику работы сценария. Если он не установлен (по умолчанию), то сценарий выполняется ТОЛЬКО если сервер не прописан, недоступен или HTTP-статус отличен от 200. Если флажок установлен, то сценарий выполняется всегда независимо от наличия сервера. Контроллер в этом случае будет сообщать на сервер о событиях, но его ответные команды в рамках одной TCP-сессии будут проигнорированы.
Это не понятно.

Вот у меня флажок не стоял, сервер по-умолчанию отвечал 200, не посылая никаких команд, а свет таки включался. Только задержка была с секунду примерно.

intrapro
Сообщения: 458
Зарегистрирован: 13 дек 2016, 09:14

Re: Плагин MegaD

Сообщение intrapro » 24 июн 2019, 13:41

Erik писал(а):
24 июн 2019, 13:32
intrapro писал(а):
24 июн 2019, 12:55
Erik писал(а):
24 июн 2019, 12:19
В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?
Сервер на любой запрос меги отвечает кодом 200. Он просто не передаст команду в ответ.

Из священного мануала:
Флажок (чекбокс) справа от поля Act определяет логику работы сценария. Если он не установлен (по умолчанию), то сценарий выполняется ТОЛЬКО если сервер не прописан, недоступен или HTTP-статус отличен от 200. Если флажок установлен, то сценарий выполняется всегда независимо от наличия сервера. Контроллер в этом случае будет сообщать на сервер о событиях, но его ответные команды в рамках одной TCP-сессии будут проигнорированы.
Это не понятно.

Вот у меня флажок не стоял, сервер по-умолчанию отвечал 200, не посылая никаких команд, а свет таки включался. Только задержка была с секунду примерно.
Нужно лог смотреть.

Erik
Сообщения: 356
Зарегистрирован: 23 окт 2018, 13:09

Re: Плагин MegaD

Сообщение Erik » 24 июн 2019, 15:25

intrapro писал(а):
24 июн 2019, 13:41

Нужно лог смотреть.
где?

intrapro
Сообщения: 458
Зарегистрирован: 13 дек 2016, 09:14

Re: Плагин MegaD

Сообщение intrapro » 24 июн 2019, 16:14

Erik писал(а):
24 июн 2019, 15:25
intrapro писал(а):
24 июн 2019, 13:41

Нужно лог смотреть.
где?
Включите отладчик плагина MegaD. Там все сообщения между контроллером и сервером
Возможно, есть какие-то изменения прошивки контроллера

Erik
Сообщения: 356
Зарегистрирован: 23 окт 2018, 13:09

Re: Плагин MegaD

Сообщение Erik » 24 июн 2019, 18:32

intrapro писал(а):
24 июн 2019, 16:14
Erik писал(а):
24 июн 2019, 15:25
intrapro писал(а):
24 июн 2019, 13:41

Нужно лог смотреть.
где?
Включите отладчик плагина MegaD. Там все сообщения между контроллером и сервером
Возможно, есть какие-то изменения прошивки контроллера
У меня прошивка старая, с какой купил. Ни разу не прошивал.
Мне от контроллера нужен базовый функционал, к которому и вопросов то никогда не было.

Ответить