UNPKG

homebridge-philipsair-platform

Version:

Homebridge plugin for philips air purifier and humidifier.

45 lines (39 loc) 1.15 kB
'use-strict'; const crypto = require('crypto'); exports.generateConfig = (config) => { return { name: config.name || 'PhilipsAirPlatform', debug: config.debug || false, warn: config.warn !== false, error: config.error !== false, extendedError: config.extendedError !== false, devices: config.devices || [], }; }; //github.com/homebridge/HAP-NodeJS/blob/master/src/lib/util/uuid.ts exports.UUIDgenerate = (data) => { const sha1sum = crypto.createHash('sha1'); sha1sum.update(data); const s = sha1sum.digest('hex'); let i = -1; return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { i += 1; switch (c) { case 'y': return ((parseInt('0x' + s[i], 16) & 0x3) | 0x8).toString(16); case 'x': default: return s[i]; } }); }; exports.validIP = (ip) => { if ( /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test( ip ) ) { return ip; } }; exports.setTimeoutAsync = (ms) => new Promise((res) => setTimeout(res, ms));