En un post anterior de como ver la previsión del tiempo desde una Raspberry Pir veiamos como podemos ver la previson del tiempo en nuestra Rasperry Pi , usando mediante el comando curl y la utilidad de Wttr.in , un servicio de previsión del tiempo orientada a la consola que admite varios métodos de representación de información tal como secuencias ANSI de terminal, estando orientado tanto para clientes de consola HTTP (Rizo, httpie o wget), como para navegadores web en HTTP , o incluso para visualizadores gráficos en formato PNG .
Previamente antes de lanzar el comando ,para que se visualice correctamente la salida de texto de este servicio , abriremos la consola de terminal ajustaremos la ventana del valor por defecto (80 x25 ) a 130 x24 , por lo que nos iremos a Editar ->Preferencias ->Mostrar y seleccionaremos como ventana por defecto los valores al menos de 130 x 24 y cerraremos la ventana del Terminal
Nuevamente abriremos otra consola de shell en la Raspberry Pi y escribiremos :
curl wttr.inComo resultado desde la misma consola veremos un informe en tiempo real para su ubicación sin haber tenido que especificar nada más , ya que es sensible tanto para la fecha actual como para la localización:
Sin duda este servicio es muy interesante , pero ademas permite una personalizacion muy alta como vamos a ver a continuación
Unidades de tiempo
Por defecto las unidades USCS se utilizan para las consultas de los Estados Unidos y el sistema métrico para el resto del mundo. Puede reemplazar este comportamiento agregando o a una URL como esta:?u
?m
$ curl wttr.in/Almeria?m
Formatos de salida
wttr.in actualmente soporta tres formatos de salida:
- ANSI para el terminal;
- ANSI para el modo de terminal, una línea;
- HTML para el navegador;
- PNG para los espectadores de la gráficos.
Los formatos ANSI y HTML son seleccionados basándose en la cadena User-Agent. El formato PNG se puede forzar mediante la adición al final de la consulta:.png
Puede utilizar todas las opciones con el formato PNG como una URL, pero hay que separarlos con en vez de y:_
?
&
$ wget wttr.in/Paris_0tqp_lang=fr.png
Opciones para el formato PNG:
-
t
(transparencia);transparency=150
- transparencia = 0..255 para un nivel de transparencia personalizada.
La transparencia es una característica útil cuando PNGs de tiempo se utilizan para agregar datos a los cuadros:
$ convert source.jpg <( curl wttr.in/Oymyakon_tqp0.png ) -geometry +50+50 -composite target.jpg
En este ejemplo:
-
source.jpg
-archivo de código fuente; -
target.jpg
-archivo de destino; -
Oymyakon
-nombre de la localización; -
tqp0
-Opciones (recomendados).
Una línea de salida
Para el formato de salida de una línea, especifique los parámetros adicionales: format
$ curl wttr.in/Almeria?format=3 Almeria: 🌦 +11⁰C
Formatos preconfigurados disponibles: 1, 2, 3, 4 y el formato personalizado usando la notación porcentual (véase abajo).
Puede especificar varias ubicaciones separadas (para repetir consultas)::
$ curl wttr.in/Almeria:Granada:Jaen?format=3 Almeria: 🌦 +11⁰C
O para procesar todas las consultas de este a la vez:
$ curl 'wttr.in/{Almeria,Granada,Jaen}?format=3' Almeria: 🌦 +14⁰C Granada: 🌦 +14⁰C Jaen: 🌦 +14⁰C
Para especificar su propio formato personalizado, utilice el especial-notación:%
c Weather condition, t Temperature, w Wind, l Location, m Moonphase 🌑🌒🌓🌔🌕🌖🌗🌘, M Moonday,
Por lo tanto, estas dos llamadas son las mismas:
$ curl wttr.in/Almeria?format=3 Almeria: ⛅️ +14⁰C $ curl wttr.in/Almeria?format="%l:+%c+%t" Almeria: ⛅️ +14⁰C
Tenga en cuenta, que cuando se utiliza en, tiene que escapar con %, es decir, escribir allí en vez de. tmux.conf
%
%
%%
%
En programas, que están consultando el servicio automáticamente (por ejemplo tmux), es mejor utilizar un intervalo de actualización razonables. En tmux, puede configurarlo con. status-interval
Si varias ubicaciones separadas, se especifican en la consulta, especifique el período de actualización como un parámetro de consulta adicional::
period=
set -g status-interval 60 WEATHER='#(curl -s wttr.in/London:Stockholm:Moscow\?format\="%%l:+%%c%%20%%t%%60%%w&period=60")' set -g status-right "$WEATHER ..."
Fases de la luna
wttr.in puede utilizarse también para comprobar la fase de la luna. Este ejemplo muestra cómo ver la fase lunar actual:
$ curl wttr.in/Moon
Obtener la fase lunar para una fecha determinada mediante la adición de:@YYYY-MM-DD
$ curl wttr.in/[email protected]
La información de la fase de luna utiliza pyphoon como su back-end.
Internacionalización y localización
wttr.in es compatible con n ombres de ubicaciones multilingüe que pueden especificarse en cualquier idioma del mundo ( puede ser sorprendente, pero muchos lugares en el mundo no tienen un nombre en inglés).
La cadena de consulta debe especificarse en Unicode (hexadecimal codificado o no). Espacios en la cadena de consulta deben ser reemplazados por:+
$ curl wttr.in/станция+Восток Weather report: станция Восток Overcast .--. -65 - -47 °C .-( ). ↑ 23 km/h (___.__)__) 15 km 0.0 mm
El lenguaje utilizado para la salida (excepto el nombre de la ubicación) no depende del idioma de entrada y es inglés (por defecto) o el idioma preferido del navegador (si la consulta fue emitida desde un navegador) que se especifica en la consulta cabeceras (). Accept-Language
El lenguaje se puede establecer explícitamente al usar a clientes de consola mediante las opciones de línea de comandos como este:
curl -H "Accept-Language: fr" wttr.in http GET wttr.in Accept-Language:ru
El idioma puede ser forzado mediante la opción: lang
$ curl wttr.in/Almeria?lang=es
La tercera opción es elegir el idioma utilizando el nombre DNS utilizado en la consulta:
$ curl de.wttr.in/Almeria
wttr.in está actualmente traducido a 54 idiomas, y el número de idiomas está en constante crecimiento.
Ver /:translation para aprender más sobre el proceso de traducción, para ver la lista de idiomas soportados y colaboradores, o saber cómo puede ayudar a traducir wttr.in en tu idioma.
Instalación en local
Tambien puede instalar este servicio de previsión de tiempo en su en nuestra Rasperry Pi ,
Para instalar la aplicación estos son los pasos a seguir:
- Instalar dependencias externas
- Instalar dependencias de Python utilizadas por el servicio
- Obtener una clave de API de WorldWeatherOnline
- Configurar wego
- Configurar wttr.in
- Configurar el servicio de HTTP-frontend
Instalar dependencias externas
wttr.in tiene las siguientes dependencias externas:
Después de instalar golang, instalar: wego
$ go get -u github.com/schachmat/wego $ go install github.com/schachmat/wego
Instalar dependencias de Python
Requisitos de Python:
Si desea obtener informes meteorológicos como archivos PNG, también debe instalar:
Puede instalar la mayoría de ellos utilizando. pip
Si se utiliza: virtualenv
$ virtualenv ve $ ve/bin/pip install -r requirements.txt $ ve/bin/pip bin/srv.py
Además, es necesario instalar la base de datos de geoip2. Puede utilizar una base de datos libre GeoLite2 que puede ser descargado ( http://dev.maxmind.com/geoip/geoip2/geolite2/).
Obtener una clave de WorldWeatherOnline
Para obtener una clave de API de WorldWeatherOnline, se debe registrar aquí:
https://developer.worldweatheronline.com/auth/register
Configurar wego
Después de tener una clave de WorldWeatherOnline, usted puede configurar: wego
$ cat ~/.wegorc { "APIKey": "00XXXXXXXXXXXXXXXXXXXXXXXXXXX", "City": "London", "Numdays": 3, "Imperial": false, "Lang": "en" }
El parámetro se omite. City
~/.wegorc
Configurar wttr.in
Configurar las siguientes variables de entorno que definen la ruta de acceso a la instalación local, a la base de datos de GeoLite y a la instalación. Por ejemplo: wttr.in
wego
export WTTR_MYDIR="/home/igor/wttr.in" export WTTR_GEOLITE="/home/igor/wttr.in/GeoLite2-City.mmdb" export WTTR_WEGO="/home/igor/go/bin/wego" export WTTR_LISTEN_HOST="0.0.0.0" export WTTR_LISTEN_PORT="8002"
Configurar el servicio de HTTP-frontend
Se recomienda que también configurar el servidor web que se utilizará para acceder al servicio:
server { listen [::]:80; server_name wttr.in *.wttr.in; access_log /var/log/nginx/wttr.in-access.log main; error_log /var/log/nginx/wttr.in-error.log; location / { proxy_pass http://127.0.0.1:8002; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; expires off; } }
Mas información en https://github.com/chubin/wttr.in