UNPKG

homebridge-awattar

Version:

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

137 lines 5.04 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultAreaTimezone = exports.defaultService = exports.pricing = exports.devices = exports.PLATFORM_SERIAL_NUMBER = exports.PLATFORM_MODEL = exports.PLATFORM_VERSION = exports.PLATFORM_MANUFACTURER = exports.PLUGIN_NAME = exports.PLATFORM_NAME = void 0; exports.defaultPricesCache = defaultPricesCache; exports.fnc_todayKey = fnc_todayKey; exports.fnc_tomorrowKey = fnc_tomorrowKey; exports.fnc_currentHour = fnc_currentHour; const Path = __importStar(require("path")); const fs = __importStar(require("fs")); const luxon_1 = require("luxon"); const file_system_cache_1 = require("file-system-cache"); const console_1 = require("console"); /* eslint @typescript-eslint/no-var-requires: "off" */ const pkg = require('../package.json'); exports.PLATFORM_NAME = 'aWATTar'; exports.PLUGIN_NAME = pkg.name; exports.PLATFORM_MANUFACTURER = pkg.author.name; exports.PLATFORM_VERSION = pkg.version; exports.PLATFORM_MODEL = 'Electricity price sensors'; exports.PLATFORM_SERIAL_NUMBER = 'UN783GU921Y0'; // main device(s) exports.devices = [ { UniqueId: 'JKGhJH654*87pDE', displayName: 'aWATTar', }, ]; // eslint-disable-next-line prefer-const exports.pricing = { today: [], currently: 0.0001, currentlyNeg: 0.0001, currentHour: 0, cheapestHour: [], cheapest2Hours: [], cheapest3Hours: [], cheapest4Hours: [], cheapest5Hours: [], cheapest5HoursConsec: [], cheapest5HoursConsec2days: [], cheapest6Hours: [], cheapest7Hours: [], cheapest8Hours: [], cheapest9Hours: [], cheapest10Hours: [], cheapest11Hours: [], cheapest12Hours: [], priciestHour: [], median: 0, median2days: 0, }; exports.defaultService = { currently: null, currentlyNeg: null, cheapestHour: null, cheapest2Hours: null, cheapest3Hours: null, cheapest4Hours: null, cheapest5Hours: null, cheapest5HoursConsec: null, cheapest6Hours: null, cheapest7Hours: null, cheapest8Hours: null, cheapest9Hours: null, cheapest10Hours: null, cheapest11Hours: null, cheapest12Hours: null, priciestHour: null, hourlyTickerSwitch: null, }; function defaultPricesCache(api) { const ns = 'homebridge-nordpool-baltics'; const nsHash = 'b162cf22c8adb8fa829628b261839cad18dc3994'; const storagePath = api.user.storagePath(); const cacheDirectory = Path.join(storagePath, '.cache'); // check if directory .cache exists if (!fs.existsSync(cacheDirectory)) { fs.mkdirSync(cacheDirectory, { recursive: true }); (0, console_1.log)('New Directory created successfully !!'); } else { (0, console_1.log)('Given Directory already exists !!'); } // auto-cleanup of old cached files on init const files = fs.readdirSync(cacheDirectory); const now = Date.now(); files.filter(file => file.startsWith(`${nsHash}-`)).forEach(file => { const filePath = Path.join(cacheDirectory, file); const stats = fs.statSync(filePath); const fileAge = now - stats.mtimeMs; // Check if file is older than 2 days if (fileAge >= 172800 * 1000 * 2) { try { fs.unlinkSync(filePath); } catch (error) { // Ignore any error } } }); return new file_system_cache_1.Cache({ basePath: cacheDirectory, ns: ns, ttl: 172800 }); } // same timezone applies to all Nordpool zones: LT, LV, EE, FI exports.defaultAreaTimezone = 'Europe/Vienna'; function fnc_todayKey() { return luxon_1.DateTime.local().setZone(exports.defaultAreaTimezone).toFormat('yyyy-MM-dd'); } function fnc_tomorrowKey() { return luxon_1.DateTime.local().plus({ day: 1 }).setZone(exports.defaultAreaTimezone).toFormat('yyyy-MM-dd'); } function fnc_currentHour() { return luxon_1.DateTime.local().setZone(exports.defaultAreaTimezone).hour; } //# sourceMappingURL=settings.js.map