Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Alex_Jet
Сообщения: 801
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 08 авг 2016, 23:34

Начальные данные - сервер 192.168.12.10, MegaD2561-2x7I7O - 192.168.12.20, MegaD328-14IN - 192.168.12.30.
Столкнулся со следующими проблемами:
1. Скрипт mod_megad заработал только когда закомментировал строчку if ( $_SERVER['REMOTE_ADDR'] == "192.168.12.20" ). Почему? - пока понять не могу!
2. Очень критичное - при срабатывании входа P0 на MegaD2561-2x7I7O, сервер успевает включить выход P7 и контроллер зависает, пинг исчезает - прошу провести лабораторные испытания!!! При этом если срабатываю вход P0 на MegaD328-14IN (см. проблему 1 - адреса в скрипте сейчас закомментированы), то при комментировании echo "7:2" и добавлении file_get_contents("http://192.168.12.20/sec/?pt=7&cmd=7:2") выход контроллера MegaD2561-2x7I7O переключается и контроллер работает!!!

Привожу рабочую часть скрипта mod_megad.php:

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

        if ( $_GET['pt'] == "0" )
        {       //echo "7:2";
                file_get_contents("http://192.168.12.20/sec/?cmd=7:2");
                #key_update("light_hall_main");
                exec("php mod_megad.php \"light_hall_main\" > /dev/null &");
        }
Устал откручивать, закручивать "+" провод питания для сброса контроллера - итог: в локальном режиме (линк в дауне) контроллер работает отлично. А вот при попытке передачи трапа на сервер успевает получить от него ответ (даже два, поскольку из-за "дребезга" выход включается и отключается) и зависает - пинг не проходит, в локальном режиме не работает!!!

Alex_Jet
Сообщения: 801
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 09 авг 2016, 10:03

Вопрос! Как выводить отладочную информацию по работе скрипта, например, в файл log_light.log? Следующая структура не приводит к изменениям в файле - почему?

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

        if ( $_GET['pt'] == "0" )
        {       //echo "7:2";
                file_get_contents("http://192.168.12.20/sec/?cmd=7:2");
                #key_update("light_hall_main");
                exec("php mod_megad.php \"light_hall_main\" > /dev/null &");
                $mytext = date("Y-m-d H:i:s"). " - сработал вход №0\r\n";
                fwrite($file, $mytext);
                fclose($file);
        }
Хотя при вызове скрипта из консоли (php mod_megad.php) log-файл пишется если в скрипте, например, прописано:

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

$file = fopen("log_light.log", "a");
$mytext = date("Y-m-d H:i:s"). " - вызван скрипт mod_megad.php\r\n";
fwrite($file, $mytext);
fclose($file);
С проблемой записи в log-файл при вызове php-скрипта разобрался - необходимо было дать нужные права log-файлу (chmod 666)!

В результате определил какой ip-адрес возвращает переменная REMOTE_ADDR. Это адрес шлюза моей технологической сети - 192.168.12.1, куда контроллеры по умолчанию шлют пакеты. Установил адрес шлюза 255.255.255.0 и проблема №1 из поста от 09.08.2016 02:34 исчезла.

Alex_Jet
Сообщения: 801
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 09 авг 2016, 11:20

Разобрался и с проблемой №2. Для отладки всего процесса в начале скрипта mod_megad.php был вывод данных о времени запуска скрипта и определении IP хоста, с которого запускался скрипт:

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

//Текстовые стринги
$mytext1 = date("Y-m-d H:i:s"). " - вызван скрипт mod_megad.php\r\n";
$mytext2 = $_SERVER['REMOTE_ADDR']. " - определенный IP адрес хоста\r\n";

//Вывод информации в окне браузера
echo $mytext1. "<br>";
echo $mytext2. "<br>";
После комментирования всех этих строчек MegaD-2561 перестал вешаться. Однако настораживает то, что MegaD328 за весь период завис только один раз!

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 авг 2016, 18:09

http://ab-log.ru/files/File/megad-2561/ ... a4-hex.zip

- Были приняты меры, которые предотвращают зависание контроллера из-за некорректного ответа сервера.
- Перепрошивать с очисткой EEPROM! (ключ --ee)

Обращаю внимание, что для перепрошивки контроллера MegaD-2561 необходим свой скрипт megad-cfg.
http://ab-log.ru/files/File/megad-cfg/m ... g-2561.zip

И прошивка и скрипт для перепрошивки в стадии "бета".

Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Haus » 11 авг 2016, 18:35

Andrey_B писал(а):http://ab-log.ru/files/File/megad-2561/ ... a4-hex.zip

- Были приняты меры, которые предотвращают зависание контроллера из-за некорректного ответа сервера.

Обращаю внимание, что для перепрошивки контроллера MegaD-2561 необходим свой скрипт megad-cfg.
http://ab-log.ru/files/File/megad-cfg/m ... g-2561.zip

И прошивка и скрипт для перепрошивки в стадии "бета".
С почином,
Atmega-2561 ещё в пути, что насчет бутлоадера использовать от Atmega-328 наверно не получится?
В обоих файлах одинаковый контент :)

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 авг 2016, 18:47

Haus писал(а):что насчет бутлоадера использовать от Atmega-328 наверно не получится?
В обоих файлах одинаковый контент :)
Загрузчик для MegaD-2561 свой. Отличается.
В каких файлах одинаковый контент?

Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Haus » 11 авг 2016, 18:53

Andrey_B писал(а):
Haus писал(а):что насчет бутлоадера использовать от Atmega-328 наверно не получится?
В обоих файлах одинаковый контент :)
Загрузчик для MegaD-2561 свой. Отличается.
В каких файлах одинаковый контент?
В ваших ссылках. А как получить загрузчик для 2561?
P.S. извиняйте это у меня как то странно разархивировалась

filippovsky
Сообщения: 62
Зарегистрирован: 30 авг 2015, 21:44

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение filippovsky » 12 авг 2016, 11:41

Андрей, скажите, пожалуйста, можно ли на главной странице сайта AB-Log.ru рядом с разделом "Проект MegaD-328" сделать раздел "Проект MegaD-2561" для более быстрого доступа к прошивкам ?

И работает ли в скрипте Megad-cfg-2561 ключ -w ?
-w - Скачать последний релиз прошивки с сайта ab-log.ru

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 12 авг 2016, 12:17

filippovsky писал(а): можно ли на главной странице сайта AB-Log.ru рядом с разделом "Проект MegaD-328" сделать раздел "Проект MegaD-2561" для более быстрого доступа к прошивкам ?
И работает ли в скрипте Megad-cfg-2561 ключ -w ?
Такой раздел на главной странице появится чуть позже.
Ключ -w будет пока работать некорректно. Просьба им в данный момент не пользоваться.

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Petros » 12 авг 2016, 13:12

Andrey_B, скажите, а планируете реализовать 1-wire мастер для множественных датчиков на одной шине?

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 12 авг 2016, 16:59

Petros писал(а):скажите, а планируете реализовать 1-wire мастер для множественных датчиков на одной шине?
Да, реализация поддержки датчиков DS18B20, подключенных шиной, планируется для MegaD-2561.

filippovsky
Сообщения: 62
Зарегистрирован: 30 авг 2015, 21:44

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение filippovsky » 16 авг 2016, 15:26

Собрал тестовый стенд, подключился к веб-интерфейсу конфигурации MegaD-2561, но на странице настроек нет показаний температуры встроенного сенсора и нет галочки "Alarm T". Этих функций нету в прошивке 2561 ?

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

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 16 авг 2016, 17:11

filippovsky, в чипе atmega2561 нет встроенного датчика температуры.
Во-первых, необходимо использовать megad-cfg для 2561 (ссылку для скачивания я давал), во-вторых, если на компьютере несколько сетевых интерфейсов нужно использовать ключ --local-ip, чтобы указать через какой интерфейс отправлять пакеты.

nevkon
Сообщения: 240
Зарегистрирован: 23 апр 2014, 14:48

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение nevkon » 16 авг 2016, 19:29

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

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 16 авг 2016, 23:17

nevkon, изменений в аппаратной платформе в ближайшее время не планируется. Один из пинов внутреннего разъема, по всей видимости, будет задействован во второй ревизии модуля контроллера для процедуры аппаратной очистки EEPROM. Остальные порты доступны в режиме, так сказать, "expert mode" для тех, кто может сам поправить прошивку. Я пока не вижу каким образом эти порты можно с технологической точки зрения задействовать в проекте. Вы же понимаете, что добавить эти порты в конфигурацию труда не составит, но пользователи же будут спрашивать "что с этим делать?"

filippovsky
Сообщения: 62
Зарегистрирован: 30 авг 2015, 21:44

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение filippovsky » 16 авг 2016, 23:50

Andrey_B писал(а):необходимо использовать megad-cfg для 2561 (ссылку для скачивания я давал), во-вторых, если на компьютере несколько сетевых интерфейсов нужно использовать ключ --local-ip, чтобы указать через какой интерфейс отправлять пакеты.
Использую указанную ссылку.
IP меги установил 192.168.1.14, GW пробовал ставить 255.255.255.255 и 255.255.255.0
комп имеет ip 192.168.1.64, одна сетевая карта
Шнур от компа воткнут в коммутатор, в него же воткнут шнур от меги.
Запускаю скрипт прошивки в режиме "--scan" - после небольшой паузы возвращается в командную строку, ничего не пишет.

Операционная система Windows 10.

В PHP.INI отключен SNMP
;extension=php_snmp.dll

и включен SOCKETS
extension=php_sockets.dll

По адресу http://192.168.1.14/sec мега отвечает, пинги от компьютера до Меги также ходят.

Нормально ли, что при запуске без ключей скрипт пишет, что он для Меги-328?
C:\php>c:\php\php C:\megad\megad-cfg-2561-v201\megad-cfg-2561.php
MegaD-328 management script Ver 2.01

filippovsky
Сообщения: 62
Зарегистрирован: 30 авг 2015, 21:44

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение filippovsky » 17 авг 2016, 03:14

Удалось перепрошить, только воткнув патчкорд напрямую в Мегу, без коммутатора (не роутера).
Важно! После перепрошивки адрес меги сбрасывается с 192.168.1.14 на 192.1.1.14
Версия прошивки в веб-интерфейсе Меги после перепрошивки: MegaD-2561 by ab-log.ru (fw: 4.01b4)

filippovsky
Сообщения: 62
Зарегистрирован: 30 авг 2015, 21:44

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение filippovsky » 18 авг 2016, 10:31

Андрей, подскажите, пожалуйста, как правильно подключить в связке "Mega-2561 + исполнительный модуль MegaD-14-IN" цифровой датчик DS18B20 (если, конечно, есть какие-то отличия от описанного на сайте подключения к Меге-328) ?
Какие порты исполнительного модуля MegaD-14-IN можно использовать для DS18B20 при подключении его к Mega-2561? Играет ли роль то, в какой разъем (XP1 или XP2) подключен MegaD-14-IN?
Спасибо.

PS: После перепрошивки Mega-2561 остались две проблемы:
1. --scan не определяет Мегу-2561 по сети, определяет только при прямом подключении.
Majordomo также не видит Мегу-2561 при сканировании, и не может считать ее конфигурацию, даже если в настройках Majordomo указать в явном виде IP-адрес меги.

2. После прошивки (без использования ключа --ee) IP-адрес на Меге почему-то становится 192.1.1.14

Andrey_B
Администратор
Сообщения: 3842
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 18 авг 2016, 15:58

filippovsky писал(а):Какие порты исполнительного модуля MegaD-14-IN можно использовать для DS18B20 при подключении его к Mega-2561? Играет ли роль то, в какой разъем (XP1 или XP2) подключен MegaD-14-IN?
DS18B20 можно использовать с любым портом MegaD-14-IN (положение конфигурационного джампера нижнее)
Какой разъем XP1 или XP2 используется для подключения исполнительного модуля роли не играет.
filippovsky писал(а): PS: После перепрошивки Mega-2561 остались две проблемы:
1. --scan не определяет Мегу-2561 по сети, определяет только при прямом подключении.
Majordomo также не видит Мегу-2561 при сканировании, и не может считать ее конфигурацию, даже если в настройках Majordomo указать в явном виде IP-адрес меги.
2. После прошивки (без использования ключа --ee) IP-адрес на Меге почему-то становится 192.1.1.14
1. Возможно, имеют место какие-то ограничения/блокировки на уровне коммутатора/роутера широковещательного трафика.
2. Такая проблема существует с версией прошивки 4.01b2. Начиная с 4.01b4, которую я выкладывал здесь, такой проблемы теоретически быть не должно. В связи с этим прошивать 4.01b4 лучше с ключом --ee.

filippovsky
Сообщения: 62
Зарегистрирован: 30 авг 2015, 21:44

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение filippovsky » 18 авг 2016, 22:31

Андрей. спасибо!
После перепрошивки с ключом --ee IP-адрес не сбрасывается, точнее сбрасывается в дефолтный 192.168.0.14
DS18B20 тоже работает.
--scan не работает, но буду разбираться с сетью.
Похоже, действительно, мой коммутатор не поддерживает широковещательные запросы

UPDATE:
Проблема с --scan проявляется, если в свойствах сетевой карты стоит "получать ip-адрес автоматически".
Если ip-адрес задан в явном виде - то --scan нормально работает даже через роутер.

Ответить