Скрыть объявление
Управляйте вашими ESP8266 и другими устройствами прямо с телефона из любой точки мира, где есть интернет!
Подробности и обсуждение IoT Manager в этой теме. Официальный сайт приложения и документация IoTmanager.ru
Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Настройка MQTT брокера mosquitto

Тема в разделе "Домашние IoT серверы", создана пользователем Casper, 5 июн 2015.

  1. Casper

    Casper Новичок

    Сообщения:
    32
    Симпатии:
    1
    @Victor mqtt мне понравилось, интересная штука, но я не могу разобраться с сервером(mosquitto), как его настроить, создать публикации и смотреть их данные...
     
  2. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.092
    Симпатии:
    348
    Укажите платформу, на которой вы настраиваете mosquitto (я пробовал Win7 x64 и OpenWRT Chaos Calmer 15.05-rc1)
    Укажите версию mosquitto (у меня 1.4.2, в более ранних версиях много проблем с bridge)
    Включите логгирование и пришлите логи
    Попытайтесь подключиться к mosquitto с помощью mqtt-spy
    Ну и собственно самое важное: что именно не получается?
    Полная конфигурация mosquitto из статьи во вложении
     

    Вложения:

    • mosquitto.conf
      Размер файла:
      36,2 КБ
      Просмотров:
      656
  3. Daxtil

    Daxtil Новичок

    Сообщения:
    2
    Симпатии:
    0
    OpenWrt Barrier Breaker 14.07
    Mosquitto 1.3.5

    На первый взгляд все сделано как в примерах, запущено и включено в автозагрузку..
    НО никак не удается подключиться к брокеру..
    Причем даже с консоли:

    root@OpenWrt:~# mosquitto_sub -t test
    Error: Connection refused
     
  4. Daxtil

    Daxtil Новичок

    Сообщения:
    2
    Симпатии:
    0
    Решено: пришлось ставить из другого репозитория Chaos Calmer 15.05-rc3 версию 1.4.2
     
  5. M-a-x-x

    M-a-x-x Новичок

    Сообщения:
    20
    Симпатии:
    1
    По поводу ошибки "Error: Connection refused" - у меня дело было в конфиге mosquitto. Можно протестировать так (для Debian):
    1.сделать бэкап своего конфига
    cp /etc/mosquitto/conf.d/mosquitto.conf{,.old}
    2.запустить напрямую mosquitto с настройками по умолчанию
    /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf -d
    3.проверить порт
    lsof -i:1883
    4.если строчка с процессом mosquitto есть, запустить
    mosquitto_sub -t test
    Если после этого видим вывод команды, значит проблема была в конфиге, если нет нужно думать дальше)
     
  6. ZemaAD

    ZemaAD Новичок

    Сообщения:
    4
    Симпатии:
    0
    Всем привет!
    Ребят не подскажите, почему когда я создаю второго юзера в пасворд листе, у меня не подключается вообще к москито?
    Не могу понять где ошибка...
     
  7. iapet

    iapet Новичок

    Сообщения:
    3
    Симпатии:
    0
    В /overlay/mosquitto/mosquitt.acl добавили юзера?
     
  8. ZemaAD

    ZemaAD Новичок

    Сообщения:
    4
    Симпатии:
    0
    Да юзера добавил, вопрос в другом есть файл с паролями:
    user : pass
    user1 : pass1
    И файл с разрешением читать\записывать топики
    user
    topic /MyHome/#
    user1
    topic /MyHome/#
    user1 не видит топики, хотя user видит и пишет во все топики
     
  9. iapet

    iapet Новичок

    Сообщения:
    3
    Симпатии:
    0
    Только что проверил, все работает именно при таком раскладе. Пароли делаете чем? mosquitto_passwd?
     
  10. ZemaAD

    ZemaAD Новичок

    Сообщения:
    4
    Симпатии:
    0
    Да, делаю именно им, если в настройках openHAB указать user : pass, а в mqtt-spy подключиться под user1 : pass1 и отправлять с esp от имени user1, то mqtt-spy видит данные а вот openHAB нет...
     
  11. iapet

    iapet Новичок

    Сообщения:
    3
    Симпатии:
    0
    Попробуйте везде user1
     
  12. ZemaAD

    ZemaAD Новичок

    Сообщения:
    4
    Симпатии:
    0
    Так все работает, я попробовал сразу)
     
  13. PavelNikolaevich

    PavelNikolaevich Новичок

    Сообщения:
    24
    Симпатии:
    1
    Всем добрый день! Подскажите в статье (http://esp8266.ru/esp8266-openwrt-m...mail-android-ios-twitter-cloudmqtt/#mosquitto) сказано :
    "В одну строку без переносов. Это мы определили пароль test пользователю test. Еще создаем файл /overlay/mosquitto/mosquitt.acl следующего содержания"
    а в файле конфигурации mosquitto.conf прописывается файл с именем mosquitto.acl
    Так и надо ? или просто опечатка ? в конце имени файла нет буквы О
     
  14. M-a-x-x

    M-a-x-x Новичок

    Сообщения:
    20
    Симпатии:
    1
    PavelNikolaevich,
    Опечатка. Можно хоть как этот файл (mosquitto.acl) назвать, главное в конфиге его прописать.
     
  15. PavelNikolaevich

    PavelNikolaevich Новичок

    Сообщения:
    24
    Симпатии:
    1
    понял. спасибо. просто делал все по инстркции и не заметил сразу, просидел пол дня и не мог понять что не так.. )
     
  16. PavelNikolaevich

    PavelNikolaevich Новичок

    Сообщения:
    24
    Симпатии:
    1
    всем добрый день! есть еще вопрос, пробую делать по статье (http://esp8266.ru/esp8266-openwrt-m...mail-android-ios-twitter-cloudmqtt/#mosquitto).. дошел до пункта где загружаем скетч mqtt.ino .. прописал свой сервер и пароль.. при компиляции выдает ошибку
    Код (Text):
    1.  
    2. mqtt:8: error: no matching function for call to 'PubSubClient::PubSubClient(IPAddress&, int)'
    3. mqtt.ino:8:32: note: candidates are:
    4. In file included from mqtt.ino:2:0:
    5. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:89:4: note: PubSubClient::PubSubClient(Client&, String, uint16_t)
    6.   PubSubClient(Client& c, String hostname, uint16_t port = 1883);
    7.   ^
    8. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:89:4: note:  no known conversion for argument 1 from 'IPAddress' to 'Client&'
    9. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:87:4: note: PubSubClient::PubSubClient(Client&, IPAddress&, uint16_t)
    10.   PubSubClient(Client& c, IPAddress &ip, uint16_t port = 1883);
    11.   ^
    12. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:87:4: note:  no known conversion for argument 1 from 'IPAddress' to 'Client&'
    13. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:84:4: note: PubSubClient::PubSubClient(Client&)
    14.   PubSubClient(Client& c);
    15.   ^
    16. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:84:4: note:  candidate expects 1 argument, 2 provided
    17. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:20:7: note: PubSubClient::PubSubClient(const PubSubClient&)
    18.  class PubSubClient {
    19.   ^
    20. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:20:7: note:  candidate expects 1 argument, 2 provided
    21. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:20:7: note: PubSubClient::PubSubClient(PubSubClient&&)
    22. C:\ArduinoSketch\libraries\pubsubclient-master\src/PubSubClient.h:20:7: note:  candidate expects 1 argument, 2 provided
    23. mqtt.ino:13:18: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    24. mqtt.ino:14:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    25. mqtt.ino:15:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    26. no matching function for call to 'PubSubClient::PubSubClient(IPAddress&, int)'
    27.  
    на строке PubSubClient client(server,1883);
    подскажите, ему нужны доополнительные параметры в функцию передать или что?
     
  17. M-a-x-x

    M-a-x-x Новичок

    Сообщения:
    20
    Симпатии:
    1
    Можно еще так попробывать, но не обещаю, что будет работать)
    const char* mqtt_server = "192.168.1.5";
    WiFiClient espClient;
    PubSubClient client(espClient);
    ...
    client.setServer(mqtt_server, 1883);
    UPD:
    В общем там небольшая путаница, или я запутался. Есть два проекта PubSubClient:
    для Arduino - https://github.com/knolleary/pubsubclient
    для ESP8266 - https://github.com/Imroy/pubsubclient
    Нам нужна последняя. Но Arduino IDE ее обновляет до последней версии. Нужно в папке библиотек удалить PubSubClient, скачать https://github.com/Imroy/pubsubclient/archive/master.zip и установить эту версию (1.99.1). Тогда в mqtt.ino нужно заменить
    IPAddress server(192, 168, 1, 100); // mosquitto address
    PubSubClient client(server, 1883);
    на
    WiFiClient espClient;
    IPAddress server(192, 168, 1, 100); // mosquitto address
    PubSubClient client(espClient, server);
    У меня так заработало.
     
    Последнее редактирование: 22 ноя 2015
  18. PavelNikolaevich

    PavelNikolaevich Новичок

    Сообщения:
    24
    Симпатии:
    1
    Эх... спасибо за совет.. дейтсвительно на строке
    Код (Text):
    1. client.setServer(mqtt_server, 1883);
    выдает такую ощибку
    Код (Text):
    1. mqtt:12: error: 'client' does not name a type
    закоментировал её
    компиляция прошла
    Так же попробовал строку
    Код (Text):
    1. PubSubClient client(espClient);
    заменить на
    Код (Text):
    1. PubSubClient client(espClient,mqtt_server,1883);
    компиляция проходит, в работе проверить не успел.. как что отпишусь
     
  19. PavelNikolaevich

    PavelNikolaevich Новичок

    Сообщения:
    24
    Симпатии:
    1
    в итоге оставил такой вариант
    Код (Text):
    1. const char* mqtt_server = "192.168.1.200";
    2. WiFiClient espClient;
    3. PubSubClient client(espClient,mqtt_server,1883);
    4. //client.setServer(mqtt_server, 1883);
    последняя строка закоментирована, так как ней компилятор выдает ошибку.
    работает, приходят сообщения. буду настраивать дальше. спасибо M-a-x-x за помощь
     
  20. PavelNikolaevich

    PavelNikolaevich Новичок

    Сообщения:
    24
    Симпатии:
    1
    Еще раз всем добрый день!
    в инструкции такая строка
    Далее создаем в /overlay/mosquitto файл mqttwarn.ini следующего содержания:
    ..........
    там текст настроек...
    а ниже, где получаем данные с ТинСпик.. идет такая строка:
    Тут же получаем Write API Key. Добавляем в /overlay/mosquitto/mqttwarn.init

    Вопрос в следующем:
    mqttwarn.ini и mqttwarn.init - это разные файлы? или опечатка? и если опечатка, то какой файл должен быть

    заранее спасибо

    UPD
    с именем разобрался.. судя по тексту ниже - это опечатка и имя должно быть mqttwarn.ini
     

Поделиться этой страницей