Tasmota és un firmware alternatiu per a dispositius basats en ESP8266 i ESP32 que permet controlar i monitoritzar equips domòtics sense dependre de plataformes privatives. Ofereix una interfície web integrada, gran varietat de sensors i mòduls compatibles, resistència a fallades, àmplies opcions d’automatització i suport per a integracions locals com MQTT, HTTP o Domoticz. La seva filosofia se centra en la privadesa, la flexibilitat i la gestió totalment local, convertint-lo en una opció robusta per a projectes de domòtica i monitorització.
Aquesta guia detalla com instal·lar i configurar un sistema de monitorització domèstica utilitzant MQTT, InfluxDB, Telegraf i Grafana, juntament amb dispositius basats en Tasmota. La idea és rebre dades dels sensors a través de MQTT, emmagatzemar-les a InfluxDB, processar-les amb Telegraf i visualitzar-les amb Grafana. Cada pas inclou els comandaments necessaris i la seva explicació.
Instal·lació i configuració de MQTT
Actualitzem paquets i instal·lem Mosquitto:
# apt update && apt install mosquitto -y
Després comprova si el servei està actiu:
# systemctl status mosquitto
Edita la configuració de Mosquitto:
# vi /etc/mosquitto/conf.d/default.conf
Amb el següent contingut:
allow_anonymous false password_file /etc/mosquitto/passwd listener 1883
Explicació:
allow_anonymous false → desactiva connexions sense usuari.
password_file → ruta de l’arxiu d’usuaris.
listener 1883 → port on Mosquitto escoltarà connexions.
Després crea l’usuari DVES_USER per a MQTT amb contrasenya:
# mosquitto_passwd -c /etc/mosquitto/passwd DVES_USER
Canvia la propietat de l’arxiu a l’usuari correcte:
# chown mosquitto:mosquitto /etc/mosquitto/passwd
I reinicia el servei per aplicar els canvis:
# systemctl restart mosquitto && systemctl status mosquitto --no-pager
Configuració a Tasmota:
Al WebUI de Tasmota, ves a Configuració → Configurar "altres" i activa MQTT habilitat:

- Configura el broker MQTT amb l’adreça del servidor i la contrasenya creada:

Verifica la connexió des del servidor (modifica la contrasenya d’exemple):
# mosquitto_sub -h localhost -t '#' -u 'DVES_USER' -P 'CONTRASENYA_USUARI_DVES_USER' -v
Això permet veure tots els missatges rebuts per part de Tasmota al MQTT.
Recorda crear una regla per obrir l’entrada al port TCP 1883 des del perfil de tallafocs del servidor. Tens més informació a: Com crear una regla de tallafocs.
Instal·lació i configuració d’InfluxDB
Afegeix el repositori oficial d’InfluxDB
# curl -s https://repos.influxdata.com/influxdata-archive.key | gpg --dearmor | tee /usr/share/keyrings/influxdata-archive-keyring.gpg > /dev/null
La seva clau GPG:
# echo "deb [signed-by=/usr/share/keyrings/influxdata-archive-keyring.gpg] https://repos.influxdata.com/debian bookworm stable" | tee /etc/apt/sources.list.d/influxdata.list
Instal·la InfluxDB:
# apt install influxdb2
Habilita i inicia el servei, i verifica que funcioni:
# systemctl enable influxdb && systemctl start influxdb && systemctl status influxdb --no-pager
Un cop en funcionament el servei, inicia sessió a http://IP_Publica_servidor:8086 per configurar-lo i obtenir el token per a la connexió. Després podràs configurar el client InfluxDB al servidor:
# influx config create --config-name default --host-url http://localhost:8086 --token INTRODUEIX_EL_TE_TOKEN --org cozylife --active
Els comandaments següents permeten llistar usuaris, buckets i organitzacions:
# influx user list && influx bucket list && influx org list && influx bucket find --name cozylife
Instal·lació i configuració de Telegraf
Instal·la Telegraf, reinicia Mosquitto:
# apt install telegraf -y && systemctl restart mosquitto --no-pager
Edita l’arxiu de configuració de Telegraf:
# vi /etc/telegraf/telegraf.conf
Exemple de configuració per a telegraf.conf (recorda reemplaçar el token, el sensor corresponent i la contrasenya de l’usuari del MQTT):
[[outputs.influxdb_v2]] urls = ["http://localhost:8086"] token = "TOKETINFLUXDB" organization = "cozylife" bucket = "cozylife" [[inputs.mqtt_consumer]] servers = ["tcp://localhost:1883"] topics = [ "tele/cozylife_XXXXXXXXXX/SENSOR", "tasmota/discovery/+/sensors" ] qos = 1 data_format = "json" username = "DVES_USER" password = "CONTRASENYA_USUARI_DVES_USER" [[outputs.file]] files = ["stdout"] data_format = "json"
Explicació:
- outputs.influxdb_v2: defineix on enviar les dades.
- inputs.mqtt_consumer: es subscriu als topics MQTT.
- outputs.file: mostra les dades a la terminal per a depuració.
# systemctl restart telegraf.service && systemctl status telegraf.service --no-pager
Reinicia Telegraf i comprova que funciona correctament.
Instal·lació i configuració de Grafana
Primer afegeix el repositori oficial estable de Grafana:
# echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
I també la clau del repositori:
# mkdir -p /etc/apt/keyrings/ && wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Instal·la el paquet:
# apt update && apt-get install grafana -y
I habilita i inicia el servei, i comprova el seu estat.
# systemctl enable grafana-server && systemctl start grafana-server && systemctl status grafana-server --no-pager
Configuració a Grafana:
- Accedeix al panell de Grafana mitjançant un navegador (http://IP_Publica_servidor:3000/).
- Configura InfluxDB com a Data Source utilitzant la URL, bucket i token.
- Importa dashboards o JSON d’exemple per visualitzar les dades dels dispositius.
Per exemple, pots utilitzar la següent consulta per al gràfic del voltatge:
from(bucket: "cozylife") | range(start: v.timeRangeStart, stop: v.timeRangeStop) | filter(fn: (r) = r._measurement == "mqtt_consumer") | filter(fn: (r) = r._field == "ENERGY_Voltage") | aggregateWindow(every: 30s, fn: median, createEmpty: false)
Configuració de NGINX per a Grafana (opcional):
En cas que vulguis configurar Grafana per https i amb un registre DNS, et recomanem fer un proxy invers amb NGINX.
Primer, instal·la NGINX i Certbot per al certificat SSL:
# apt install nginx python3-certbot-nginx -y
Després edita l’arxiu de configuració per defecte (pots crear-ne un de nou si ho desitges):
# vi /etc/nginx/sites-enabled/default
I afegeix el següent contingut (recorda modificar el server_name pel teu registre DNS):
server { server_name grafana.exemple.com; location / { proxy_pass http://localhost:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } listen 80; }Guarda els canvis i reinicia NGINX:
# systemctl restart nginx.service
Finalment, sol·licita amb certbot el certificat SSL:
# certbot --nginx --redirect -d grafana.exemple.com
Certbot configurarà automàticament NGINX i farà una redirecció directa de http a https.
Esperem haver-te ajudat amb aquest tutorial 🙂. Recorda, si tens consultes sobre aquesta o qualsevol altra qüestió relacionada amb els teus servidors a Clouding, no dubtis a escriure a soporte@clouding.io ¡Estem al teu costat per a tot el que necessitis!