@bordeo/scrypted-bticino-c100x 0.0.0-stage → 0.1.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/README.md CHANGED
@@ -1,3 +1,75 @@
1
- # Temporary Holding Version
1
+ # scrypted-bticino-c100x
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Scrypted **Python** plugin for the **BTicino Classe 100X** video door entry
4
+ (Door Entry / Legrand Eliot cloud). Exposes a HomeKit video doorbell with ring
5
+ notification, listen audio, and optional two-way talkback.
6
+
7
+ Protocol code is ported from
8
+ [`bordeo/ha-bticino-c100x`](https://github.com/bordeo/ha-bticino-c100x)
9
+ (`2cf3709`) with every Home Assistant import removed. Community continuation of
10
+ the original [`alpichlabs/ha-bticino-c100x`](https://github.com/alpichlabs/ha-bticino-c100x)
11
+ work (upstream GitHub repo no longer available). Maintainer: [@bordeo](https://github.com/bordeo).
12
+
13
+ > **Not affiliated** with BTicino, Legrand, or Netatmo. Door Entry is a trademark
14
+ > of their respective owners. Use at your own risk.
15
+
16
+ **Licensing:** The licence of the original alpichlabs repository is unknown. No
17
+ `LICENSE` file is published here so as not to invent one. Treat reuse accordingly.
18
+
19
+ ## Install
20
+
21
+ In the Scrypted web UI, open **Plugins** and enter the npm package name:
22
+
23
+ ```
24
+ @bordeo/scrypted-bticino-c100x
25
+ ```
26
+
27
+ Updates are installed from the same Plugins page.
28
+
29
+ ## Setup
30
+
31
+ 1. Install the plugin in Scrypted.
32
+ 2. Open **BTicino C100X** settings: enter the same **email / password** as the
33
+ Door Entry app.
34
+ 3. Pick the **installation** (plant) and **gateway**.
35
+ 4. Leave **Enable talkback** off unless you need HomeKit two-way audio (mic).
36
+ 5. Enable the Scrypted **HomeKit** plugin and pair; the device type is
37
+ **Doorbell** (`BinarySensor` for rings, `VideoCamera` + optional `Intercom`).
38
+
39
+ ### Important
40
+
41
+ - **Disable the prebuffer / rebroadcast mixin** on this device. Continuous
42
+ streaming holds SIP monitoring calls open and will disrupt the outdoor unit.
43
+ Snapshots use a cached keyframe and never place a call.
44
+ - **HomeKit in Docker** needs host networking (or bridge + host Avahi + fixed
45
+ ports) so mDNS / RTP work.
46
+ - The microphone / HomeKit return audio is **off** until you enable
47
+ **Enable talkback**. That toggle adds the `Intercom` interface.
48
+
49
+ ## Behaviour
50
+
51
+ | Feature | Notes |
52
+ | --- | --- |
53
+ | Ring | Incoming INVITE from `c100x@{gateway}` → `binaryState=true` for 5 s; SIP replies 180 then 486 |
54
+ | View | RTSP on `127.0.0.1`; monitoring INVITE with SDES-SRTP H.264 + G.711 |
55
+ | Talkback | FFmpegInput → s16le 8 kHz → G.711 → SRTP on the call's audio socket |
56
+ | Snapshot | Last keyframe JPEG (or placeholder); never starts a SIP call |
57
+
58
+ Each Scrypted install creates its **own** Legrand SIP `clientId` (`clientName`
59
+ `Scrypted`) and never reuses a Home Assistant client's credentials.
60
+
61
+ ## Development
62
+
63
+ ```bash
64
+ npm install
65
+ npm run build # writes dist/plugin.zip (or out/plugin.zip)
66
+ pip install -r tests/requirements-test.txt
67
+ pytest tests/ -q
68
+ ```
69
+
70
+ Offline tests only — no live calls to Legrand.
71
+
72
+ ## Disclaimer
73
+
74
+ Unofficial community software. Not affiliated with, endorsed by, or supported by
75
+ BTicino, Legrand, Netatmo, or Apple.
Binary file
package/package.json CHANGED
@@ -1,6 +1,46 @@
1
1
  {
2
2
  "name": "@bordeo/scrypted-bticino-c100x",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Scrypted plugin for BTicino Classe 100X video door entry via Legrand cloud",
5
+ "scripts": {
6
+ "scrypted-setup-project": "scrypted-setup-project",
7
+ "prescrypted-setup-project": "scrypted-package-json",
8
+ "build": "scrypted-webpack",
9
+ "prepublishOnly": "NODE_ENV=production scrypted-webpack",
10
+ "prescrypted-vscode-launch": "scrypted-webpack",
11
+ "scrypted-vscode-launch": "scrypted-deploy-debug",
12
+ "scrypted-deploy-debug": "scrypted-deploy-debug",
13
+ "scrypted-debug": "scrypted-debug",
14
+ "scrypted-deploy": "scrypted-deploy",
15
+ "scrypted-readme": "scrypted-readme",
16
+ "scrypted-package-json": "scrypted-package-json"
17
+ },
18
+ "keywords": [
19
+ "scrypted",
20
+ "plugin",
21
+ "bticino",
22
+ "c100x",
23
+ "doorbell",
24
+ "legrand",
25
+ "homekit"
26
+ ],
27
+ "files": [
28
+ "dist"
29
+ ],
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "scrypted": {
34
+ "name": "BTicino C100X",
35
+ "runtime": "python",
36
+ "type": "DeviceProvider",
37
+ "interfaces": [
38
+ "ScryptedSystemDevice",
39
+ "DeviceProvider",
40
+ "Settings"
41
+ ]
42
+ },
43
+ "devDependencies": {
44
+ "@scrypted/sdk": "^0.5.59"
45
+ }
46
+ }