iotas-ts 1.3.0 → 2.0.0
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/CHANGELOG.md +36 -0
- package/README.md +115 -0
- package/dist/src/api/session.js +2 -1
- package/dist/src/api/session.js.map +1 -1
- package/dist/src/constants.d.ts +4 -0
- package/dist/src/constants.js +5 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/fan.d.ts +10 -0
- package/dist/src/fan.js +36 -0
- package/dist/src/fan.js.map +1 -0
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lock.d.ts +2 -0
- package/dist/src/lock.js +7 -0
- package/dist/src/lock.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.0.0](https://github.com/mezaugusto/iotas-ts/compare/v1.4.0...v2.0.0) (2026-04-13)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* :sparkles: Use fire-and-forget for feature update ([#8](https://github.com/mezaugusto/iotas-ts/issues/8))
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* :art: export thresholds ([#12](https://github.com/mezaugusto/iotas-ts/issues/12)) ([8b56a7a](https://github.com/mezaugusto/iotas-ts/commit/8b56a7a81361b680f32b5b0d6eb716e3904075bf))
|
|
13
|
+
* :art: extract shared IOTAS domain logic from plugin integrations ([#10](https://github.com/mezaugusto/iotas-ts/issues/10)) ([342bc0f](https://github.com/mezaugusto/iotas-ts/commit/342bc0fa4fb94540029e5a34ae91878085cbe39d))
|
|
14
|
+
* :art: Implement write barriers for feature updates ([#14](https://github.com/mezaugusto/iotas-ts/issues/14)) ([aed365d](https://github.com/mezaugusto/iotas-ts/commit/aed365d46317dcec9d6998611e5d3fda796ef2c3))
|
|
15
|
+
* :sparkles: Implement allow/deny listing devices ([#6](https://github.com/mezaugusto/iotas-ts/issues/6)) ([0ef03c5](https://github.com/mezaugusto/iotas-ts/commit/0ef03c5ccf6acb9ffcf1238d69352625d5b9f5cd))
|
|
16
|
+
* :sparkles: Implement thermostat fan mode ([#18](https://github.com/mezaugusto/iotas-ts/issues/18)) ([1f8ed8f](https://github.com/mezaugusto/iotas-ts/commit/1f8ed8f6eaba0885fbdf9cef910bb04b998ae013))
|
|
17
|
+
* :sparkles: Initial abstraction from homebridge plugin ([#1](https://github.com/mezaugusto/iotas-ts/issues/1)) ([8907c54](https://github.com/mezaugusto/iotas-ts/commit/8907c54d69be6c3f3d8702da8412b26bc6a62298))
|
|
18
|
+
* :sparkles: Use fire-and-forget for feature update ([#8](https://github.com/mezaugusto/iotas-ts/issues/8)) ([b144cc7](https://github.com/mezaugusto/iotas-ts/commit/b144cc7f5a277df1a945b7a36cae07beddec70ff))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* :memo: add logs for reauth ([#16](https://github.com/mezaugusto/iotas-ts/issues/16)) ([62fb068](https://github.com/mezaugusto/iotas-ts/commit/62fb068c14bf0ce40588d6eea91bc3c7dbe9a2d8))
|
|
24
|
+
|
|
25
|
+
## [1.4.0](https://github.com/mezaugusto/iotas-ts/compare/v1.3.1...v1.4.0) (2026-04-13)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* :sparkles: Implement thermostat fan mode ([#18](https://github.com/mezaugusto/iotas-ts/issues/18)) ([1f8ed8f](https://github.com/mezaugusto/iotas-ts/commit/1f8ed8f6eaba0885fbdf9cef910bb04b998ae013))
|
|
31
|
+
|
|
32
|
+
## [1.3.1](https://github.com/mezaugusto/iotas-ts/compare/v1.3.0...v1.3.1) (2026-04-13)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
|
|
37
|
+
* :memo: add logs for reauth ([#16](https://github.com/mezaugusto/iotas-ts/issues/16)) ([62fb068](https://github.com/mezaugusto/iotas-ts/commit/62fb068c14bf0ce40588d6eea91bc3c7dbe9a2d8))
|
|
38
|
+
|
|
3
39
|
## [1.3.0](https://github.com/mezaugusto/iotas-ts/compare/v1.2.0...v1.3.0) (2026-04-13)
|
|
4
40
|
|
|
5
41
|
|
package/README.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# iotas-ts
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/iotas-ts)
|
|
4
|
+
|
|
5
|
+
TypeScript client library for the [IOTAS](https://www.iotashome.com/) smart home platform. Provides API access, device discovery, feature caching with background polling, and shared utilities for building IOTAS integrations.
|
|
6
|
+
|
|
7
|
+
Used by [homebridge-iotas](https://github.com/mezaugusto/homebridge-iotas) and [matterbridge-iotas](https://github.com/mezaugusto/matterbridge-iotas).
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **API Client** — authenticate, discover rooms/devices/features, read/write feature values
|
|
12
|
+
- **Feature Cache** — background polling with per-device write barriers, subscription model for push updates
|
|
13
|
+
- **Device Quirks** — automatic handling of Z-Wave reliability issues and lock timing
|
|
14
|
+
- **Thermostat Utilities** — mode parsing, temperature conversion (°F ↔ °C)
|
|
15
|
+
- **Device Helpers** — serial number, manufacturer/model extraction, feature lookups
|
|
16
|
+
- **Shared Constants** — thermostat defaults, battery threshold
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install iotas-ts
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Requires Node.js ^20.18.0, ^22.10.0, or ^24.0.0. ESM only.
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { IotasClient, FeatureCache } from 'iotas-ts';
|
|
30
|
+
|
|
31
|
+
// Create a client
|
|
32
|
+
const client = IotasClient.withCredentials(logger, 'email', 'password');
|
|
33
|
+
|
|
34
|
+
// Discover devices
|
|
35
|
+
const rooms = await client.getRooms();
|
|
36
|
+
|
|
37
|
+
// Set up cached polling
|
|
38
|
+
const cache = new FeatureCache(logger, client, { pollIntervalMs: 5000 });
|
|
39
|
+
cache.seed(rooms);
|
|
40
|
+
|
|
41
|
+
// Subscribe to changes
|
|
42
|
+
cache.subscribe(['featureId1', 'featureId2'], (changed) => {
|
|
43
|
+
for (const [id, value] of changed) {
|
|
44
|
+
console.log(`Feature ${id} changed to ${value}`);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
cache.start();
|
|
49
|
+
|
|
50
|
+
// Write a value (updates cache + sends API request)
|
|
51
|
+
cache.writeThrough('featureId1', 1);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## API
|
|
55
|
+
|
|
56
|
+
### IotasClient
|
|
57
|
+
|
|
58
|
+
High-level API client with JWT authentication, token refresh, and unit resolution.
|
|
59
|
+
|
|
60
|
+
| Method | Description |
|
|
61
|
+
|---|---|
|
|
62
|
+
| `withCredentials(log, email, password, unit?)` | Factory method |
|
|
63
|
+
| `getRooms()` | Discover all rooms, devices, and features |
|
|
64
|
+
| `getFeature(id)` | Look up a single feature by ID |
|
|
65
|
+
| `updateFeature(id, value)` | Send a PUT to update a feature value |
|
|
66
|
+
|
|
67
|
+
### FeatureCache
|
|
68
|
+
|
|
69
|
+
Background polling cache with write barriers and change subscriptions.
|
|
70
|
+
|
|
71
|
+
| Method | Description |
|
|
72
|
+
|---|---|
|
|
73
|
+
| `seed(rooms)` | Populate cache from a rooms snapshot |
|
|
74
|
+
| `get(featureId)` | Read cached value (synchronous) |
|
|
75
|
+
| `set(featureId, value)` | Update cache locally with write barrier |
|
|
76
|
+
| `writeThrough(featureId, value)` | Update cache + send API request |
|
|
77
|
+
| `subscribe(featureIds, callback)` | Watch for changes, returns disposer |
|
|
78
|
+
| `start()` / `stop()` / `reset()` | Polling lifecycle |
|
|
79
|
+
|
|
80
|
+
**Write barriers** prevent stale poll data from overwriting recent writes. Barriers are per-device: locks get a 15-second window (they take ~10s to actuate), other devices get 5 seconds. If a poll confirms the pending value, the barrier clears early.
|
|
81
|
+
|
|
82
|
+
### Utilities
|
|
83
|
+
|
|
84
|
+
| Export | Description |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `Temperature.toCelsius(f)` / `.toFahrenheit(c)` | Temperature conversion |
|
|
87
|
+
| `filterDevices(rooms, options)` | Allow/deny list filtering |
|
|
88
|
+
| `getSerialNumber(device)` / `getManufacturer(device)` / `getModel(device)` | Device metadata |
|
|
89
|
+
| `findFeatureByCategory(device, category)` | Find feature by category |
|
|
90
|
+
| `findFeatureByEventType(device, eventType)` | Find feature by event type |
|
|
91
|
+
| `isReadOnlyCategory(category)` / `isSupportedDevice(device)` | Device predicates |
|
|
92
|
+
| `parseThermostatModes(values)` / `getThermostatModeAt(modes, index)` | Thermostat mode helpers |
|
|
93
|
+
|
|
94
|
+
### Shared Constants
|
|
95
|
+
|
|
96
|
+
| Constant | Value | Description |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| `DEFAULT_CURRENT_TEMPERATURE_F` | `70` | Fallback current temperature |
|
|
99
|
+
| `DEFAULT_HEAT_SETPOINT_F` | `68` | Default heating setpoint |
|
|
100
|
+
| `DEFAULT_COOL_SETPOINT_F` | `76` | Default cooling setpoint |
|
|
101
|
+
| `LOW_BATTERY_THRESHOLD` | `20` | Battery level % for low warning |
|
|
102
|
+
|
|
103
|
+
## Development
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npm run build # Clean build (rm -rf dist && tsc)
|
|
107
|
+
npm run lint # ESLint
|
|
108
|
+
npm run format # Prettier format
|
|
109
|
+
npm run format:check # Prettier check
|
|
110
|
+
npm test # Build then run: tsc && node --test dist/test/*.test.js
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## License
|
|
114
|
+
|
|
115
|
+
[Apache-2.0](LICENSE)
|
package/dist/src/api/session.js
CHANGED
|
@@ -83,6 +83,7 @@ export class IotasSession {
|
|
|
83
83
|
this.refreshToken = data.refresh;
|
|
84
84
|
this.token = data.jwt;
|
|
85
85
|
this.onTokensChanged?.({ jwt: this.token, refresh: this.refreshToken });
|
|
86
|
+
this.log.info('Authentication with IOTAS successful');
|
|
86
87
|
return this.token;
|
|
87
88
|
}
|
|
88
89
|
catch (error) {
|
|
@@ -123,7 +124,7 @@ export class IotasSession {
|
|
|
123
124
|
return this.token;
|
|
124
125
|
}
|
|
125
126
|
catch (error) {
|
|
126
|
-
this.log.
|
|
127
|
+
this.log.warn('Token refresh failed, falling back to full re-authentication:', error instanceof Error ? error.message : String(error));
|
|
127
128
|
this.authenticateRequest = null;
|
|
128
129
|
return this.authenticateWithRetry();
|
|
129
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/api/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/api/session.ts"],"names":[],"mappings":"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"}
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare const EventTypeName: {
|
|
|
3
3
|
readonly Level: "Level";
|
|
4
4
|
readonly Temperature: "Temperature";
|
|
5
5
|
readonly ThermostatMode: "ThermostatMode";
|
|
6
|
+
readonly FanMode: "FanMode";
|
|
6
7
|
readonly Lock: "Lock";
|
|
7
8
|
};
|
|
8
9
|
export type EventTypeName = (typeof EventTypeName)[keyof typeof EventTypeName];
|
|
@@ -16,6 +17,9 @@ export declare const FeatureCategory: {
|
|
|
16
17
|
readonly Battery: "battery";
|
|
17
18
|
readonly Humidity: "humidity";
|
|
18
19
|
readonly Motion: "motion";
|
|
20
|
+
readonly FanMode: "fan_mode";
|
|
21
|
+
readonly AutoRelock: "auto_relock";
|
|
22
|
+
readonly AutoRelockTimeout: "auto_relock_timeout";
|
|
19
23
|
readonly DoorState: "door_state";
|
|
20
24
|
};
|
|
21
25
|
export type FeatureCategory = (typeof FeatureCategory)[keyof typeof FeatureCategory];
|
package/dist/src/constants.js
CHANGED
|
@@ -3,6 +3,7 @@ export const EventTypeName = {
|
|
|
3
3
|
Level: 'Level',
|
|
4
4
|
Temperature: 'Temperature',
|
|
5
5
|
ThermostatMode: 'ThermostatMode',
|
|
6
|
+
FanMode: 'FanMode',
|
|
6
7
|
Lock: 'Lock',
|
|
7
8
|
};
|
|
8
9
|
export const FeatureCategory = {
|
|
@@ -15,6 +16,9 @@ export const FeatureCategory = {
|
|
|
15
16
|
Battery: 'battery',
|
|
16
17
|
Humidity: 'humidity',
|
|
17
18
|
Motion: 'motion',
|
|
19
|
+
FanMode: 'fan_mode',
|
|
20
|
+
AutoRelock: 'auto_relock',
|
|
21
|
+
AutoRelockTimeout: 'auto_relock_timeout',
|
|
18
22
|
DoorState: 'door_state',
|
|
19
23
|
};
|
|
20
24
|
export const FeatureTypeName = {
|
|
@@ -46,6 +50,7 @@ export const DISCOVERY_EVENT_TYPES = new Set([
|
|
|
46
50
|
EventTypeName.OnOff,
|
|
47
51
|
EventTypeName.Level,
|
|
48
52
|
EventTypeName.ThermostatMode,
|
|
53
|
+
EventTypeName.FanMode,
|
|
49
54
|
EventTypeName.Lock,
|
|
50
55
|
]);
|
|
51
56
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,kBAAkB,EAAE,qBAAqB;IACzC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;CACf,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,SAAS;CACV,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,eAAe,CAAC,kBAAkB;IAClC,eAAe,CAAC,OAAO;IACvB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,SAAS;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,cAAc;IAC5B,aAAa,CAAC,IAAI;CACnB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,kBAAkB,EAAE,qBAAqB;IACzC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,aAAa;IACzB,iBAAiB,EAAE,qBAAqB;IACxC,SAAS,EAAE,YAAY;CACf,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,SAAS;CACV,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,eAAe,CAAC,kBAAkB;IAClC,eAAe,CAAC,OAAO;IACvB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,SAAS;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,cAAc;IAC5B,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,IAAI;CACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum FanMode {
|
|
2
|
+
AutoLow = 0,
|
|
3
|
+
OnLow = 1,
|
|
4
|
+
Circulate = 2,
|
|
5
|
+
Unknown = -1
|
|
6
|
+
}
|
|
7
|
+
export declare function parseFanModeString(modeStr: string): FanMode;
|
|
8
|
+
export declare function parseFanModes(valuesString?: string): FanMode[];
|
|
9
|
+
export declare function getFanModeAt(modes: FanMode[], index: number): FanMode;
|
|
10
|
+
export declare function findFanModeIndex(modes: FanMode[], mode: FanMode): number;
|
package/dist/src/fan.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export var FanMode;
|
|
2
|
+
(function (FanMode) {
|
|
3
|
+
FanMode[FanMode["AutoLow"] = 0] = "AutoLow";
|
|
4
|
+
FanMode[FanMode["OnLow"] = 1] = "OnLow";
|
|
5
|
+
FanMode[FanMode["Circulate"] = 2] = "Circulate";
|
|
6
|
+
FanMode[FanMode["Unknown"] = -1] = "Unknown";
|
|
7
|
+
})(FanMode || (FanMode = {}));
|
|
8
|
+
export function parseFanModeString(modeStr) {
|
|
9
|
+
const lower = modeStr.toLowerCase().trim();
|
|
10
|
+
if (lower.includes('auto')) {
|
|
11
|
+
return FanMode.AutoLow;
|
|
12
|
+
}
|
|
13
|
+
if (lower.includes('on')) {
|
|
14
|
+
return FanMode.OnLow;
|
|
15
|
+
}
|
|
16
|
+
if (lower.includes('circulate')) {
|
|
17
|
+
return FanMode.Circulate;
|
|
18
|
+
}
|
|
19
|
+
return FanMode.Unknown;
|
|
20
|
+
}
|
|
21
|
+
export function parseFanModes(valuesString) {
|
|
22
|
+
if (!valuesString) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
return valuesString.split(':').map(parseFanModeString);
|
|
26
|
+
}
|
|
27
|
+
export function getFanModeAt(modes, index) {
|
|
28
|
+
if (index < 0 || index >= modes.length) {
|
|
29
|
+
return FanMode.AutoLow;
|
|
30
|
+
}
|
|
31
|
+
return modes[index];
|
|
32
|
+
}
|
|
33
|
+
export function findFanModeIndex(modes, mode) {
|
|
34
|
+
return modes.indexOf(mode);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=fan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fan.js","sourceRoot":"","sources":["../../src/fan.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,2CAAW,CAAA;IACX,uCAAS,CAAA;IACT,+CAAa,CAAA;IACb,4CAAY,CAAA;AACd,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAAqB;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAgB,EAAE,KAAa;IAC1D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgB,EAAE,IAAa;IAC9D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -8,5 +8,7 @@ export type { DeviceFilterOptions } from './utils.js';
|
|
|
8
8
|
export { EventTypeName, FeatureCategory, FeatureTypeName, DeviceCategory, isDeviceCategory, READ_ONLY_CATEGORIES, DISCOVERY_EVENT_TYPES, } from './constants.js';
|
|
9
9
|
export { getSerialNumber, getManufacturer, getModel, findFeatureByCategory, findFeatureByEventType } from './device.js';
|
|
10
10
|
export { isReadOnlyCategory, isSupportedFeature, isDiscoverableFeature, isSupportedDevice } from './predicates.js';
|
|
11
|
-
export { ThermostatMode, parseThermostatModes, getThermostatModeAt, findThermostatModeIndex
|
|
11
|
+
export { ThermostatMode, parseThermostatModes, getThermostatModeAt, findThermostatModeIndex } from './thermostat.js';
|
|
12
|
+
export { FanMode, parseFanModeString, parseFanModes, getFanModeAt, findFanModeIndex } from './fan.js';
|
|
13
|
+
export { autoRelockSeconds, isAutoRelockEnabled } from './lock.js';
|
|
12
14
|
export { DEFAULT_CURRENT_TEMPERATURE_F, DEFAULT_HEAT_SETPOINT_F, DEFAULT_COOL_SETPOINT_F, LOW_BATTERY_THRESHOLD, } from './defaults.js';
|
package/dist/src/index.js
CHANGED
|
@@ -4,6 +4,8 @@ export { Temperature, filterDevices } from './utils.js';
|
|
|
4
4
|
export { EventTypeName, FeatureCategory, FeatureTypeName, DeviceCategory, isDeviceCategory, READ_ONLY_CATEGORIES, DISCOVERY_EVENT_TYPES, } from './constants.js';
|
|
5
5
|
export { getSerialNumber, getManufacturer, getModel, findFeatureByCategory, findFeatureByEventType } from './device.js';
|
|
6
6
|
export { isReadOnlyCategory, isSupportedFeature, isDiscoverableFeature, isSupportedDevice } from './predicates.js';
|
|
7
|
-
export { ThermostatMode, parseThermostatModes, getThermostatModeAt, findThermostatModeIndex
|
|
7
|
+
export { ThermostatMode, parseThermostatModes, getThermostatModeAt, findThermostatModeIndex } from './thermostat.js';
|
|
8
|
+
export { FanMode, parseFanModeString, parseFanModes, getFanModeAt, findFanModeIndex } from './fan.js';
|
|
9
|
+
export { autoRelockSeconds, isAutoRelockEnabled } from './lock.js';
|
|
8
10
|
export { DEFAULT_CURRENT_TEMPERATURE_F, DEFAULT_HEAT_SETPOINT_F, DEFAULT_COOL_SETPOINT_F, LOW_BATTERY_THRESHOLD, } from './defaults.js';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAcvD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEnH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAcvD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEnH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAErH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtG,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
|
package/dist/src/lock.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lock.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,cAAsB;IACvE,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC"}
|