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

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

Модератор: immortal

Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: Модуль MySensor

Сообщение Ivan »

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
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: Модуль MySensor

Сообщение Ivan »

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

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

Re: Модуль MySensor

Сообщение mrdenis »

Добрый день.

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

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

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

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

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

Re: Модуль MySensor

Сообщение Eraser »

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

Re: Модуль MySensor

Сообщение mrdenis »

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
Откуда: Санкт-Петерург

Re: Модуль MySensor

Сообщение cabat »

mrdenis писал(а): Может я как-то совсем непонятно написал, но меня интересует не то, что происходит и как это сделать в скетче, а как сделать SET сенсору по инициативе обекта МДМ.
Какую команду надо написать в произвольном методе произвольного объекта МДМ, чтобы сделать SET на сенсор ?
Это не поможет?
mrdenis
Сообщения: 31
Зарегистрирован: Чт мар 19, 2015 7:55 am

Re: Модуль MySensor

Сообщение mrdenis »

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

Re: Модуль MySensor

Сообщение lanket »

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

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

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

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

Выбрал SensebenderMicro в качестве платы 8 Mhz, хотя у меня 16 но в описании ничего не говориться для данного случая, видимо надо 8 выбирать.
Програматор конечно USBasp
SPOILERSPOILER_SHOW
2017-11-27_00-25-49.png
2017-11-27_00-25-49.png (8.82 КБ) 6948 просмотров
В результате получаю ошибку:
SPOILERSPOILER_SHOW
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 КБ) 6948 просмотров
Соответственно прошивка не обновляется по воздуху.
А если выбрать ArduinoProMini 328 16Mhz 5V то бутлоадер заливается, получаю некритичные предупреждения как в описании, и прошивка по воздуху так же не обновляется. Как я понял если выбираешь обычную ардуинку то заливается обычный бутлоадер. Пытался подсунуть путем подмены optoboot на dualboot HEX файл. Все равно не получается фокус.
SPOILERSPOILER_SHOW
2017-11-27_00-34-48.png
2017-11-27_00-34-48.png (32.07 КБ) 6948 просмотров
причем с помощью 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
Откуда: Украина Пирятин

Re: Модуль MySensor

Сообщение tarasfrompir »

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

Re: Модуль MySensor

Сообщение cabat »

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

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

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