daikin-local-control 0.3.0 → 0.4.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.
Files changed (114) hide show
  1. package/DESIGN.md +113 -2
  2. package/README.md +131 -13
  3. package/UNSUPPORTED.md +42 -4
  4. package/dist/clients/classic.d.ts +2 -2
  5. package/dist/clients/classic.d.ts.map +1 -1
  6. package/dist/clients/classic.js +4 -4
  7. package/dist/clients/classic.js.map +1 -1
  8. package/dist/clients/client.d.ts +6 -2
  9. package/dist/clients/client.d.ts.map +1 -1
  10. package/dist/clients/dsiot.d.ts +3 -1
  11. package/dist/clients/dsiot.d.ts.map +1 -1
  12. package/dist/clients/dsiot.js +11 -3
  13. package/dist/clients/dsiot.js.map +1 -1
  14. package/dist/codecs/classic/capabilities.d.ts.map +1 -1
  15. package/dist/codecs/classic/capabilities.js +5 -11
  16. package/dist/codecs/classic/capabilities.js.map +1 -1
  17. package/dist/codecs/classic/extendedControl.d.ts.map +1 -1
  18. package/dist/codecs/classic/extendedControl.js +10 -19
  19. package/dist/codecs/classic/extendedControl.js.map +1 -1
  20. package/dist/codecs/classic/state.d.ts.map +1 -1
  21. package/dist/codecs/classic/state.js +36 -95
  22. package/dist/codecs/classic/state.js.map +1 -1
  23. package/dist/codecs/classic/tables.d.ts +32 -0
  24. package/dist/codecs/classic/tables.d.ts.map +1 -0
  25. package/dist/codecs/classic/tables.js +94 -0
  26. package/dist/codecs/classic/tables.js.map +1 -0
  27. package/dist/codecs/credentials.d.ts +3 -2
  28. package/dist/codecs/credentials.d.ts.map +1 -1
  29. package/dist/codecs/credentials.js +8 -3
  30. package/dist/codecs/credentials.js.map +1 -1
  31. package/dist/codecs/device.d.ts +2 -1
  32. package/dist/codecs/device.d.ts.map +1 -1
  33. package/dist/codecs/device.js +7 -6
  34. package/dist/codecs/device.js.map +1 -1
  35. package/dist/codecs/dsiot/capabilities.d.ts.map +1 -1
  36. package/dist/codecs/dsiot/capabilities.js +8 -15
  37. package/dist/codecs/dsiot/capabilities.js.map +1 -1
  38. package/dist/codecs/dsiot/device.d.ts +4 -2
  39. package/dist/codecs/dsiot/device.d.ts.map +1 -1
  40. package/dist/codecs/dsiot/device.js +8 -8
  41. package/dist/codecs/dsiot/device.js.map +1 -1
  42. package/dist/codecs/dsiot/multireq.d.ts +0 -18
  43. package/dist/codecs/dsiot/multireq.d.ts.map +1 -1
  44. package/dist/codecs/dsiot/multireq.js +2 -24
  45. package/dist/codecs/dsiot/multireq.js.map +1 -1
  46. package/dist/codecs/dsiot/state.d.ts +6 -62
  47. package/dist/codecs/dsiot/state.d.ts.map +1 -1
  48. package/dist/codecs/dsiot/state.js +29 -148
  49. package/dist/codecs/dsiot/state.js.map +1 -1
  50. package/dist/codecs/dsiot/tables.d.ts +116 -0
  51. package/dist/codecs/dsiot/tables.d.ts.map +1 -0
  52. package/dist/codecs/dsiot/tables.js +185 -0
  53. package/dist/codecs/dsiot/tables.js.map +1 -0
  54. package/dist/discovery.d.ts +2 -1
  55. package/dist/discovery.d.ts.map +1 -1
  56. package/dist/discovery.js +9 -5
  57. package/dist/discovery.js.map +1 -1
  58. package/dist/factory.d.ts +7 -4
  59. package/dist/factory.d.ts.map +1 -1
  60. package/dist/factory.js +4 -2
  61. package/dist/factory.js.map +1 -1
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/models/device.d.ts +3 -1
  67. package/dist/models/device.d.ts.map +1 -1
  68. package/dist/models/state.d.ts +2 -3
  69. package/dist/models/state.d.ts.map +1 -1
  70. package/dist/simulators/classic.d.ts +61 -0
  71. package/dist/simulators/classic.d.ts.map +1 -0
  72. package/dist/simulators/classic.js +473 -0
  73. package/dist/simulators/classic.js.map +1 -0
  74. package/dist/simulators/dsiot.d.ts +49 -0
  75. package/dist/simulators/dsiot.d.ts.map +1 -0
  76. package/dist/simulators/dsiot.js +519 -0
  77. package/dist/simulators/dsiot.js.map +1 -0
  78. package/dist/simulators/index.d.ts +4 -0
  79. package/dist/simulators/index.d.ts.map +1 -0
  80. package/dist/simulators/index.js +3 -0
  81. package/dist/simulators/index.js.map +1 -0
  82. package/dist/simulators/simulator.d.ts +116 -0
  83. package/dist/simulators/simulator.d.ts.map +1 -0
  84. package/dist/simulators/simulator.js +141 -0
  85. package/dist/simulators/simulator.js.map +1 -0
  86. package/dist/transport.d.ts +6 -2
  87. package/dist/transport.d.ts.map +1 -1
  88. package/dist/transport.js +7 -2
  89. package/dist/transport.js.map +1 -1
  90. package/package.json +5 -2
  91. package/src/clients/classic.ts +8 -8
  92. package/src/clients/client.ts +7 -1
  93. package/src/clients/dsiot.ts +12 -2
  94. package/src/codecs/classic/capabilities.ts +8 -11
  95. package/src/codecs/classic/extendedControl.ts +14 -25
  96. package/src/codecs/classic/state.ts +49 -101
  97. package/src/codecs/classic/tables.ts +123 -0
  98. package/src/codecs/credentials.ts +11 -3
  99. package/src/codecs/device.ts +8 -7
  100. package/src/codecs/dsiot/capabilities.ts +10 -17
  101. package/src/codecs/dsiot/device.ts +8 -9
  102. package/src/codecs/dsiot/multireq.ts +2 -24
  103. package/src/codecs/dsiot/state.ts +57 -193
  104. package/src/codecs/dsiot/tables.ts +249 -0
  105. package/src/discovery.ts +9 -5
  106. package/src/factory.ts +7 -4
  107. package/src/index.ts +2 -0
  108. package/src/models/device.ts +3 -1
  109. package/src/models/state.ts +2 -3
  110. package/src/simulators/classic.ts +635 -0
  111. package/src/simulators/dsiot.ts +736 -0
  112. package/src/simulators/index.ts +9 -0
  113. package/src/simulators/simulator.ts +281 -0
  114. package/src/transport.ts +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAcvD,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;kCASkC;AAClC,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,YAAY,EAAE,CAAC,CA+CzB"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAcvD,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;kCAUkC;AAClC,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,YAAY,EAAE,CAAC,CAkDzB"}
package/dist/discovery.js CHANGED
@@ -19,7 +19,8 @@ const PROBE_INTERVAL_IN_MS = 200;
19
19
  * datagram whose `ret` is not `OK`.
20
20
  *
21
21
  * It resolves once `timeoutInMs` has passed, never earlier, with one device
22
- * per replying address. It binds UDP port 30000, and rejects with the socket's
22
+ * for each `host` that replied: the address a reply came from, with the port
23
+ * the reply announces. It binds UDP port 30000, and rejects with the socket's
23
24
  * error when the socket fails. */
24
25
  export async function discoverDevices(options = {}) {
25
26
  const socket = createSocket({ type: "udp4", reuseAddr: true });
@@ -40,14 +41,17 @@ export async function discoverDevices(options = {}) {
40
41
  reject(error);
41
42
  });
42
43
  socket.on("message", (message, remote) => {
43
- if (devices.has(remote.address)) {
44
- return;
45
- }
46
44
  const fields = parseClassicKeyValue(message.toString("utf8"));
47
45
  if (!isClassicOk(fields)) {
48
46
  return;
49
47
  }
50
- devices.set(remote.address, parseDevice(remote.address, fields));
48
+ // An adapter answers each of the probes, so the first reply from a
49
+ // host is kept. Adapters at one address, as simulators on one machine
50
+ // are, differ by the port they announce.
51
+ const device = parseDevice(remote.address, fields);
52
+ if (!devices.has(device.host)) {
53
+ devices.set(device.host, device);
54
+ }
51
55
  });
52
56
  socket.bind(DISCOVERY_SEND_PORT, () => {
53
57
  socket.setBroadcast(true);
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
package/dist/factory.d.ts CHANGED
@@ -2,8 +2,9 @@ import type { DaikinClient } from "./clients/client.js";
2
2
  import type { DaikinDevice } from "./models/device.js";
3
3
  import { type DaikinRetryOptions, type DaikinTlsOptions } from "./transport.js";
4
4
  export interface CreateDaikinClientOptions {
5
- /** The terminal uuid, sent as `X-Daikin-uuid`. Generate one and reuse it:
6
- * an adapter that requires registration remembers it. */
5
+ /** The terminal uuid, sent as `X-Daikin-uuid`: 32 lowercase hexadecimal
6
+ * digits, a UUID without its dashes. Generate one and reuse it: an adapter
7
+ * that requires registration remembers it. */
7
8
  terminalUuid: string;
8
9
  /** The child lock code, for a device whose `requiresLocalPassword` is true. */
9
10
  localPassword?: string;
@@ -27,7 +28,9 @@ export interface CreateDaikinClientOptions {
27
28
  /** Builds the client for a device: a `DsiotDaikinClient` when
28
29
  * `device.protocol` is `dsiot`, a `ClassicDaikinClient` otherwise. The client
29
30
  * sends over HTTPS when `device.usesHttps` is set, and sends the local
30
- * password when `options.localPassword` is given. Call `close` on the client
31
- * when done with the unit. */
31
+ * password when `options.localPassword` is given. It throws an `Error` when
32
+ * `options.terminalUuid` is not in the form
33
+ * `CreateDaikinClientOptions.terminalUuid` describes. Call `close` on the
34
+ * client when done with the unit. */
32
35
  export declare function createDaikinClient(device: DaikinDevice, options: CreateDaikinClientOptions): DaikinClient;
33
36
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,yBAAyB;IACxC;6DACyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;0DACsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;0CAEsC;IACtC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B;;;;;4CAKwC;IACxC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kFAAkF;IAClF,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;8BAI8B;AAC9B,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,yBAAyB,GACjC,YAAY,CAqBd"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,yBAAyB;IACxC;;kDAE8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;0DACsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;0CAEsC;IACtC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B;;;;;4CAKwC;IACxC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kFAAkF;IAClF,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;qCAMqC;AACrC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,yBAAyB,GACjC,YAAY,CAqBd"}
package/dist/factory.js CHANGED
@@ -5,8 +5,10 @@ import { DaikinTransport, } from "./transport.js";
5
5
  /** Builds the client for a device: a `DsiotDaikinClient` when
6
6
  * `device.protocol` is `dsiot`, a `ClassicDaikinClient` otherwise. The client
7
7
  * sends over HTTPS when `device.usesHttps` is set, and sends the local
8
- * password when `options.localPassword` is given. Call `close` on the client
9
- * when done with the unit. */
8
+ * password when `options.localPassword` is given. It throws an `Error` when
9
+ * `options.terminalUuid` is not in the form
10
+ * `CreateDaikinClientOptions.terminalUuid` describes. Call `close` on the
11
+ * client when done with the unit. */
10
12
  export function createDaikinClient(device, options) {
11
13
  const transport = new DaikinTransport({
12
14
  host: device.host,
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAElC,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAGL,eAAe,GAChB,MAAM,gBAAgB,CAAC;AA0BxB;;;;8BAI8B;AAC9B,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,OAAkC;IAElC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;QACpC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC;QAC1E,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO;QAChC,CAAC,CAAC,IAAI,iBAAiB,CACnB,SAAS,EACT,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,0BAA0B,CACnC;QACH,CAAC,CAAC,IAAI,mBAAmB,CACrB,SAAS,EACT,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,0BAA0B,CACnC,CAAC;AACR,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAoB,EACpB,aAAiC;IAEjC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO;QAChC,CAAC,CAAC,IAAI,gCAAgC,CAAC,aAAa,CAAC;QACrD,CAAC,CAAC,IAAI,kCAAkC,CAAC,aAAa,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAElC,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAGL,eAAe,GAChB,MAAM,gBAAgB,CAAC;AA2BxB;;;;;;qCAMqC;AACrC,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,OAAkC;IAElC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;QACpC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC;QAC1E,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO;QAChC,CAAC,CAAC,IAAI,iBAAiB,CACnB,SAAS,EACT,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,0BAA0B,CACnC;QACH,CAAC,CAAC,IAAI,mBAAmB,CACrB,SAAS,EACT,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,0BAA0B,CACnC,CAAC;AACR,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAoB,EACpB,aAAiC;IAEjC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO;QAChC,CAAC,CAAC,IAAI,gCAAgC,CAAC,aAAa,CAAC;QACrD,CAAC,CAAC,IAAI,kCAAkC,CAAC,aAAa,CAAC,CAAC;AAC5D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,12 +6,14 @@ export * from "./codecs/classic/capabilities.js";
6
6
  export * from "./codecs/classic/extendedControl.js";
7
7
  export * from "./codecs/classic/keyValue.js";
8
8
  export * from "./codecs/classic/state.js";
9
+ export * from "./codecs/classic/tables.js";
9
10
  export * from "./codecs/credentials.js";
10
11
  export * from "./codecs/device.js";
11
12
  export * from "./codecs/dsiot/capabilities.js";
12
13
  export * from "./codecs/dsiot/device.js";
13
14
  export * from "./codecs/dsiot/multireq.js";
14
15
  export * from "./codecs/dsiot/state.js";
16
+ export * from "./codecs/dsiot/tables.js";
15
17
  export * from "./discovery.js";
16
18
  export * from "./error.js";
17
19
  export * from "./factory.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -5,12 +5,14 @@ export * from "./codecs/classic/capabilities.js";
5
5
  export * from "./codecs/classic/extendedControl.js";
6
6
  export * from "./codecs/classic/keyValue.js";
7
7
  export * from "./codecs/classic/state.js";
8
+ export * from "./codecs/classic/tables.js";
8
9
  export * from "./codecs/credentials.js";
9
10
  export * from "./codecs/device.js";
10
11
  export * from "./codecs/dsiot/capabilities.js";
11
12
  export * from "./codecs/dsiot/device.js";
12
13
  export * from "./codecs/dsiot/multireq.js";
13
14
  export * from "./codecs/dsiot/state.js";
15
+ export * from "./codecs/dsiot/tables.js";
14
16
  export * from "./discovery.js";
15
17
  export * from "./error.js";
16
18
  export * from "./factory.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
@@ -7,6 +7,9 @@ export type DaikinProtocol = (typeof DAIKIN_PROTOCOLS)[number];
7
7
  * each `DaikinDevice`, and `DaikinClient.getDeviceInfo` reads it for a device
8
8
  * written by hand. */
9
9
  export interface DaikinDeviceInfo {
10
+ /** The name the adapter was given, such as `Bedroom`. Left out when the
11
+ * adapter reports none. */
12
+ name?: string;
10
13
  /** In pairs joined by colons, in the letter case the adapter sends, such as
11
14
  * `A4:08:EA:CC:91:D4`. Left out when the adapter reports none. */
12
15
  macAddress?: string;
@@ -22,7 +25,6 @@ export interface DaikinDevice extends DaikinDeviceInfo {
22
25
  /** Address, with `:port` when the adapter announces one. */
23
26
  host: string;
24
27
  protocol: DaikinProtocol;
25
- name?: string;
26
28
  /** The adapter answers a terminal uuid only once it is registered with the
27
29
  * KEY on the adapter's label (`registerTerminal`). Classic only. */
28
30
  requiresRegistration?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/models/device.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAAI,SAAS,EAAE,OAAO,CAAU,CAAC;AAE9D;;uEAEuE;AACvE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;sBAEsB;AACtB,MAAM,WAAW,gBAAgB;IAC/B;sEACkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;8DAC0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;iBAGiB;AACjB,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;wEACoE;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;2BACuB;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/models/device.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAAI,SAAS,EAAE,OAAO,CAAU,CAAC;AAE9D;;uEAEuE;AACvE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;sBAEsB;AACtB,MAAM,WAAW,gBAAgB;IAC/B;+BAC2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;sEACkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;8DAC0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;iBAGiB;AACjB,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB;wEACoE;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;2BACuB;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
@@ -50,9 +50,8 @@ export interface DaikinState {
50
50
  * fields to change. The client overlays the control on the state the unit
51
51
  * holds, and writes the whole state back. It drops a field the unit does not take in
52
52
  * the target mode, such as a louver position outside
53
- * `DaikinCapabilities.verticalPositions`. It takes no `specialModes`: a
54
- * classic adapter is set one with `ClassicDaikinClient.setSpecialMode`, and
55
- * UNSUPPORTED.md says what is not known about the rest. */
53
+ * `DaikinCapabilities.verticalPositions`. It takes no `specialModes`:
54
+ * `DaikinClient.setSpecialMode` turns one on or off. */
56
55
  export type DaikinControl = Partial<Omit<DaikinState, "specialModes">>;
57
56
  /** A reading is `null` when the unit does not report it. */
58
57
  export interface DaikinSensors {
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/models/state.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,YAC1B,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,KAAK,CACG,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,UAAU,YACrB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,WAAW,YAAI,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAE9E;;;uCAGuC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,YACjC,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,CACH,CAAC;AAEX,eAAO,MAAM,kBAAkB,oIAOrB,CAAC;AAEX;uDACuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,oBAAoB,qGAKvB,CAAC;AAEX,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,iBAAiB,YAC5B,KAAK,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,YAAY,CACJ,CAAC;AAEX,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;6EAC6E;AAC7E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,eAAO,MAAM,aAAa,YAAI,UAAU,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oDAAoD;IACpD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB;6BACyB;IACzB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;+BAC2B;IAC3B,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C;yEACqE;IACrE,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED;;;;;;2DAM2D;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;AAEvE,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/models/state.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,YAC1B,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,KAAK,CACG,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,UAAU,YACrB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,WAAW,YAAI,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAE9E;;;uCAGuC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,YACjC,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,CACH,CAAC;AAEX,eAAO,MAAM,kBAAkB,oIAOrB,CAAC;AAEX;uDACuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,oBAAoB,qGAKvB,CAAC;AAEX,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,iBAAiB,YAC5B,KAAK,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,YAAY,CACJ,CAAC;AAEX,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;6EAC6E;AAC7E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,eAAO,MAAM,aAAa,YAAI,UAAU,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oDAAoD;IACpD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB;6BACyB;IACzB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;+BAC2B;IAC3B,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C;yEACqE;IACrE,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED;;;;;wDAKwD;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;AAEvE,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB"}
@@ -0,0 +1,61 @@
1
+ import { type DaikinSimulator, type DaikinSimulatorUnit, type StartSimulatorOptions } from "./simulator.js";
2
+ /** What a simulated classic unit has. */
3
+ export interface ClassicSimulatorUnit extends DaikinSimulatorUnit {
4
+ /** How many fan levels the unit takes: `level1` and `level5` for 2,
5
+ * `level3` as well for 3, and all five for 5. Defaults to 5. */
6
+ fanLevels?: 2 | 3 | 5;
7
+ }
8
+ export interface StartClassicSimulatorOptions extends StartSimulatorOptions {
9
+ /** What the unit has. Defaults to a heat pump with every fan speed, swing
10
+ * on both axes and all three special modes. A field of `modelInfo`
11
+ * replaces what this sets. */
12
+ unit?: ClassicSimulatorUnit;
13
+ /** Fields added to the `/common/basic_info` reply, each replacing a default
14
+ * of the same name. Defaults to none. */
15
+ basicInfo?: Record<string, string>;
16
+ /** Fields added to the `/aircon/get_model_info` reply, each replacing a
17
+ * default of the same name. Defaults to none. */
18
+ modelInfo?: Record<string, string>;
19
+ /** Fields added to the `/aircon/get_control_info` reply, each replacing a
20
+ * default of the same name. Defaults to none. */
21
+ controlInfo?: Record<string, string>;
22
+ /** Fields added to the `/aircon/get_sensor_info` reply, each replacing a
23
+ * default of the same name. Defaults to none. */
24
+ sensorInfo?: Record<string, string>;
25
+ /** The KEY on the adapter's label. With one, the adapter requires
26
+ * registration: it reports `en_secure=1`, and answers a terminal uuid with
27
+ * HTTP 403 until `/common/register_terminal` is sent this key. Defaults to
28
+ * none: every terminal is answered. */
29
+ key?: string;
30
+ /** The child lock code. With one, the adapter reports `lpw_flag=1`, and
31
+ * answers `ret=LPW NG` to a request whose `lpw` is not this code. Defaults
32
+ * to none: no request needs an `lpw`. */
33
+ localPassword?: string;
34
+ }
35
+ /** A classic adapter and the unit behind it. Each field map is what its
36
+ * endpoint answers, in the adapter's own names and encodings, without the
37
+ * `ret`. A write through the adapter changes them, and so do `setState` and
38
+ * `setSensors`. Change a field directly for what those two do not cover. */
39
+ export interface ClassicDaikinSimulator extends DaikinSimulator {
40
+ /** What `/common/basic_info` answers. `name` and `grp_name` are held
41
+ * percent-encoded, as the reply carries them. */
42
+ readonly basicInfo: Record<string, string>;
43
+ /** What `/aircon/get_model_info` answers. */
44
+ readonly modelInfo: Record<string, string>;
45
+ /** What `/aircon/get_control_info` answers. */
46
+ readonly controlInfo: Record<string, string>;
47
+ /** What `/aircon/get_sensor_info` answers. */
48
+ readonly sensorInfo: Record<string, string>;
49
+ /** What `/common/get_remote_method` answers. */
50
+ readonly remoteMethod: Record<string, string>;
51
+ /** The terminal uuids `/common/register_terminal` has registered. Only an
52
+ * adapter started with a `key` checks them. */
53
+ readonly registeredTerminalUuids: Set<string>;
54
+ }
55
+ /** Starts a classic adapter on a free port, as a heat pump that is off, in
56
+ * cool at 24 °C. It answers the endpoints `ClassicDaikinClient` has a typed
57
+ * method for, over HTTP, and answers any other request with HTTP 501:
58
+ * UNSUPPORTED.md lists what it leaves out and where its answer is not known
59
+ * to be an adapter's. Call `stop` when done with it. */
60
+ export declare function startClassicSimulator(options?: StartClassicSimulatorOptions): Promise<ClassicDaikinSimulator>;
61
+ //# sourceMappingURL=classic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classic.d.ts","sourceRoot":"","sources":["../../src/simulators/classic.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EAGxB,KAAK,qBAAqB,EAG3B,MAAM,gBAAgB,CAAC;AAoHxB,yCAAyC;AACzC,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D;oEACgE;IAChE,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE;;kCAE8B;IAC9B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;6CACyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;qDACiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;qDACiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;qDACiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;;2CAGuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;6CAEyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;4EAG4E;AAC5E,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D;qDACiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;mDAC+C;IAC/C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED;;;;wDAIwD;AACxD,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CA+LjC"}