sesame-kit 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.
- package/LICENSE +26 -0
- package/LICENSE.biz3 +21 -0
- package/README.ja.md +225 -0
- package/README.md +222 -0
- package/bin/sesame.js +8 -0
- package/clients/js/sesame-client.mjs +208 -0
- package/clients/python/pyproject.toml +5 -0
- package/clients/python/sesame_client.py +323 -0
- package/clients/python/setup.cfg +11 -0
- package/docs/architecture.ja.md +132 -0
- package/docs/architecture.md +105 -0
- package/docs/commands.ja.md +316 -0
- package/docs/commands.md +308 -0
- package/docs/library.ja.md +152 -0
- package/docs/library.md +152 -0
- package/docs/migration.ja.md +13 -0
- package/docs/migration.md +13 -0
- package/package.json +114 -0
- package/src/access.js +375 -0
- package/src/account.js +36 -0
- package/src/auth.js +248 -0
- package/src/ble/devicemodel.js +164 -0
- package/src/ble/index.js +185 -0
- package/src/ble/protocol.js +319 -0
- package/src/ble/session.js +235 -0
- package/src/ble/transport.js +279 -0
- package/src/cli/access.js +373 -0
- package/src/cli/company.js +104 -0
- package/src/cli/iot.js +400 -0
- package/src/cli/org.js +788 -0
- package/src/cli/presetir.js +188 -0
- package/src/cli/schedule.js +83 -0
- package/src/cli/serve.js +308 -0
- package/src/cli.js +1815 -0
- package/src/client.js +957 -0
- package/src/company.js +147 -0
- package/src/config.js +575 -0
- package/src/crypto.js +162 -0
- package/src/devices.js +228 -0
- package/src/index.js +55 -0
- package/src/iot.js +513 -0
- package/src/ir.js +341 -0
- package/src/itemcodes.js +29 -0
- package/src/lock.js +194 -0
- package/src/org.js +803 -0
- package/src/paths.js +30 -0
- package/src/presetir.js +525 -0
- package/src/prompts.js +74 -0
- package/src/schedule.js +108 -0
- package/src/serve/daemon.js +251 -0
- package/src/serve/framing/grpc.js +145 -0
- package/src/serve/framing/http.js +144 -0
- package/src/serve/framing/ndjson.js +75 -0
- package/src/serve/framing/socket.js +73 -0
- package/src/serve/framing/stdio.js +28 -0
- package/src/serve/framing/token.js +36 -0
- package/src/serve/framing/ws.js +56 -0
- package/src/serve/grpc-methods.generated.json +378 -0
- package/src/serve/jsonrpc.js +164 -0
- package/src/serve/registry.js +226 -0
- package/src/serve/rpc-params.generated.json +1746 -0
- package/src/serve/sesame.proto +470 -0
- package/src/session-ui.js +181 -0
- package/src/sharekey.js +130 -0
- package/src/tokens.js +53 -0
- package/src/transport.js +634 -0
- package/src/util.js +26 -0
- package/types/access.d.ts +193 -0
- package/types/access.d.ts.map +1 -0
- package/types/account.d.ts +13 -0
- package/types/account.d.ts.map +1 -0
- package/types/auth.d.ts +80 -0
- package/types/auth.d.ts.map +1 -0
- package/types/ble/devicemodel.d.ts +212 -0
- package/types/ble/devicemodel.d.ts.map +1 -0
- package/types/ble/index.d.ts +160 -0
- package/types/ble/index.d.ts.map +1 -0
- package/types/ble/protocol.d.ts +201 -0
- package/types/ble/protocol.d.ts.map +1 -0
- package/types/ble/session.d.ts +129 -0
- package/types/ble/session.d.ts.map +1 -0
- package/types/ble/transport.d.ts +67 -0
- package/types/ble/transport.d.ts.map +1 -0
- package/types/cli/access.d.ts +6 -0
- package/types/cli/access.d.ts.map +1 -0
- package/types/cli/company.d.ts +6 -0
- package/types/cli/company.d.ts.map +1 -0
- package/types/cli/iot.d.ts +6 -0
- package/types/cli/iot.d.ts.map +1 -0
- package/types/cli/org.d.ts +6 -0
- package/types/cli/org.d.ts.map +1 -0
- package/types/cli/presetir.d.ts +6 -0
- package/types/cli/presetir.d.ts.map +1 -0
- package/types/cli/schedule.d.ts +6 -0
- package/types/cli/schedule.d.ts.map +1 -0
- package/types/cli/serve.d.ts +2 -0
- package/types/cli/serve.d.ts.map +1 -0
- package/types/cli.d.ts +2 -0
- package/types/cli.d.ts.map +1 -0
- package/types/client.d.ts +463 -0
- package/types/client.d.ts.map +1 -0
- package/types/company.d.ts +94 -0
- package/types/company.d.ts.map +1 -0
- package/types/config.d.ts +111 -0
- package/types/config.d.ts.map +1 -0
- package/types/crypto.d.ts +61 -0
- package/types/crypto.d.ts.map +1 -0
- package/types/devices.d.ts +116 -0
- package/types/devices.d.ts.map +1 -0
- package/types/index.d.ts +23 -0
- package/types/index.d.ts.map +1 -0
- package/types/iot.d.ts +312 -0
- package/types/iot.d.ts.map +1 -0
- package/types/ir.d.ts +147 -0
- package/types/ir.d.ts.map +1 -0
- package/types/itemcodes.d.ts +21 -0
- package/types/itemcodes.d.ts.map +1 -0
- package/types/lock.d.ts +89 -0
- package/types/lock.d.ts.map +1 -0
- package/types/org.d.ts +468 -0
- package/types/org.d.ts.map +1 -0
- package/types/paths.d.ts +10 -0
- package/types/paths.d.ts.map +1 -0
- package/types/presetir.d.ts +286 -0
- package/types/presetir.d.ts.map +1 -0
- package/types/prompts.d.ts +39 -0
- package/types/prompts.d.ts.map +1 -0
- package/types/schedule.d.ts +71 -0
- package/types/schedule.d.ts.map +1 -0
- package/types/serve/daemon.d.ts +133 -0
- package/types/serve/daemon.d.ts.map +1 -0
- package/types/serve/framing/grpc.d.ts +14 -0
- package/types/serve/framing/grpc.d.ts.map +1 -0
- package/types/serve/framing/http.d.ts +14 -0
- package/types/serve/framing/http.d.ts.map +1 -0
- package/types/serve/framing/ndjson.d.ts +19 -0
- package/types/serve/framing/ndjson.d.ts.map +1 -0
- package/types/serve/framing/socket.d.ts +14 -0
- package/types/serve/framing/socket.d.ts.map +1 -0
- package/types/serve/framing/stdio.d.ts +11 -0
- package/types/serve/framing/stdio.d.ts.map +1 -0
- package/types/serve/framing/token.d.ts +11 -0
- package/types/serve/framing/token.d.ts.map +1 -0
- package/types/serve/framing/ws.d.ts +13 -0
- package/types/serve/framing/ws.d.ts.map +1 -0
- package/types/serve/jsonrpc.d.ts +118 -0
- package/types/serve/jsonrpc.d.ts.map +1 -0
- package/types/serve/registry.d.ts +41 -0
- package/types/serve/registry.d.ts.map +1 -0
- package/types/session-ui.d.ts +36 -0
- package/types/session-ui.d.ts.map +1 -0
- package/types/sharekey.d.ts +35 -0
- package/types/sharekey.d.ts.map +1 -0
- package/types/tokens.d.ts +20 -0
- package/types/tokens.d.ts.map +1 -0
- package/types/transport.d.ts +138 -0
- package/types/transport.d.ts.map +1 -0
- package/types/util.d.ts +20 -0
- package/types/util.d.ts.map +1 -0
- package/vendor/biz3/README.md +37 -0
- package/vendor/biz3/constants/cmdCode.d.ts +48 -0
- package/vendor/biz3/constants/cmdCode.d.ts.map +1 -0
- package/vendor/biz3/constants/cmdCode.js +92 -0
- package/vendor/biz3/constants/messageConstants.d.ts +28 -0
- package/vendor/biz3/constants/messageConstants.d.ts.map +1 -0
- package/vendor/biz3/constants/messageConstants.js +30 -0
- package/vendor/biz3/constants/sesameDeviceModel.d.ts +75 -0
- package/vendor/biz3/constants/sesameDeviceModel.d.ts.map +1 -0
- package/vendor/biz3/constants/sesameDeviceModel.js +77 -0
- package/vendor/biz3/package.json +5 -0
package/types/ir.d.ts
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 登録済みリモコン一覧を取得 (ページング)。
|
|
3
|
+
* @param {{type:number, companyID:string, page?:number, pageSize?:number}} p
|
|
4
|
+
* type は **実 remote.type** (自己学習=0xFE00, UI メニューの 0xFEFF ではない / 上記トラップ参照)
|
|
5
|
+
*/
|
|
6
|
+
export function getRemoteList(client: any, p: {
|
|
7
|
+
type: number;
|
|
8
|
+
companyID: string;
|
|
9
|
+
page?: number;
|
|
10
|
+
pageSize?: number;
|
|
11
|
+
}): Promise<any>;
|
|
12
|
+
/**
|
|
13
|
+
* プリセットリモコン (メーカー DB) 検索。最大 1000 件返却。
|
|
14
|
+
* @param {{type:number, companyID:string, searchTerm:string}} p
|
|
15
|
+
*/
|
|
16
|
+
export function searchRemoteList(client: any, p: {
|
|
17
|
+
type: number;
|
|
18
|
+
companyID: string;
|
|
19
|
+
searchTerm: string;
|
|
20
|
+
}): Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* リモコンを追加 (Hub3 1 台あたり 3 個上限がサーバ側にある)。
|
|
23
|
+
* `remote` の形は biz3 がそのまま remoteDevice オブジェクトを渡しているので、
|
|
24
|
+
* 呼び出し側で {hub3DeviceId, type, name, irOperation, ...} を入れる。
|
|
25
|
+
*/
|
|
26
|
+
export function addIRRemote(client: any, { remote, companyID }: {
|
|
27
|
+
remote: any;
|
|
28
|
+
companyID: any;
|
|
29
|
+
}): Promise<any>;
|
|
30
|
+
/** リモコン削除。 */
|
|
31
|
+
export function deleteIRRemote(client: any, { hub3DeviceId, uuid, companyID }: {
|
|
32
|
+
hub3DeviceId: any;
|
|
33
|
+
uuid: any;
|
|
34
|
+
companyID: any;
|
|
35
|
+
}): Promise<any>;
|
|
36
|
+
/** リモコンの alias を更新。注: 命名差で `deviceId`/`uuid`。 */
|
|
37
|
+
export function updateRemoteAlias(client: any, { hub3DeviceId, uuid, alias, companyID }: {
|
|
38
|
+
hub3DeviceId: any;
|
|
39
|
+
uuid: any;
|
|
40
|
+
alias: any;
|
|
41
|
+
companyID: any;
|
|
42
|
+
}): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* IR キー (ボタン) を追加。学習フロー (learnIRKey) から呼ばれることが多い。
|
|
45
|
+
* `irCode` の形は biz3 がオブジェクトをそのまま乗せるので、
|
|
46
|
+
* 呼び出し側で {hub3DeviceId, remoteId, name, irData, irWaveLength, irType, ...} を入れる。
|
|
47
|
+
*/
|
|
48
|
+
export function addIRCode(client: any, { irCode, companyID }: {
|
|
49
|
+
irCode: any;
|
|
50
|
+
companyID: any;
|
|
51
|
+
}): Promise<any>;
|
|
52
|
+
/** キー名変更。 */
|
|
53
|
+
export function updateIRCode(client: any, { hub3DeviceId, remoteId, keyUUID, name, companyID }: {
|
|
54
|
+
hub3DeviceId: any;
|
|
55
|
+
remoteId: any;
|
|
56
|
+
keyUUID: any;
|
|
57
|
+
name: any;
|
|
58
|
+
companyID: any;
|
|
59
|
+
}): Promise<any>;
|
|
60
|
+
/** キー削除。 */
|
|
61
|
+
export function deleteIRCode(client: any, { hub3DeviceId, remoteId, keyUUID, companyID }: {
|
|
62
|
+
hub3DeviceId: any;
|
|
63
|
+
remoteId: any;
|
|
64
|
+
keyUUID: any;
|
|
65
|
+
companyID: any;
|
|
66
|
+
}): Promise<any>;
|
|
67
|
+
/** 現在の IR モード (CONTROL=0 / REGISTER=1) を取得。 */
|
|
68
|
+
export function getIRMode(client: any, { deviceId, companyID }: {
|
|
69
|
+
deviceId: any;
|
|
70
|
+
companyID: any;
|
|
71
|
+
}): Promise<any>;
|
|
72
|
+
/** モード切替。学習するには REGISTER に入れる必要がある。 */
|
|
73
|
+
export function setIRMode(client: any, { deviceId, mode, companyID }: {
|
|
74
|
+
deviceId: any;
|
|
75
|
+
mode: any;
|
|
76
|
+
companyID: any;
|
|
77
|
+
}): Promise<any>;
|
|
78
|
+
/**
|
|
79
|
+
* IR データ (= 学習で取り込まれた赤外線波形) の購読を開始。
|
|
80
|
+
* 戻り値は `{ unsubscribe, onData }`。`onData(fn)` で `subscribeIRDataRsp` 受信ごとに fn が呼ばれる。
|
|
81
|
+
* 利用後は必ず `unsubscribe()` を呼ぶこと。
|
|
82
|
+
*/
|
|
83
|
+
export function subscribeIRData(client: any, { deviceId, companyID }: {
|
|
84
|
+
deviceId: any;
|
|
85
|
+
companyID: any;
|
|
86
|
+
}): Promise<{
|
|
87
|
+
onData(fn: any): () => boolean;
|
|
88
|
+
unsubscribe(): void;
|
|
89
|
+
}>;
|
|
90
|
+
/** モード変化 (例: REGISTER から CONTROL に戻った瞬間) の購読。subscribeIRData と同形。 */
|
|
91
|
+
export function subscribeIRMode(client: any, { deviceId, companyID }: {
|
|
92
|
+
deviceId: any;
|
|
93
|
+
companyID: any;
|
|
94
|
+
}): Promise<{
|
|
95
|
+
onData(fn: any): () => boolean;
|
|
96
|
+
unsubscribe(): void;
|
|
97
|
+
}>;
|
|
98
|
+
/**
|
|
99
|
+
* 学習で取った irData を既知のメーカー DB と照合する。
|
|
100
|
+
* @param {{irData:string, irType:number, brandName?:string, companyID:string}} p
|
|
101
|
+
*/
|
|
102
|
+
export function matchRemote(client: any, { irData, irType, brandName, companyID }: {
|
|
103
|
+
irData: any;
|
|
104
|
+
irType: any;
|
|
105
|
+
brandName: any;
|
|
106
|
+
companyID: any;
|
|
107
|
+
}): Promise<any>;
|
|
108
|
+
/**
|
|
109
|
+
* 物理リモコンのボタン 1 個を学習して、リモコンに新キーとして登録する。
|
|
110
|
+
*
|
|
111
|
+
* 1. setIRMode(REGISTER) — Hub3 を学習モードに
|
|
112
|
+
* 2. subscribeIRData — 波形イベント購読
|
|
113
|
+
* 3. (ユーザが物理リモコンを Hub3 に向けてボタンを押す)
|
|
114
|
+
* 4. subscribeIRDataRsp イベントで波形を受信
|
|
115
|
+
* 5. unsubscribeIRData + setIRMode(CONTROL)
|
|
116
|
+
* 6. addIRCode で名前付きキーとして保存
|
|
117
|
+
*
|
|
118
|
+
* @param {{
|
|
119
|
+
* hub3DeviceId: string,
|
|
120
|
+
* remoteId: string, // 既存リモコンの irDeviceUUID
|
|
121
|
+
* keyName: string,
|
|
122
|
+
* irType: number, // remote.type
|
|
123
|
+
* companyID: string,
|
|
124
|
+
* timeoutMs?: number, // ボタン押下待ち timeout (default 60s)
|
|
125
|
+
* onPrompt?: () => void, // 学習モード突入後に呼ばれる (ユーザに「ボタン押して」と促す)
|
|
126
|
+
* }} p
|
|
127
|
+
* @returns {Promise<{keyUUID: string, captured: any, saved: any}>}
|
|
128
|
+
* keyUUID はクライアント発番 (これを send の command に使う)
|
|
129
|
+
*/
|
|
130
|
+
export function learnIRKey(client: any, p: {
|
|
131
|
+
hub3DeviceId: string;
|
|
132
|
+
remoteId: string;
|
|
133
|
+
keyName: string;
|
|
134
|
+
irType: number;
|
|
135
|
+
companyID: string;
|
|
136
|
+
timeoutMs?: number;
|
|
137
|
+
onPrompt?: () => void;
|
|
138
|
+
}): Promise<{
|
|
139
|
+
keyUUID: string;
|
|
140
|
+
captured: any;
|
|
141
|
+
saved: any;
|
|
142
|
+
}>;
|
|
143
|
+
export const MODE: Readonly<{
|
|
144
|
+
CONTROL: 0;
|
|
145
|
+
REGISTER: 1;
|
|
146
|
+
}>;
|
|
147
|
+
//# sourceMappingURL=ir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.js"],"names":[],"mappings":"AAsDA;;;;GAIG;AACH,8CAHW;IAAC,IAAI,EAAC,MAAM,CAAC;IAAC,SAAS,EAAC,MAAM,CAAC;IAAC,IAAI,CAAC,EAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAC,gBAczE;AAED;;;GAGG;AACH,iDAFW;IAAC,IAAI,EAAC,MAAM,CAAC;IAAC,SAAS,EAAC,MAAM,CAAC;IAAC,UAAU,EAAC,MAAM,CAAA;CAAC,gBAc5D;AAID;;;;GAIG;AACH;;;iBAKC;AAED,cAAc;AACd;;;;iBAKC;AAED,iDAAiD;AACjD;;;;;iBAYC;AAID;;;;GAIG;AACH;;;iBAKC;AAED,aAAa;AACb;;;;;;iBAaC;AAED,YAAY;AACZ;;;;;iBAYC;AAID,+CAA+C;AAC/C;;;iBAKC;AAED,uCAAuC;AACvC;;;;iBAKC;AAED;;;;GAIG;AACH;;;;;;GA+BC;AAED,qEAAqE;AACrE;;;;;;GAwBC;AAID;;;GAGG;AACH;;;;;iBAcC;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,2CAZW;IACN,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GACS,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAC,CAAC,CAwCjE;AAtSD;;;GAGG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const ITEM_CODES: Readonly<{
|
|
2
|
+
NONE: 0;
|
|
3
|
+
REGISTRATION: 1;
|
|
4
|
+
LOGIN: 2;
|
|
5
|
+
USER: 3;
|
|
6
|
+
HISTORY: 4;
|
|
7
|
+
VERSION_TAG: 5;
|
|
8
|
+
TIME: 8;
|
|
9
|
+
AUTOLOCK: 11;
|
|
10
|
+
INITIAL: 14;
|
|
11
|
+
MAGNET: 17;
|
|
12
|
+
HISTORY_DELETE: 18;
|
|
13
|
+
MECH_SETTING: 80;
|
|
14
|
+
MECH_STATUS: 81;
|
|
15
|
+
LOCK: 82;
|
|
16
|
+
UNLOCK: 83;
|
|
17
|
+
MOVE_TO: 84;
|
|
18
|
+
TOGGLE: 88;
|
|
19
|
+
CLICK: 89;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=itemcodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"itemcodes.d.ts","sourceRoot":"","sources":["../src/itemcodes.js"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
package/types/lock.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* lock 制御コマンドを送信し、サーバ ack を待って解決する。
|
|
3
|
+
*
|
|
4
|
+
* @param {import("./transport.js").Hub3WsClient} client
|
|
5
|
+
* @param {{
|
|
6
|
+
* deviceId: string, // ロックの deviceUUID
|
|
7
|
+
* secretKey: string, // 32hex のロック共通鍵 (devices command で取得)
|
|
8
|
+
* subUUID: string, // ログインユーザの subUUID
|
|
9
|
+
* cmd: number, // CMD.LOCK | UNLOCK | TOGGLE | CLICK
|
|
10
|
+
* timeoutMs?: number,
|
|
11
|
+
* }} params
|
|
12
|
+
* @returns {Promise<any>} biz3TriggerLocker ack メッセージ
|
|
13
|
+
*/
|
|
14
|
+
export function triggerLock(client: import("./transport.js").Hub3WsClient, params: {
|
|
15
|
+
deviceId: string;
|
|
16
|
+
secretKey: string;
|
|
17
|
+
subUUID: string;
|
|
18
|
+
cmd: number;
|
|
19
|
+
timeoutMs?: number;
|
|
20
|
+
}): Promise<any>;
|
|
21
|
+
/** ロックを施錠 (cmd=82)。 */
|
|
22
|
+
export function lockLock(client: any, p: any): Promise<any>;
|
|
23
|
+
/** ロックを解錠 (cmd=83)。 */
|
|
24
|
+
export function lockUnlock(client: any, p: any): Promise<any>;
|
|
25
|
+
/** ロックを反転 (cmd=88, cloud のみ)。現在状態に応じてサーバが LOCK/UNLOCK を判定。 */
|
|
26
|
+
export function lockToggle(client: any, p: any): Promise<any>;
|
|
27
|
+
/** SESAME Bot のボタンクリック (cmd=89)。 */
|
|
28
|
+
export function botClick(client: any, p: any): Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* 任意の SESAME ItemCode をクラウド経由 (biz3TriggerLocker) で送る汎用レール。
|
|
31
|
+
*
|
|
32
|
+
* フレームは lock/unlock と同型 `{action, cmd, sign:cmacTime(secretKey), history:base64(payload), device_id}`
|
|
33
|
+
* (公式 SDK CHAPIClientBiz.cmdSesame と一致: msg=3byte時刻の CMAC を sign、payload を history に base64)。
|
|
34
|
+
* lock/unlock(82/83) と autolock(11) 等は同一 ItemCode 名前空間 (Android SesameSDK SesameProtocols.kt)。
|
|
35
|
+
*
|
|
36
|
+
* ⚠️ **lock/unlock/toggle/bot 以外は実機に反映されない (実機検証済み)**:
|
|
37
|
+
* biz3TriggerLocker は lock/unlock/toggle/bot のみを実機へ中継する。それ以外の ItemCode は
|
|
38
|
+
* サーバが `success:true` で **ack だけ返すが、ロック本体には適用されない** (autolock=11 で
|
|
39
|
+
* 2026 実機確認: ack は返るが autolock 設定は変化せず)。biz3 web/SDK にも設定系のクラウド送信
|
|
40
|
+
* 経路は無く (useIotCtrl.js の IoT cmd は ADD/REMOVE_SESAME・LED・RELAY 等のみで autolock は
|
|
41
|
+
* "Unsupported"、公式アプリは BLE 直送)。よって本関数で lock/unlock 系以外を送っても
|
|
42
|
+
* **`success:true` は「サーバ受領」止まりで実機反映の保証は無い**。lock/unlock/toggle/bot 用、
|
|
43
|
+
* もしくは将来クラウド対応された ItemCode 用の汎用レールとして残す。
|
|
44
|
+
*
|
|
45
|
+
* @param {import("./transport.js").Hub3WsClient} client
|
|
46
|
+
* @param {{
|
|
47
|
+
* deviceId: string, // ロックの deviceUUID
|
|
48
|
+
* secretKey: string, // 32hex の共通鍵
|
|
49
|
+
* cmd: number, // SesameItemCode 値 (CMD.AUTOLOCK 等)
|
|
50
|
+
* payload?: Uint8Array|Buffer|number[], // BLE ペイロード (省略時は subUUID の history タグ)
|
|
51
|
+
* subUUID?: string, // payload 省略時に history へ使う
|
|
52
|
+
* timeoutMs?: number,
|
|
53
|
+
* }} params
|
|
54
|
+
* @returns {Promise<any>} biz3TriggerLocker ack メッセージ (success:false は reject)
|
|
55
|
+
*/
|
|
56
|
+
export function triggerItemCommand(client: import("./transport.js").Hub3WsClient, params: {
|
|
57
|
+
deviceId: string;
|
|
58
|
+
secretKey: string;
|
|
59
|
+
cmd: number;
|
|
60
|
+
payload?: Uint8Array | Buffer | number[];
|
|
61
|
+
subUUID?: string;
|
|
62
|
+
timeoutMs?: number;
|
|
63
|
+
}): Promise<any>;
|
|
64
|
+
/**
|
|
65
|
+
* オートロック (解錠 N 秒後に自動施錠) を設定する。autolock = ItemCode 11、payload = 2byte LE 秒数。
|
|
66
|
+
* `seconds=0` で無効化 (autolock_jp.md: 遅延時間 0 は自動施錠無効)。
|
|
67
|
+
*
|
|
68
|
+
* ⚠️ **クラウド経由では実機に反映されない (2026 実機検証済み)**。biz3TriggerLocker は cmd=11 に
|
|
69
|
+
* `success:true` を返すが、ロック本体の autolock 設定は変化しない。autolock の正規経路は **BLE 直送のみ**
|
|
70
|
+
* (公式アプリ準拠)。本関数はフレーム生成としては正しい (BLE トランスポートや将来のクラウド対応用) が、
|
|
71
|
+
* 現状の biz3 クラウドでは効果が無い。CLI からは公開していない ({@link triggerItemCommand} 参照)。
|
|
72
|
+
*
|
|
73
|
+
* @param {import("./transport.js").Hub3WsClient} client
|
|
74
|
+
* @param {{ deviceId: string, secretKey: string, seconds: number, timeoutMs?: number }} params
|
|
75
|
+
* seconds: 0..65535 (0=無効)。SESAME 本体の選択肢は 0/5/10/.../秒。
|
|
76
|
+
* @returns {Promise<{ack: any, cmd: number, seconds: number}>}
|
|
77
|
+
*/
|
|
78
|
+
export function setAutolock(client: import("./transport.js").Hub3WsClient, { deviceId, secretKey, seconds, timeoutMs }: {
|
|
79
|
+
deviceId: string;
|
|
80
|
+
secretKey: string;
|
|
81
|
+
seconds: number;
|
|
82
|
+
timeoutMs?: number;
|
|
83
|
+
}): Promise<{
|
|
84
|
+
ack: any;
|
|
85
|
+
cmd: number;
|
|
86
|
+
seconds: number;
|
|
87
|
+
}>;
|
|
88
|
+
import { Buffer } from "node:buffer";
|
|
89
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.js"],"names":[],"mappings":"AA6EA;;;;;;;;;;;;GAYG;AACH,oCAVW,OAAO,gBAAgB,EAAE,YAAY,UACrC;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACS,OAAO,CAAC,GAAG,CAAC,CAiBxB;AAED,uBAAuB;AACvB,4DAA4F;AAC5F,uBAAuB;AACvB,8DAAgG;AAChG,8DAA8D;AAC9D,8DAAgG;AAChG,oCAAoC;AACpC,4DAA6F;AAE7F;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,2CAXW,OAAO,gBAAgB,EAAE,YAAY,UACrC;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,UAAU,GAAC,MAAM,GAAC,MAAM,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACS,OAAO,CAAC,GAAG,CAAC,CAwBxB;AAED;;;;;;;;;;;;;GAaG;AACH,oCALW,OAAO,gBAAgB,EAAE,YAAY,+CACrC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAE1E,OAAO,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAU7D;uBAhLsB,aAAa"}
|