const { EventEmitter } = require('events'); const axios = require('axios'); const log = require('loglevel'); const AACHEN = 3247449; const STEINFURT = 2828105; const COLOGNE_DEUTZ = 2937790; class WeatherData extends EventEmitter { constructor() { super(); } get initial() { return { deutz: null }; } start() { this.fetch(); setInterval(() => { this.fetch(); }, 5*60000); } fetch() { Promise.all([ axios.get(`https://api.openweathermap.org/data/2.5/weather?id=${COLOGNE_DEUTZ}&units=metric&appid=f16fb438a43a12fb3347ca17937649be`).catch(err => log.error(err.config.url, err.message)), ]).then(resp => { let deutz = null; if (resp[0] != undefined) { deutz = resp[0].data.main.temp + "°C"; } this.emit("data", { deutz }); }); } } module.exports = new WeatherData();