Wiki major update

updated with recent documentation
This commit is contained in:
kelinfoxy
2026-01-21 19:18:39 -05:00
parent 30e0481685
commit ef55974b50
98 changed files with 32244 additions and 10 deletions

View File

@@ -0,0 +1,138 @@
# Mosquitto - MQTT Broker
## Table of Contents
- [Overview](#overview)
- [What is Mosquitto?](#what-is-mosquitto)
- [Why Use Mosquitto?](#why-use-mosquitto)
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
- [Official Resources](#official-resources)
- [Docker Configuration](#docker-configuration)
## Overview
**Category:** Message Broker
**Docker Image:** [eclipse-mosquitto](https://hub.docker.com/_/eclipse-mosquitto)
**Default Stack:** `homeassistant.yml`
**Ports:** 1883 (MQTT), 9001 (WebSocket)
## What is Mosquitto?
Mosquitto is an MQTT broker - a message bus for IoT devices. MQTT (Message Queuing Telemetry Transport) is a lightweight publish/subscribe protocol perfect for smart home devices. Mosquitto acts as the central hub where devices publish messages (like sensor readings) and other devices/services subscribe to receive them.
### Key Features
- **Lightweight:** Minimal resource usage
- **Fast:** Low latency messaging
- **Reliable:** Quality of Service levels
- **Secure:** Authentication and TLS support
- **Standard:** Industry-standard MQTT 3.1.1 and 5.0
- **WebSocket Support:** Browser connections
## Why Use Mosquitto?
1. **IoT Standard:** Industry-standard protocol
2. **Lightweight:** Efficient for battery devices
3. **Fast:** Real-time messaging
4. **Central Hub:** Connect all IoT devices
5. **Home Assistant Integration:** Native support
6. **Zigbee2MQTT:** Required for Zigbee devices
7. **Tasmota:** Tasmota devices use MQTT
## Configuration in AI-Homelab
```
/opt/stacks/homeassistant/mosquitto/
config/
mosquitto.conf # Main config
password.txt # Hashed passwords
data/ # Persistence
log/ # Logs
```
### mosquitto.conf
```conf
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
allow_anonymous false
password_file /mosquitto/config/password.txt
listener 9001
protocol websockets
```
## Official Resources
- **Website:** https://mosquitto.org
- **Documentation:** https://mosquitto.org/documentation
## Docker Configuration
```yaml
mosquitto:
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
networks:
- traefik-network
ports:
- "1883:1883"
- "9001:9001"
volumes:
- /opt/stacks/homeassistant/mosquitto/config:/mosquitto/config
- /opt/stacks/homeassistant/mosquitto/data:/mosquitto/data
- /opt/stacks/homeassistant/mosquitto/log:/mosquitto/log
```
## Setup
**Create User:**
```bash
docker exec -it mosquitto mosquitto_passwd -c /mosquitto/config/password.txt homeassistant
# Add more users
docker exec -it mosquitto mosquitto_passwd /mosquitto/config/password.txt zigbee2mqtt
# Restart
docker restart mosquitto
```
**Test Connection:**
```bash
# Subscribe (terminal 1)
docker exec -it mosquitto mosquitto_sub -h localhost -t test/topic -u homeassistant -P yourpassword
# Publish (terminal 2)
docker exec -it mosquitto mosquitto_pub -h localhost -t test/topic -m "Hello MQTT" -u homeassistant -P yourpassword
```
## Summary
Mosquitto is the MQTT message broker providing:
- Central IoT message hub
- Publish/subscribe protocol
- Lightweight and fast
- Required for Zigbee2MQTT
- Home Assistant integration
- Secure authentication
- Free and open-source
**Perfect for:**
- Smart home setups
- Zigbee devices (via Zigbee2MQTT)
- Tasmota devices
- ESP devices
- IoT messaging
- Real-time communication
**Key Points:**
- Create users with mosquitto_passwd
- Used by Zigbee2MQTT
- Home Assistant connects to it
- Port 1883 for MQTT
- Port 9001 for WebSockets
- Authentication required
Mosquitto is the messaging backbone of your smart home!