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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
winniepooh
Сообщения: 19
Зарегистрирован: 22 янв 2018, 22:11

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

Сообщение winniepooh » 02 мар 2019, 11:51

Andrey_B писал(а):
02 мар 2019, 10:25
Если в процессе работы предположим GSM-модуль по какой-то причине перезапускался, то SMS уже не уйдут. Но это лишь предположение.
Наверное в этом и причина.
А проблематично делать настройку модема перед каждой отправкой смс или звонком? Понятно, что проблема в модеме, но для отказоустойчивости думаю бы это не помешало. А то получается контроллер работает долго, а GSM модуль за это время завис и перезапустился, и я уже в ответственный момент не получу оповещение, которое, как правило должно быть важным.
Andrey_B писал(а):
02 мар 2019, 10:25
Пока нет, но это нетрудно сделать.
Было бы полезно, раз появилась такая возможность в контроллере.

winniepooh
Сообщения: 19
Зарегистрирован: 22 янв 2018, 22:11

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

Сообщение winniepooh » 02 мар 2019, 11:59

Что интересно у меня тоже была проблема с перезагрузкой контроллера, он мог перегружаться несколько раз в день, а мог спокойно проработать пару дней, но потом опять перегружался. Искал причину очень долго, но так ее и не нашел. Возможно была проблема с dht22 (он стоял у меня), возможно с БП (был нормальный, но давал много помех с которыми не работали датчики 1W).
В итоге много что поменял (в том числе и сетевую часть - отдельный VLAN и другой коммутатор), убрал все dht22, и все нормализовалось, контроллер самостоятельно не перегружается.

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

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

Сообщение Andrey_B » 02 мар 2019, 12:05

Alex_Jet писал(а):
02 мар 2019, 07:11
Сегодня при перезагрузке контроллера котельной (п.3). Включились все 14 выходов!!!
Я проверил работу функции бэкапа состояния выходов и нашел ошибку при которой в некоторых случаях (не слишком частых, но вероятных в вашей ситуации) функция могла работать некорректно.
Кое-что исправил. Теперь в этом плане должно быть все хорошо. Кстати, это никак не связано с 4.32b3. Эта ошибка могла проявиться и ранее.

https://ab-log.ru/files/File/megad-2561 ... a6-hex.zip

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

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

Сообщение Andrey_B » 02 мар 2019, 12:15

winniepooh писал(а):
02 мар 2019, 11:51
А проблематично делать настройку модема перед каждой отправкой смс или звонком?
Конечно, не проблематично. С одной стороны, так как GSM-модуль является довольно независимым внешним устройством, в плане надежности делать настройку каждый раз было бы лучше. С другой стороны, как-то это неправильно - лечить симптом, а не причину. Инициализация модема - относительно медленная процедура и занимает порядка 0,3 с. С точки зрения контроллера - это очень много. Не хотелось бы этим заниматься перед отправкой каждого SMS.
winniepooh писал(а):
02 мар 2019, 11:51
Andrey_B писал(а):
02 мар 2019, 10:25
Пока нет, но это нетрудно сделать.
Было бы полезно, раз появилась такая возможность в контроллере.
Есть одна идея. Хочу проверить. Получится, напишу.

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

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

Сообщение Andrey_B » 02 мар 2019, 15:10

Andrey_B писал(а):
02 мар 2019, 12:15
Есть одна идея. Хочу проверить. Получится, напишу.
Проверил. Получилось.
В модеме SIM800L есть своя собственная память.
С помощью измененной прошивки и нехитрого скрипта загрузил в память модема по сети Ethernet аудио-файл в формате AMR (Adaptive Multi-Rate Codec). Кодек позволяет сильно сжимать речевые файлы.
Теперь контроллер может не только звонить, но и проигрывать звуковой файл, сохраненный в памяти модема. Причем файл можно загрузить свой.
Более того, чисто теоретически файлов может быть несколько на разные события.

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

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

Сообщение Alex_Jet » 02 мар 2019, 19:42

Andrey_B писал(а):
02 мар 2019, 12:05
Alex_Jet писал(а):
02 мар 2019, 07:11
Сегодня при перезагрузке контроллера котельной (п.3). Включились все 14 выходов!!!
Я проверил работу функции бэкапа состояния выходов и нашел ошибку при которой в некоторых случаях (не слишком частых, но вероятных в вашей ситуации) функция могла работать некорректно.
Кое-что исправил. Теперь в этом плане должно быть все хорошо. Кстати, это никак не связано с 4.32b3. Эта ошибка могла проявиться и ранее.

https://ab-log.ru/files/File/megad-2561 ... a6-hex.zip
Я не обновлял контроллеры с 4.31b6. С тех пор что-то серьезное менялось? Нужно понять на какую прошивку откатиться.
Снова перезагрузился контроллер из п.4.

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

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

Сообщение Alex_Jet » 02 мар 2019, 20:58

Andrey_B писал(а):
02 мар 2019, 10:51
Если серьезно, то из описания не очень понятно, в какой момент времени это произошло. В момент перепрошивки? Все выходы включались в рамках одного контроллера? Очистка EEPROM скриптом производилась?
Как я понимаю, в котельной включение выходов после перезагрузки не было связано с перепрошивкой.

Включение выходов в момент старта контроллера может быть следствием работы функции бэкапа состояния портов (команда 'cmd=s'). Возможно, что-то такое или похожее прилетает по сети, что провоцирует срабатывание этой функции. Попробую изучить этот момент. Но что интересно, в 4.32b3 в этом отношении точно ничего не менялось.
У меня написан скрипт, который работает через Ваш скрипт. Вначале обнаруживает все контроллеры в сети, дальше сохраняет их конфигурации и потом вот такой командой запускает процесс прошивки контроллеров:

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

php megad-cfg-2561.php --ip 192.168.11.21 -p sec --fw megad-2561.hex --ee --write-conf MegaD-2561-21_2019_02_25.cfg
После отработки скрипта (последовательно перепрошиты все 6 контроллеров) обратил внимание, что все выходы всех контроллеров перешли в состояние ON. Пришлось вручную все выключать.
Про контроллер котельной - вы все правильно поняли - перезагрузился, в котельной что-то громко щелкнуло и привлекло мое внимание, пришло оповещение по Телеграм - пошел глянуть - все 14 выходов включены! Перезагрузился первый раз с 25.02.2018.
Команду cmd=s нигде и никогда не использовал, поскольку сервер сам восстанавливает состояние включенных портов.
Andrey_B писал(а):
02 мар 2019, 10:51
Еще было бы интересно, скажем, на время изолировать тестовый контроллер "на столе" от вашей сети. То есть, просто не подключать его к сети Ethernet. Если он перезагружаться не будет, значит нужно искать, что же особенное происходит в вашей сети, что провоцирует все это.
Специально посмотрел у себя (10 контроллеров разных версий). У большинства uptime более 149 дней с момента последнего отключения электроэнергии. Один совсем недавно обновил до 4.32b3. "Uptime: 1d 20:31". Пока все нормально. Буду наблюдать. Никаких VLAN'ов и других средств специальной изоляции автоматики нет.
По сути сейчас 2 тестовых MegaD. Кстати, один из них - версия от d.v.ermakov и с ней вообще никаких проблем замечано не было (на нем 4шт. 1W, 4 шины I2C с одним SCL, считыватель iB) - только сейчас об этом подумал...надо повесить на него еще DHT22 и шину 1WBus, посмотреть как себя будет вести.

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

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

Сообщение Andrey_B » 02 мар 2019, 22:35

Я попытался устроить стресс-тест контроллеру. Запустил 6 параллельных скриптов без каких-либо задержек: (1) вывод данных на экран SSD1306; (2) Опрос датчика HTU21D; (3) Опрос шины 1WBUS; (4) Сканирование шины I2C; (5) Опрос DHT22; (6) широковещательные arping с минимальными задержками. Дополнительно еще подгрузил широковещательными пакетами.
Никак... не виснет, не перезагружается...

В микроконтроллере есть регистр MCUSR (MCU Status Register).
С помощью этого регистра можно понять, что явилось причиной перезагрузки.
По умолчанию устанавливается только бит PORF (Power-on Reset Flag). Значение MCUSR: 1
Alex_Jet, я вам на почту вышлю специальную версию прошивки, в которой есть debug вывод значения этого регистра. Загрузите его в контроллер, который чаще всего перезагружается. И после перезагрузки сообщите его значение.
Подозрения два. Либо будет установлен бит WDRF и это срабатывает Watchdog, либо BORF и это срабатывает Brown-out Detection - встроенная система контроля питания, перезапускающая контроллер из-за падения напряжения ниже определенного уровня.

d.v.ermakov
Администратор
Сообщения: 2188
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

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

Сообщение d.v.ermakov » 03 мар 2019, 02:25

Не могу удержаться, вставлю свои 5 копеек про причины сбоев Мег.
Питание, питание, и ещё раз питание. И только на четвёртом месте перегрев из-за внешних факторов. Когда мы свои моноблоки испытывали в импровизированной термокамере, сначала перегревался сетевой контроллер, со слётом синхронизации и последующими спецэффектами. Это, кстати, одна из причин, почему поставили ENC в корпусе QFN.
Но, блин, многие другие промышленные контроллеры начнут сбоить гораздо раньше. Мега сделана проще и надёжнее. Хотя, конечно, может быть какая-нибудь преждевременно умершая ячейка памяти микроконтроллера, наконец.

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

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

Сообщение Alex_Jet » 03 мар 2019, 08:04

Andrey_B, про PORF помню. Правда там есть какие-то нюансы. Я когда пытался в своей разработке с помощью него отловить причину перезагрузки, то у меня по сути ничего не вышло.
По питанию - не на что грешить. 6 контроллеров питаются от 4-х БП MeanWell (собственно, их покупал у Андрея), которые включены в SURT1000XLI.
Кстати, по БП 15Вт 12В MeanWell - один из них пришлось заменить на резервный, поскольку в какой-то момент замерил напряжение на нем, а он отдавал что-то в районе 9В и регулировка ни к чему не приводила. В общем надо поразбираться что с ним случилось.
Последний раз редактировалось Alex_Jet 03 мар 2019, 10:48, всего редактировалось 1 раз.

d.v.ermakov
Администратор
Сообщения: 2188
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

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

Сообщение d.v.ermakov » 03 мар 2019, 08:47

Попробуйте 3,3 вольта на контроллере помониторить. Например, другой Мегой. Причём не факт, что проблема в блоке питания Меги. Она может оказаться, например, в подключенном к 3,3 вольта датчике.

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

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

Сообщение Andrey_B » 03 мар 2019, 13:28

https://ab-log.ru/files/File/megad-2561 ... a7-hex.zip

- Добавлена поддержка "голосового" звонка

Для того, чтобы загрузить в GSM-модем звуковой файл, который будет проигрываться при соединении с абонентом, необходимо сделать следующее.
- Скачать и распаковать архив megad-gsm-amr.zip
- Отредактировать скрипт, указав нужный IP-адрес контроллера и имя AMR-файла
- Запустить из текущей папки скрипт: php megad-gsm-amr.php

В архиве уже включен файл warning.amr, который содержит фразу: "Внимание! Сработал порт контроллера"
Можно сделать свой файл.
Я с помощью SpeechKit API сгенерировал из текста звуковой файл, сохранил его в WAV, а далее воспользовался утилитой SOX для конвертирования формат AMR.
sox warning.wav output.amr-nb

artem521
Сообщения: 108
Зарегистрирован: 19 окт 2017, 18:04

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

Сообщение artem521 » 03 мар 2019, 15:56

По поводу звуковых движков. Перепробовал кучу, самый лучший вариант это программа "Балаболка" Выкладываю пример голоса.
Вложения
параметры звукового оповещения речь.png
параметры звукового оповещения речь.png (38.47 КБ) 4917 просмотров
голос.7z
(311.1 КБ) 148 скачиваний

Erik
Сообщения: 570
Зарегистрирован: 08 ноя 2017, 08:55

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

Сообщение Erik » 04 мар 2019, 12:28

А такие датчики температуры/влажности будут работать?

https://www.chipdip.ru/product0/8675462603

Burst
Сообщения: 113
Зарегистрирован: 25 янв 2018, 13:22
Откуда: Балашиха

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

Сообщение Burst » 04 мар 2019, 12:38

Alex_Jet писал(а):
02 мар 2019, 07:11

5. Но самое плохое - что заметил - при прошивке b3 почему-то все выходы у всех контроллеров установились в состояние ON. В доме включилось все и сработала часть датчиков (протечки).
Сегодня при перезагрузке контроллера котельной (п.3). Включились все 14 выходов!!! Конечно сервер запоминает состояние выходов и при перезагрузке контроллера восстанавливает те, которые были включены, но не все же 14шт.!!!
Знакомая тема, очень похоже было и у меня. Вот здесь писал https://www.ab-log.ru/forum/viewtopic.php?f=1&t=1544 . Как и у вас подключено: бесперебойник -> MW -> Мега. Так в общем то до причин и не докопался.

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

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

Сообщение Andrey_B » 04 мар 2019, 12:47

Erik писал(а):
04 мар 2019, 12:28
А такие датчики температуры/влажности будут работать?
В текущий момент времени прошивка не поддерживает датчики SHT30.
В чем вы видите преимущество этих датчиков по сравнению с BME280 и HTU21D?

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

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

Сообщение Andrey_B » 04 мар 2019, 12:50

Burst, о возможной причине я писал позавчера. Обновление 4.32b6.

winniepooh
Сообщения: 19
Зарегистрирован: 22 янв 2018, 22:11

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

Сообщение winniepooh » 04 мар 2019, 14:15

Andrey_B писал(а):
03 мар 2019, 13:28
- Добавлена поддержка "голосового" звонка
Через http-запрос пока еще нельзя позвонить?

xsash
Сообщения: 239
Зарегистрирован: 08 авг 2016, 12:27

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

Сообщение xsash » 04 мар 2019, 15:39

Andrey_B писал(а):
03 мар 2019, 13:28
Можно сделать свой файл.
а какие ограничения на длину или "вес" файла? Ваши рекомендации

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

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

Сообщение Andrey_B » 04 мар 2019, 17:59

xsash писал(а):
04 мар 2019, 15:39
а какие ограничения на длину или "вес" файла? Ваши рекомендации
Мой SIM800L 2.2 на команду AT+FSMEM отвечает: 180224 bytes. Возможно, наличие и объем встроенной памяти зависит от конкретной модели и ревизии модуля.
В документе SIM800 Series_FS_Application Note указано, что размер файла не должен превышать 10240 байт. Файлов, разумеется, может быть несколько, но пока контроллер работает только с одним.
При записи файла устанавливается таймаут. Сейчас стоит 40 секунд. Загрузка файла размером 2кБ занимает порядка 15 секунд. Таймаут естественно можно увеличить, как и переделать скрипт для более быстрой загрузки файла, если в этом будет необходимость. Пока никакой специальной оптимизации не делал.

Ответить