UNPKG

homebridge-awattar

Version:

Plugin exposes virtual (switch, light, presence, temperature) accessories and enables HomeKit automation by aWattar electricity pricing in Austria.

65 lines 3.09 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.eleringEE_getNordpoolData = eleringEE_getNordpoolData; exports.eleringEE_convertDataStructure = eleringEE_convertDataStructure; const luxon_1 = require("luxon"); const settings_1 = require("./settings"); const axios_1 = __importDefault(require("axios")); // import { map } from 'ramda'; async function eleringEE_getNordpoolData(log, config) { const start = luxon_1.DateTime.utc().startOf('day').minus({ hours: 2 }).toISO(); const end = luxon_1.DateTime.utc().plus({ days: 1 }).endOf('day').minus({ hours: 2 }).toISO(); const encodedStart = encodeURIComponent(start); const encodedEnd = encodeURIComponent(end); try { const url = `https://api.awattar.at/v1/marketdata?start=${encodedStart}&end=${encodedEnd}`; const response = await axios_1.default.get(url); log.warn(`Werte ${JSON.stringify(response.data)}`); //log.warn(`Werte ${JSON.stringify(response.data.data)}`); log.info(response.data.data); //log.info(response.data); log.info(`${response.status}`); log.info(response.statusText); log.info(`${response.headers}`); log.info(`Config:${response.config}`); //log.info(`ConvertedData:, ${Array.of.json(eleringEE_convertDataStructure(response.data.data, config)))}`); if (response.status !== 200) { log.warn(`WARN: Nordpool API provider Elering returned unusual response status ${response.status}`); log.warn(`Werte ${JSON.stringify(response.data)}`); } if (response.data.data) { const convertedData = eleringEE_convertDataStructure(response.data.data, config); log.info(`convertedData: ${convertedData}`); return convertedData; } else { log.error(`ERR: Nordpool API provider Elering returned unusual data ${JSON.stringify(response.data)}`); } } catch (error) { log.error(`ERR: General Nordpool API provider Elering error: ${error}`); } return null; } function eleringEE_convertDataStructure(data, config) { var _a; //const area = config.area.toLowerCase(); const decimalPrecision = (_a = config.decimalPrecision) !== null && _a !== void 0 ? _a : 1; []; return data.map((item) => { // convert the timestamp to ISO string, add the '+01:00' timezone offset const date = luxon_1.DateTime.fromISO(new Date(item.start_timestamp).toISOString()).setZone(settings_1.defaultAreaTimezone); //const data = useState([]); // divide by 10 to convert price to cents per kWh item.marketprice = parseFloat((item.marketprice / 10).toFixed(decimalPrecision)); return { day: date.toFormat('yyyy-MM-dd'), hour: parseInt(date.toFormat('HH')), price: item.marketprice, }; }); } //# sourceMappingURL=funcs_Elering.js.map