Mega 2561 и MQTT

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 3268
Зарегистрирован: 18 мар 2011, 12:06

Re: Mega 2561 и MQTT

Сообщение Andrey_B » 04 янв 2018, 02:33

Попробуйте вот эту версию с брокером для Windows.
Если в каких-то определенных ситуациях (перезагрузка устройства или брокера/сервера) соединение будет происходить не сразу, просто подождите некоторое время.
https://ab-log.ru/files/File/megad-2561 ... a9-hex.zip

nkh
Сообщения: 36
Зарегистрирован: 12 авг 2016, 11:13

Re: Mega 2561 и MQTT

Сообщение nkh » 07 янв 2018, 13:47

Теперь соединение не теряется, ура

empenoso
Сообщения: 705
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Mega 2561 и MQTT

Сообщение empenoso » 11 янв 2018, 16:16

А мега сообщает только о счетчиках и кнопках по MQTT?

В том плане что от датчиков никаких показаний нет:
Screenshot_20180111-170814.png
Screenshot_20180111-170814.png (116.21 КБ) 148 просмотров

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

Re: Mega 2561 и MQTT

Сообщение Andrey_B » 11 янв 2018, 17:46

А вы про какие датчики говорите?
Например, от I2C-датчиков и по HTTP никакие сообщения самостоятельно не генерируются.
Но есть инструмент для опроса порта с помощью команды вида "get:10", отправленной в топик типа "megad/14/cmd".
Подробнее здесь.

stilet69
Сообщения: 53
Зарегистрирован: 30 июн 2017, 19:14

Re: Mega 2561 и MQTT

Сообщение stilet69 » 15 янв 2018, 15:54

nkh писал(а):
01 янв 2018, 21:47
Поставил на виртуальной машине убунту, на нем маскито, все работает, почему на винде отваливается нужно выяснять. Возможно глюк виндовой версии
А какая версия брокера у вас? У меня и с последней прошивкой вообще не соединяется. Soket error

Igor78
Сообщения: 56
Зарегистрирован: 26 янв 2015, 14:44
Откуда: Москва

Re: Mega 2561 и MQTT

Сообщение Igor78 » Вчера, 16:07

Протестировал связку Mega-MQTT(Mosquitto)-Openhab2.2.

Прошивка MegaD-2561 by ab-log.ru (fw: 4.22b4)
ОС CENTOS 6.9, Mosquito 1.4.14
К Меге подключено SSD1306,PCA9685,BME280,MAX44009 (может это важно)

Нормальной работы добиться не удалось :(.

Проблема 1:

Мега может работать нормально, но, например, после захода на ее WEB-интерфейс и изменения там состояния одного из выходов OFF->ON->OFF, перестать реагировать на запросы состояния порта (запись в cmd:get=7), вместо ответа в топик получаем переподключение к брокеру

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

1516102587: Received PUBLISH from paho439377949400259 (d0, q0, r0, m0, 'megad/31/cmd', ... (5 bytes))
1516102587: Sending PUBLISH to megad-31 (d0, q0, r0, m0, 'megad/31/cmd', ... (5 bytes))
1516102595: Received PINGREQ from paho439377949400259
1516102595: Sending PINGRESP to paho439377949400259
1516102598: New connection from 10.5.5.31 on port 1883.
1516102598: Client megad-31 already connected, closing old connection.
1516102598: Client megad-31 disconnected.
1516102598: New client connected from 10.5.5.31 as megad-31 (c1, k30).
программные ребуты Меги не помогают, помогает перезапуск брокера, после чего дождавшись подключения Меги (секунд 15), Мега начинает нормально реагировать на get

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

1516102922: Received PUBLISH from paho439377949400259 (d0, q0, r0, m0, 'megad/31/cmd', ... (5 bytes))
1516102922: Sending PUBLISH to megad-31 (d0, q0, r0, m0, 'megad/31/cmd', ... (5 bytes))
1516102922: Received PUBLISH from megad-31 (d0, q0, r0, m0, 'megad/31/5', ... (23 bytes))
1516102922: Sending PUBLISH to paho439377949400259 (d0, q0, r0, m0, 'megad/31/5', ... (23 bytes))
при всем этом Мега нормально реагирует на изменение выходов через MQTT топики!

Проблема 2:

Как получить состояния портов ШИМ-расширителя PCA9685?

SDA порт 5. Хочу получить значения ШИМ порта 0 PCA9685

на cmd:get=5 получаю {"port":"5","value":""}
на cmd:get=5e0 получаю то же ответ в топик /5, а не ожидаемый /5e0

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

1516104273: Received PUBLISH from paho439377949400259 (d0, q0, r0, m0, 'megad/31/cmd', ... (7 bytes))
1516104273: Sending PUBLISH to megad-31 (d0, q0, r0, m0, 'megad/31/cmd', ... (7 bytes))
1516104273: Received PUBLISH from megad-31 (d0, q0, r0, m0, 'megad/31/5', ... (23 bytes))
1516104273: Sending PUBLISH to paho439377949400259 (d0, q0, r0, m0, 'megad/31/5', ... (23 bytes))
С уважением, Игорь

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

Re: Mega 2561 и MQTT

Сообщение Andrey_B » Вчера, 19:03

По поводу "Проблемы 1" попробуйте вот эту версию.
https://ab-log.ru/files/File/megad-2561 ... a5-hex.zip

По поводу "Проблемы 2" посмотрю, что можно сделать.

Igor78
Сообщения: 56
Зарегистрирован: 26 янв 2015, 14:44
Откуда: Москва

Re: Mega 2561 и MQTT

Сообщение Igor78 » Вчера, 20:29

Andrey_B писал(а):
Вчера, 19:03
По поводу "Проблемы 1" попробуйте вот эту версию.
https://ab-log.ru/files/File/megad-2561 ... a5-hex.zip

По поводу "Проблемы 2" посмотрю, что можно сделать.
Проверил, все заработало как надо. Спасибо!

Теперь работает MQTT одновременно с HTTP/GET запросами к устройству, т.ч. Проблему 2 можно пока обходить по HTTP :)

Андрей, заметил еще одну вещь: если запрашивать состояние порта типа IN через get=, то получаем в топик {"port":"1":"value:"OFF/26"}, а при срабатывании порта получаем {"port":"1":"cnt":26"}, соответственно обрабатывать эти сообщения нужно по разному, что не удобно, может унифицировать ответ, пусть при сработке Мега присылает новое значение порта и счетчика..
С уважением, Игорь

Ответить