ha-mqtt
Install MQTT broker mosquitto as a Docker container
# ... others
mosquitto:
image: eclipse-mosquitto
container_name: mosquitto
volumes:
- <path-to-the-local-store>/opt/mosquitto:/mosquitto
- <path-to-the-local-store>/opt/mosquitto/data:/mosquitto/data
- <path-to-the-local-store>/opt/mosquitto/log:/mosquitto/log
ports:
- 1883:1883
- 9001:9001
Create mosquitto.conf under <path-to-the-local-store>/opt/mosquitto/config:
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
## Authentication ##
# allow_anonymous true
Then run sudo docker compose up -d to start the container.
Access the container shell:
sudo docker exec -it mosquitto /bin/sh
mosquitto container does not support bash shell, use /bin/sh instead.
Reference: stakeoverflow
mosquitto_passwd -c /mosquitto/config/password.txt mosquitto@hass
Output
mosquitto_passwd -c /mosquitto/config/password.txt mosquitto@hass
Password:
Reenter password:
Warning: File /mosquitto/config/password.txt group is not root. Future versions will refuse to load this file./ #
Than we will see a file password.txt created under /mosquitto/config folder.
Now add the following line to mosquitto.conf:
allow_anonymous false
password_file /mosquitto/config/password.txt
Restart the container sudo docker restart mosquitto.
Now the MQTT broker is ready to be used in the server ip under port 1883.
The next step is to configure the Home Assistant to use this MQTT broker.
Add MQTT broker to Home Assistant integration
Go to Settings -> Devices & Integrations -> + Add Integration
Search for MQTT and click on it.
Fill the form with the following information:
- Broker:
server-ip - Port:
1883 - Username:
mosquitto@hass - Password:
<password-set-on-prev-step>
Now Home Assistant is able to use the MQTT broker.