Установка и настройка брокера MQTT в Orange PI PC
Модератор: immortal
-
- Сообщения: 55
- Зарегистрирован: Вс янв 29, 2017 12:52 am
- Откуда: Уфа
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
Re: Установка и настройка брокера MQTT в Orange PI PC
Я поставил на свою апельсинку зеро mqtt брокер mosquito (связка с мажордомо) но почему то ничего не принимает.
В терминале отправлял сообщение: mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT" которое нормально получил на апельсинке в мажордомо, но с устройства esp8266 не получает.
MQTTLens на стационарном пк не подключается к брокеру на апельсинке.
Может кто сталкивался с такой проблемой?
В терминале отправлял сообщение: mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT" которое нормально получил на апельсинке в мажордомо, но с устройства esp8266 не получает.
MQTTLens на стационарном пк не подключается к брокеру на апельсинке.
Может кто сталкивался с такой проблемой?
-
- Сообщения: 6
- Зарегистрирован: Ср май 03, 2017 8:24 pm
- Благодарил (а): 4 раза
- Поблагодарили: 0
Re: Установка и настройка брокера MQTT в Orange PI PC
После очередного обновления пакетов перестал автоматически запускаться mosquitto. Вручную запускается и работает. Модуль MQTT клиента работает только после переустановки. В чем может быть причина и как исправить? В каталоге /etc/rc2.d файла S03majordomo нет.
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 402 раза
- Контактная информация:
Re: Установка и настройка брокера MQTT в Orange PI PC
Запуск москито перед МД должен быть, я писал как это сделать в теме про образ для апельсинки2007-i писал(а):Я поставил на свою апельсинку зеро mqtt брокер mosquito (связка с мажордомо) но почему то ничего не принимает.
В терминале отправлял сообщение: mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT" которое нормально получил на апельсинке в мажордомо, но с устройства esp8266 не получает.
MQTTLens на стационарном пк не подключается к брокеру на апельсинке.
Может кто сталкивался с такой проблемой?
И в этой теме
viewtopic.php?f=3&t=3737#p46477
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 402 раза
- Контактная информация:
Re: Установка и настройка брокера MQTT в Orange PI PC
А как у Вас запускается МД?dudunyk писал(а):После очередного обновления пакетов перестал автоматически запускаться mosquitto. Вручную запускается и работает. Модуль MQTT клиента работает только после переустановки. В чем может быть причина и как исправить? В каталоге /etc/rc2.d файла S03majordomo нет.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 6
- Зарегистрирован: Ср май 03, 2017 8:24 pm
- Благодарил (а): 4 раза
- Поблагодарили: 0
Re: Установка и настройка брокера MQTT в Orange PI PC
immortal, прошу прощения в линуксе не очень... Имеется ввиду циклы где запускаются? В кронтабах -
@reboot www-data /usr/bin/php /var/www/cycle.php
Восстановил с образа старую работающую версию, обновил и тоже mosquitto перестал запускаться при загрузке.
@reboot www-data /usr/bin/php /var/www/cycle.php
Восстановил с образа старую работающую версию, обновил и тоже mosquitto перестал запускаться при загрузке.
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 402 раза
- Контактная информация:
Re: Установка и настройка брокера MQTT в Orange PI PC
понятно, ну значит надо в кронтаб запускать и москито, сначала запускаться москито должен потом МД, а вообще лучше МД сделать запуск сервисом по мануалу http://majordomo.smartliving.ru/Main/SetupRaspberryPi2dudunyk писал(а):immortal, прошу прощения в линуксе не очень... Имеется ввиду циклы где запускаются? В кронтабах -
@reboot www-data /usr/bin/php /var/www/cycle.php
Восстановил с образа старую работающую версию, обновил и тоже mosquitto перестал запускаться при загрузке.
Для авто-запуска и удобного управления majordomo создадим файл /etc/init.d/majordomo:
СпойлерПоказать
Код: Выделить всё
#!/bin/sh
### BEGIN INIT INFO
# Provides: SmartLiving
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
dir="/var/www/"
user="root"
cmd="php /var/www/cycle.php"
name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}
case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
(while true; do
sudo -u "$user" $cmd
done)>> "$stdout_log" 2>> "$stderr_log" &
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
sudo killall php
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
sudo killall php
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Код: Выделить всё
chmod 0755 /etc/init.d/majordomo
sudo update-rc.d majordomo defaults
S02majordomo
в
S03majordomo
- Рейтинг: 1.16%
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 6
- Зарегистрирован: Ср май 03, 2017 8:24 pm
- Благодарил (а): 4 раза
- Поблагодарили: 0
Re: Установка и настройка брокера MQTT в Orange PI PC
Зделал по мануалу, появился файл S03majordomo, переименовал его в S04majordomo (т.к. есть S03mosquitto) и не помогло. Не стартует mosquitto при перезагрузке. Логов нет все так-же. Психанул - перименовал все файлы S0Xmajordomo и K0Xmajordomo во всех каталогах /etc/rcX.d на единицу больше. Не помогло... Да еще закоментил старт циклов в кронтабах.
- 71Gavrik71
- Сообщения: 54
- Зарегистрирован: Сб май 21, 2016 2:04 pm
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Установка и настройка брокера MQTT в Orange PI PC
Я так понял что москито тупо не стартует при перезагрузке, чтоб ожила надо sudo systemctl enable mosquitto и начнет все работать)
За подсказку огромное спасибо nick7zmail
За подсказку огромное спасибо nick7zmail
- prmres
- Сообщения: 438
- Зарегистрирован: Пт ноя 24, 2017 2:24 am
- Откуда: оттуда
- Благодарил (а): 115 раз
- Поблагодарили: 124 раза
Re: Установка и настройка брокера MQTT в Orange PI PC
Установка Mosquitto
Только что поставил Mosquitto на Ubuntu Server 16.04.3, свежеустановленную на VMWare Workstation, со свежеустановленным же MD (использовал скрипты из соответствующей темы), когда то пробовал на CentOS (я про москитто), здесь мало чем отличается, разве только синтаксисом команд.
Для создания и правки файлов использую WinSCP, им же удобно назначать chmod.
1. Установка
(UPD 04.09.2018)
на свежеустановленную 16.04.5 не ставится, пакет не обнаруживаетсятся в репозиториях "по-умолчанию"
сначала добавляем репозиторий:
затем обновить информацию о пакетах в репозиториях:
источник
теперь устанавливаем комарика
1.1 Делаем сервисом
при этом Ubuntu "ругнётся", но сделает как нужно:
2. Настройка
2.1 создаём "самый главный конфиг"
/etc/mosquitto/mosquitto.conf
и вносим в него единственную запись:
это "заставит" брокер брать конфиги из папки /etc/mosquitto/conf.d
в этой папке удобно формировать разные конфиги для разных задач
например будет отдельно конфиг с основными настройками и отдельно конфиг\конфиги для других целей
2.2 создаём конфиг с "основными" настройками
/etc/mosquitto/conf.d/main.conf
(имя можно любое, я задал main.conf)
со следующим содержимым:
2.3 учётные записи
создаём пустой файл /etc/mosquitto/users.list
и сразу создаём пользователя\пользователей
синтаксис очень простой:
попросит ввести и подтвердить пароль, в только что созданный файл users.list добавится пользователь TEST
2.4 доступ к топикам
создаём файл /etc/mosquitto/mosquitto.acl
и сразу настраиваем нужный доступ по нужным пользователям (п. 2.3), для начала даём доступ пользователю TEST доступ ко всем топикам
сдержимое:
3. Запуск
сразу видим появление /etc/mosquitto/mosquitto.log
если всё сделали правильно то в нём появится запись типа
1511807719: mosquitto version 1.4.8 (build date Mon, 26 Jun 2017 09:31:02 +0100) starting
1511809790: New connection from 172.30.0.111 on port 1883.
1511809790: New client connected from 172.30.0.111 as ESP8266 (c1, k60, u'test')
после отладки в main.conf каментим log_type debug и log_type information иначе лог пухнет на глазах
для создаваемых файлов конфигов и др. проверяем\правим chmod
позже о создании моста с "внешним" брокером cloudmqtt.com
Только что поставил Mosquitto на Ubuntu Server 16.04.3, свежеустановленную на VMWare Workstation, со свежеустановленным же MD (использовал скрипты из соответствующей темы), когда то пробовал на CentOS (я про москитто), здесь мало чем отличается, разве только синтаксисом команд.
Для создания и правки файлов использую WinSCP, им же удобно назначать chmod.
1. Установка
(UPD 04.09.2018)
на свежеустановленную 16.04.5 не ставится, пакет не обнаруживаетсятся в репозиториях "по-умолчанию"


сначала добавляем репозиторий:
Код: Выделить всё
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
Код: Выделить всё
sudo apt update
теперь устанавливаем комарика
Код: Выделить всё
sudo apt install -y mosquitto
Код: Выделить всё
sudo systemctl enable mosquitto
дальше, что б не заморачиваться, я дал права 0777 на всю папку /etc/mosquitto (с потомками)mosquitto.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable mosquitto
2. Настройка
2.1 создаём "самый главный конфиг"
/etc/mosquitto/mosquitto.conf
и вносим в него единственную запись:
Код: Выделить всё
include_dir /etc/mosquitto/conf.d
в этой папке удобно формировать разные конфиги для разных задач
например будет отдельно конфиг с основными настройками и отдельно конфиг\конфиги для других целей
2.2 создаём конфиг с "основными" настройками
/etc/mosquitto/conf.d/main.conf
(имя можно любое, я задал main.conf)
со следующим содержимым:
Код: Выделить всё
# =================================================================
# General configuration
# =================================================================
pid_file /var/run/mosquitto.pid
# =================================================================
# Default listener
# =================================================================
# ip-адрес сервера или имя (имя должно разрешаться локальнм ДНС)
bind_address 172.30.0.5
# порт по умолчанию 1883, при необходимости можно задать другой
port 1883
# =================================================================
# Default authentication and topic access control
# =================================================================
# файл с логинами/паролями
password_file /etc/mosquitto/users.list
# файл настройки доступа к топикам
acl_file /etc/mosquitto/mosquitto.acl
# =================================================================
# Persistence
# =================================================================
persistence true
persistence_file mosquitto.db
# по умолчанию "база" создаётся не помню где, я посчитал что будет удобно иметь рядом и конфиги и логи и базу
persistence_location /etc/mosquitto/
# =================================================================
# Logging
# =================================================================
log_dest syslog
log_facility 5
# удобно когда лог радом (хотя бы на время установки\запуска\отладки)
log_dest file /etc/mosquitto/mosquitto.log
#log_dest file /var/log/mosquitto/mosquitto.log
# после отладки каментим debug и information иначе лог пухнет на глазах
log_type debug
log_type error
log_type warning
log_type notice
log_type information
# =================================================================
создаём пустой файл /etc/mosquitto/users.list
и сразу создаём пользователя\пользователей
синтаксис очень простой:
Код: Выделить всё
mosquitto_passwd /etc/mosquitto/users.list TEST
2.4 доступ к топикам
создаём файл /etc/mosquitto/mosquitto.acl
и сразу настраиваем нужный доступ по нужным пользователям (п. 2.3), для начала даём доступ пользователю TEST доступ ко всем топикам
сдержимое:
Код: Выделить всё
user TEST
topic #
Код: Выделить всё
sudo systemctl start mosquitto
ещё командыПоказать
проверить статус сервиса
остановить сервис
перезапустить сервис
Код: Выделить всё
sudo systemctl status mosquitto
Код: Выделить всё
sudo systemctl stop mosquitto
Код: Выделить всё
sudo systemctl restart mosquitto
если всё сделали правильно то в нём появится запись типа
1511807719: mosquitto version 1.4.8 (build date Mon, 26 Jun 2017 09:31:02 +0100) starting
1511809790: New connection from 172.30.0.111 on port 1883.
1511809790: New client connected from 172.30.0.111 as ESP8266 (c1, k60, u'test')
после отладки в main.conf каментим log_type debug и log_type information иначе лог пухнет на глазах
для создаваемых файлов конфигов и др. проверяем\правим chmod
позже о создании моста с "внешним" брокером cloudmqtt.com
Последний раз редактировалось prmres Пт янв 11, 2019 10:05 pm, всего редактировалось 11 раз.
- За это сообщение автора prmres поблагодарили (всего 3):
- immortal (Вт ноя 28, 2017 6:58 pm) • skysilver (Ср ноя 29, 2017 10:12 am) • Strangeman (Ср сен 12, 2018 10:22 pm)
- Рейтинг: 3.49%
Не только лишь все!
- prmres
- Сообщения: 438
- Зарегистрирован: Пт ноя 24, 2017 2:24 am
- Откуда: оттуда
- Благодарил (а): 115 раз
- Поблагодарили: 124 раза
Re: Установка и настройка брокера MQTT в Orange PI PC
Мост к облачному брокеру cloudmqtt.com
Мостом удобно пользовать что б не прокидывать порты внутрь локалки для доступа к локальному брокеру, либо при отсутствии "белого" ip-адреса
1. регистрируемся
2. создаём экземпляр(ы)
3. конфигурим мост в нашем mosquitto
создаём конфиг /etc/mosquitto/conf.d/bridge1.conf
(имя любое, главное что б было понятно для чего этот конфиг)
со следующим содержимым:
address сервер:порт
remote_username и remote_password указываем либо то что выдало автоматом при создании экземляра на cloudmqtt, либо самостоятельно созданные логин\пароль для экземпляра
не забываем выставить chmod на конфиг, что б сервис его смог прочесть
4. рестартим mosquitto
в логе видим что то типа:
5. проверяем что получилось
возвращаемся на страничку cloudmqtt, в пункте websocket ui наблюдаем данные, переданный локальным mosquitto
в форме слева можно отправить сообщение в любой топик
Мостом удобно пользовать что б не прокидывать порты внутрь локалки для доступа к локальному брокеру, либо при отсутствии "белого" ip-адреса
1. регистрируемся
2. создаём экземпляр(ы)
тут картинкиПоказать
после регистрации заходим, жмём Create new instance
если тыкаем по названию экземпляра (2) - попадаем в него в Details видим сервер\порт и логин\пароль (1), можно использовать их
но лучше зайти в Users (2) и создать для этого экземпляра ещё логин(ы)\пароль(и) и там же назначить им права на топики создаём пользователя пользователя\пароль после того как пользователь создан - листаем чуть ниже и в ACLs даём права
выбираем тип доступа "топик" (1), в выпадающем меню выбираем пользователя, стваим галки read\write access, нажимаем Add (2), видим результат (3)
дальше даём какое то название экземпляру, выбираем тариф (по умолчанию бесплатный Cute Cat) и выбираем один из двух возможных локаций сервера
дальше можно зайти в Edit (1) и переименовать экземпляр, либо сменить тариф, либо удалитьесли тыкаем по названию экземпляра (2) - попадаем в него в Details видим сервер\порт и логин\пароль (1), можно использовать их
но лучше зайти в Users (2) и создать для этого экземпляра ещё логин(ы)\пароль(и) и там же назначить им права на топики создаём пользователя пользователя\пароль после того как пользователь создан - листаем чуть ниже и в ACLs даём права
выбираем тип доступа "топик" (1), в выпадающем меню выбираем пользователя, стваим галки read\write access, нажимаем Add (2), видим результат (3)
создаём конфиг /etc/mosquitto/conf.d/bridge1.conf
(имя любое, главное что б было понятно для чего этот конфиг)
со следующим содержимым:
Код: Выделить всё
# =================================================================
# Bridge to cloudmqtt
# =================================================================
connection cloudmqtt
address m14.cloudmqtt.com:10814
try_private false
notifications false
start_type automatic
remote_username username
remote_password password
# направление работы моста, both - двунаправленное (получать и отправлять)
topic # both
#topic # in
#topic # out
# =================================================================
remote_username и remote_password указываем либо то что выдало автоматом при создании экземляра на cloudmqtt, либо самостоятельно созданные логин\пароль для экземпляра
не забываем выставить chmod на конфиг, что б сервис его смог прочесть
4. рестартим mosquitto
Код: Выделить всё
sudo systemctl restart mosquitto
1511821495: Connecting bridge cloudmqtt (m14.cloudmqtt.com:10814)
5. проверяем что получилось
возвращаемся на страничку cloudmqtt, в пункте websocket ui наблюдаем данные, переданный локальным mosquitto
в форме слева можно отправить сообщение в любой топик
результат работы мостаПоказать
Последний раз редактировалось prmres Пн янв 10, 2022 7:02 pm, всего редактировалось 2 раза.
- Рейтинг: 5.81%
Не только лишь все!