[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: [Модуль] MegaD (megad)

Сообщение Chainik »

semkyskov писал(а): Вс дек 15, 2019 4:13 pm У Вас проблема как раз в том, что сервер никаким образом не получает состояние портов Меги.
...
Свою проблему я бы сформулировал по-другому. "С какого перепугу" MDM при старте синхронизирует состояние выходов Меги с тем, которое сохранилось у него в базе?
Я еще могу понять, когда речь идет о входах. Правда и тут надо проводить синхронизацию по направлению "Мега >>> MDM" (а не наоборот). Но вот когда при старте MDM синхронизирует выходы Меги, причем переключает их в соответствии с тем состоянием, которое было сохранено у него в БД...
Вот это я отказываюсь понимать... Мега умеет в простейших случаях работать автономно от сервера. И много всего может произойти, пока сервер "отсутствовал".
Считаю, что это надо исправить.
semkyskov
Сообщения: 29
Зарегистрирован: Вт июл 10, 2018 11:21 am

Re: [Модуль] MegaD (megad)

Сообщение semkyskov »

Chainik писал(а): Вс дек 15, 2019 5:57 pm
semkyskov писал(а): Вс дек 15, 2019 4:13 pm У Вас проблема как раз в том, что сервер никаким образом не получает состояние портов Меги.
...
Свою проблему я бы сформулировал по-другому. "С какого перепугу" MDM при старте синхронизирует состояние выходов Меги с тем, которое сохранилось у него в базе?
Я еще могу понять, когда речь идет о входах. Правда и тут надо проводить синхронизацию по направлению "Мега >>> MDM" (а не наоборот). Но вот когда при старте MDM синхронизирует выходы Меги, причем переключает их в соответствии с тем состоянием, которое было сохранено у него в БД...
Вот это я отказываюсь понимать... Мега умеет в простейших случаях работать автономно от сервера. И много всего может произойти, пока сервер "отсутствовал".
Считаю, что это надо исправить.
По крайней мере, у меня Ваша проблема никак не воспроизводится. При загрузке сервер считывает конфигурацию портов Меги (выходов в частности) и выставляет в интерфейсе соответствующие статусы. Да и судя по Вашим логам нигде не видно, что бы сервер отправлял Меге хоть какие то команды. Попробуйте найти подтверждение тому, что сервер отправляет Меге команду на "синхронизацию". Посмотрите трафик между сервером и Мегой Wiresharkом.
А вот почему в истории свойства статус дублируется команда от Меги на нажатие кнопки (cnt=3, cnt=5) это вопрос. Как раз это наверное и вызывает срабатывание метода два раза. При установленном методе switch, это вызовет ту самую смену статуса на противоположный, через короткий промежуток времени после нажатия кнопки.
likex2000
Сообщения: 3
Зарегистрирован: Ср дек 11, 2019 11:37 am

Re: [Модуль] MegaD (megad)

Сообщение likex2000 »

Могу предположить, что двойная запись состояния свойства status в ноль происходит из-за указания связанного свойства в настройках стандартного входа в модуле MegaD (на вкладке "Данные") и связанного метода, который также меняет свойство status.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: [Модуль] MegaD (megad)

Сообщение Chainik »

likex2000 писал(а): Пн дек 16, 2019 11:17 pm Могу предположить, что двойная запись состояния свойства status в ноль происходит из-за указания связанного свойства в настройках стандартного входа в модуле MegaD (на вкладке "Данные") и связанного метода, который также меняет свойство status.
Возможно, вы правы.
Проверить смогу только в выходные, когда доберусь до оборудования. Уберу из настроек Status, оставлю только метод и посмотрю, что будет.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: [Модуль] MegaD (megad)

Сообщение Chainik »

likex2000, вы оказались правы. В настройках на вкладке "Данные" действительно надо было оставить только метод (в котором осуществляется переключение свойства Status с обратной связью). "Связанное свойство", конечно же, надо было оставить пустым.
Именно поэтому в истории свойства Status появлялись двойные записи:
SPOILERSPOILER_SHOW
Opera Снимок_2019-12-20_200750_127.0.0.1.png
Opera Снимок_2019-12-20_200750_127.0.0.1.png (50.13 КБ) 4993 просмотра
Теперь порядок:
SPOILERSPOILER_SHOW
Opera Снимок_2019-12-20_200845_127.0.0.1.png
Opera Снимок_2019-12-20_200845_127.0.0.1.png (20.3 КБ) 4993 просмотра
Но проблема с ошибочной синхронизацией состояния выходов при старте Мажордомо осталась (viewtopic.php?f=5&t=2263&start=1197).
semkyskov
Сообщения: 29
Зарегистрирован: Вт июл 10, 2018 11:21 am

Re: [Модуль] MegaD (megad)

Сообщение semkyskov »

После того, как сломалась работа по нажатию кнопки при привязанном только методе status (viewtopic.php?f=5&t=2263&start=1170#p111928) всегда привязываю настройках модуля на вкладке "Данные" только метод, но тогда, в любом случае, команда на контроллер отправляется почему то два раза.

только status, команда не передается, реле не включается
SPOILERSPOILER_SHOW
Изображение
Изображение
Изображение
только turnOn, команда передается дважды, реле включается
SPOILERSPOILER_SHOW
Изображение
Изображение
Изображение
только turnOff, команда передается дважды, реле выключается
SPOILERSPOILER_SHOW
Изображение
Изображение
Изображение
только switch, команда передается дважды, реле включается и через несколько сек выключается
SPOILERSPOILER_SHOW
Изображение
Изображение
Изображение
Denmish83
Сообщения: 1
Зарегистрирован: Пн дек 23, 2019 1:26 am

Re: [Модуль] MegaD (megad)

Сообщение Denmish83 »

То же обновил всю модули и остался без света и климата во всем доме ((
Команды у меня не дублируются как у semkyskov, а вот по изменению "status" не переключаются.
Метод Switch работает.
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: [Модуль] MegaD (megad)

Сообщение Logrus »

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

процессцикле, с какого-то перепуга 9-е обновлял 0_0
из меня включил, изменением свойства, перестало, выключил не повторилось 0_0
Снимок.PNG
Снимок.PNG (35.45 КБ) 4896 просмотров
Снимок.PNG
Снимок.PNG (28.37 КБ) 4892 просмотра
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Kirch
Сообщения: 52
Зарегистрирован: Чт июл 26, 2018 4:50 pm

Re: [Модуль] MegaD (megad)

Сообщение Kirch »

Chainik писал(а): Вс сен 02, 2018 10:53 pm
Mr.Lia писал(а): Вс сен 02, 2018 9:31 pm ...Такой вопрос, как реализовать команды типа 12:^;7:2 и т.п.?
Собственно, для управления диммированием не обязательно нужно использовать модуль MegaD.

Примерная схема действий такая. Предположим, что диммируемая нагрузка подключена к порту P13.
1. Создаете Объект диммера, например, "Dimmer01". У него должно быть свойство "value".
2. Пусть у Объекта Dimmer01 будет "общеклассовый" метод, где расположен алгоритм этого процесса. Назовем метод, к примеру, "dimming".
Код метода такой:

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

$val = $this->getProperty('value');
$val = round(($val/100)*255, 0);
$command="http://192.168.0.14/sec/?cmd=13:".$val;
file_get_contents($command);
Тут пересчитываются проценты (от 0 до 100) в диапазон для ШИМ-порта Меги (от 0 до 255).
3. Создаете в меню объект Слайдер. Задаете мин.значение "0" и макс. "100". Шаг изменений - 1. Выставляете Связанный объект Dimmer01, Свойство value, Метод dimming.

В простейшем случае это все. Сейчас проверить не на чем, но по идее, должно работать.
Прошу помочь настроить свет перед самым НГ.
Захотелось плавного света, но начал с простого вкл/выкл через Простые устройства.
@Chainik предложил способ замены команд, но топорно выходит реализовать.
В коде TurnOn поставил команду file_get_contents("http://192.168.2.12/sec/?pt=12&pwm=255&cnt=2");
Если не менять опцию "Вызывать родительский метод" на "Перед", то вначале MD шлет команду на 100 на стандартный метод MegaD порта, где стоит плавное включение опцией Smooth, а потом мой код шлет другую команду 255.
Если убрать родительский метод - выбрать "Никогда", то Простое устройство не реагирует на нажатие, индикатор не загорается. Лампа включается, но не выключается, видимо, MD думает, что устройство не включилось.
Может есть какая настройка по пересчету %Majordomo в %MegaD? Каждый метод переписывать у каждого устройства не гуд.

Второй вопрос про разметку списка Простые устройства.
На скриншоте видно - поле выбора % налезает на название лампы и вообще не видно. Как исправить?
Вложения
img-2019-12-29-11-58-14.png
img-2019-12-29-11-58-14.png (18.11 КБ) 4808 просмотров
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: [Модуль] MegaD (megad)

Сообщение Logrus »

1. прекрасно настраивается через пу, с двумя нюансами, настройка слайдера в меню и изменение кода пу что б при плавности не было кросслинков
а совет выше без ос или через такие дебри 0_0
п.с. уже не раз, имхо, за такие деньги, ну его такую связку ...
2. сократить название
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить