homebridge-pax-calima 2.3.1 → 2.3.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.
Files changed (2) hide show
  1. package/README.md +155 -14
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,27 +1,168 @@
1
1
  # homebridge-pax-calima
2
2
 
3
- Homebridge platform plugin for **Pax Calima** and **Vent-Axia Svara** Bluetooth LE bathroom extractor fans.
3
+ **Homebridge 2.0 Ready** · [npm](https://www.npmjs.com/package/homebridge-pax-calima) · [GitHub](https://github.com/JayC68/homebridge-pax-calima)
4
4
 
5
- The Vent-Axia Svara is the UK rebrand of the Pax Calima — they use the **exact same Bluetooth protocol**, MAC prefix (`58:2b:db`), and GATT characteristics.
5
+ Full HomeKit integration for **Pax Calima** (Scandinavia) and **Vent-Axia Svara** (UK) Bluetooth LE bathroom extractor fans. These are hardware-identical and use the exact same BLE protocol and MAC prefix (`58:2b:db`).
6
+
7
+ ---
6
8
 
7
9
  ## Features
8
- - Automatic discovery of fans (MAC starting with `58:2b:db`)
9
- - Fan control (On/Off + Rotation Speed 0-100%)
10
- - Live sensors: Humidity, Temperature, Light level
11
- - Mode switching (Multi Mode, Heat Distribution)
12
- - Boost button (press to activate temporary high-speed boost)
13
- - Silent Hours toggle
14
- - Automatic cycle switches (30/60/90 min)
15
- - Trickle ventilation toggle
16
- - Easy configuration via Homebridge Config UI
17
-
18
- Perfect for Apple Home automations.
10
+
11
+ | Feature | Detail |
12
+ |---|---|
13
+ | **Auto-discovery** | Finds all Pax/Svara fans automatically — no MAC address needed |
14
+ | **Fan speed indicator** | Displays current RPM as 0–100% in Apple Home |
15
+ | **Fan speed control** | Speed slider available — see wiring note below |
16
+ | **Humidity sensor** | Live readings, updates every 10 seconds |
17
+ | **Temperature sensor** | Live readings, updates every 10 seconds |
18
+ | **Light sensor** | Live readings in lux, updates every 10 seconds |
19
+ | **Boost button** | Stateless programmable switch — triggers temporary high-speed boost |
20
+ | **Silent Hours** | Toggle switch — prevents fan boosting during scheduled quiet periods |
21
+ | **Automations** | Full support — trigger on humidity, temperature or light thresholds |
22
+
23
+ ---
24
+
25
+ ## Requirements
26
+
27
+ - Homebridge `^1.6.0` or `^2.0.0`
28
+ - Node.js `>= 18`
29
+ - A Bluetooth LE adapter on the Homebridge host (built-in or USB dongle)
30
+
31
+ ### Raspberry Pi / Homebridge OS setup
32
+
33
+ The `noble` BLE library requires elevated network capabilities. Run **once** after installation:
34
+
35
+ ```bash
36
+ sudo setcap cap_net_raw+eip /opt/homebridge/bin/node
37
+ ```
38
+
39
+ If Bluetooth shows as `poweredOff` after this, unblock the radio:
40
+
41
+ ```bash
42
+ sudo rfkill unblock bluetooth
43
+ ```
44
+
45
+ ---
19
46
 
20
47
  ## Installation
21
48
 
22
49
  ### Via Homebridge UI (recommended)
23
- Search for **Pax Calima** or **Svara** and install.
50
+ Search for **Pax Calima** or **Svara** and click Install.
24
51
 
25
52
  ### Via Terminal
26
53
  ```bash
27
54
  npm install -g homebridge-pax-calima
55
+ ```
56
+
57
+ ---
58
+
59
+ ## Configuration
60
+
61
+ Auto-discovery requires **no configuration**. The plugin finds any fan with MAC address starting `58:2b:db` automatically and registers it with a default name.
62
+
63
+ To set a **custom name** or **PIN** for a specific fan, add an entry to the `fans` array:
64
+
65
+ ```json
66
+ {
67
+ "platform": "PaxCalima",
68
+ "name": "Pax Calima / Vent-Axia Svara",
69
+ "fans": [
70
+ {
71
+ "name": "Wetroom Fan",
72
+ "mac": "58:2b:db:xx:xx:xx",
73
+ "pin": "012345"
74
+ }
75
+ ]
76
+ }
77
+ ```
78
+
79
+ The `fans` array is entirely optional. Omit it to use auto-discovery with default names and PIN `012345`.
80
+
81
+ ---
82
+
83
+ ## Accessories in Apple Home
84
+
85
+ Each discovered fan appears in the Home app as a single accessory with the following tiles:
86
+
87
+ - **Fan** — displays current speed; slider available (see wiring note below)
88
+ - **Boost** — programmable button for temporary high-speed boost
89
+ - **Silent Hours** — switch to suppress automatic boosting during quiet periods
90
+ - **Humidity** — current relative humidity (%)
91
+ - **Temperature** — current temperature (°C)
92
+ - **Light** — current ambient light level (lux)
93
+
94
+ > Note: Accessories appear in the **Home app**, not in the Homebridge UI accessories tab. This is correct behaviour for child bridge plugins.
95
+
96
+ ---
97
+
98
+ ## Fan Speed Control — Wiring Mode Note
99
+
100
+ The Pax Calima and Vent-Axia Svara support two wiring modes, selected at installation time:
101
+
102
+ **Intermittent mode** — the fan is off by default and triggered by humidity, light, or a timer. In this mode BLE speed commands are fully respected and the speed slider in Apple Home controls the fan directly.
103
+
104
+ **Always-on (trickle) mode** — the fan runs continuously at a speed determined by its onboard controller, typically set via the official app or physical dial. In this mode BLE speed writes are accepted by the fan but the onboard firmware immediately reasserts its own speed. The slider will appear to have no effect.
105
+
106
+ If your fan is wired in always-on mode, the speed slider will reflect the current RPM accurately but cannot override the onboard setpoint. The sensors and automations remain fully functional regardless of wiring mode — for bathroom and wetroom use this is the primary value of the integration, enabling powerful Apple Home automations based on live humidity, temperature and light readings.
107
+
108
+ To enable full speed control, consult your fan's installation guide to switch to intermittent wiring mode.
109
+
110
+ ---
111
+
112
+ ## Sensor Notes
113
+
114
+ The Svara's light sensor detects occupancy via light movement and shadows rather than acting as a calibrated lux meter. Readings may vary slightly from a reference device depending on mounting position — this is expected.
115
+
116
+ Humidity and temperature automations work well natively in the Home app. For lux-based automations, use a third-party app such as **Eve** or **Hesperus** which support lux thresholds and sync back to HomeKit.
117
+
118
+ ---
119
+
120
+ ## Troubleshooting
121
+
122
+ **Fan not discovered**
123
+ - Confirm BLE is active: run `hciconfig` on the Pi — look for `UP RUNNING`
124
+ - If it shows `RF-KILL`: run `sudo rfkill unblock bluetooth`
125
+ - Confirm `setcap` targets the correct Node binary: `/opt/homebridge/bin/node`
126
+
127
+ **Authentication failed**
128
+ - Default PIN is `012345`. If you set a custom PIN in the official Pax/Svara app, add the fan to the `fans` config array with the correct PIN.
129
+
130
+ **Speed slider has no effect**
131
+ - Your fan is likely wired in always-on mode. See the wiring note above. All sensors and automations are unaffected.
132
+
133
+ **Accessories not appearing in Home app**
134
+ - Remove the accessory cache via Homebridge UI → (plugin settings) → Remove Accessory Cache, then restart Homebridge
135
+
136
+ ---
137
+
138
+ ## Release Notes
139
+
140
+ ### 2.3.2
141
+ - **Documented:** Fan speed control behaviour in always-on vs intermittent wiring modes — the slider correctly reflects current RPM in both modes; in always-on mode the onboard firmware reasserts its own speed setpoint after each BLE write
142
+ - **Confirmed:** All sensors (humidity, temperature, light, RPM) accurate and stable
143
+ - **Improved:** README wiring mode explanation, troubleshooting entry for speed slider, sensor automation guidance
144
+
145
+ ### 2.3.1
146
+ - **Investigated:** Correct control characteristic identified (`1488a757...`) via live BLE dump
147
+ - **Added:** Diagnostic logging of control characteristic on every poll and before/after writes
148
+ - **Fixed:** `writeSpeed` pauses poll cycle to avoid BLE conflicts during writes
149
+
150
+ ### 2.3.0
151
+ - **Published:** Stable sensor readings verified against real-world reference device
152
+ - **Fixed:** Auth characteristic discovery on first connection after restart
153
+
154
+ ### 2.2.1
155
+ - **Fixed:** Sensors no longer stuck after restart — polling deferred until BLE is ready
156
+ - **Fixed:** Poll interval 30s → 10s for responsive shower humidity tracking
157
+ - **Fixed:** Overlapping poll guard prevents concurrent BLE connections
158
+ - **Fixed:** Multi Mode and Heat Distribution switches removed — not applicable for UK use
159
+ - **Fixed:** Duplicate accessory registration on restart resolved
160
+ - **Fixed:** Switch UUID collision resolved with explicit subtypes
161
+
162
+ ### 2.1.0
163
+ - **Fixed:** Correct sensor characteristic UUIDs and byte mappings confirmed via live device
164
+ - **Fixed:** BLE refactored to connect → auth → read → disconnect → repeat pattern
165
+ - **Fixed:** UUID matching on Linux noble
166
+
167
+ ### 1.0.x
168
+ - Initial working releases
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-pax-calima",
3
- "version": "2.3.1",
3
+ "version": "2.3.2",
4
4
  "description": "Homebridge platform plugin for Pax Calima and Vent-Axia Svara Bluetooth LE bathroom extractor fans",
5
5
  "main": "index.js",
6
6
  "keywords": [