Come integrare pywws con vari servizi meteorologici¶
Questa guida dà brevi istruzioni su come utilizzare pywws con alcuni altri servizi meteorologici e software. Non è completo, e alcuni servizi (come Twitter) sono trattati più dettagliatamente altrove.
YoWindow¶
YoWindow è un display widget meteo in grado di visualizzare i dati da internet o dalla tua stazione meteo. Per visualizzare i dati della tua stazione pywws devi scrivere in un file locale, in genere ogni 48 secondi quando vengono ricevuti i dati nuovi. Questo è facile da fare:
Arrestare tutti i software pywws
Copiare il modello di esempio “ yowindow.xml “ nella directory modelli di testo.
Se non hai già fatto, modifica
weather.ini
e imposta la vocelocal_files
nella sezione[paths]
una directory adatta per il vostro file di yowindow.Aggiungere il modello yowindow per le attività di
[live]
inweather.ini
. Impostare il flag'L'
così il risultato è copiato in una directory locale invece di essere caricata su un sito ftp:[live] text = [('yowindow.xml', 'L')]
Riavviare pywws in registrazione “live”.
È possibile controllare se il file è aggiornato ogni 48 secondi usando more
o cat
per visualizzare sullo schermo il file.
Infine configurare yowindow per utilizzare questo file. Vedere http://yowindow.com/pws_setup.php per le istruzioni su come effettuare questa operazione.
Twitter¶
Vedere Come configurare pywws per pubblicare messaggi su Twitter per le istruzioni complete.
Other «services»¶
The remaining weather service uploads are handled by the pywws.toservice
module.
See the module’s documentation for general configuration options.
The following subsections give further information about some of the available services.
Citizen Weather Observer Program¶
Nuovo nella versione 14.02.dev1156.
Web site: http://www.wxqa.com/
Create account: http://www.wxqa.com/SIGN-UP.html
Esempi della sezione
weather.ini
:[cwop] designator = EW9999 latitude = 5130.06N longitude = 00008.52E template = default [logged] services = ['cwop', 'underground'] [live] services = ['cwop', 'underground_rf']
or, for radio hams:
[cwop] designator = G4XXX passcode = xxxxxx latitude = 5130.06N longitude = 00008.52E template = default [logged] services = ['cwop_ham', 'underground'] [live] services = ['cwop_ham', 'underground_rf']
Note that the latitude and longitude must be in «LORAN» format and leading zeros are required. See question 3 in the CWOP FAQ for more information.
Licensed radio hams use their callsign as the designator and need a passcode.
They should use the service name cwop_ham
instead of cwop
when running pywws.toservice
directly and in the weather.ini
services
entries.
(The same [cwop]
config section is used for both.)
CWOP uploads are rate-limited by pywws, so you can safely add it to both the [live]
and [logged]
sections in weather.ini
.
The CWOP/APRS uploader is based on code by Marco Trevisan <mail@3v1n0.net>.
MQTT¶
Nuovo nella versione 14.12.0.dev1260.
MQTT is a «message broker» system, typically running on localhost
or another computer in your home network.
Use of MQTT with pywws requires an additional library.
See Dependencies - MQTT for details.
MQTT: http://mqtt.org/
Mosquitto (a lightweight broker): http://mosquitto.org/
Esempi della sezione
weather.ini
:[mqtt] topic = /weather/pywws hostname = localhost port = 1883 client_id = pywws retain = True auth = False user = unknown password = unknown template = default multi_topic = False [logged] services = ['mqtt', 'underground']
pywws will publish a JSON string of the data specified in the mqtt_template_1080.txt
file.
This data will be published to the broker running on hostname, with the port number specified.
(An IP address can be used instead of a host name.)
client_id
is a note of who published the data to the topic.
topic
can be any string value, this needs to be the topic that a subscriber is aware of.
retain
is a boolean and should be set to True
or False
(or left at the default unknown
).
If set to True
this will flag the message sent to the broker to be retained.
Otherwise the broker discards the message if no client is subscribing to this topic.
This allows clients to get an immediate response when they subscribe to a topic, without having to wait until the next message is published.
auth
, user
and password
can be used for MQTT authentication.
multi_topic
is a boolean and should be set to True
or False
.
If set to True
pywws will also publish all the data each as separate subtopics of the configured topic
;
i.e., with the topic
set to /weather/pywws pywws will also publish the outside temperature to /weather/pywws/temp_out
and the inside temperature to /weather/pywws/temp_in
.
If these aren’t obvious to you it’s worth doing a bit of reading around MQTT. It’s a great lightweight messaging system from IBM, recently made more popular when Facebook published information on their use of it.
This has been tested with the Mosquitto Open Source MQTT broker, running on a Raspberry Pi (Raspian OS). TLS (mqtt data encryption) is not yet implemented.
Thanks to Matt Thompson for writing the MQTT code and to Robin Kearney for adding the retain and auth options.
UK Met Office¶
Web site: http://wow.metoffice.gov.uk/
Create account: https://register.metoffice.gov.uk/WaveRegistrationClient/public/newaccount.do?service=weatherobservations
API: http://wow.metoffice.gov.uk/support/dataformats#automatic
Esempi della sezione
weather.ini
:[metoffice] site id = 12345678 aws pin = 987654 template = default [logged] services = ['metoffice', 'underground']
Open Weather Map¶
Web site: http://openweathermap.org/
Create account: http://home.openweathermap.org/users/sign_up
Esempi della sezione
weather.ini
:[openweathermap] lat = 51.501 long = -0.142 alt = 10 user = ElizabethWindsor password = corgi id = Buck House template = default [logged] services = ['openweathermap', 'underground']
When choosing a user name you should avoid spaces (and probably non-ascii characters as well). Having a space in your user name causes strange «internal server error» responses from the server.
The default behaviour is to use your user name to identify the weather station.
However, it’s possible for a user to have more than one weather station, so there is an optional name
parameter in the API that can be used to identify the station.
This appears as id
in weather.ini
.
Make sure you choose a name that is not already in use.
PWS Weather¶
Web site: http://www.pwsweather.com/
Creare un account: http://www.pwsweather.com/register.php
API basate sul protocollo WU: http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
Esempi della sezione
weather.ini
:[pwsweather] station = ABCDEFGH1 password = xxxxxxx template = default [logged] services = ['pwsweather', 'underground']
temperatur.nu¶
Web site: http://www.temperatur.nu/
Esempi della sezione
weather.ini
:[temperaturnu] hash = ??? template = default [logged] services = ['temperaturnu', 'underground']
You receive the hash value from the temperatur.nu admins during sign up. It looks like «d3b07384d113edec49eaa6238ad5ff00».
Weather Underground¶
Creare un account: http://www.wunderground.com/members/signup.asp
API: http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
Esempi della sezione
weather.ini
:[underground] station = ABCDEFGH1 password = xxxxxxx template = default [logged] services = ['underground', 'metoffice']
Weather Underground «RapidFire» updates¶
Weather Underground ha un secondo upload URL per aggiornamenti in tempo reale appena 2,5 secondi. Se si esegue pywws con “live logging” (vedere Come impostare una registrazione “live” con pywws) è possibile utilizzare questa opzione per inviare gli aggiornamenti ogni 48 secondi, con l’aggiunta di “underground_rf” nella sezione [live]
delle attività weather.ini
:
[underground]
station = ABCDEFGH1
password = xxxxxxx
template = default
[live]
services = ['underground_rf']
[logged]
services = ['underground', 'metoffice']
Assicurarsi di che avere attivo un servizio “underground” in [logged]
o [hourly]
. In questo modo vengono inviati i record “catchup” per colmare eventuali lacune se vostra stazione passa alla modalità offline per qualche motivo.
wetter.com¶
Web site: http://www.wetter.com/wetter_aktuell/wetternetzwerk/
Register station: http://www.wetter.com/mein_wetter/wetterstation/willkommen/
Esempi della sezione
weather.ini
:[wetterarchivde] user_id = 12345 kennwort = ab1d3456i8 template = default [logged] services = ['wetterarchivde', 'underground'] [live] services = ['wetterarchivde', 'underground_rf']
Custom Request Headers¶
The pywws.toservice
module does support the injection of one or more
custom request headers for special cases where you want to integrate with a
service that, for example, requires you to pass an authentication key header
along with each request, such as x-api-key
.
These headers can be added to your a_service.ini
file in the format of key
value pairs:
[config]
url = https://my-aws-api-gw.execute-api.eu-west-1.amazonaws.com/test/station
catchup = 100
interval = 0
use get = True
result = []
auth_type = None
http_headers = [('x-api-key', 'my-api-key'), ('x-some-header', 'value')]
Commenti o domande? Si prega di iscriversi per al mailing list pywws http://groups.google.com/group/pywws e facci sapere.