Added TLS support
This commit is contained in:
@@ -170,19 +170,34 @@ export class Lightbulb implements AccessoryPlugin {
|
||||
}
|
||||
|
||||
updateColor(): void {
|
||||
if (this.lightType === LightType.RGBW) {
|
||||
const rgbw: RGBW = this.hsb2rgbw(this.hue, this.saturation, this.brightness);
|
||||
this.platform.shng.setItem(this.accessory.r, this.convertRange(rgbw.R, 0, 100, this.RMin, this.RMax));
|
||||
this.platform.shng.setItem(this.accessory.g, this.convertRange(rgbw.G, 0, 100, this.GMin, this.GMax));
|
||||
this.platform.shng.setItem(this.accessory.b, this.convertRange(rgbw.B, 0, 100, this.BMin, this.BMax));
|
||||
this.platform.shng.setItem(this.accessory.w, this.convertRange(rgbw.W, 0, 100, this.WMin, this.WMax));
|
||||
} else if (this.lightType === LightType.RGB) {
|
||||
const rgb: RGB = this.hsb2rgb(this.hue, this.saturation, this.brightness);
|
||||
this.platform.shng.setItem(this.accessory.r, this.convertRange(rgb.R, 0, 100, this.RMin, this.RMax));
|
||||
this.platform.shng.setItem(this.accessory.g, this.convertRange(rgb.G, 0, 100, this.GMin, this.GMax));
|
||||
this.platform.shng.setItem(this.accessory.b, this.convertRange(rgb.B, 0, 100, this.BMin, this.BMax));
|
||||
} else {
|
||||
this.platform.log.warn('Cannot update color of', this.name, 'because RGB(W) items are missing');
|
||||
switch (this.lightType) {
|
||||
|
||||
case LightType.RGBW: {
|
||||
const rgbw: RGBW = this.hsb2rgbw(this.hue, this.saturation, this.brightness);
|
||||
this.platform.shng.setItem(this.accessory.r, this.convertRange(rgbw.R, 0, 100, this.RMin, this.RMax));
|
||||
this.platform.shng.setItem(this.accessory.g, this.convertRange(rgbw.G, 0, 100, this.GMin, this.GMax));
|
||||
this.platform.shng.setItem(this.accessory.b, this.convertRange(rgbw.B, 0, 100, this.BMin, this.BMax));
|
||||
this.platform.shng.setItem(this.accessory.w, this.convertRange(rgbw.W, 0, 100, this.WMin, this.WMax));
|
||||
break;
|
||||
}
|
||||
|
||||
case LightType.RGB: {
|
||||
const rgb: RGB = this.hsb2rgb(this.hue, this.saturation, this.brightness);
|
||||
this.platform.shng.setItem(this.accessory.r, this.convertRange(rgb.R, 0, 100, this.RMin, this.RMax));
|
||||
this.platform.shng.setItem(this.accessory.g, this.convertRange(rgb.G, 0, 100, this.GMin, this.GMax));
|
||||
this.platform.shng.setItem(this.accessory.b, this.convertRange(rgb.B, 0, 100, this.BMin, this.BMax));
|
||||
break;
|
||||
}
|
||||
|
||||
case LightType.HSB:
|
||||
this.platform.shng.setItem(this.accessory.hue, this.hue);
|
||||
this.platform.shng.setItem(this.accessory.saturation, this.saturation);
|
||||
this.platform.shng.setItem(this.accessory.brightness, this.brightness);
|
||||
break;
|
||||
|
||||
default:
|
||||
this.platform.log.warn('Cannot update color of', this.name, 'because RGB(W) items are missing');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -54,7 +54,11 @@ export class SmartHomeNGPlatform implements StaticPlatformPlugin {
|
||||
public readonly api: API,
|
||||
) {
|
||||
log.debug('Using config file', api.user.configPath());
|
||||
this.shng = new SmartHomeNG(this, 'ws://smarthome.iot.wagener.family:2424/');
|
||||
const host = this.config.host ? this.config.host : 'smarthome.local';
|
||||
const port = this.config.port ? this.config.port : '2424';
|
||||
const protocol = this.config.tls ? 'wss' : 'ws';
|
||||
const url = protocol + '://' + host + ':' + port + '/';
|
||||
this.shng = new SmartHomeNG(this, url);
|
||||
|
||||
this.api.on('didFinishLaunching', () => {
|
||||
log.debug('Executed didFinishLaunching callback');
|
||||
|
||||
Reference in New Issue
Block a user