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.in
Como 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
$ wget wttr.in/Almeria.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 nombres 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:
- Flask
- geoip2
- geopy
- requests
- gevent
Si desea obtener informes meteorológicos como archivos PNG, también debe instalar:
- PIL
- Pyte (> = 0,6)
- fuentes necesarias
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