Revista 100% Verde

Como ver la previsión del tiempo desde Raspberry Pi ( parte 2)

Por Soloelectronicos @soloelectronico

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:

Como  ver la previsión del tiempo  desde Raspberry Pi ( parte 2)

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
Como  ver la previsión del tiempo  desde Raspberry Pi ( parte 2)

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.

Como  ver la previsión del tiempo  desde Raspberry Pi ( parte 2)

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:

  1. Instalar dependencias externas
  2. Instalar dependencias de Python utilizadas por el servicio
  3. Obtener una clave de API de WorldWeatherOnline
  4. Configurar wego
  5. Configurar wttr.in
  6. Configurar el servicio de HTTP-frontend

Instalar dependencias externas

wttr.in tiene las siguientes dependencias externas:

  • golang, dependencia de wego
  • wego, cliente tiempo para terminal

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.inwego

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


Volver a la Portada de Logo Paperblog