Software > WeeWX
Conectar web weewx Belchertown skin a través de MQTT
ELX_CARRUS:
Hola a todos, estoy intentando configurar el MQTT en mi pagina, pero estoy un poco atascado. Llegado al punto 7 que es generar usuario y passw no lo entiendo y no consigo pasar de ahí.
No tengo todos los conocimientos de linux y voy probando.
Tengo instalado weewx con el skin Belchertown en https://meteoelx.com necesito por favor un empujón para salir del atasco.
muchas gracias.
Tengo la instalacion como usuario no-root en raspberrypi
Saludos.
Bruno
service mosquitto restart
Now to generate some username and password details for /etc/mosquitto/passwd and access limits in /etc/mosquitto/acl!
mosquitto_passwd -c /etc/mosquitto/passwd -c /etc/mosquitto/passwd UserNameHere – You’re best to keep i
jmviper:
Hola Bruno
Bufff yo lo conseguí y no sé ni cómo.... mañana le echo un vistazo si tengo tiempo a cómo lo tengo configurado y a ver si logro ayudarte.
ELX_CARRUS:
gracias jmviper, necesito esa información un poco mas detallada que en los tutoriales para comprenderlo todo bien.
saludos.
Bruno
jantoni:
Te doy mi diagnóstico
MQTT ES SOLO PARA MASOQUISTAS
Dicho queda *+* *+* *+* *+* *+*
jmviper:
A ver, tras instalar el skin de Belchertown en weewx como extensión y la extensión paho-mqtt puse en el weewx.conf esta sección en la sección [StdRESTful]
[StdRESTful]
[[MQTT]]
server_url = mqtt://username:[email protected]:1883
topic = weather
binding = archive, loop
aggregation = aggregate
log_success = True
log_failure = True
Lo más importante es la línea server_url donde se pone el usuario y contraseña y el servidor y puerto en el que mosquitto va a estar escuchando. Por ejemplo yo le puse:
server_url = mqtt://minombre:micontraseña@localhost:1883
de servidor le puse localhost ya que mosquitto va a estar escuchando en la raspi en su puerto 1883 lo que publique weewx. Ese nombre y contraseña son los que generaremos con mosquitto:
sudo mosquitto_passwd -c /etc/mosquitto/passwd minombre
Ahí te preguntará de poner la contraseña dos veces para el usuario que le pongas y que será la que le pongamos a server_url
Una vez generada la contraseña hay que generar un archivo acl de acceso a mosquitto. En su interior:
# Allow anonymous access to the sys
topic read $SYS/#
# Allow anonymous to read weather
topic read weather/#
# weewx readwrite to the loop
user miusuario
topic weather/#
Sólo hay que cambiar la línea de miusuario por el usuario que hayamos creado.
Después en /etc/mosquitto/conf.d creamos un archivo llamado weewx.conf con estas líneas:
persistence false
# mqtt
listener 1883
protocol mqtt
# websockets
listener 9001
protocol websockets
allow_anonymous true
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/acl
Con esas líneas le estamos diciendo a mosquitto que escuche en el puerto 1883 lo que le envía weewx y que a su vez lo envíe por protocolo de websockets vía web al skin de Belchertown por el puerto 9001.
Ese puerto y servidor es lo que le pondremos al skin.conf de Belchertown:
# MQTT Websockets defaults
mqtt_websockets_enabled = 1
mqtt_websockets_host = 192.168.1.100
mqtt_websockets_port = 9001
mqtt_websockets_ssl = 0
mqtt_websockets_topic = "weather/loop"
disconnect_live_website_visitor = 300000
Deberemos cambiar el mqtt_websockets_host por la IP local de la raspi que deberá ser, como todo servidor, fija. En mi caso es la 192.168.1.100 así que habrá que cambiarla por la correspondiente.
Decir que todo esto es en local desde un PC conectado a la misma red que la raspi porque desde un navegador de la misma raspi sería poner en esa línea localhost o 127.0.0.1
Si va a ser para nuestro servidor web en local habrá que poner ahí el dominio de nuestra web y abrir ese puerto de websockets a la raspi en el router.
Si la web es externa habría que enviar a un servidor externo o tener mosquitto instalado en él.... ahí ya me pierdo un poco....
Lo más importante al principio es ver si tanto la extensión de weewx está enviando los datos a mosquitto como si este los está recibiendo.
Para ello si tenemos log separado de weewx vemos como lo sube con sudo tail -f /var/log/weewx.log y si no tenemos log con sudo tail -f /var/log/syslog
Para ver si mosquitto lo está recibiendo sudo tail -f /var/log/mosquitto/mosquitto.log
Esto es para ver si está en funcionamiento de puesta en marcha al principio, una vez que vaya bien quitamos logs para que no esté machacando cada pocos segundos la tarjeta microSD. En weewx.conf ponemos en la sección de MQTT:
log_success = False
log_failure = False
y reiniciamos weewx.
En /etc/mosquitto/mosquitto.conf cambiamos log_dest file /var/log/mosquitto/mosquitto.log por log_dest none y reiniciamos mosquitto.
Buuuuufffff después del tocho que he puesto....tendré que darle la razón a jantoni…. esto es para masoquistas *+* *+*
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa