@homebridge-plugins/homebridge-smarthq 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +2 -0
- package/.github/FUNDING.yml +4 -0
- package/.github/ISSUE_TEMPLATE/bug-report.yml +91 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature-request.yml +34 -0
- package/.github/ISSUE_TEMPLATE/support-request.yml +85 -0
- package/.github/ISSUE_TEMPLATE.md +48 -0
- package/.github/PULL_REQUEST_TEMPLATE/pull_request.md +27 -0
- package/.github/dependabot.yml +17 -0
- package/.github/labeler.yml +38 -0
- package/.github/release-drafter.yml +33 -0
- package/.github/workflows/beta-release.yml +55 -0
- package/.github/workflows/build.yml +18 -0
- package/.github/workflows/changerelease.yml +11 -0
- package/.github/workflows/labeler.yml +9 -0
- package/.github/workflows/release-drafter.yml +14 -0
- package/.github/workflows/release.yml +35 -0
- package/.github/workflows/stale.yml +12 -0
- package/CHANGELOG.md +17 -0
- package/LICENSE +14 -0
- package/README.md +52 -0
- package/SECURITY.md +19 -0
- package/branding/Homebridge_x_Air.svg +27 -0
- package/branding/icon.png +0 -0
- package/config.schema.json +163 -0
- package/dist/devices/device.d.ts +47 -0
- package/dist/devices/device.d.ts.map +1 -0
- package/dist/devices/device.js +181 -0
- package/dist/devices/device.js.map +1 -0
- package/dist/devices/dishwashers.d.ts +30 -0
- package/dist/devices/dishwashers.d.ts.map +1 -0
- package/dist/devices/dishwashers.js +78 -0
- package/dist/devices/dishwashers.js.map +1 -0
- package/dist/homebridge-ui/public/index.html +338 -0
- package/dist/homebridge-ui/server.d.ts +2 -0
- package/dist/homebridge-ui/server.d.ts.map +1 -0
- package/dist/homebridge-ui/server.js +48 -0
- package/dist/homebridge-ui/server.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/platform.d.ts +74 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +315 -0
- package/dist/platform.js.map +1 -0
- package/dist/settings.d.ts +30 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +9 -0
- package/dist/settings.js.map +1 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +22 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1493 -0
- package/docs/index.html +34 -0
- package/docs/modules.html +1 -0
- package/eslint.config.js +50 -0
- package/package.json +91 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Generated by Pixelmator Pro 3.6.8 -->
|
|
3
|
+
<svg width="600" height="500" viewBox="0 0 600 500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
4
|
+
<g id="group">
|
|
5
|
+
<g id="Homebridge">
|
|
6
|
+
<g id="Logo">
|
|
7
|
+
<linearGradient id="linearGradient1" x1="170" y1="84.48" x2="170" y2="384.48" gradientUnits="userSpaceOnUse">
|
|
8
|
+
<stop offset="1e-05" stop-color="#57277c" stop-opacity="1"/>
|
|
9
|
+
<stop offset="1" stop-color="#491f59" stop-opacity="1"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<path id="Path-10" fill="url(#linearGradient1)" stroke="none" d="M 320 234.47998 C 320 317.322998 252.843018 384.480011 170 384.480011 C 87.157013 384.480011 20 317.322998 20 234.47998 C 20 151.636993 87.157013 84.47998 170 84.47998 C 252.843018 84.47998 320 151.636993 320 234.47998 Z"/>
|
|
12
|
+
<radialGradient id="radialGradient1" cx="170" cy="234.48" r="150" fx="170" fy="234.48" gradientUnits="userSpaceOnUse">
|
|
13
|
+
<stop offset="1e-05" stop-color="#000000" stop-opacity="0"/>
|
|
14
|
+
<stop offset="1" stop-color="#000000" stop-opacity="0.1"/>
|
|
15
|
+
</radialGradient>
|
|
16
|
+
<path id="Path-11" fill="url(#radialGradient1)" stroke="none" d="M 320 234.47998 C 320 317.322998 252.843018 384.480011 170 384.480011 C 87.157013 384.480011 20 317.322998 20 234.47998 C 20 151.636993 87.157013 84.47998 170 84.47998 C 252.843018 84.47998 320 151.636993 320 234.47998 Z"/>
|
|
17
|
+
<g id="object">
|
|
18
|
+
<image id="Image" x="49" y="113" width="245" height="248" xlink:href="data:image/png;base64, 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"/>
|
|
19
|
+
</g>
|
|
20
|
+
<path id="Path-12" fill="#ffffff" stroke="none" d="M 271.719971 219.23999 L 271.559998 219.23999 L 253.219971 200.910004 C 252.573975 200.239014 252.215027 199.34198 252.219971 198.410004 L 252.219971 156.109985 C 252.208984 147.156982 244.953979 139.901001 236.000977 139.890015 L 224.51001 139.890015 C 215.550995 139.895996 208.286987 147.151001 208.269989 156.109985 L 208.269989 156.350006 L 181.209991 130.140015 C 174.821014 124.016998 164.716003 124.101013 158.429993 130.330017 L 66.76001 222 C 63.717987 225.039978 62.009003 229.164001 62.009003 233.464996 C 62.009003 237.765991 63.717987 241.890015 66.76001 244.929993 L 75.48999 253.609985 C 81.796997 259.901001 91.993011 259.94101 98.350006 253.700012 L 168.809998 184.279999 C 170.191986 182.901978 172.428009 182.901978 173.809998 184.279999 L 242.809998 253.279999 C 244.177002 254.665985 244.177002 256.894012 242.809998 258.279999 L 234.330017 266.76001 C 232.94397 268.127014 230.716003 268.127014 229.329987 266.76001 L 180.859985 219.76001 C 174.471985 213.59198 164.319 213.681 158.040009 219.960022 L 111.529999 266.709991 C 105.230011 273.050995 105.230011 283.289001 111.529999 289.630005 L 120.140015 298.23999 C 126.463013 304.531006 136.674011 304.558014 143.029999 298.299988 L 168.100006 273.519989 C 169.488007 272.15799 171.712006 272.15799 173.100006 273.519989 L 198.040009 298.029999 C 198.709015 298.690002 199.085999 299.589996 199.085999 300.529999 C 199.085999 301.470001 198.709015 302.369995 198.040009 303.029999 L 173.380005 327.899994 C 173.269989 327.899994 173.179993 327.829987 173.059998 327.829987 C 167.946014 327.829987 163.799988 331.976013 163.799988 337.089996 C 163.799988 342.20401 167.946014 346.350006 173.059998 346.350006 C 178.174011 346.350006 182.320007 342.20401 182.320007 337.089996 L 182.320007 336.929993 L 207.130005 312.130005 C 210.186005 309.083008 211.903015 304.945007 211.903015 300.630005 C 211.903015 296.315002 210.186005 292.177002 207.130005 289.130005 L 207.029999 289.040009 L 182.100006 264.540009 C 175.768005 258.34201 165.641998 258.34201 159.309998 264.540009 L 134.160004 289.350006 C 132.778015 290.727997 130.541992 290.727997 129.160004 289.350006 L 120.559998 280.730011 C 119.192993 279.343994 119.192993 277.115997 120.559998 275.730011 L 167.109985 229 C 168.480011 227.613007 170.712006 227.591003 172.109985 228.950012 L 220.570007 276.040009 C 226.949005 282.179993 237.062988 282.104004 243.349976 275.869995 L 251.840027 267.380005 C 258.171021 261.040009 258.171021 250.77002 251.840027 244.429993 L 182.779999 175.369995 C 176.471985 169.075012 166.27301 169.031006 159.910004 175.27002 L 89.450012 244.669983 C 88.062012 246.031982 85.838013 246.031982 84.450012 244.669983 L 75.76001 236 C 74.381989 234.617981 74.381989 232.382019 75.76001 231 L 167.429993 139.330017 C 168.81601 137.963013 171.044006 137.963013 172.429993 139.330017 L 221.019989 186.330017 L 221.019989 156.109985 C 221.024994 154.156982 222.606995 152.575989 224.559998 152.570007 L 236 152.570007 C 237.952026 152.580994 239.533997 154.15802 239.549988 156.109985 L 239.549988 198.470001 C 239.552979 202.791992 241.263977 206.936005 244.309998 210.001007 L 262.549988 228.23999 C 262.549988 228.359985 262.47998 228.450012 262.47998 228.559998 C 262.486023 233.674011 266.635986 237.815979 271.75 237.809998 C 276.864014 237.804016 281.005981 233.653992 281 228.539978 C 280.994019 223.425995 276.843994 219.283997 271.72998 219.289978 Z"/>
|
|
21
|
+
</g>
|
|
22
|
+
</g>
|
|
23
|
+
</g>
|
|
24
|
+
<text id="text1" xml:space="preserve" x="23.429688" y="96" font-family="Kefa" font-size="96" font-weight="700" fill="#481f5d">Homebridge</text>
|
|
25
|
+
<text id="Air" xml:space="preserve" x="226.328125" y="420" font-family="Kefa" font-size="96" font-weight="700" fill="#ffffff">Air</text>
|
|
26
|
+
<image id="Layer" x="280" y="84" width="300" height="300" xlink:href="data:image/png;base64, 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"/>
|
|
27
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pluginAlias": "SmartHQ",
|
|
3
|
+
"pluginType": "platform",
|
|
4
|
+
"singular": true,
|
|
5
|
+
"customUi": true,
|
|
6
|
+
"customUiPath": "./dist/homebridge-ui",
|
|
7
|
+
"headerDisplay": "<p align='center'><img width='250px' src='https://raw.githubusercontent.com/homebridge-plugins/homebridge-smarthq/latest/branding/Homebridge_x_Air.svg'></p>\n\nThe **Homebridge SmartHQ** plugin allows you monitor the current AirQuality for your Zip Code from HomeKit and Siri.",
|
|
8
|
+
"footerDisplay": "Your SmartHQ apiKey was linked. Please raise any issues on our [project page](https://github.com/homebridge-plugins/homebridge-smarthq/issues).\n\nIf you would like to have other features, fill out [Feature Request Form](https://github.com/homebridge-plugins/homebridge-smarthq/issues/new?assignees=&labels=&template=feature_request.md).",
|
|
9
|
+
"schema": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"title": "Name",
|
|
15
|
+
"default": "SmartHQ",
|
|
16
|
+
"required": true
|
|
17
|
+
},
|
|
18
|
+
"devices": {
|
|
19
|
+
"type": "array",
|
|
20
|
+
"items": {
|
|
21
|
+
"title": "Devices",
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"firmware": {
|
|
25
|
+
"title": "Firmware Override",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"placeholder": "1.2.8",
|
|
28
|
+
"condition": {
|
|
29
|
+
"functionBody": "return (model.devices && model.devices[arrayIndices].city && model.devices[arrayIndices].zipCode);"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"refreshRate": {
|
|
33
|
+
"title": "Device Refresh Rate",
|
|
34
|
+
"type": "number",
|
|
35
|
+
"minimum": 1800,
|
|
36
|
+
"placeholder": 1800,
|
|
37
|
+
"description": "Indicates the number of seconds between polls of the SmartHQ service.",
|
|
38
|
+
"condition": {
|
|
39
|
+
"functionBody": "return (model.devices && model.devices[arrayIndices].city && model.devices[arrayIndices].zipCode);"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"logging": {
|
|
43
|
+
"title": "Device Logging Override Setting",
|
|
44
|
+
"type": "string",
|
|
45
|
+
"required": true,
|
|
46
|
+
"default": "",
|
|
47
|
+
"condition": {
|
|
48
|
+
"functionBody": "return (model.devices && model.devices[arrayIndices].city && model.devices[arrayIndices].zipCode);"
|
|
49
|
+
},
|
|
50
|
+
"oneOf": [
|
|
51
|
+
{
|
|
52
|
+
"title": "Default Logging",
|
|
53
|
+
"enum": [
|
|
54
|
+
""
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"title": "Standard Logging",
|
|
59
|
+
"enum": [
|
|
60
|
+
"standard"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"title": "No Logging",
|
|
65
|
+
"enum": [
|
|
66
|
+
"none"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"title": "Debug Logging",
|
|
71
|
+
"enum": [
|
|
72
|
+
"debug"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"hide_device": {
|
|
78
|
+
"title": "Delete Device",
|
|
79
|
+
"type": "boolean",
|
|
80
|
+
"description": "Delete this device from the plugin cache.",
|
|
81
|
+
"condition": {
|
|
82
|
+
"functionBody": "return (model.devices && model.devices[arrayIndices].city && model.devices[arrayIndices].zipCode);"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"refreshRate": {
|
|
89
|
+
"title": "Refresh Rate",
|
|
90
|
+
"type": "number",
|
|
91
|
+
"minimum": 1800,
|
|
92
|
+
"placeholder": 1800,
|
|
93
|
+
"description": "Indicates the number of seconds between polls of the SmartHQ service."
|
|
94
|
+
},
|
|
95
|
+
"logging": {
|
|
96
|
+
"title": "Plugin Logging Setting",
|
|
97
|
+
"type": "string",
|
|
98
|
+
"required": true,
|
|
99
|
+
"default": "",
|
|
100
|
+
"oneOf": [
|
|
101
|
+
{
|
|
102
|
+
"title": "Default Logging",
|
|
103
|
+
"enum": [
|
|
104
|
+
""
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"title": "Standard Logging",
|
|
109
|
+
"enum": [
|
|
110
|
+
"standard"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"title": "No Logging",
|
|
115
|
+
"enum": [
|
|
116
|
+
"none"
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"title": "Debug Logging",
|
|
121
|
+
"enum": [
|
|
122
|
+
"debug"
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"layout": [
|
|
130
|
+
{
|
|
131
|
+
"key": "devices",
|
|
132
|
+
"notitle": false,
|
|
133
|
+
"type": "tabarray",
|
|
134
|
+
"title": "{{ value || 'New SmartHQ Device' }}",
|
|
135
|
+
"expandable": true,
|
|
136
|
+
"expanded": false,
|
|
137
|
+
"orderable": false,
|
|
138
|
+
"items": [
|
|
139
|
+
"devices[].firmware",
|
|
140
|
+
"devices[].refreshRate",
|
|
141
|
+
"devices[].logging",
|
|
142
|
+
"devices[].hide_device"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"type": "fieldset",
|
|
147
|
+
"title": "Advanced Settings",
|
|
148
|
+
"expandable": true,
|
|
149
|
+
"expanded": false,
|
|
150
|
+
"items": [
|
|
151
|
+
{
|
|
152
|
+
"type": "help",
|
|
153
|
+
"helpvalue": "<h5>Refresh Rate</h5><em class='primary-text'>Refresh Rate indicates the number of seconds between polls of the SmartHQ service.</em>"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"key": "refreshRate",
|
|
157
|
+
"notitle": true
|
|
158
|
+
},
|
|
159
|
+
"logging"
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge';
|
|
2
|
+
import type { SmartHQPlatform } from '../platform.js';
|
|
3
|
+
import type { devicesConfig, SmartHQPlatformConfig } from '../settings.js';
|
|
4
|
+
export declare abstract class deviceBase {
|
|
5
|
+
protected readonly platform: SmartHQPlatform;
|
|
6
|
+
protected accessory: PlatformAccessory;
|
|
7
|
+
protected device: devicesConfig;
|
|
8
|
+
readonly api: API;
|
|
9
|
+
readonly log: Logging;
|
|
10
|
+
readonly config: SmartHQPlatformConfig;
|
|
11
|
+
protected readonly hap: HAP;
|
|
12
|
+
protected deviceLogging: string;
|
|
13
|
+
protected deviceRefreshRate: number;
|
|
14
|
+
protected deviceUpdateRate: number;
|
|
15
|
+
protected devicePushRate: number;
|
|
16
|
+
protected deviceFirmwareVersion: string;
|
|
17
|
+
constructor(platform: SmartHQPlatform, accessory: PlatformAccessory, device: devicesConfig);
|
|
18
|
+
getDeviceLogSettings(device: devicesConfig): Promise<void>;
|
|
19
|
+
getDeviceRateSettings(device: devicesConfig): Promise<void>;
|
|
20
|
+
getDeviceConfigSettings(device: devicesConfig): Promise<void>;
|
|
21
|
+
getDeviceContext(accessory: PlatformAccessory, device: devicesConfig): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Update the characteristic value and log the change.
|
|
24
|
+
*
|
|
25
|
+
* @param Service Service
|
|
26
|
+
* @param Characteristic Characteristic
|
|
27
|
+
* @param CharacteristicValue CharacteristicValue | undefined
|
|
28
|
+
* @param CharacteristicName string
|
|
29
|
+
* @return: void
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
updateCharacteristic(Service: Service, Characteristic: any, CharacteristicValue: CharacteristicValue | undefined, CharacteristicName: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Logging for Device
|
|
35
|
+
*/
|
|
36
|
+
infoLog(...log: any[]): Promise<void>;
|
|
37
|
+
successLog(...log: any[]): Promise<void>;
|
|
38
|
+
debugSuccessLog(...log: any[]): Promise<void>;
|
|
39
|
+
warnLog(...log: any[]): Promise<void>;
|
|
40
|
+
debugWarnLog(...log: any[]): Promise<void>;
|
|
41
|
+
errorLog(...log: any[]): Promise<void>;
|
|
42
|
+
debugErrorLog(...log: any[]): Promise<void>;
|
|
43
|
+
debugLog(...log: any[]): Promise<void>;
|
|
44
|
+
loggingIsDebug(): Promise<boolean>;
|
|
45
|
+
enablingDeviceLogging(): Promise<boolean>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAE1E,8BAAsB,UAAU;IAc5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC5C,SAAS,CAAC,SAAS,EAAE,iBAAiB;IACtC,SAAS,CAAC,MAAM,EAAE,aAAa;IAfjC,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAgB,MAAM,EAAG,qBAAqB,CAAA;IAC9C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAG3B,SAAS,CAAC,aAAa,EAAG,MAAM,CAAA;IAChC,SAAS,CAAC,iBAAiB,EAAG,MAAM,CAAA;IACpC,SAAS,CAAC,gBAAgB,EAAG,MAAM,CAAA;IACnC,SAAS,CAAC,cAAc,EAAG,MAAM,CAAA;IACjC,SAAS,CAAC,qBAAqB,EAAG,MAAM,CAAA;gBAGnB,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,aAAa;IAyB3B,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3D,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7D,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1F;;;;;;;;;OASG;IACG,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlK;;OAEG;IACG,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGhD"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
export class deviceBase {
|
|
2
|
+
platform;
|
|
3
|
+
accessory;
|
|
4
|
+
device;
|
|
5
|
+
api;
|
|
6
|
+
log;
|
|
7
|
+
config;
|
|
8
|
+
hap;
|
|
9
|
+
// Config
|
|
10
|
+
deviceLogging;
|
|
11
|
+
deviceRefreshRate;
|
|
12
|
+
deviceUpdateRate;
|
|
13
|
+
devicePushRate;
|
|
14
|
+
deviceFirmwareVersion;
|
|
15
|
+
constructor(platform, accessory, device) {
|
|
16
|
+
this.platform = platform;
|
|
17
|
+
this.accessory = accessory;
|
|
18
|
+
this.device = device;
|
|
19
|
+
this.api = this.platform.api;
|
|
20
|
+
this.log = this.platform.log;
|
|
21
|
+
this.config = this.platform.config;
|
|
22
|
+
this.hap = this.api.hap;
|
|
23
|
+
this.getDeviceLogSettings(device);
|
|
24
|
+
this.getDeviceRateSettings(device);
|
|
25
|
+
this.getDeviceConfigSettings(device);
|
|
26
|
+
this.getDeviceContext(accessory, device);
|
|
27
|
+
// Set accessory information
|
|
28
|
+
accessory
|
|
29
|
+
.getService(this.hap.Service.AccessoryInformation)
|
|
30
|
+
.setCharacteristic(this.hap.Characteristic.Manufacturer, 'SmartHQ')
|
|
31
|
+
.setCharacteristic(this.hap.Characteristic.Name, accessory.displayName)
|
|
32
|
+
.setCharacteristic(this.hap.Characteristic.ConfiguredName, accessory.displayName)
|
|
33
|
+
.setCharacteristic(this.hap.Characteristic.Model, accessory.context.model)
|
|
34
|
+
.setCharacteristic(this.hap.Characteristic.SerialNumber, accessory.context.serialNumber)
|
|
35
|
+
.setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
|
|
36
|
+
.getCharacteristic(this.hap.Characteristic.FirmwareRevision)
|
|
37
|
+
.updateValue(this.deviceFirmwareVersion);
|
|
38
|
+
}
|
|
39
|
+
async getDeviceLogSettings(device) {
|
|
40
|
+
this.deviceLogging = this.platform.debugMode ? 'debugMode' : device.logging ?? this.platform.platformLogging ?? 'standard';
|
|
41
|
+
const logging = this.platform.debugMode ? 'Debug Mode' : device.logging ? 'Device Config' : this.platform.platformLogging ? 'Platform Config' : 'Default';
|
|
42
|
+
await this.debugLog(`Using ${logging} Logging: ${this.deviceLogging}`);
|
|
43
|
+
}
|
|
44
|
+
async getDeviceRateSettings(device) {
|
|
45
|
+
// refreshRate
|
|
46
|
+
this.deviceRefreshRate = device.refreshRate ?? this.platform.platformRefreshRate ?? 3600;
|
|
47
|
+
const refreshRate = device.refreshRate ? 'Device Config' : this.platform.platformRefreshRate ? 'Platform Config' : 'Default';
|
|
48
|
+
await this.debugLog(`Using ${refreshRate} refreshRate: ${this.deviceRefreshRate}`);
|
|
49
|
+
// updateRate
|
|
50
|
+
this.deviceUpdateRate = device.updateRate ?? this.platform.platformUpdateRate ?? 5;
|
|
51
|
+
const updateRate = device.updateRate ? 'Device Config' : this.platform.platformUpdateRate ? 'Platform Config' : 'Default';
|
|
52
|
+
await this.debugLog(`Using ${updateRate} updateRate: ${this.deviceUpdateRate}`);
|
|
53
|
+
// pushRate
|
|
54
|
+
this.devicePushRate = device.pushRate ?? this.platform.platformPushRate ?? 1;
|
|
55
|
+
const pushRate = device.pushRate ? 'Device Config' : this.platform.platformPushRate ? 'Platform Config' : 'Default';
|
|
56
|
+
await this.debugLog(`Using ${pushRate} pushRate: ${this.devicePushRate}`);
|
|
57
|
+
}
|
|
58
|
+
async getDeviceConfigSettings(device) {
|
|
59
|
+
const deviceConfig = {};
|
|
60
|
+
const properties = [
|
|
61
|
+
'logging',
|
|
62
|
+
'refreshRate',
|
|
63
|
+
'updateRate',
|
|
64
|
+
'pushRate',
|
|
65
|
+
'hide_device',
|
|
66
|
+
];
|
|
67
|
+
properties.forEach((prop) => {
|
|
68
|
+
if (device[prop] !== undefined) {
|
|
69
|
+
deviceConfig[prop] = device[prop];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (Object.keys(deviceConfig).length !== 0) {
|
|
73
|
+
this.infoLog(`Config: ${JSON.stringify(deviceConfig)}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async getDeviceContext(accessory, device) {
|
|
77
|
+
const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
|
|
78
|
+
const version = deviceFirmwareVersion.toString();
|
|
79
|
+
this.debugLog(`Firmware Version: ${version.replace(/^V|-.*$/g, '')}`);
|
|
80
|
+
if (version?.includes('.') === false) {
|
|
81
|
+
const replace = version?.replace(/^V|-.*$/g, '');
|
|
82
|
+
const match = replace?.match(/./g);
|
|
83
|
+
const validVersion = match?.join('.');
|
|
84
|
+
this.deviceFirmwareVersion = validVersion ?? '0.0.0';
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.deviceFirmwareVersion = version.replace(/^V|-.*$/g, '') ?? '0.0.0';
|
|
88
|
+
}
|
|
89
|
+
accessory
|
|
90
|
+
.getService(this.hap.Service.AccessoryInformation)
|
|
91
|
+
.setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion)
|
|
92
|
+
.setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion)
|
|
93
|
+
.setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
|
|
94
|
+
.getCharacteristic(this.hap.Characteristic.FirmwareRevision)
|
|
95
|
+
.updateValue(this.deviceFirmwareVersion);
|
|
96
|
+
this.debugSuccessLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Update the characteristic value and log the change.
|
|
100
|
+
*
|
|
101
|
+
* @param Service Service
|
|
102
|
+
* @param Characteristic Characteristic
|
|
103
|
+
* @param CharacteristicValue CharacteristicValue | undefined
|
|
104
|
+
* @param CharacteristicName string
|
|
105
|
+
* @return: void
|
|
106
|
+
*
|
|
107
|
+
*/
|
|
108
|
+
async updateCharacteristic(Service, Characteristic, CharacteristicValue, CharacteristicName) {
|
|
109
|
+
if (CharacteristicValue === undefined) {
|
|
110
|
+
this.debugLog(`${CharacteristicName}: ${CharacteristicValue}`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
Service.updateCharacteristic(Characteristic, CharacteristicValue);
|
|
114
|
+
this.debugLog(`updateCharacteristic ${CharacteristicName}: ${CharacteristicValue}`);
|
|
115
|
+
this.debugWarnLog(`${CharacteristicName} context before: ${this.accessory.context[CharacteristicName]}`);
|
|
116
|
+
this.accessory.context[CharacteristicName] = CharacteristicValue;
|
|
117
|
+
this.debugWarnLog(`${CharacteristicName} context after: ${this.accessory.context[CharacteristicName]}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Logging for Device
|
|
122
|
+
*/
|
|
123
|
+
async infoLog(...log) {
|
|
124
|
+
if (await this.enablingDeviceLogging()) {
|
|
125
|
+
this.log.info(`${this.accessory.displayName}`, String(...log));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async successLog(...log) {
|
|
129
|
+
if (await this.enablingDeviceLogging()) {
|
|
130
|
+
this.log.success(`${this.accessory.displayName}`, String(...log));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async debugSuccessLog(...log) {
|
|
134
|
+
if (await this.enablingDeviceLogging()) {
|
|
135
|
+
if (await this.loggingIsDebug()) {
|
|
136
|
+
this.log.success(`[DEBUG] ${this.accessory.displayName}`, String(...log));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async warnLog(...log) {
|
|
141
|
+
if (await this.enablingDeviceLogging()) {
|
|
142
|
+
this.log.warn(`${this.accessory.displayName}`, String(...log));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async debugWarnLog(...log) {
|
|
146
|
+
if (await this.enablingDeviceLogging()) {
|
|
147
|
+
if (await this.loggingIsDebug()) {
|
|
148
|
+
this.log.warn(`[DEBUG] ${this.accessory.displayName}`, String(...log));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async errorLog(...log) {
|
|
153
|
+
if (await this.enablingDeviceLogging()) {
|
|
154
|
+
this.log.error(`${this.accessory.displayName}`, String(...log));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async debugErrorLog(...log) {
|
|
158
|
+
if (await this.enablingDeviceLogging()) {
|
|
159
|
+
if (await this.loggingIsDebug()) {
|
|
160
|
+
this.log.error(`[DEBUG] ${this.accessory.displayName}`, String(...log));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async debugLog(...log) {
|
|
165
|
+
if (await this.enablingDeviceLogging()) {
|
|
166
|
+
if (this.deviceLogging === 'debug') {
|
|
167
|
+
this.log.info(`[DEBUG] ${this.accessory.displayName}`, String(...log));
|
|
168
|
+
}
|
|
169
|
+
else if (this.deviceLogging === 'debugMode') {
|
|
170
|
+
this.log.debug(`${this.accessory.displayName}`, String(...log));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async loggingIsDebug() {
|
|
175
|
+
return this.deviceLogging === 'debugMode' || this.deviceLogging === 'debug';
|
|
176
|
+
}
|
|
177
|
+
async enablingDeviceLogging() {
|
|
178
|
+
return this.deviceLogging === 'debugMode' || this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
|