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

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

Модератор: immortal

Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Модуль "MegaD"

Сообщение Jager » Ср май 20, 2015 7:35 am

msh555 писал(а):Пока из особенностей подметил только громко щелкающее реле. Наверное надо было брать на семисторах.
Пусть лучше щелкают, я уже кучу симисторов поменял. При перегорании лампочек, пробивает.
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Ср май 20, 2015 10:32 am

sergejey писал(а):Так и не работает?
Проверил всё на своём MegaD -- работает. Значения обновляются, методы вызываются, параметры методам передаются, связанные свойства меняют выходы. Даже не знаю, как ещё проверить.
У меня почему-то не прошло последнее обновление модуля. Сегодня еще раз обновил и эхо-команды заработали, с методами по-прежнему какие-то непонятки, об этом чуть ниже. Сначала вопрос по обновлениям... В последнюю неделю у меня стали обновления проходить с большим трудом и далеко не с первого раза. Обратил внимание что связано это со скоростью соединения, она крайне низкая вплоть до пропадания. При этом с другими сайтами все ок(соответствует 4G). Это "происки" МТС или у всех такие проблемы? В связи с этим есть одно пожелание по модулю обновления. Неплохо бы прикрутить какой-то индикатор с выдачей сообщений(статусов, этапов), т.е. соединение...проверка наличия обновлений...загрузка обновлений...установка обновлений... И соответственно с выдачей ошибок.
Теперь по модулю... Да, эхо команды заработали, Мега начала щелкать выходами...но что дальше? Я щелкнул выключателем(железным), модуль послал Меге эхо команду, допустим, на переключение выхода р8, но Мега ведь не сообщает модулю обратно, что она этот выход переключила. Соответственно и модуль об этом не знает, и не переключает связанное с этим выходом свойство объекта пока мы не зайдем в устройства МегаД, не найдем нужную нам Мегу, не откроем ее данные и не скажем ручками обновить...:(
Т.е. нужно не только обрабатывать сообщения Меги, но и самим ее регулярно опрашивать, особенно после любых наших команд(в том числе и эхо). Непонятки с методами полагаю в этом же заключаются...
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "MegaD"

Сообщение sergejey » Ср май 20, 2015 10:52 am

Victor_S писал(а):Теперь по модулю... Да, эхо команды заработали, Мега начала щелкать выходами...но что дальше? Я щелкнул выключателем(железным), модуль послал Меге эхо команду, допустим, на переключение выхода р8, но Мега ведь не сообщает модулю обратно, что она этот выход переключила. Соответственно и модуль об этом не знает, и не переключает связанное с этим выходом свойство объекта пока мы не зайдем в устройства МегаД, не найдем нужную нам Мегу, не откроем ее данные и не скажем ручками обновить...:(
Т.е. нужно не только обрабатывать сообщения Меги, но и самим ее регулярно опрашивать, особенно после любых наших команд(в том числе и эхо). Непонятки с методами полагаю в этом же заключаются...
Обновлять информацию с меги после любого события о смене состояния любого из входов в принципе можно, но мне показалось, что это несколько избыточно. Хотя, возможно и стоит. Или как опцию сделать...

P.S. Для регулярного опроса можно включить на меге "srv loop" -- мне подсказали, что с этой опцией мега раз в минуту отправляет данные о состоянии портов на сервер.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Ср май 20, 2015 10:59 am

sergejey писал(а): P.S. Для регулярного опроса можно включить на меге "srv loop" -- мне подсказали, что с этой опцией мега раз в минуту отправляет данные о состоянии портов на сервер.
С этой опцией были какие-то проблемы, поэтому она отключена сознательно...уже точно не помню какие...:) Ну и реакция через минуту на щелчек выключателя - это как-то слишком...;)
Как минимум нужно опрашивать состояние портов Меги после эхо-команд(можно конкретного порта, не обязательно всех)
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Ср май 20, 2015 11:03 am

sergejey писал(а): Обновлять информацию с меги после любого события о смене состояния любого из входов в принципе можно, но мне показалось, что это несколько избыточно.
Это все равно приходилось(и придется) делать в методах, вынос этой обязанности в модуль только приветствуется...:)

Да, и речь идет не о входах, об их состоянии(изменении) Мега сама сообщает, а о выходах.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "MegaD"

Сообщение sergejey » Ср май 20, 2015 11:47 am

Victor_S писал(а):
sergejey писал(а): Обновлять информацию с меги после любого события о смене состояния любого из входов в принципе можно, но мне показалось, что это несколько избыточно.
Это все равно приходилось(и придется) делать в методах, вынос этой обязанности в модуль только приветствуется...:)

Да, и речь идет не о входах, об их состоянии(изменении) Мега сама сообщает, а о выходах.
Да, я понимаю, что о выходах, входы само собой обновляются.
Ок, добавлю в модуль принудительный опрос меги после события на входе.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: Модуль "MegaD"

Сообщение AHgpeu » Ср май 20, 2015 1:48 pm

sergejey писал(а):
Victor_S писал(а):
sergejey писал(а): Обновлять информацию с меги после любого события о смене состояния любого из входов в принципе можно, но мне показалось, что это несколько избыточно.
Это все равно приходилось(и придется) делать в методах, вынос этой обязанности в модуль только приветствуется...:)

Да, и речь идет не о входах, об их состоянии(изменении) Мега сама сообщает, а о выходах.
Да, я понимаю, что о выходах, входы само собой обновляются.
Ок, добавлю в модуль принудительный опрос меги после события на входе.
имхо излишний функционал, действительно.
как я понял,
Victor_S писал(а):Теперь по модулю... Да, эхо команды заработали, Мега начала щелкать выходами...но что дальше? Я щелкнул выключателем(железным), модуль послал Меге эхо команду, допустим, на переключение выхода р8, но Мега ведь не сообщает модулю обратно, что она этот выход переключила. Соответственно и модуль об этом не знает, и не переключает связанное с этим выходом свойство объекта пока мы не зайдем в устройства МегаД, не найдем нужную нам Мегу, не откроем ее данные и не скажем ручками обновить...:(
Т.е. нужно не только обрабатывать сообщения Меги, но и самим ее регулярно опрашивать, особенно после любых наших команд(в том числе и эхо). Непонятки с методами полагаю в этом же заключаются...
были проблемы с обновлением статуса связанного свойства?
сейчас же логика совершенно обратная:
если модуль увидел изменение свойства, то тогда и только тогда отправляет команду меге на переключение. свойство УЖЕ обновлено, заранее.

---

единственное, что в этом направлении можно/нужно сделать, это опрашивать все состояния всех мег при загрузке системы.
например, перезагружался сервер, а кто-то в этот момент включил свет в ванной. или автоматика меги выключила отопление, поскольку сервер не нашла, а температура достигла нормы. а сервер об этом не знает... думает, что нагрев идёт =-)

можно периодически так же опрашивать для предотвращения обратной ситуации, когда мега перезагрузилась (просаживание напряжения, не у всех УПС есть, или перепрошивка меги, или зависла и перезагрузили её вручную) и у него все порты включены по умолчанию, о чём сервер опять же не знает
Последний раз редактировалось AHgpeu Ср май 20, 2015 2:44 pm, всего редактировалось 1 раз.
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Ср май 20, 2015 1:56 pm

AHgpeu писал(а): сейчас же логика совершенно обратная:
Да, если Вы новый пользователь Меги и начинаете работу с модулем с нуля. Если же переходить к работе с модулем от настроек класса по Bagir-у (а таких немало и уже с приличными наработками и рабочими проектами) то наименее болезненный переход требует указанного функционала. Собственно с этого момента я и начал посты в данной теме...;)
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: Модуль "MegaD"

Сообщение AHgpeu » Ср май 20, 2015 2:03 pm

и вопрос: sergejey, а точно команды по умолчанию не выполняются, если прописано связанное свойство/метод?
не могу победить игнорируемые/множественные срабатывания.
особенно часто такое встречается при командах по умолчанию типа 12:2;11:1;p600;11:0

для пробы была в логике на сервере убрана вся логика, пардон за тавтологию, оставлено только переключение выхода 12.
однако выход 11 срабатывает!


UPD: множественные срабатывания/несрабатывания победил добавлением в начало megad.php

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

if(isset($_GET['m']))
    die; 
категорически необходима галочка для входов "обрабатывать отпускание кнопки"...
поскольку в некоторых случаях необходимо обрабатывать и размыкания кнопки, потому на "железном уровне" в меге отключать режим отправки сигнала о размыкании невозможно

срабатывание команд по умолчанию не победил.


UPD 2:
выяснил. абсолютно точно команды меги по умолчанию модуль выполняет независимо от того, прописаны свойства/методы у входов или нет.
пофиксите, пажаааалста)
Последний раз редактировалось AHgpeu Ср май 20, 2015 2:42 pm, всего редактировалось 6 раз.
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: Модуль "MegaD"

Сообщение AHgpeu » Ср май 20, 2015 2:10 pm

Victor_S писал(а):Да, если Вы новый пользователь Меги и начинаете работу с модулем с нуля. Если же переходить к работе с модулем от настроек класса по Bagir-у (а таких немало и уже с приличными наработками и рабочими проектами) то наименее болезненный переход требует указанного функционала. Собственно с этого момента я и начал посты в данной теме...;)
я тоже жил с разработкой Багира, спасибо ему в который раз.
однако совершенно безболезненно перенёс переход на официальный модуль.
на его разработках у меня сейчас работают ещё несколько мег, управляющие отопленим, водоснабжением etc.

утрируя: у Вас есть объект выключатель, есть объект лампочка и есть метод у выключателя, переключающий status объекта лампочка. (по идеологии работ Багира всё это должно быть)
всё! просто прописываете все 3 в интерфейсе модуля и вуаля.
допустим, при срабатывании входа 0 нужно переключать выход 7
на строке с 0 указываете свойство выключателя status и метод выключателя.
в строке 7 прописываете свойство лампочки status.

попробуйте реализовать так.
Ответить