homebridge-intratone 0.2.0 → 0.2.2
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 +94 -0
- package/README.md +44 -26
- package/config.schema.json +5 -6
- package/dist/config.js +7 -6
- package/dist/config.js.map +1 -1
- package/dist/intratoneClient.js +13 -0
- package/dist/intratoneClient.js.map +1 -1
- package/docs/DEVELOPMENT.md +141 -0
- package/package.json +12 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `homebridge-intratone`. Versions follow [semver](https://semver.org/).
|
|
4
|
+
|
|
5
|
+
## [0.2.2] - 2026-11-11
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- `app_token` is now optional and defaults to the iOS app's built-in value, the same on every
|
|
10
|
+
iPhone. A new install only needs the account phone number — no traffic capture. Set
|
|
11
|
+
`app_token` only to override the built-in value (if Intratone changes it) or with
|
|
12
|
+
`user_agent: android`, whose value isn't known.
|
|
13
|
+
|
|
14
|
+
### Note
|
|
15
|
+
|
|
16
|
+
- The iOS `app_token` is the official app's embedded secret, now shipped with the plugin. If
|
|
17
|
+
Intratone rotates it, set `app_token` in the config until a new release ships. See the README,
|
|
18
|
+
*Updating the built-in token*.
|
|
19
|
+
|
|
20
|
+
## [0.2.1] - 2026-10-31
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- `app_id` is now optional and defaults to the iOS app's value, `app_apisip_ios`. It names the
|
|
25
|
+
official app, not your account, so every iPhone sends the same one. Set it only with
|
|
26
|
+
`user_agent: android`, whose value isn't known yet. `app_token` is still required and has no
|
|
27
|
+
default.
|
|
28
|
+
- The settings form shows **App ID** as an optional plain field, with the default as its
|
|
29
|
+
placeholder.
|
|
30
|
+
|
|
31
|
+
### Documentation
|
|
32
|
+
|
|
33
|
+
- Step-by-step guide to read `app_token` on the iPhone itself with Proxyman for iOS.
|
|
34
|
+
- Install instructions say to search the full name `homebridge-intratone` in the Homebridge UI,
|
|
35
|
+
because a new package ranks too low to show up for "intratone".
|
|
36
|
+
- Added this changelog and a developer guide ([docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)).
|
|
37
|
+
- The npm page now links to the GitHub repository and issue tracker.
|
|
38
|
+
|
|
39
|
+
## [0.2.0] - 2026-10-31
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
|
|
43
|
+
- **Matter.** On a bridge with Matter enabled (Homebridge 2), every openable door is also
|
|
44
|
+
exposed as a Matter door lock, next to the HomeKit accessory, for Google Home, Alexa,
|
|
45
|
+
SmartThings and other Matter controllers.
|
|
46
|
+
- *Unlock* opens the door. It shows unlocked for `pulse_seconds`, then locked again.
|
|
47
|
+
- A failed open is reported to the controller as an error.
|
|
48
|
+
- Repeated unlocks while a door is opening send a single open.
|
|
49
|
+
- *Lock* only ends the unlocked pulse early, since the door relocks by itself.
|
|
50
|
+
- Cached Matter doors are registered again at startup to get their handlers back, and reset
|
|
51
|
+
to locked.
|
|
52
|
+
- Names are trimmed to Matter's 32-byte limit.
|
|
53
|
+
- As on HomeKit, an empty door list never removes doors.
|
|
54
|
+
- Every door is a lock on Matter, whatever `service` says: Matter has no gate opener.
|
|
55
|
+
- `supports-hap` and `supports-matter` package keywords, which the Homebridge UI reads to show
|
|
56
|
+
its HomeKit and Matter badges.
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- Replaced a test fixture `device_id` with a fully synthetic value.
|
|
61
|
+
|
|
62
|
+
## [0.1.0] - 2026-10-30
|
|
63
|
+
|
|
64
|
+
First release: remote opening over the REST API of the official app. Doorbell, video and
|
|
65
|
+
two-way audio are out of scope.
|
|
66
|
+
|
|
67
|
+
### Added
|
|
68
|
+
|
|
69
|
+
- Homebridge dynamic platform `Intratone`, made to run as a child bridge.
|
|
70
|
+
- Sign-in with `POST /api/auth/device`. Several spellings of the phone number are tried (national,
|
|
71
|
+
country code + number, bare number), and the one that works is remembered.
|
|
72
|
+
- The 7-day JWT is kept fresh: checked every 12 h and renewed when less than a day is left.
|
|
73
|
+
A refused call triggers one refresh, and concurrent callers share a single refresh.
|
|
74
|
+
- Door discovery with `GET /api/access` at startup and every hour (configurable). `data` and
|
|
75
|
+
`ble` doors are exposed. `clemobil` (2G) doors are skipped and logged once, because the app
|
|
76
|
+
opens them with a GSM call. Names get the residence as a prefix when there are several
|
|
77
|
+
residences.
|
|
78
|
+
- Opening with `POST /api/access/open/clemobil`, shown as a HomeKit lock (default) or garage
|
|
79
|
+
door that stays unlocked/open for `pulse_seconds`.
|
|
80
|
+
- `device_id` and the JWT are stored in Homebridge's storage (mode 0600). The `device_id` is
|
|
81
|
+
generated once, or taken from the config to act as an existing phone.
|
|
82
|
+
- On HTTP 429 the plugin honours `Retry-After`, or else waits 1 min, doubling up to 15 min.
|
|
83
|
+
- When no door comes back, the log says why. The most common reason is the mobipass key being
|
|
84
|
+
active on another device. Cached doors are kept until the list returns.
|
|
85
|
+
- CLI `homebridge-intratone` with `status`, `login`, `list`, `open`, and the mobipass transfer
|
|
86
|
+
commands `activate` and `verify`.
|
|
87
|
+
- Debug logging of every request and response, with tokens, app credentials and phone numbers
|
|
88
|
+
masked.
|
|
89
|
+
- MIT license.
|
|
90
|
+
|
|
91
|
+
[0.2.2]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.2.2
|
|
92
|
+
[0.2.1]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.2.1
|
|
93
|
+
[0.2.0]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.2.0
|
|
94
|
+
[0.1.0]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -32,8 +32,10 @@ implemented.
|
|
|
32
32
|
|
|
33
33
|
## Install
|
|
34
34
|
|
|
35
|
-
In the Homebridge UI, open **Plugins**, search for **intratone**
|
|
36
|
-
works the same in the official `homebridge/homebridge` Docker image
|
|
35
|
+
In the Homebridge UI, open **Plugins**, search for **homebridge-intratone** (the full name) and
|
|
36
|
+
click **Install**. This works the same in the official `homebridge/homebridge` Docker image
|
|
37
|
+
(Synology, Unraid, …). A search for just "intratone" may not list it yet: the UI shows the 99
|
|
38
|
+
best-ranked Homebridge plugins for a word, and npm ranks new packages low.
|
|
37
39
|
|
|
38
40
|
Without the UI:
|
|
39
41
|
|
|
@@ -41,8 +43,9 @@ Without the UI:
|
|
|
41
43
|
npm install -g homebridge-intratone
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
Then
|
|
45
|
-
settings → *Bridge Settings*), so a fault here can't
|
|
46
|
+
Then set your Intratone account **phone number** — the only required setting — and enable
|
|
47
|
+
**child bridge** for the plugin (plugin settings → *Bridge Settings*), so a fault here can't
|
|
48
|
+
take the main bridge down. Everything else has a sensible default (see below).
|
|
46
49
|
|
|
47
50
|
### Configuration
|
|
48
51
|
|
|
@@ -50,8 +53,6 @@ settings → *Bridge Settings*), so a fault here can't take the main bridge down
|
|
|
50
53
|
{
|
|
51
54
|
"platform": "Intratone",
|
|
52
55
|
"name": "Intratone",
|
|
53
|
-
"app_id": "<from the official app>",
|
|
54
|
-
"app_token": "<from the official app>",
|
|
55
56
|
"tel": "0612345678",
|
|
56
57
|
"indicatif": "33",
|
|
57
58
|
"service": "lock",
|
|
@@ -61,8 +62,9 @@ settings → *Bridge Settings*), so a fault here can't take the main bridge down
|
|
|
61
62
|
|
|
62
63
|
| key | default | notes |
|
|
63
64
|
| ------------------------ | -------- | ----- |
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
65
|
+
| `tel` | required | Phone number of the Intratone account — the only required setting. National (`06…`) or international (`+33 6…`). Several spellings are tried, and the one that works is remembered. |
|
|
66
|
+
| `app_token` | built in | The iOS app's embedded secret, the same on every iPhone, shipped with the plugin. Set it only to override it if it ever stops working, or with `user_agent: android` (not known). See [Updating the built-in token](#updating-the-built-in-token). |
|
|
67
|
+
| `app_id` | built in | Names the official app, not your account (`app_apisip_ios`), shipped with the plugin. Set it only with `user_agent: android`. |
|
|
66
68
|
| `indicatif` | `33` | Country code. |
|
|
67
69
|
| `device_id` | generated | Leave empty to generate a UUID that is stored and reused forever. Set it to reuse an existing phone's registration (`device_id` claim of that phone's JWT). |
|
|
68
70
|
| `service` | `lock` | `lock` (LockMechanism) or `garage` (GarageDoorOpener). |
|
|
@@ -72,6 +74,10 @@ settings → *Bridge Settings*), so a fault here can't take the main bridge down
|
|
|
72
74
|
| `app_version` | `4.6.4` | `appversion` sent at login. |
|
|
73
75
|
| `debug` | `false` | Logs every request and response at info level, plus the raw door list once at startup. Tokens, app credentials and your phone number are masked. |
|
|
74
76
|
|
|
77
|
+
The plugin keeps `device_id` and the current JWT in
|
|
78
|
+
`<homebridge storage>/intratone/<hash>.json` (mode 0600). Delete that file only if you want to
|
|
79
|
+
register as a new device.
|
|
80
|
+
|
|
75
81
|
### Matter
|
|
76
82
|
|
|
77
83
|
Needs Homebridge 2. In the plugin settings, open *Bridge Settings*, tick **Enable Matter**,
|
|
@@ -90,24 +96,32 @@ or any other Matter controller. Several controllers can share the same pairing.
|
|
|
90
96
|
- Homebridge's Matter support is experimental and not CSA certified, so controllers may warn
|
|
91
97
|
about an uncertified accessory while pairing.
|
|
92
98
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
99
|
+
### Updating the built-in token
|
|
100
|
+
|
|
101
|
+
The iOS `app_token` is shipped with the plugin, so you normally never touch it. It is the
|
|
102
|
+
official app's embedded secret: if Intratone ever changes it, every install stops signing in at
|
|
103
|
+
once and the log shows an authentication error. The fix is to read the current token from your
|
|
104
|
+
own phone, set it in **App token** to get going again, and update once a new plugin release
|
|
105
|
+
ships with the new value.
|
|
106
|
+
|
|
107
|
+
`app_token` travels only in the sign-in request (`POST /api/auth/device`). Capture it on the
|
|
108
|
+
iPhone itself with [Proxyman for iOS](https://proxyman.com/ios); no computer is needed:
|
|
109
|
+
|
|
110
|
+
1. Install **Proxyman**, allow the VPN it adds, generate its certificate, install the profile
|
|
111
|
+
in **Settings → General → VPN & Device Management**, and trust it in **Settings → General →
|
|
112
|
+
About → Certificate Trust Settings**. Start the VPN.
|
|
113
|
+
2. Open Intratone once, switch to Proxyman, tap the **sip.intratone.info** domain and a request
|
|
114
|
+
in it, then **Enable SSL Proxying** for that domain.
|
|
115
|
+
3. Delete and reinstall Intratone and sign in — a fresh install always signs in. In Proxyman,
|
|
116
|
+
open **POST /api/auth/device** and copy `app_token` from the request body into **App token**.
|
|
117
|
+
4. Stop the VPN, delete the capture, and remove the Proxyman profile in **Settings → General →
|
|
118
|
+
VPN & Device Management**. A trusted certificate left installed weakens your HTTPS security.
|
|
119
|
+
|
|
120
|
+
The same request's body also carries `device_id`. Copying it into **Device ID** (under
|
|
121
|
+
*Advanced*) makes Homebridge act as that iPhone and share its door key, so you can skip the
|
|
122
|
+
mobipass transfer below. Already have an HTTPS proxy on a computer, such as
|
|
123
|
+
[mitmproxy](https://mitmproxy.org/)? Route the iPhone through it and read the same request. A
|
|
124
|
+
capture holds a live session token and your phone number — keep it private.
|
|
111
125
|
|
|
112
126
|
## Mobipass: taking the door key
|
|
113
127
|
|
|
@@ -162,6 +176,10 @@ npm test
|
|
|
162
176
|
npm run build
|
|
163
177
|
```
|
|
164
178
|
|
|
179
|
+
How the plugin works inside, how it's tested and how releases are made:
|
|
180
|
+
[docs/DEVELOPMENT.md](docs/DEVELOPMENT.md). What changed in each version:
|
|
181
|
+
[CHANGELOG.md](CHANGELOG.md).
|
|
182
|
+
|
|
165
183
|
`npm run lint` and `npm run typecheck` are also available. Link the build into a local
|
|
166
184
|
Homebridge with `npm link`.
|
|
167
185
|
|
package/config.schema.json
CHANGED
|
@@ -15,15 +15,14 @@
|
|
|
15
15
|
},
|
|
16
16
|
"app_id": {
|
|
17
17
|
"title": "App ID",
|
|
18
|
-
"description": "
|
|
18
|
+
"description": "Identifies the official app, not your account. Leave empty to use the iOS app's id shown here; set it only for another app.",
|
|
19
19
|
"type": "string",
|
|
20
|
-
"
|
|
20
|
+
"placeholder": "app_apisip_ios"
|
|
21
21
|
},
|
|
22
22
|
"app_token": {
|
|
23
23
|
"title": "App token",
|
|
24
|
-
"description": "
|
|
25
|
-
"type": "string"
|
|
26
|
-
"required": true
|
|
24
|
+
"description": "Built in for the iOS app. Leave empty to use it; set it only to override (if it stops working) or with the Android identity.",
|
|
25
|
+
"type": "string"
|
|
27
26
|
},
|
|
28
27
|
"tel": {
|
|
29
28
|
"title": "Phone number",
|
|
@@ -93,7 +92,7 @@
|
|
|
93
92
|
},
|
|
94
93
|
"layout": [
|
|
95
94
|
"name",
|
|
96
|
-
|
|
95
|
+
"app_id",
|
|
97
96
|
{ "key": "app_token", "type": "password" },
|
|
98
97
|
{ "type": "flex", "flex-flow": "row wrap", "items": ["indicatif", "tel"] },
|
|
99
98
|
"service",
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { IntratoneClient } from './intratoneClient.js';
|
|
2
|
+
import { DEFAULT_APP_IDS, DEFAULT_APP_TOKENS, IntratoneClient } from './intratoneClient.js';
|
|
3
3
|
import { StateStore, accountKey } from './storage.js';
|
|
4
4
|
import { isRecord, str } from './util.js';
|
|
5
5
|
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
@@ -11,16 +11,17 @@ function clamp(value, fallback, min, max) {
|
|
|
11
11
|
export function parseSettings(raw) {
|
|
12
12
|
const config = isRecord(raw) ? raw : {};
|
|
13
13
|
const errors = [];
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const identity = config.user_agent === 'android' ? 'android' : 'ios';
|
|
15
|
+
const appId = str(config.app_id) || DEFAULT_APP_IDS[identity] || '';
|
|
16
|
+
const appToken = str(config.app_token) || DEFAULT_APP_TOKENS[identity] || '';
|
|
16
17
|
const tel = str(config.tel);
|
|
17
18
|
const indicatif = (str(config.indicatif) || '33').replace(/^\+/, '');
|
|
18
19
|
const deviceId = str(config.device_id) || undefined;
|
|
19
20
|
if (!appId) {
|
|
20
|
-
errors.push(
|
|
21
|
+
errors.push(`app_id is required: there is no default for the ${identity} app`);
|
|
21
22
|
}
|
|
22
23
|
if (!appToken) {
|
|
23
|
-
errors.push(
|
|
24
|
+
errors.push(`app_token is required: there is no default for the ${identity} app`);
|
|
24
25
|
}
|
|
25
26
|
if (!tel) {
|
|
26
27
|
errors.push('tel is required');
|
|
@@ -46,7 +47,7 @@ export function parseSettings(raw) {
|
|
|
46
47
|
service: config.service === 'garage' ? 'garage' : 'lock',
|
|
47
48
|
pulseMs: clamp(config.pulse_seconds, 2, 1, 30) * 1000,
|
|
48
49
|
accessRefreshMs: clamp(config.access_refresh_minutes, 60, 15, 1440) * 60_000,
|
|
49
|
-
identity
|
|
50
|
+
identity,
|
|
50
51
|
appVersion: str(config.app_version) || '4.6.4',
|
|
51
52
|
debug: config.debug === true,
|
|
52
53
|
},
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAqC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/intratoneClient.js
CHANGED
|
@@ -4,6 +4,19 @@ export const USER_AGENTS = {
|
|
|
4
4
|
ios: 'intratone-x10-19/4 CFNetwork/3896.200.61 Darwin/27.2.0',
|
|
5
5
|
android: 'okhttp/5.0.0-alpha.2',
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* `app_id` and `app_token` identify the client app, not the account or the install: every iPhone
|
|
9
|
+
* sends the same pair (captured from the iOS app 4.6.0), so both are defaulted for the iOS
|
|
10
|
+
* identity and the user only supplies their phone number. The Android app's values are not known.
|
|
11
|
+
* `app_token` is the official app's embedded secret; if Intratone rotates it, override it in the
|
|
12
|
+
* config until a new release ships.
|
|
13
|
+
*/
|
|
14
|
+
export const DEFAULT_APP_IDS = {
|
|
15
|
+
ios: 'app_apisip_ios',
|
|
16
|
+
};
|
|
17
|
+
export const DEFAULT_APP_TOKENS = {
|
|
18
|
+
ios: "!okfd0V3Lys9MCdckpoke\u00f9sjd42KosdPm\u00b5893kcp",
|
|
19
|
+
};
|
|
7
20
|
/** Modes the REST open endpoint handles. `clemobil` (GSM call) cannot be driven headless. */
|
|
8
21
|
export const OPENABLE_MODES = new Set(['data', 'ble']);
|
|
9
22
|
const PATHS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intratoneClient.js","sourceRoot":"","sources":["../src/intratoneClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intratoneClient.js","sourceRoot":"","sources":["../src/intratoneClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Developer guide
|
|
2
|
+
|
|
3
|
+
How the plugin is built, tested and released. For setup and usage, see the
|
|
4
|
+
[README](../README.md); for what changed in each version, see the [changelog](../CHANGELOG.md).
|
|
5
|
+
|
|
6
|
+
## Layout
|
|
7
|
+
|
|
8
|
+
| file | role |
|
|
9
|
+
| ---- | ---- |
|
|
10
|
+
| `src/index.ts` | Registers the `Intratone` platform with Homebridge. |
|
|
11
|
+
| `src/platform.ts` | `IntratonePlatform`: startup, token upkeep, the access-list sync loop, and HomeKit accessory registration and removal. |
|
|
12
|
+
| `src/accessAccessory.ts` | One door as a HomeKit `LockMechanism` or `GarageDoorOpener` with a timed "open" pulse. |
|
|
13
|
+
| `src/matterDoors.ts` | The same doors as Matter door locks, when the bridge has Matter enabled. |
|
|
14
|
+
| `src/intratoneClient.ts` | REST client: sign-in, JWT lifecycle, access list, open, mobipass, 429 backoff. |
|
|
15
|
+
| `src/config.ts` | Validates the config block (`parseSettings`) and opens the account state (`openAccount`). |
|
|
16
|
+
| `src/storage.ts` | Per-account state file holding `device_id` and the session. |
|
|
17
|
+
| `src/cli.ts` | The `homebridge-intratone` command (`status`, `login`, `list`, `open`, `activate`, `verify`). |
|
|
18
|
+
| `src/util.ts` | Small helpers, including the log redaction. |
|
|
19
|
+
| `config.schema.json` | Settings form for the Homebridge UI. |
|
|
20
|
+
|
|
21
|
+
The code is TypeScript, compiled as ES modules (`NodeNext`) to `dist/`. Runtime dependencies:
|
|
22
|
+
none. Homebridge provides HAP and Matter at runtime, and HTTP uses Node's built-in `fetch`.
|
|
23
|
+
|
|
24
|
+
## The Intratone API
|
|
25
|
+
|
|
26
|
+
All calls go to `https://sip.intratone.info/` with form-encoded bodies, a 10 s timeout and the
|
|
27
|
+
official app's `User-Agent`. The iOS app is used by default, and the Android one with
|
|
28
|
+
`user_agent: android`.
|
|
29
|
+
|
|
30
|
+
| call | used for |
|
|
31
|
+
| ---- | -------- |
|
|
32
|
+
| `POST /api/auth/device` (`app_id`, `app_token`, `tel`, `device_id`, `appversion`) | Sign-in. Returns a 7-day HS512 JWT and the mobipass flags (`openingaccess`, `access_refresh`, `mobipass_compatible`, `mobipass`). |
|
|
33
|
+
| `GET /api/access` | The doors. The first entry of `openmode` decides: `data`/`ble` can be opened, `clemobil` can't. The server sends modes in upper case (`["DATA"]`), so they're compared case-insensitively. |
|
|
34
|
+
| `POST /api/access/open/clemobil` (`phonenumber`, `access_id`) | Opens one door, whatever its mode. |
|
|
35
|
+
| `POST /api/mobipass/activate`, `POST /api/mobipass/otp/verify` | Moves the mobipass key to this device (SMS code). |
|
|
36
|
+
|
|
37
|
+
A response counts as success when `error` is `0` (or `state` is `ok` without an `error`).
|
|
38
|
+
|
|
39
|
+
- **Credentials:** `app_id` and `app_token` identify the official app, not the account. Both are
|
|
40
|
+
defaulted for the iOS identity (`DEFAULT_APP_IDS`, `DEFAULT_APP_TOKENS` in
|
|
41
|
+
`intratoneClient.ts`), so a user only supplies their phone number. `app_token` is the app's
|
|
42
|
+
embedded secret, shipped as that default; if Intratone rotates it, a user overrides it in the
|
|
43
|
+
config until a new release ships (README, *Updating the built-in token*).
|
|
44
|
+
- **The JWT** is decoded without verification, only to read its expiry. It's renewed when less
|
|
45
|
+
than 24 h is left, and once on a refused call. Concurrent callers share one refresh.
|
|
46
|
+
- **On HTTP 429** the client stops sending until `Retry-After`, or else 1 min doubling to 15 min.
|
|
47
|
+
|
|
48
|
+
The API notes come from the open-source Home Assistant integration
|
|
49
|
+
[GuiHash/ha-intratone](https://github.com/GuiHash/ha-intratone) and from a capture of the iOS
|
|
50
|
+
app. **Never commit a capture:** it holds a live JWT, the phone number and device ids.
|
|
51
|
+
`mitmproxy/`, `*.har` and `*.tgz` are git-ignored, and the npm `files` list only ships
|
|
52
|
+
`dist/`, the schema and the docs.
|
|
53
|
+
|
|
54
|
+
## HomeKit
|
|
55
|
+
|
|
56
|
+
Each door is an accessory with UUID `uuid.generate('intratone:<access id>')`. The access is
|
|
57
|
+
kept in `accessory.context`, so cached doors work at startup even before the network answers.
|
|
58
|
+
|
|
59
|
+
A successful open shows *Unlocked* (or *Open*) for `pulse_seconds`, then *Locked* again. The
|
|
60
|
+
server reports no real door state. An empty access list never removes accessories, so a
|
|
61
|
+
server hiccup or a moved mobipass key can't wipe the user's rooms and automations.
|
|
62
|
+
|
|
63
|
+
## Matter
|
|
64
|
+
|
|
65
|
+
Matter support is optional and appears only when Homebridge sets `api.matter`. That happens on
|
|
66
|
+
Homebridge 2, on a bridge with a `matter` block (*Enable Matter* in the child bridge
|
|
67
|
+
settings). Values come from `api.matter` (`deviceTypes`, `types`), never from a value import of
|
|
68
|
+
`homebridge`, which fails on installs where Homebridge lives in a separate `node_modules`.
|
|
69
|
+
|
|
70
|
+
- **Shape:** each door is a `DoorLock` with `lockState` `Locked`, `lockType` `Other`,
|
|
71
|
+
`actuatorEnabled` and `operatingMode` `Normal`. Its UUID is
|
|
72
|
+
`uuid.generate('intratone:matter:<access id>')`, separate from the HomeKit one.
|
|
73
|
+
- **Commands:**
|
|
74
|
+
- `unlockDoor` awaits the open. Homebridge sets `lockState` to *Unlocked* when the handler
|
|
75
|
+
resolves, and reports a failure when it throws.
|
|
76
|
+
- The plugin sets *Locked* again after the pulse with `updateAccessoryState`, outside the
|
|
77
|
+
handler.
|
|
78
|
+
- `lockDoor` only cancels the pulse.
|
|
79
|
+
- **Cache:**
|
|
80
|
+
- Homebridge restores cached Matter accessories with *empty* handlers and calls
|
|
81
|
+
`configureMatterAccessory`.
|
|
82
|
+
- The plugin then registers each cached door again at startup. Homebridge attaches the
|
|
83
|
+
handlers to the restored endpoint ("Attached plugin registration to restored accessory")
|
|
84
|
+
and forces `Locked`.
|
|
85
|
+
- Registering the same UUID twice in one session throws, so the plugin tracks what it
|
|
86
|
+
registered.
|
|
87
|
+
- `updatePlatformAccessories` only updates the cache (a rename shows after a restart).
|
|
88
|
+
- **Names:** the bridged node label is limited to 32 bytes and Homebridge doesn't trim it,
|
|
89
|
+
so `matterLabel` does.
|
|
90
|
+
- **UI badges:** the Homebridge UI shows its HomeKit and Matter badges from the `supports-hap`
|
|
91
|
+
and `supports-matter` keywords in `package.json`.
|
|
92
|
+
|
|
93
|
+
## Tests
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npm test
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Vitest, no network. `test/helpers.ts` has a `fetch` double that routes on path, a JWT builder,
|
|
100
|
+
a fake `api.matter` with matter.js's real DoorLock enum values, and a helper that runs a
|
|
101
|
+
DoorLock command the way Homebridge does. HomeKit tests use the real `@homebridge/hap-nodejs`,
|
|
102
|
+
pinned to the version Homebridge itself requires, so the types match.
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
npm run lint
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npm run typecheck
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Smoke test against a real Homebridge with Matter
|
|
113
|
+
|
|
114
|
+
The 0.2.0 Matter support was also checked end to end in a throwaway Homebridge 2.4 (matter.js
|
|
115
|
+
0.17), with no real account involved:
|
|
116
|
+
|
|
117
|
+
- **Setup:** a temporary storage folder whose `config.json` has a `bridge.matter` block and the
|
|
118
|
+
Intratone platform with dummy credentials.
|
|
119
|
+
- **Fake API:** Homebridge started with `NODE_OPTIONS=--import=<preload>`. The preload replaces
|
|
120
|
+
`fetch` for `sip.intratone.info` with canned answers, and keeps a reference to Homebridge's
|
|
121
|
+
Matter manager (`HomebridgeAPI.prototype._setMatterManager`).
|
|
122
|
+
- **The run:** `homebridge -U <tmp> -P <repo> --strict-plugin-resolution -D`.
|
|
123
|
+
- **The unlock:** the preload calls `matterServer.triggerCommand(uuid, 'doorLock',
|
|
124
|
+
'unlockDoor', {})`, which goes through Homebridge's real `HomebridgeDoorLockServer`. It then
|
|
125
|
+
reads `lockState` before, right after, and after the pulse (1 → 2 → 1). Finally it sends
|
|
126
|
+
`SIGTERM` for a clean shutdown.
|
|
127
|
+
- **The restart:** a second run on the same storage checks the cache restore.
|
|
128
|
+
|
|
129
|
+
## Releasing
|
|
130
|
+
|
|
131
|
+
1. Update `CHANGELOG.md` and bump `version` in `package.json`.
|
|
132
|
+
2. `npm publish`. `prepublishOnly` runs lint, typecheck and tests, and `prepack` builds `dist/`.
|
|
133
|
+
The npm account uses 2FA: npm prints an approval link and waits. Approve it within a few
|
|
134
|
+
minutes, or the request expires and the publish fails with a 404 on `/-/v1/done`.
|
|
135
|
+
3. After `+ homebridge-intratone@x.y.z`, the registry takes about a minute to move `latest`.
|
|
136
|
+
4. Tag the commit `vX.Y.Z`, push the tag, and create the GitHub release from the changelog
|
|
137
|
+
entry.
|
|
138
|
+
|
|
139
|
+
A new package scores 0 in npm search for a while. The Homebridge UI shows only the 99
|
|
140
|
+
best-ranked plugins for a word, so a new package appears there only when searched by its full
|
|
141
|
+
name, `homebridge-intratone`, which the UI fetches directly.
|
package/package.json
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-intratone",
|
|
3
3
|
"displayName": "Intratone",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.2",
|
|
5
5
|
"description": "Unofficial Homebridge plugin to open Intratone / Cogelec doors and gates from HomeKit and Matter (remote open, no doorbell).",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "jtoucas-DIMO",
|
|
8
|
+
"homepage": "https://github.com/jtoucas-DIMO/Homebridge-Intratone#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/jtoucas-DIMO/Homebridge-Intratone.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/jtoucas-DIMO/Homebridge-Intratone/issues"
|
|
15
|
+
},
|
|
8
16
|
"type": "module",
|
|
9
17
|
"main": "dist/index.js",
|
|
10
18
|
"bin": {
|
|
@@ -13,7 +21,9 @@
|
|
|
13
21
|
"files": [
|
|
14
22
|
"dist",
|
|
15
23
|
"config.schema.json",
|
|
16
|
-
"README.md"
|
|
24
|
+
"README.md",
|
|
25
|
+
"CHANGELOG.md",
|
|
26
|
+
"docs"
|
|
17
27
|
],
|
|
18
28
|
"engines": {
|
|
19
29
|
"homebridge": "^1.8.0 || ^2.0.0-beta.0",
|