Страница 3 из 25

Re: mysensors

Добавлено: Вт ноя 11, 2014 11:16 pm
jonyzs
Неужели так трудно хоть одному кто добилсья вывода данных в majordomo запостить скрин настройки mqtt majordomo?

Re: mysensors

Добавлено: Вт ноя 11, 2014 11:42 pm
binladin
jonyzs писал(а):Неужели так трудно хоть одному кто добилсья вывода данных в majordomo запостить скрин настройки mqtt majordomo?
Всё проще пареной репы - пропишите айпишник и # как subscription path и в случае нормальной работы клиента автоматически получите сообщения с него.
Я несколько дней мучался - сначала с эзернет-шилдом на шлюзе, потом с перепутанными проводками к nrf24 на клиенте, а потом с отсутствием сообщений на mqtt. И все проблемы оказались связаны с железками.

Re: mysensors

Добавлено: Вт ноя 11, 2014 11:59 pm
jonyzs
Наконец :)

Re: mysensors

Добавлено: Ср ноя 12, 2014 8:57 pm
binladin
Попробовал ещё один вариант MQTT-шлюза отсюда. Отличие в том что на шлюзе крутится не брокер, а клиент. Поднял отдельный mosquitto-брокер на машине с МДМ, сам подключился клиент с ардуинки, подключил клиент МДМ и получил записи с датчика. Ещё хочу выпилить nrf24 и сделать вариант "утонченного" проводного шлюза-MQTT-клиента датчики к которому подключаются напрямую, а не через радио (в моих условиях с проводами проблем нет, эфир за зря загружать не хочу).

Re: mysensors

Добавлено: Сб ноя 15, 2014 10:28 am
AlexeyKr
Пытаюсь перевести свои модули на стандарт mqtt с помощью библиотек от mysensors. Второй день не могу добиться переключения V_LIGHT на модуле. С модуля сообщения идут. Подскажите, что надо отправить на шлюз, какой формат команды? То есть работает протоколирование, но управлять этим хозяйством не получается.

Re: mysensors

Добавлено: Сб ноя 15, 2014 2:57 pm
binladin
AlexeyKr писал(а):Пытаюсь перевести свои модули на стандарт mqtt с помощью библиотек от mysensors. Второй день не могу добиться переключения V_LIGHT на модуле. С модуля сообщения идут. Подскажите, что надо отправить на шлюз, какой формат команды? То есть работает протоколирование, но управлять этим хозяйством не получается.
На клиенте с релюхой такой скетч залит ?
Если да, то ответ в этом куске кода:

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

#define RELAY_ON 1  // GPIO value to write to turn on attached relay
#define RELAY_OFF 0 // GPIO value to write to turn off attached relay    
Соответственно, я думаю, надо публиковать "1" или "0" в топик "MyMQTT/NodeID/RelayID/V_LIGHT" для переключения реле. Например, чтобы включить реле "MyMQTT/20/0/V_LIGHT/1", а чтобы выключить "MyMQTT/20/0/V_LIGHT/0".
Если не получится и наберетесь терпения подождать, я за сегодня - завтра попробую собрать этот пример.

Re: mysensors

Добавлено: Сб ноя 15, 2014 3:46 pm
AlexeyKr
пробовал разные команды - пока без результатов. вот например сообщение о включении и выключении V_LIGHT в serial на MQTT шлюзе:

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

0;0;3;0;9;read: 20-20-0 s=5,c=1,t=2,pt=1,l=1:1
MyMQTT/20/5/V_LIGHT
>>30 16 00 13 4D 79 4D 51 54 54 2F 32 30 2F 35 2F 56 5F 4C 49 47 48 54 31 
0;0;3;0;9;read: 20-20-0 s=5,c=1,t=2,pt=1,l=1:0
MyMQTT/20/5/V_LIGHT
>>30 16 00 13 4D 79 4D 51 54 54 2F 32 30 2F 35 2F 56 5F 4C 49 47 48 54 30 
это реакция на MyMQTT/20/5/V_LIGHT/1

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

<<30 18 00 01 71 4D 79 4D 51 54 54 2F 32 30 2F 35 2F 56 5F 4C 49 47 48 54 2F 31
на MyMQTT/20/5/VLIGHT/ON:1

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

<<30 1B 00 01 71 4D 79 4D 51 54 54 2F 32 30 2F 35 2F 56 5F 4C 49 47 48 54 2F 4F 4E 3A 31
отправляю команды из приложения MyMQTT для андроида. Видимо по стандарту MQTT где-то надо правильно указать тип сообщения, чтобы на него была реакция.

Re: mysensors

Добавлено: Сб ноя 15, 2014 4:27 pm
AlexeyKr
добился положительного результата. ключевая фраза
публиковать "1" или "0" в топик "MyMQTT/NodeID/RelayID/V_LIGHT"
то есть я изначально неправильно указывал в приложении Topic и Message. всю команду указывал в Message. После указания в Topic MyMQTT/20/5/V_LIGHT а в Message 0 или 1 результат:

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

<<30 16 00 13 4D 79 4D 51 54 54 2F 32 30 2F 35 2F 56 5F 4C 49 47 48 54 31 
0;0;3;0;9;send: 0-0-20-20 s=5,c=1,t=2,pt=0,l=1,st=ok:1
<<30 16 00 13 4D 79 4D 51 54 54 2F 32 30 2F 35 2F 56 5F 4C 49 47 48 54 30 
0;0;3;0;9;send: 0-0-20-20 s=5,c=1,t=2,pt=0,l=1,st=ok:0
спасибо за подсказку. продолжаю изыскания.
теперь бы еще правильно внедрить отправку команды в majordomo...

Re: mysensors

Добавлено: Сб ноя 15, 2014 8:28 pm
binladin
AlexeyKr писал(а): теперь бы еще правильно внедрить отправку команды в majordomo...
Рад был помочь. Как внедрите в МДМ, поделитесь опытом, очень не хватает конкретных примеров.

Re: mysensors

Добавлено: Вс ноя 16, 2014 3:09 pm
AlexeyKr
всё получилось. управление по mqtt работает без дополнительных скриптов и методов.
1. Настраиваем параметры шлюза MyMQTT
СпойлерПоказать
1.png
1.png (12.61 КБ) 18877 просмотров
2. Запускаем на сервере скрипт php mqtt с помощью bat файла
СпойлерПоказать
1b.png
1b.png (2.62 КБ) 18877 просмотров
3. После этого видим публикуемые шлюзом сообщения
СпойлерПоказать
1c.png
1c.png (13.1 КБ) 18877 просмотров
4. Выбираем объект, от которого приходит сообщение и его свойство. У меня например комнатный модуль Node2, температура.
СпойлерПоказать
2.png
2.png (11.84 КБ) 18877 просмотров
5. Открываем на редактирование пришедшее сообщение mqtt
СпойлерПоказать
2a.png
2a.png (9.07 КБ) 18877 просмотров
заполняем поля "Связанный объект" и "Свойство" например для температуры
СпойлерПоказать
3.png
3.png (9.6 КБ) 18877 просмотров
Аналогично для сообщения от источника света
СпойлерПоказать
4.png
4.png (9.22 КБ) 18877 просмотров
6. Управление источником света можно производить изменением свойства объекта, при этом автоматически отправляется в связанный mqtt топик сообщение с новым значением свойства.
для этого для объекта можно создать элемент управления типа переключатель в меню управления
СпойлерПоказать
6.png
6.png (3.85 КБ) 18877 просмотров
настройка переключателя
СпойлерПоказать
5.png
5.png (14.48 КБ) 18877 просмотров
всё работает, НО мы изменяем свойство объекта без контроля выполнения команды. При тестировании обнаружено, что при потере управляющего сообщения, в меню выключатель включен, а фактически источник света выключен. Также по неизвестной причине зависал скрипт mqtt_daemon.php и не реагировал на входящие сообщения.
Думаю требуется другой метод отправки сообщения на mqtt-шлюз, без изменения свойства объекта. А свойство объекта изменять по пришедшему от шлюза сообщению.