[Модуль] MySensors (mysensor)

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

Модератор: immortal

Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Модуль MySensor

Сообщение Ivan » Чт окт 19, 2017 10:07 am

cabat писал(а):Заметил, что в таблице "msbins" для хранения прошивки используется поле типа "blob"
Исправил
nightwind писал(а):в модуле mysensors в MD есть группа кнопок debug
Это написано в конфиге: Define MY_SPECIAL_DEBUG to enable support for I_DEBUG messages.
То есть чтобы получить эти функции нужно сделать #define MY_SPECIAL_DEBUG в начале скетча
lanket писал(а):Нажимаю обновить прошивку по воздуху
Исправлено. У вас не привязан бинарь к этой ноде
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Модуль MySensor

Сообщение Ivan » Чт окт 19, 2017 10:19 am

Обновление модуля

Исправления:
  • Response FW - Исправлен вывод ошибки
  • Увеличен размер скетча (До этого было ограничение на 65535 байт)
Внимание: Чтобы применялись изменения БД. Нужно переустановить модуль. Система/Модули/MySensor/Reinstall module
После чего запустите модуль. XRay/Services/cycle_mysensor Start (Либо перегрузить главный цикл или систему)
Ваша информация о нодах останется на месте, перепроверите только "настройки" модуля
За это сообщение автора Ivan поблагодарил:
cabat (Чт окт 19, 2017 10:34 am)
Рейтинг: 1.16%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
mrdenis
Сообщения: 31
Зарегистрирован: Чт мар 19, 2015 7:55 am
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Модуль MySensor

Сообщение mrdenis » Вт ноя 07, 2017 6:40 am

Добрый день.

Вроде прочитал всю тему, но не увидел такой штуки.
Есть запрос состояния сенсоров ноды (arduino+nrf) при старте модуля MySensors (галка REQ в настройках ноды),
но нет возможности восстановить состояние сенсора (допустим это реле) в случае ресета ноды по состоянию в МДМ.

Допустим по Хатбиту можно выяснить, что с нодой произошел перезагруз (ну или просто переполнение счетчика Хартбит)
Галки SET в настройках ноды нет..
Насколько я понимаю, ACK - это не то... это просто запрос подтверждения получения нодой команды..

Задачу можно было бы решить просто вызовом метода SET при необходимости, но как это сделать из других методов других объектов ?
я пробовал вызов $ms->Set('...'); в методе объекта, но эффекта нет (нет видимости объекта $ms, ят так понимаю).

Вопрос: как вызывать методы класса mysensor ?

Заранее благодарю.
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль MySensor

Сообщение Eraser » Вт ноя 07, 2017 8:18 am

mrdenis писал(а):Добрый день.

Вроде прочитал всю тему, но не увидел такой штуки.
Есть запрос состояния сенсоров ноды (arduino+nrf) при старте модуля MySensors (галка REQ в настройках ноды),
но нет возможности восстановить состояние сенсора (допустим это реле) в случае ресета ноды по состоянию в МДМ.

Допустим по Хатбиту можно выяснить, что с нодой произошел перезагруз (ну или просто переполнение счетчика Хартбит)
Галки SET в настройках ноды нет..
Насколько я понимаю, ACK - это не то... это просто запрос подтверждения получения нодой команды..

Задачу можно было бы решить просто вызовом метода SET при необходимости, но как это сделать из других методов других объектов ?
я пробовал вызов $ms->Set('...'); в методе объекта, но эффекта нет (нет видимости объекта $ms, ят так понимаю).

Вопрос: как вызывать методы класса mysensor ?

Заранее благодарю.
для этого в скетче ноды используется request(CHILD_ID, V_VAR1);
нода при загрузке запрашивает последнее состояние V_VAR1, и gw выдает
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
mrdenis
Сообщения: 31
Зарегистрирован: Чт мар 19, 2015 7:55 am
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Модуль MySensor

Сообщение mrdenis » Вт ноя 07, 2017 11:36 am

Eraser писал(а):
mrdenis писал(а): восстановить состояние сенсора по состоянию в МДМ.

Задачу можно было бы решить просто вызовом метода SET при необходимости, но как это сделать из других методов других объектов ?
я пробовал вызов $ms->Set('...'); в методе объекта, но эффекта нет (нет видимости объекта $ms, ят так понимаю).

Вопрос: как вызывать методы класса mysensor ?

Заранее благодарю.
для этого в скетче ноды используется request(CHILD_ID, V_VAR1);
нода при загрузке запрашивает последнее состояние V_VAR1, и gw выдает
Может я как-то совсем непонятно написал, но меня интересует не то, что происходит и как это сделать в скетче, а как сделать SET сенсору по инициативе обекта МДМ.
Какую команду надо написать в произвольном методе произвольного объекта МДМ, чтобы сделать SET на сенсор ?

А в скетче меня больше интересует как стартануть ноду при недоступном GW ? Хочу чтобы нода была работоспособна даже если GW не работоспособен.
cabat
Сообщения: 216
Зарегистрирован: Ср май 28, 2014 12:42 pm
Откуда: Санкт-Петерург
Благодарил (а): 76 раз
Поблагодарили: 28 раз

Re: Модуль MySensor

Сообщение cabat » Вт ноя 07, 2017 1:26 pm

mrdenis писал(а): Может я как-то совсем непонятно написал, но меня интересует не то, что происходит и как это сделать в скетче, а как сделать SET сенсору по инициативе обекта МДМ.
Какую команду надо написать в произвольном методе произвольного объекта МДМ, чтобы сделать SET на сенсор ?
Это не поможет?
За это сообщение автора cabat поблагодарили (всего 2):
mrdenis (Вт ноя 07, 2017 5:55 pm) • Ivan (Чт ноя 09, 2017 12:40 am)
Рейтинг: 2.33%
mrdenis
Сообщения: 31
Зарегистрирован: Чт мар 19, 2015 7:55 am
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Модуль MySensor

Сообщение mrdenis » Вт ноя 07, 2017 6:00 pm

cabat писал(а):
mrdenis писал(а): Может я как-то совсем непонятно написал, но меня интересует не то, что происходит и как это сделать в скетче, а как сделать SET сенсору по инициативе обекта МДМ.
Какую команду надо написать в произвольном методе произвольного объекта МДМ, чтобы сделать SET на сенсор ?
Это не поможет?
прямо в дырочку.. подозревал, что можно создать экземпляр класса и дальше с ним работать, а попробовать чтот не судьба видать была :)
очень благодарю :)
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Пн ноя 27, 2017 12:40 am

Ivan писал(а):В новой версии модуля
Как прошивать по воздуху
- Вам нужно прошить бутлоадер: MYSBootloader или DualOtiboot
- Настроить AdruinoIDE так чтобы он компилировал в определённую директорию (Файл preferences.txt в конец добавить build.path=C:\Arduino-Output\)
- Откомпилировать скетч, после чего в папке C:\Arduino-Output\ получите .hex файл
- Добавить .hex в модуль в закладке "Прошивка"
- Выбрать прошивку в настройках ноды (поле "Прошивка")
- Перезагрузить ноду
Прошу помощи.

Чёто у меня не получается по воздуху.
Ардуинка 16 MHz

Настройки фьюзов, так и не понял что это, залил в ардуинку.
СпойлерПоказать
2017-11-27_00-18-51.png
2017-11-27_00-18-51.png (36.29 КБ) 6190 просмотров
Для проверки нажимаю считать. Считываются новые, которые вписал как на картинке с Вашего сайта.
Кстати если выйти из программы и заново ее запустить то эти фьюзы опять дефолтные почемуто.

На скриншоте Вашего сайта смущает снятая галочка "Set fuses". По всплывающей подсказке в связке с ее названием так и хочется ее нажать перед кнопкой Write. Не пробовал.

Выбрал SensebenderMicro в качестве платы 8 Mhz, хотя у меня 16 но в описании ничего не говориться для данного случая, видимо надо 8 выбирать.
Програматор конечно USBasp
СпойлерПоказать
2017-11-27_00-25-49.png
2017-11-27_00-25-49.png (8.82 КБ) 6190 просмотров
В результате получаю ошибку:
СпойлерПоказать
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
***failed;
avrdude: WARNING: invalid value for unused bits in fuse "efuse", should be set to 1 according to datasheet
This behaviour is deprecated and will result in an error in future version
You probably want to use 0xfe instead of 0x06 (double check with your datasheet first).
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
2017-11-27_00-29-40.png
2017-11-27_00-29-40.png (14.16 КБ) 6190 просмотров
Соответственно прошивка не обновляется по воздуху.
А если выбрать ArduinoProMini 328 16Mhz 5V то бутлоадер заливается, получаю некритичные предупреждения как в описании, и прошивка по воздуху так же не обновляется. Как я понял если выбираешь обычную ардуинку то заливается обычный бутлоадер. Пытался подсунуть путем подмены optoboot на dualboot HEX файл. Все равно не получается фокус.
СпойлерПоказать
2017-11-27_00-34-48.png
2017-11-27_00-34-48.png (32.07 КБ) 6190 просмотров
причем с помощью avrdudees пытался залить в FLASH скомпилированный под Arduino pro mini 5V 16MHz HEX с бутлоадерем вместе, эффект тот же. Не обновляется по воздуху.

Что делать?
Целый день убил на эксперементы.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Модуль MySensor

Сообщение tarasfrompir » Пн ноя 27, 2017 1:36 pm

Примите пул реквест перевода на украинский...
Спасибо нам ПОМОЖЕТ..!
cabat
Сообщения: 216
Зарегистрирован: Ср май 28, 2014 12:42 pm
Откуда: Санкт-Петерург
Благодарил (а): 76 раз
Поблагодарили: 28 раз

Re: Модуль MySensor

Сообщение cabat » Пн ноя 27, 2017 2:40 pm

lanket писал(а): Прошу помощи.
..
Что делать?
Целый день убил на эксперементы.
Если речь идет о прошивке через MYSBootloader, могу попробовать подсказать.
1. Необходимо выбрать правильную версию бутлоадера - бывают для тактовой 1, 8 и 16MHz (ссылка)
2. В настройках фьюзов важно правильно указать тактовую частоту и размер бутлоадера, у меня для частоты 8MHz вроде такие:

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

low_fuses=0xE2
high_fuses=0xDA
extended_fuses=0x06
3. После прошивки бутлоадера необходимо убедится в возможности прошивки стандартным способом (для MYSBootloader доступно 2 режима прошивки - по проводам и по воздуху).
Тут может быть проблема с указанием правильной скорости соединения, т.к. разные сборки будтлоадера в разное время имели разные скорости порта UART.
Ну и естественно, необходимо выбирать соответствующую частоту MCU в среде Arduino.
4. Если прошивка по проводам работает, можно проверять прошивку по воздуху.
Ответить