Added TLS support
This commit is contained in:
parent
0167799c54
commit
b2a287934c
17
README.md
17
README.md
@ -48,7 +48,20 @@ Below is what i did on my Debian Bullseye installation:
|
||||
## Configuration
|
||||
If you already have a working homebridge installation just add the platform section into your existing config. If you are a new homebridge user you have to create a `config.json` file in the `.homebridge` directory. You'll find that directory in your home folder.
|
||||
|
||||
### Common characteristics
|
||||
### Platform configuration
|
||||
The following parameters are available to configure the plugin as platform in homebridge.
|
||||
```json
|
||||
{
|
||||
"platform": "SmartHomeNG",
|
||||
"name": "SmartHomeNG",
|
||||
"host": "<your SHNG server name or IP>",
|
||||
"port": 2425,
|
||||
"tls": true,
|
||||
}
|
||||
```
|
||||
If the `port` and `tls` parameters are not specified the plugin defaults to port 2424 without tls encryption.
|
||||
|
||||
### Common accessories characteristics
|
||||
The following characteristics are valid for all accessories.
|
||||
|
||||
Mandatory:
|
||||
@ -141,6 +154,8 @@ This is an example config file which just uses this plugin and some example Smar
|
||||
"platform": "SmartHomeNG",
|
||||
"name": "SmartHomeNG",
|
||||
"host": "smarthome.iot.wagener.family",
|
||||
"port": 2425,
|
||||
"tls": true,
|
||||
"accessories": [
|
||||
{
|
||||
"type": "Outlet",
|
||||
|
||||
@ -170,19 +170,34 @@ export class Lightbulb implements AccessoryPlugin {
|
||||
}
|
||||
|
||||
updateColor(): void {
|
||||
if (this.lightType === LightType.RGBW) {
|
||||
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));
|
||||
} else if (this.lightType === LightType.RGB) {
|
||||
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));
|
||||
} else {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user