Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Про "жить своей жизнью" согласен, но это может здорово осложнить работу... Какой таймаут ставить если сервер "тупит" и отвечает не мгновенно? Что во время ожидания будет делать Мега?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Тайм-аут 1-5 мин с алгоритмом, при котором Мега переключалась бы в тот или иной режим. Здесь важно что если сервер «упал» то его восстановление значительное время займёт и в его отсутствие через этот тайм аут все начнёт функционировать без него.alex946 писал(а):Про "жить своей жизнью" согласен, но это может здорово осложнить работу... Какой таймаут ставить если сервер "тупит" и отвечает не мгновенно? Что во время ожидания будет делать Мега?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Попробуйте.Vadim писал(а):Ок, есть сеть\сервер, зачем R отрабатывать контроллеру? Контроллер же просто должен "P" отработать и сервер оповестить о событиях выполнения ACT и моментах "P" и "R".
Вход всегда работает в том режиме, который задан, но на сервер в случае установки флажка рядом с Mode отправляются данные в режиме P&R.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
К P32 подключен датчик DS18B20Alex_Jet писал(а):3. Условия 5 и 6 не работают вообще...
Прописал условия
if P32 > 28 -> 8=1
if P32 < 28 -> 8=0
Все сработало нормально.
Такого наблюдать пока не приходилось.Alex_Jet писал(а): 5. Самое плохое. Иногда после настройки условия, при нажатии ссылки Back соединение вешается...останавливаешь, нажимаешь снова и выходишь из настройки.
6. Еще хуже. Иногда в Program невозможно зайти. Нажимаешь ссылку и соединение висит.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Да.filippovsky писал(а):Если я правильно понимаю, то в режиме SW LINK - может быть включен только один порт из группы.
Да.filippovsky писал(а):В Режиме SW - при включении группы (g1:1) будут включены все порты, входящие в группу, так?
Да.filippovsky писал(а):Правильно ли я понимаю, что для SW LINK надо всегда сначала будет выключить все порты, входящие в группу, и только потом включать конкретный порт (именно через порт, не через группу) ?
Автоматически порт 7 выключен не будет. Команда 8:1 будет проигнорирована.filippovsky писал(а):Например, порты 7 и 8 настроены как SW LINK и объединены в группу 1, включен порт 7.
При получении команды 8:1 - будет ли автоматически отключен порт 7? Или команда 8:1 просто будет проигнорирована?
Ни один порт группы не будет включен. Это правильно с логической точки зрения. Очевидно, что эта команда была отправлена по ошибке.filippovsky писал(а): Что произойдет с портами SW LINK при получении групповой команды, например, g1:2 ? Для группы из двух портов - логично предположить, что порты будут переключены. А если портов три и более? Какой из них включится? А при получении команды g1:1 ?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Я был бы рад что-нибудь проверить, только не знаю что и как.Prokol писал(а): Со всех пультов, которые имею в наличии с каждой кнопки постоянно имею одни и те-же команды. Через MegaD один и тот-же код получаю через 3-4 команды. Все остальное сыпет какой-то мусор. Соответственно взяв из библиотеки LIRC код пульта имеющегося агрегата и подставив эти данные в MegaD, агрегат вообще никак не реагирует. Можете сами проверить?
Передо мной телевизор и кондиционер. Оба отлично управляются с помощью ИК-передатчика. Не через раз, а всегда и гарантированно.
У меня есть USB ИК-приемник, который поддерживается lirc. Когда команды отправляются с ИК-передатчика, то никакого мусора не фиксируется. Всегда приходят нормальные данные. ИК-передатчик и родные пульты ведут себя по мнению этого ресивера примерно одинаково.
Я допускаю, что могут быть какие-то особенности или проблемы, но мне нужно их как-то увидеть своими глазами.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Может сделать со стороны контроллера опрос доступности порта сервера, IP + порт в соотв. с настройками (опционально с возможностью задать интервал опроса) и хранить этот бит доступности в памяти контроллера?Evgeny_nd писал(а):Андрей, теряется вся прелесть и смысл этой функции/чекбокса. Я тоже все время недоумевал почему так работает, но т.к. сильно это не доставало, то не разбирался детально. Доступность сетевого интерфейса совсем не говорит о доступности сервера. И при неответе сервера с конкретным IP и портом, МЕГА должна жить своей жизнью.
По этому признаку контроллер и будет быстро принимать решение о доступности сервера при событии на входе.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Vadim, вы пробовали 4.20b1?
Вроде бы решили, что должно работать так, как написано: порт контроллера при любых обстоятельствах, то есть всегда, работает в том режиме, который указан в настройках. Но флажок рядом с Mode задает отправку всех событий на сервер.
Вроде бы решили, что должно работать так, как написано: порт контроллера при любых обстоятельствах, то есть всегда, работает в том режиме, который указан в настройках. Но флажок рядом с Mode задает отправку всех событий на сервер.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Андрей,Andrey_B писал(а):Vadim, вы пробовали 4.20b1?
Вроде бы решили, что должно работать так, как написано: порт контроллера при любых обстоятельствах, то есть всегда, работает в том режиме, который указан в настройках. Но флажок рядом с Mode задает отправку всех событий на сервер.
Спасибо за правки.
Смогу глянуть только вечером дома.
Про проверку доступности сервера писал не применительно с особенностям работы P и R. Так, мысли в слух.
Я пока не дошел до тех моментов, когда это было бы критично.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
d.v.ermakov верно сказал. Это не баг, это фича.
Дело в том, что контроллер позволяет такие ужасные на первый взгляд штуки, как реализацию низкоуровневых протоколов поверх HTTP. Например, I2C-PHP.
Для этого нужно иметь к порту особый доступ для возможности менять его тип IN/OUT без записи конфигурации в EEPROM. Такой доступ реализован на основе NC.
Чтобы "дергать" порт в таком режиме можно использовать стандартные команды, а запрос cmd=get позволяет получать информацию о текущем состоянии пина.
То, что при включенной нагрузке в состоянии NC запрос 'get' отображает OFF совершенно нормально. У входов и выходов в контроллере разная интерпретация высокого уровня. А в режиме NC порт отображает ON/OFF как для входа.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
"Бит доступности сервера" сделать можно.Vadim писал(а):Про проверку доступности сервера писал не применительно с особенностям работы P и R. Так, мысли в слух.
Однако на практике, если в системе есть сервер, и он собран не из глючного железа, купленного с рук на Удельной, то даже по самым пессимистичным прогнозам 99,99% времени никакие аварийные режимы задействованы не будут.
Я не фанат того подхода, когда каждая даже самая простецкая железка без всякого на то желания пользователя непременно должна слать в сеть широковещательные пакеты, что-то без конца опрашивать, куда-то лезть, кого-то пинговать.
Если посмотреть трафик обычной несложной сети с десятком различных "умных" девайсов, то можно ужаснуться тому, что там происходит вроде бы в состоянии полного покоя. И все во имя Великого Плугэндплея... Это, конечно, не создает сколько-нибудь значимую нагрузку на гигабитную сеть, но "палочки [все равно] должны быть перпендикулярны". Тоже всего лишь мысли в слух.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
не понял только одного - как через http понять реальное состояние пина?Andrey_B писал(а):То, что при включенной нагрузке в состоянии NC запрос 'get' отображает OFF совершенно нормально. У входов и выходов в контроллере разная интерпретация высокого уровня. А в режиме NC порт отображает ON/OFF как для входа.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
orlov, чтобы ответить на ваш вопрос по существу, нужно понять, что вы пытаетесь сделать. С какой целью вы конфигурировали порт как NC, зачем отправляли в порт этого типа команды и запрашивали его состояние через "get"?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Все так, но больно заманчиво использовать под сервак SoC решения с EMMC Flash из-за габаритов и низкого энергопотребления.Andrey_B писал(а):"Бит доступности сервера" сделать можно.Vadim писал(а):Про проверку доступности сервера писал не применительно с особенностям работы P и R. Так, мысли в слух.
Однако на практике, если в системе есть сервер, и он собран не из глючного железа, купленного с рук на Удельной, то даже по самым пессимистичным прогнозам 99,99% времени никакие аварийные режимы задействованы не будут.
Я не фанат того подхода, когда каждая даже самая простецкая железка без всякого на то желания пользователя непременно должна слать в сеть широковещательные пакеты, что-то без конца опрашивать, куда-то лезть, кого-то пинговать.
Если посмотреть трафик обычной несложной сети с десятком различных "умных" девайсов, то можно ужаснуться тому, что там происходит вроде бы в состоянии полного покоя. И все во имя Великого Плугэндплея... Это, конечно, не создает сколько-нибудь значимую нагрузку на гигабитную сеть, но "палочки [все равно] должны быть перпендикулярны". Тоже всего лишь мысли в слух.
По поводу их надежности, уж как повезет с системой и БП.
Использую Orange Pi Plus 2E + Armbian. Особых нареканий пока нет.
Но бывало сервак полностью зависал из-за Beta версий серверного ПО. Знаю, для этого есть wdog, да и беты на продуктив ставить не стоит.
Но это так, мысли в слух. Наверно, да, для обработки типов нажатий клавиш проверка сервака несколько излишняя.
Кстати. по поводу ширковещательных пакетов.... раз уж тема зашла. Отправляю на оценку целесообразности (понимаю ,что это можно сделать на сервере).
Одна из самых востребованных функций для управления светом, на мой взгляд, это центральное включение\выключение всех\отдельной группы осветительных приборов.
Раньше, это нормально можно было сделать только на сервере.
Сейчас появились Группы для портов, это упрощает задачу. Но есть нюанс, будет работать только в рамках одного контроллера.
Для дома этого мало.
Вопрос бы решился, если контроллер мог бы отсылать и обрабатывать широковещательный запрос для групп портов.
Как бонус, в т.ч. можно было бы сократить размеры полей NET. Зачем указывать IP, если можно на контроллере портам присвоить номер группы и обрабатывать широковещательный трафик с номером этой группы (как распределить эту группу по контроллерам это уже задача\фантазия владельца)?
Естественно тема только для контроллеров в одной подсети.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Вообще я пытаюсь проконтролировать чтобы прибор был выключен (или выключался) когда мне этого не надо.Andrey_B писал(а):orlov, чтобы ответить на ваш вопрос по существу, нужно понять, что вы пытаетесь сделать. С какой целью вы конфигурировали порт как NC, зачем отправляли в порт этого типа команды и запрашивали его состояние через "get"?
Например я приконфигурировал порт для вкл и выкл вентилятора по нажатию кнопки. Проверил - все работает ок.
Через некоторое время обнаружил что вентилятор включен, т.е. порт замкнут - но сие событие не вызывалось намеренно, а было вызвано несанкционированно (причина не имеет значения, н.п. восстановленеи сессии браузера или разовое выполнение какого-то кода на включение порта).
Я отключил через http и перевел порт в NC, чтобы разобраться в этом позже - но вентилятор вновь включился, уже сквозь NC.
Вопрос по существу - как сделать так, чтобы вентилятор отключался даже при несанкционированном запуске (через http или в ином варианте - ошибка кода, ошибочное выполнение кода и т.п.)?
Или как отключить определенный порт до дополнительных указаний для его включения?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Прочитал и не вполне понял суть вопроса.
Для включения/отключения ответственных нагрузок иногда используют подтверждение действия. Но это нужно предусматривать в коде на сервере. Если включение/отключение делает сама Мега, выполняя действие по умолчанию, то там такая сложная логика не предполагалась изначально (т.к. это в сущности "аварийный режим"). Если, например, в адресной строке браузера набрана команда на включение/отключение какого-то выхода Меги и страница будет обновлена, команда будет послана и выполнена. Т.к. Мега задумывалась при создании не как организатор витиеватой логики, а как надежный исполнитель команд и отправитель срабатываний входов. Если я не прав, пусть меня поправят.
Или же вы имели ввиду вопрос о том, как сконфигурировать выход Меги таким образом, чтобы он гарантированно ничего не исполнял при любых командах "с любой стороны"?
Для включения/отключения ответственных нагрузок иногда используют подтверждение действия. Но это нужно предусматривать в коде на сервере. Если включение/отключение делает сама Мега, выполняя действие по умолчанию, то там такая сложная логика не предполагалась изначально (т.к. это в сущности "аварийный режим"). Если, например, в адресной строке браузера набрана команда на включение/отключение какого-то выхода Меги и страница будет обновлена, команда будет послана и выполнена. Т.к. Мега задумывалась при создании не как организатор витиеватой логики, а как надежный исполнитель команд и отправитель срабатываний входов. Если я не прав, пусть меня поправят.
Или же вы имели ввиду вопрос о том, как сконфигурировать выход Меги таким образом, чтобы он гарантированно ничего не исполнял при любых командах "с любой стороны"?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Андрей,Andrey_B писал(а):Попробуйте.Vadim писал(а):Ок, есть сеть\сервер, зачем R отрабатывать контроллеру? Контроллер же просто должен "P" отработать и сервер оповестить о событиях выполнения ACT и моментах "P" и "R".
Вход всегда работает в том режиме, который задан, но на сервер в случае установки флажка рядом с Mode отправляются данные в режиме P&R.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip
Теперь все работает отлично, и контроллер отрабатывает корректно, и сервер получает необходимые данные.
Спасибо.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Вы не поняли, речь и идет про работу сервера. Но серверу нужна входная информация, чтобы ее интерпретировать - например, знать состояние порта в текущий момент.Ruslan писал(а):Но это нужно предусматривать в коде на сервере
Под надежным исполнителем лично я понимаю четкое следование логике.Ruslan писал(а):а как надежный исполнитель команд и отправитель срабатываний входов.
н.п. если я опрашиваю порт - замкнут ли он? мне нужно получить да или нет, 1 или 0, ВКЛ или ВЫКЛ - чтобы дать нужную команду в зависимости от входной информации
в данном же случае я получаю ответ ВЫКЛ, хотя порт замкнут.
Спрашиваю - горит ли свет в коридоре? И получаю ответ - нет, хотя лампочка при этом горит.
Нет, мне надо получить надежное значение текущего состояния порта. Либо программно отключить порт, чтобы никакие команды не могли включить прибор. Я так понимаю сейчас это невозможно? Т.е. нет возможности поставить порт в значение "Disable"Ruslan писал(а):Или же вы имели ввиду вопрос о том, как сконфигурировать выход Меги таким образом, чтобы он гарантированно ничего не исполнял при любых командах "с любой стороны"?
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Вообще, чтобы получить состояние любого порта, нужно "спросить" порт об этом. Например выполнить из адресной строки браузера командуorlov писал(а):Вы не поняли, речь и идет про работу сервера. Но серверу нужна входная информация, чтобы ее интерпретировать - например, знать состояние порта в текущий момент.Ruslan писал(а):Но это нужно предусматривать в коде на сервере
...
Код: Выделить всё
http://192.168.0.14/sec/?pt=16&cmd=get
В коде PHP это может выглядеть, например, так
Код: Выделить всё
$state = file_get_contents("http://192.168.0.14/sec/?pt=16&cmd=get");
Сейчас проверил, можно ли узнать состояние порта, если он не сконфигурирован (NC). Увидел, что да. Теми же стандартными запросами мы узнаем, находится ли этот порт в состоянии ON или OFF.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Андрей,
При перепрошивке контроллера с ...--ee --read-conf megad.cfg --write-conf megad.cfg
не сохраняются настроки портов расширителя (сбрасываются в IN).
Ждем Ver 2.05 megad-cfg-2561.php
При перепрошивке контроллера с ...--ee --read-conf megad.cfg --write-conf megad.cfg
не сохраняются настроки портов расширителя (сбрасываются в IN).
Ждем Ver 2.05 megad-cfg-2561.php