{"version":3,"sources":["jsdelivr-header.js","/npm/homebridge-livebox-info@0.0.2/index.js"],"names":[],"mappings":"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","file":"/npm/homebridge-livebox-info@0.0.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/homebridge-livebox-info@0.0.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","//-------------------------------------------------------------------\n//~ @(#) Name : index.js\n//~ @(#) Desc : \n//~ @(#) version : 1.0\n// Auteur : adm@di-marco.net\n// Date : 2019-09-28\n//-------------------------------------------------------------------\n// Version history\n//   v1.O - Initial version\n//   test and work on : mac mini (late 2014) & livebox v4 \n//-------------------------------------------------------------------\nvar Accessory, Service, Characteristic, UUIDGen;\nvar inherits = require('util').inherits;\nconst fs = require('fs');\nconst packageFile = require(\"./package.json\");\nvar os = require(\"os\");\nvar hostname = os.hostname();\n\nconst UNIT_MBIT='Mbit'\nconst UNIT_MO='Mo'\nconst UNIT_PERCENT='%'\nconst UNIT_WATT='Watt'\n\nmodule.exports = function(homebridge) {\n    if(!isConfig(homebridge.user.configPath(), \"accessories\", \"OrangeLiveboxInfo\")) {\n        return;\n    }\n    \n    Accessory = homebridge.platformAccessory;\n    Service = homebridge.hap.Service;\n    Characteristic = homebridge.hap.Characteristic;\n    UUIDGen = homebridge.hap.uuid;\n//    FakeGatoHistoryService = require(\"fakegato-history\")(homebridge);\n\n    homebridge.registerAccessory('homebridge-livebox-info', 'OrangeLiveboxInfo', OrangeLiveboxInfo);\n}\n\nasync function readUptime() {\n    const exec = require('child_process').exec;\nvar script = await exec('/usr/local/lib/node_modules/homebridge-livebox-info/src/sh/homebridge-livebox-info.sh', \n(error, stdout, stderr) => {\n            if (error !== null) {\n                //this.log(\"exec error: \" + ${error});\n            }\n        }); \n};\n\nfunction isConfig(configFile, type, name) {\n    var config = JSON.parse(fs.readFileSync(configFile));\n    if(\"accessories\" === type) {\n        var accessories = config.accessories;\n        for(var i in accessories) {\n            if(accessories[i]['accessory'] === name) {\n                return true;\n            }\n        }\n    } else if(\"platforms\" === type) {\n        var platforms = config.platforms;\n        for(var i in platforms) {\n            if(platforms[i]['platform'] === name) {\n                return true;\n            }\n        }\n    } else {\n    }\n    return false;\n};\n\nfunction OrangeLiveboxInfo(log, config) {\n    if(null == config) {\n        return;\n    }\n\n    this.log = log;\n\tthis.name = config[\"name\"];\n    if(config[\"file\"]) {\n\t\tthis.readFile = config[\"file\"];\n    } else {\n\t\tthis.readFile = \"/tmp/_homebridge-livebox-info.json\";\n\t}\n\tif(config[\"updateInterval\"] && config[\"updateInterval\"] > 0) {\n        this.updateInterval = config[\"updateInterval\"];\n    } else {\n        this.updateInterval = null;\n    }\n  \n\tthis.setUpServices();\n};\n\nOrangeLiveboxInfo.prototype.getDownstream = function (callback) {\n\tvar json = fs.readFileSync(this.readFile, \"utf-8\");\n\tvar obj = JSON.parse(json);\n\tvar Downstream = (obj.Downstream);\n\tcallback(null, Downstream);\n};\n\nOrangeLiveboxInfo.prototype.getUpstream = function (callback) {\n\tvar json = fs.readFileSync(this.readFile, \"utf-8\");\n\tvar obj = JSON.parse(json);\n\tvar Upstream = obj.Upstream;\n\tcallback(null, Upstream);\n};\n\nOrangeLiveboxInfo.prototype.getPhoneState = function (callback) {\n\tvar json = fs.readFileSync(this.readFile, \"utf-8\");\n\tvar obj = JSON.parse(json);\n\tvar PhoneState = obj.PhoneState;\n\tcallback(null, PhoneState);\n};\n\nOrangeLiveboxInfo.prototype.getTVState = function (callback) {\n\tvar json = fs.readFileSync(this.readFile, \"utf-8\");\n\tvar obj = JSON.parse(json);\n\tvar TVState = obj.TVState;\n\tcallback(null, TVState);\n};\n\nOrangeLiveboxInfo.prototype.getWifiState = function (callback) {\n\tvar json = fs.readFileSync(this.readFile, \"utf-8\");\n\tvar obj = JSON.parse(json);\n\tvar WifiState = obj.WifiState;\n\tcallback(null, WifiState);\n};\n\n\nOrangeLiveboxInfo.prototype.setUpServices = function () {\n\n\tvar that = this;\n\tvar temp;\n\t\n\tthis.infoService = new Service.AccessoryInformation();\n\tthis.infoService\n\t\t.setCharacteristic(Characteristic.Manufacturer, \"@ad5030\")\n\t\t.setCharacteristic(Characteristic.Model, this.name)\n\t\t.setCharacteristic(Characteristic.SerialNumber, \"042-SN-20190928\" + \"_\" + packageFile.version)\n\t\t.setCharacteristic(Characteristic.FirmwareRevision, packageFile.version);\n\t\n//\tthis.fakeGatoHistoryService = new FakeGatoHistoryService(\"weather\", this, { storage: 'fs' });\n\t\n\tlet uuid1 = UUIDGen.generate(that.name + '-Downstream');\n\tdownstream = function (displayName, subtype) {\n\t\tCharacteristic.call(this, 'Downstream', uuid1);\n\t\tthis.setProps({\n\t\t\tformat: Characteristic.Formats.STRING,\n\t\t\tunit: UNIT_MBIT,\n\t\t\tperms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]\n\t\t});\n\t\tthis.value = this.getDefaultValue();\n\t};\n\tinherits(downstream, Characteristic);\n\tdownstream.UUID = uuid1;\n\n\tlet uuid2 = UUIDGen.generate(that.name + '-Upstream');\n\tupstream = function () {\n\t\tCharacteristic.call(this, 'Upstream', uuid2);\n\t\tthis.setProps({\n\t\t\tformat: Characteristic.Formats.STRING,\n\t\t\tunit: UNIT_MBIT,\n\t\t\tperms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]\n\t\t});\n\t\tthis.value = this.getDefaultValue();\n\t};\n\tinherits(upstream, Characteristic);\n\tupstream.UUID = uuid2;\n\t\n\tlet uuid3 = UUIDGen.generate(that.name + '-PhoneState');\n\tphonestate = function () {\n\t\tCharacteristic.call(this, 'Phone State', uuid3);\n\t\tthis.setProps({\n\t\t\tformat: Characteristic.Formats.STRING,\n\t\t\t//unit: UNIT_MO,\n\t\t\tperms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]\n\t\t});\n\t\tthis.value = this.getDefaultValue();\n\t};\n\tinherits(phonestate, Characteristic);\n\tphonestate.UUID = uuid3;\n\n\tlet uuid4 = UUIDGen.generate(that.name + '-TVState');\n\ttvstate = function () {\n\t\tCharacteristic.call(this, 'TV State', uuid4);\n\t\tthis.setProps({\n\t\t\tformat: Characteristic.Formats.STRING,\n\t\t\tperms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]\n\t\t});\n\t\tthis.value = this.getDefaultValue();\n\t};\n\tinherits(tvstate, Characteristic);\n\ttvstate.UUID = uuid4;\n\n\tlet uuid5 = UUIDGen.generate(that.name + '-WifiState');\n\twifistate = function () {\n\t\tCharacteristic.call(this, 'Wifi State', uuid5);\n\t\tthis.setProps({\n\t\t\tformat: Characteristic.Formats.STRING,\n\t\t\t//unit: UNIT_PERCENT,\n\t\t\tperms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]\n\t\t});\n\t\tthis.value = this.getDefaultValue();\n\t};\n\tinherits(wifistate, Characteristic);\n\twifistate.UUID = uuid5;\n\n\n\tthis.liveboxService = new Service.TemperatureSensor(that.name);\n\tvar currentTemperatureCharacteristic = this.liveboxService.getCharacteristic(Characteristic.CurrentTemperature);\t\t\n\tthis.liveboxService.getCharacteristic(downstream)\n\t\t.on('get', this.getDownstream.bind(this));\n\tthis.liveboxService.getCharacteristic(upstream)\n\t\t.on('get', this.getUpstream.bind(this));\n\tthis.liveboxService.getCharacteristic(phonestate)\n\t\t.on('get', this.getPhoneState.bind(this));\n\tthis.liveboxService.getCharacteristic(tvstate)\n\t\t.on('get', this.getTVState.bind(this));\n\tthis.liveboxService.getCharacteristic(wifistate)\n\t\t.on('get', this.getWifiState.bind(this));\n//\tfunction getCurrentTemperature() {\n//\t\tvar data = fs.readFileSync(that.readFile, \"utf-8\");\n\n//\t\tvar obj = JSON.parse(data);\n//\t\tvar temperatureVal = (obj.temperature);\n\n//\t\ttemp = temperatureVal;\n//\t\tthat.log.debug(\"update currentTemperatureCharacteristic value: \" + temperatureVal);\n//\t\treturn temperatureVal;\n//\t}\n\t\n\treadUptime();\n\t\n//\tcurrentTemperatureCharacteristic.updateValue(getCurrentTemperature());\n//\tif(that.updateInterval) {\n//\t\tsetInterval(() => {\n//\t\t\tcurrentTemperatureCharacteristic.updateValue(getCurrentTemperature());\n\t\t\t\n//\t\t\tthat.log(\"Current Temp: \" + temp);\n//\t\t\tthis.fakeGatoHistoryService.addEntry({time: new Date().getTime() / 1000, temp: temp});\n\t\t\t//this.fakeGatoHistoryService.addEntry({time: new Date().getTime(), temp: temp});\t\n\n//\t\t\treadUptime();\n\t\t\t\n//\t\t}, that.updateInterval);\n//\t}\n\t\n//\tcurrentTemperatureCharacteristic.on('get', (callback) => {\n//\t\tcallback(null, getCurrentTemperature());\n//\t});\n}\n\nOrangeLiveboxInfo.prototype.getServices = function () {\n\n\treturn [this.infoService, this.liveboxService];\n};"]}