Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


Голямото обновяване описано в тази тема, доведе до колизии. След обновата брокер Mosquitto от MQTT-сървъра не изгря и моите ключове за управление на осветление, датчици и прочие окапаха като гнили круши от своето дърво - openHAB. Шок и ужас.

Рестарт и пак рестарт, и нанайси тате мляко, кравата е ялова.
По време на инсталацията ме посрещна този въпрос. Прочетох, осмислих и дадох отговор "Не" според препоръката.

update Mosquitto 2.X в Ubuntu 16.04 LTS

Настройката на Mosquitto 2.X в Ubuntu 16.04 LTS е различна от Mosquitto 1.X в Ubuntu 16.04 LTS. В моя случай тя се надгради и в краен резултат конфигурационните файлове имат следното съдържание.


/lib/systemd/system/mosquitto.service
[Unit]
Description=Mosquitto MQTT Broker
Documentation=man:mosquitto.conf(5) man:mosquitto(8)
After=network.target
Wants=network.target

[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto
ExecStartPre=/bin/chown mosquitto: /var/log/mosquitto
ExecStartPre=/bin/mkdir -m 740 -p /var/run/mosquitto
ExecStartPre=/bin/chown mosquitto: /var/run/mosquitto
/etc/mosquitto/mosquitto.conf
persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log
log_type all

listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
/etc/mosquitto/conf.d/default.conf
allow_anonymous false
password_file /etc/mosquitto/passwd
// задаване парола на $USER за достъп до MQTT
sudo mosquitto_passwd -c /etc/mosquitto/passwd openhab
[sudo] password for openhab:
Password:
Reenter password:

systemctl restart mosquitto
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'mosquitto.service'.
Authenticating as: openhab,,, (openhab)
Password: 
==== AUTHENTICATION COMPLETE ===
MQTT-клиентът може да се свърже анонимно с MQTT Broker - Mosquitto. Брокер Mosquitto може да бъде конфигуриран, да изисква удостоверяване от клиента с помощта на валидно потребителско име и парола зададени в файл passwd, преди да е разрешена връзка. Потребителското име и парола ще бъдат общи за всички клиенти.

Команди

// верция mosquitto
mosquitto -h

mosquitto
1612790669: mosquitto version 2.0.7 starting
1612790669: Using default config.
1612790669: Starting in local only mode. Connections will only be possible from clients running on this machine.
1612790669: Create a configuration file which defines a listener to allow remote access.
Това бе първата подсказка. Съобщения между абоната и брокера ставаха само на locahost. Втората гласеше: "Due to 2.0.x change, anonymous isn't allowed by default" задаван от флага на атрибут allow_anonymous. Третият изискваше да се добави израз listener 1883 в mosquitto.conf, даващ достъп на абонатите в LAN до брокера.

// listen socket on port 1883
netstat -an | grep 1883

// start - stop - restart
sudo /etc/init.d/mosquitto start
sudo /etc/init.d/mosquitto stop

// publisher
mosquitto_pub -h 192.168.1.149 -t "test" -m "Hello World" -u "user" -P "password"

// subscriber
mosquitto_sub -h 192.168.1.149 -t 'test' -u "user" -P "password"

Tasmota - Mosquitto

WEB-страница за настрoйка на MQTT-клиента в Tasmota. Полетата са празни и следва да се запълнят.



MQTT-адреса е IP адреса на брокера. Портът е по подразбиране.

Client и Topic за собствено улеснение задавам с общо име. Името трябва да е уникално в обхвата на брокера.

User и Password са зададените в /etc/mosquitto/passwd. Това е удостоверението на клиента пред брокера.

Full Topic добре дошъл от инсталацията на Tasmota. Не пипаме.

Екран на конзолата на Tasmota



При (ре)стартиране Tasmota прави опит за свързване с зададената Wi-Fi точка. След успех се сверява часовника с вградения NTP-сървър. Веднага след него рапортува за успешно вдигнат WEB-сървър.

Следва опит за свързване с брокера. При успех рапортува: MQT: connected.
MQT: Online (retained) идва от телеметрията и означава, че в интерфейса на openHAB ще се изобразява последното значение от клиента, дори при прекъснатo Wi-Fi съединение.

Следват служебни рапорти: версия, имена на Topic, причина за рестарта, имена на хоста и IP-адрес.

И всичко следващо ще бъдат рапорти на изпълнени команди дошли по WEB, от MQTT или въведени пряко в конзолата.

stat/garden/POWER e топикът, зададен в настройката на Tasmota преди. POWER = ON е съобщението, дошло от интерфейса на openHAB, което абонат Tasmota изпълнява.

Настройката на конкретния клиент в openHAB се задава в файл *.things.
Пример:
//................. ГРАДИНА ..................//
// Капково Sonoff Basic R2
Thing mqtt:topic:irrigation "Капково" (mqtt:broker:644a0a87)
  {
    Channels:Type switch : switch  "Power"  [ stateTopic="stat/garden/POWER", commandTopic="cmnd/garden/POWER" ]
    }





до нови срещи   ^.^
10 февруари 2021 profruit 

0 Response to "MQTT Broker Mosquitto 2.X в Ubuntu 16.04 LTS"

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога