commit 995041845e8979d64932f8e678514c6e3a6d9e30 Author: jangxx Date: Fri Jan 25 16:15:03 2019 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..607a36b --- /dev/null +++ b/.jshintrc @@ -0,0 +1,3 @@ +{ + "esversion": 6 +} \ No newline at end of file diff --git a/HCMagicHome.js b/HCMagicHome.js new file mode 100644 index 0000000..3f1059f --- /dev/null +++ b/HCMagicHome.js @@ -0,0 +1,59 @@ +const { + HCColorLamp +} = require('homecontrol-control-base'); + +const { Control } = require('magic-home'); + +class HCMagicHome extends HCColorLamp { + constructor(config) { + super(config); + + this._control = new Control(this._configuration.address, this._configuration.characteristics); + } + + turnOn() { + return new Promise((resolve, reject) => { + this._control.turnOn((err) => { + if (err) return reject(err); + + this._state.on = true; + this.emit("state change", this.state); + return resolve(err); + }); + }); + } + + turnOff() { + return new Promise((resolve, reject) => { + this._control.turnOff((err) => { + if (err) return reject(err); + + this._state.on = false; + this.emit("state change", this.state); + return resolve(err); + }); + }); + } + + toggle() { + if(this._state.on) { + return this.turnOff(); + } else { + return this.turnOn(); + } + } + + changeBrightness(brightness) { + + } + + changeColor(hue, sat, light) { + + } + + pullState() { + + } +} + +module.exports = HCMagicHome; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..90d0e3a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "hc-magichome", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "magic-home": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/magic-home/-/magic-home-1.4.0.tgz", + "integrity": "sha512-hSq3C/9rbEH3RB2t2rG/LsSb2vpalzIGh/mLKJyjaki3Wbvt9ss+2OUJ1JsAOAjjgkvxDEfbQ044yFsHZUS75A==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6c6cd1d --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "hc-magichome", + "version": "1.0.0", + "description": "Magic Home Plugin for Homecontrol", + "main": "HCMagicHome.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git@git.literalchaos.de:jan/hc-magichome.git" + }, + "author": "Jan Scheiper", + "license": "UNLICENSED", + "dependencies": { + "magic-home": "^1.4.0" + } +}