mysensors

jonyzs
Сообщения: 86
Зарегистрирован: Чт фев 21, 2013 11:35 pm

Re: mysensors

Сообщение jonyzs »

Неужели так трудно хоть одному кто добилсья вывода данных в majordomo запостить скрин настройки mqtt majordomo?
binladin
Сообщения: 143
Зарегистрирован: Чт фев 06, 2014 9:32 pm

Re: mysensors

Сообщение binladin »

jonyzs писал(а):Неужели так трудно хоть одному кто добилсья вывода данных в majordomo запостить скрин настройки mqtt majordomo?
Всё проще пареной репы - пропишите айпишник и # как subscription path и в случае нормальной работы клиента автоматически получите сообщения с него.
Я несколько дней мучался - сначала с эзернет-шилдом на шлюзе, потом с перепутанными проводками к nrf24 на клиенте, а потом с отсутствием сообщений на mqtt. И все проблемы оказались связаны с железками.
Вложения
mqtt.png
mqtt.png (20.01 КБ) 20575 просмотров
jonyzs
Сообщения: 86
Зарегистрирован: Чт фев 21, 2013 11:35 pm

Re: mysensors

Сообщение jonyzs »

Наконец :)
binladin
Сообщения: 143
Зарегистрирован: Чт фев 06, 2014 9:32 pm

Re: mysensors

Сообщение binladin »

Попробовал ещё один вариант MQTT-шлюза отсюда. Отличие в том что на шлюзе крутится не брокер, а клиент. Поднял отдельный mosquitto-брокер на машине с МДМ, сам подключился клиент с ардуинки, подключил клиент МДМ и получил записи с датчика. Ещё хочу выпилить nrf24 и сделать вариант "утонченного" проводного шлюза-MQTT-клиента датчики к которому подключаются напрямую, а не через радио (в моих условиях с проводами проблем нет, эфир за зря загружать не хочу).
AlexeyKr
Сообщения: 28
Зарегистрирован: Сб мар 30, 2013 7:34 am

Re: mysensors

Сообщение AlexeyKr »

Пытаюсь перевести свои модули на стандарт mqtt с помощью библиотек от mysensors. Второй день не могу добиться переключения V_LIGHT на модуле. С модуля сообщения идут. Подскажите, что надо отправить на шлюз, какой формат команды? То есть работает протоколирование, но управлять этим хозяйством не получается.
binladin
Сообщения: 143
Зарегистрирован: Чт фев 06, 2014 9:32 pm

Re: mysensors

Сообщение 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".
Если не получится и наберетесь терпения подождать, я за сегодня - завтра попробую собрать этот пример.
AlexeyKr
Сообщения: 28
Зарегистрирован: Сб мар 30, 2013 7:34 am

Re: mysensors

Сообщение 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 где-то надо правильно указать тип сообщения, чтобы на него была реакция.
AlexeyKr
Сообщения: 28
Зарегистрирован: Сб мар 30, 2013 7:34 am

Re: mysensors

Сообщение 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...
binladin
Сообщения: 143
Зарегистрирован: Чт фев 06, 2014 9:32 pm

Re: mysensors

Сообщение binladin »

AlexeyKr писал(а): теперь бы еще правильно внедрить отправку команды в majordomo...
Рад был помочь. Как внедрите в МДМ, поделитесь опытом, очень не хватает конкретных примеров.
AlexeyKr
Сообщения: 28
Зарегистрирован: Сб мар 30, 2013 7:34 am

Re: mysensors

Сообщение AlexeyKr »

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