Un Observer (Observador) es un nodo MeshCore (repetidor, room server o companion) que escucha el tráfico de la malla cercana e informa a un broker MQTT por Internet.
Los observers pueden configurarse para compartir solamente los avisos o anuncios (advertisements) sin mostrar el reso del tráfico de la malla.
Se puede dejar de compartir datos cuando el propietario lo desee.
![]() |
| Fuente: https://www.lorameshdevices.com/blog/meshcore/how-to-build-a-meshcore-observer-with-heltec-v3.html |
El observer tiene dos funciones o partes
- Una parte que es la de recepción de los mensajes de la malla
- Una segunda parte que realiza el envío al servidor que los proceses (MQTT BROKER)
Así para configurar un OBSERVER tenemos dos posibles soluciones
- Conectar un nodo meshcore a un procesador 24/7 (p.e. una raspberry con el software adecuado y conexión a Internet) (ESTA ES LA SOLUCIÓN QUE SE VA A ANALIZAR EN ESTA ENTRADA).
- Crear un unico dispositivo especifico OBSERVER sobre un hardware capaz de soportar ambas funciones (ESTA SOLUCIÓN NO SE VA A ANALIZAR EN ESTA ENTRADA)
¿Qué se necesita?
Un nodo MeshcoreHemos optado por una Raspberry Pi 3B en la que ya se ejecutan otros programas
Preparando
- sudo apt update
- sudo apt install -y python3 python3-venv python3-dev build-essential
- python3 --version # ha de ser 3.11+
- Python 3.13.5
- Conectar el nodo meshcore a un puerto USB de la rasberry
- Ejecutar ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null
- Si devuelve algo como /dev/ttyACM0 todo OK
- Si no devuelve nada es que no detecta la placa, la causa mas comun es que el cable USB sea unicamente de alimentación y no de datos
- curl -fsSL https://raw.githubusercontent.com/Cisien/meshcoretomqtt/main/install.sh | sudo bash
- Installation directory: /opt/mctomqtt (Por defecto)
- Configuration directory: /etc/mctomqtt (Por defecto)
- Service account username [mctomqtt]: mctomqtt (Por defecto)
- ℹ Choose installation method:
- 1) System service (systemd/launchd) - installs Python dependencies on host
- 2) Docker container - all dependencies in container (requires docker to be installed) => Se elige esta al disponer ya de docker
- 3) Manual run only (install files, no auto-start)
- Solicita el path del USB /dev/ttyACM0
- Enter your IATA code (3 letters por defecto es BCN - Barceloa, en nuestro cso VLC - Valencia): VLC
- ✓ IATA code set to: VLC
- Server hostname/IP: broker.livemap-meshcorecat.com
- Port [1883]: 8883
- Use WebSockets transport? [y/N]: y
- Use TLS/SSL encryption? [y/N]: y
- Verify TLS certificates? [Y/n]: n
- ℹ Authentication method:
- 1) Username/Password
- 2) MeshCore Auth Token
- 3) None (anonymous)
- Choose authentication method [1-3] [1]: 1
- Username: cat-pub
- Password: CatMesh2026pub
- ✓ Broker 1 configured
Gestion del Docker
- Start: docker start mctomqtt
- Stop: docker stop mctomqtt
- Status:
- docker ps -a | grep mctomqtt
- sudo docker ps -a | grep mctomqtt
- Logs: docker logs -f mctomqtt
- 2026-06-30 18:00:09,319 - INFO - Loaded base config from /etc/mctomqtt/config.toml
- 2026-06-30 18:00:09,324 - INFO - Loading config override: /etc/mctomqtt/config.d/99-user.toml
- 2026-06-30 18:00:09,330 - INFO - Configuration loaded from TOML
- 2026-06-30 18:00:09,333 - INFO - IATA: BCN
- 2026-06-30 18:00:09,334 - INFO - Serial ports: ['/dev/ttyACM0']
- 2026-06-30 18:00:09,334 - INFO - Brokers configured: 1
- 2026-06-30 18:00:09,339 - INFO - Connected to /dev/ttyACM0
- 2026-06-30 18:00:09,346 - WARNING - timedatectl not found — skipping sync check and continuing.
- 2026-06-30 18:00:10,352 - INFO - Repeater name: VC.V EA5JTT R8
- 2026-06-30 18:00:11,356 - INFO - Repeater pub key: ...
- 2026-06-30 18:00:12,365 - INFO - Repeater priv key: D018... (truncated for security)
- 2026-06-30 18:00:13,369 - INFO - Firmware version: v1.16.0-07a3ca9 (Build: 06-Jun-2026)
- 2026-06-30 18:00:13,871 - INFO - Board type: LILYGO T-LoRa V2.1-1.6
- 2026-06-30 18:00:15,378 - INFO - Device stats: {'battery_mv': 4194, 'uptime_secs': 1947, 'debug_flags': 0, 'queue_len': 0, 'noise_floor': -120, 'tx_air_secs': 10, 'rx_air_secs': 15, 'recv_errors': 35}
- 2026-06-30 18:00:15,379 - INFO - Client version: meshcoretomqtt/1.3.0.0-preview
- 2026-06-30 18:00:15,380 - INFO - Remote serial: DISABLED
- Todo OK
- Restart: docker restart mctomqtt
LETSMESH
![]() |
| MM de MeshMapper y LM de LetsMesh |
- sudo rm -rf /opt/meshcoretomqtt
- sudo rm -rf ~/meshcoretomqtt
Falta de permisos
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied
- sudo usermod -aG docker $USER
- newgrp docker
Errores de configuración
- sudo nano /etc/mctomqtt/config.d/99-user.toml
name = "catalunya"
enabled = true
server = "broker.livemap-meshcorecat.com"
port = 8883
keepalive = 60
qos = 0
retain = true
[broker.tls]
enabled = true
verify = true
[broker.auth]
method = "password"
username = "cat-pub"
password = "CatMesh2026pub"
reiniciar hilos
- docker restart mctomqtt && docker logs -f mctomqtt
reinicio total
- sudo systemctl restart docker
- docker restart mctomqtt && docker logs -f mctomqtt
- sudo docker restart docker-node-sdr-1
- sudo docker restart ultrafeeder
Referencias
Advertencia importante
Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.
© 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.


















