METEOSAPI
nodejs wrapper over the Aemet public API
Getting started
Install dependences
yarn install
Get an API key
Go to the Aemet OpenData Website and follow the instructions to get an API key.
Crate a .env file
Since the Aemet doesnΒ΄t provide a valid ssl cerfificate nodejs will reject all the requests, to prevent this use NODE_TLS_REJECT_UNAUTHORIZED=0
.
The env file also will set the api-key used in the unit tests.
NODE_TLS_REJECT_UNAUTHORIZED=0
METEOSAPI_KEY="<your-api-key>"
run the tests
yarn run test
##Β Usage
Meteosapi only provides one module with a single function getForecast(id)
Initializacion
const Meteosapi = require('meteosapi');
let meteosapi = Meteosapi(key);
let proviceKey = 36038;
meteosapi.getForecast(proviceKey).then(console.log);
getSimpleForecast(provinceId)
Ask for the simplified weather forecast in a given province for the next 3 days. The province code can be obtained from here
or from here
Example Response
getSimpleForecast
returns a data object with the following fields:
name
: Name of the municipe of the predicionprovince
: Names of the required province.today
: Simplified forecast for the current daytomorrow
: Simplified forecast for the next todaynext2
: Simplified forecast for the day after tomorrow
A simplified forecast
has the following fields:
value
: The wheater forecast value.description
: User readable weather forecast description.tmp
: The temperature values for the day
min
: The expected min temperaturemax
: The expected max temperature
Example response:
{
name: 'Pontevedra',
province: 'Pontevedra',
today: {
value: '13',
descripcion: 'Intervalos nubosos',
tmp: {
min: 6,
max: 13
}
},
tomorrow: {
value: '13',
descripcion: 'Intervalos nubosos',
tmp: {
min: 5,
max: 16
}
},
next2: {
value: '25',
descripcion: 'Muy nuboso con lluvia',
tmp: {
min: 7,
max: 13
}
},
}
getForecast(provinceId)
Ask for the weather forecast in a given province, the province code can be obtained from here
or from here
Example Response
getForecast
returns a data object with the following fields:
name
: Name of the municipe of the predicionprovince
: Names of the required province.today
: Simplified forecast for the current daytomorrow
: Simplified forecast for the next todaynext2
: Simplified forecast for the day after tomorrowforecast
: array with the raw forecast values from the Aemet API
A simplified forecast
has the following fields:
value
: The wheater forecast value.description
: User readable weather forecast description.tmp
: The temperature values for the day
min
: The expected min temperaturemax
: The expected max temperature
Example response:
{
name: 'Pontevedra',
province: 'Pontevedra',
today: {
value: '13',
descripcion: 'Intervalos nubosos',
tmp: {
min: 6,
max: 13
}
},
tomorrow: {
value: '13',
descripcion: 'Intervalos nubosos',
tmp: {
min: 5,
max: 16
}
},
next2: {
value: '25',
descripcion: 'Muy nuboso con lluvia',
tmp: {
min: 7,
max: 13
}
},
forecast: [forecastArray]
}
List of meteo values and the meanings
The value field in the simplified forecast can be one of the following, the n
after the code comes from night
.
11 β Despejado
11n β Despejado noche 12 Poco nuboso
12n β Poco nuboso noche
13 β Intervalos nubosos
13n β Intervalos nubosos noche
14 β Nuboso
14n β Nuboso noche
15 β Muy nuboso
16n β Muy nuboso
16 β Cubierto
16n β Cubierto
17 β Nubes altas
17n β Nubes altas noche
23 β Intervalos nubosos con lluvia
23n β Intervalos nubosos con lluvia noche
24 β Nuboso con lluvia
24n β Nuboso con lluvia noche
25 β Muy nuboso con lluvia
25n β Muy nuboso con lluvia
26 β Cubierto con lluvia
26n β Cubierto con lluvia
33 β Intervalos nubosos con nieve
33n β Intervalos nubosos con nieve noche
34 β Nuboso con nieve
34n β Nuboso con nieve noche
35 β Muy nuboso con nieve
35n β Muy nuboso con nieve
36 β Cubierto con nieve
36n β Cubierto con nieve
43 β Intervalos nubosos con lluvia escasa
43n β Intervalos nubosos con lluvia escasa noche
44 β Nuboso con lluvia escasa
44n β Nuboso con lluvia escasa noche
45n β Muy nuboso con lluvia escasa
46n β Cubierto con lluvia escasa
51 β Intervalos nubosos con tormenta
51n β Intervalos nubosos con tormenta noche
52 β Nuboso con tormenta
52n β Nuboso con tormenta noche
53 β Muy nuboso con tormenta
53n β Muy nuboso con tormenta
54 β Cubierto con tormenta
54n β Cubierto con tormenta
61 β Intervalos nubosos con tormenta y lluvia escasa
61n β Intervalos nubosos con tormenta y lluvia escasa noche
62 Nuboso con tormenta y lluvia escasa
62n β Nuboso con tormenta y lluvia escasa noche
63 β Muy nuboso con tormenta y lluvia escasa
63n β Muy nuboso con tormenta y lluvia escasa
64 Cubierto con tormenta y lluvia escasa
64n Cubierto con tormenta y lluvia escasa
71 β Intervalos nubosos con nieve escasa
71n β Intervalos nubosos con nieve escasa noche
72 Nuboso con nieve escasa
72n β Nuboso con nieve escasa noche
73 β Muy nuboso con nieve escasa
73n β Muy nuboso con nieve escasa
74 Cubierto con nieve escasa
74n Cubierto con nieve escasa