@homebridge-plugins/homebridge-matter 0.0.1 → 0.0.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 ADDED
@@ -0,0 +1,13 @@
1
+ # Change Log
2
+
3
+ All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
4
+
5
+ ## v0.0.2 (2025-10-15)
6
+
7
+ ### Changes
8
+
9
+ - added simple examples for getting/updating device state
10
+
11
+ ## v0.0.1 (2025-10-03)
12
+
13
+ - Initial release
package/README.md CHANGED
@@ -135,6 +135,38 @@ You can now start customising the plugin template to suit your requirements.
135
135
  - [`src/platformAccessory.ts`](./src/platformAccessory.ts) - this is where your accessory control logic should go, you can rename or create multiple instances of this file for each accessory type you need to implement as part of your platform plugin. You can refer to the [developer documentation](https://developers.homebridge.io/) to see what characteristics you need to implement for each service type.
136
136
  - [`config.schema.json`](./config.schema.json) - update the config schema to match the config you expect from the user. See the [Plugin Config Schema Documentation](https://developers.homebridge.io/#/config-schema).
137
137
 
138
+ ### Matter State Management Guide
139
+
140
+ **Important for Matter plugin developers:** Understanding how to manage accessory state is critical when working with Matter.
141
+
142
+ 📖 **[Read the State Management Guide](./STATE_MANAGEMENT.md)** to learn:
143
+
144
+ - **Handlers** (Home app → Device) - How to respond when users control devices via Home app
145
+ - **State Updates** (Device → Home app) - How to sync state when devices change externally (native app, physical buttons, webhooks, etc.)
146
+ - Complete working examples for outlets, lights, and sensors
147
+ - Differences between Matter and HAP (HomeKit Accessory Protocol) patterns
148
+
149
+ **Quick Overview:**
150
+
151
+ ```typescript
152
+ handlers: {
153
+ onOff: {
154
+ on: async () => {
155
+ await yourDeviceAPI.turnOn()
156
+ }
157
+ }
158
+ }
159
+
160
+ // Pattern 2: Device changes externally → Update Home app
161
+ function handleExternalChange(newState: boolean) {
162
+ this.api.updateMatterAccessoryState('device-uuid', 'onOff', {
163
+ onOff: newState,
164
+ })
165
+ }
166
+ ```
167
+
168
+ See [`STATE_MANAGEMENT.md`](./STATE_MANAGEMENT.md) for complete details and examples.
169
+
138
170
  ### Versioning Your Plugin
139
171
 
140
172
  Given a version number `MAJOR`.`MINOR`.`PATCH`, such as `1.4.3`, increment the:
@@ -0,0 +1,42 @@
1
+ import type { API, Logging } from 'homebridge';
2
+ /**
3
+ * State Management Examples for Matter Accessories
4
+ *
5
+ * This demonstrates the two key patterns for managing accessory state:
6
+ *
7
+ * 1. HANDLERS (Matter → Device)
8
+ * - Called when user controls device via Home app
9
+ * - Plugin sends command to actual device (cloud API, local network, etc.)
10
+ * - Analogous to HAP's setCharacteristic handlers
11
+ *
12
+ * 2. STATE UPDATES (Device → Matter)
13
+ * - Called when device state changes externally (native app, physical button, polling, etc.)
14
+ * - Plugin updates Matter state to reflect actual device state
15
+ * - Analogous to HAP's updateCharacteristic
16
+ */
17
+ export declare class StateManagementExample {
18
+ private readonly log;
19
+ private readonly api;
20
+ constructor(log: Logging, api: API);
21
+ /**
22
+ * Example 1: Smart Outlet with Two-Way Communication
23
+ *
24
+ * Demonstrates:
25
+ * - Handler: User turns on outlet via Home app → control actual device
26
+ * - State Update: Outlet turned on via native app → update Home app state
27
+ */
28
+ registerSmartOutletExample(): void;
29
+ /**
30
+ * Example 2: Dimmable Light with Brightness
31
+ *
32
+ * Shows how to handle multiple cluster attributes
33
+ */
34
+ registerDimmableLightExample(): void;
35
+ /**
36
+ * Example 3: Temperature Sensor (Read-Only)
37
+ *
38
+ * Sensors don't have handlers (no user commands)
39
+ * Only need state updates when sensor readings change
40
+ */
41
+ registerTemperatureSensorExample(): void;
42
+ }
@@ -0,0 +1,236 @@
1
+ /**
2
+ * State Management Examples for Matter Accessories
3
+ *
4
+ * This demonstrates the two key patterns for managing accessory state:
5
+ *
6
+ * 1. HANDLERS (Matter → Device)
7
+ * - Called when user controls device via Home app
8
+ * - Plugin sends command to actual device (cloud API, local network, etc.)
9
+ * - Analogous to HAP's setCharacteristic handlers
10
+ *
11
+ * 2. STATE UPDATES (Device → Matter)
12
+ * - Called when device state changes externally (native app, physical button, polling, etc.)
13
+ * - Plugin updates Matter state to reflect actual device state
14
+ * - Analogous to HAP's updateCharacteristic
15
+ */
16
+ export class StateManagementExample {
17
+ log;
18
+ api;
19
+ constructor(log, api) {
20
+ this.log = log;
21
+ this.api = api;
22
+ }
23
+ /**
24
+ * Example 1: Smart Outlet with Two-Way Communication
25
+ *
26
+ * Demonstrates:
27
+ * - Handler: User turns on outlet via Home app → control actual device
28
+ * - State Update: Outlet turned on via native app → update Home app state
29
+ */
30
+ registerSmartOutletExample() {
31
+ // Simulated device state (in real plugin, this would be your device API/SDK)
32
+ let deviceIsOn = false;
33
+ // Function to control the actual device (cloud API, local network, etc.)
34
+ const controlDevice = async (turnOn) => {
35
+ this.log.info(`[Device Control] Sending command to turn outlet ${turnOn ? 'ON' : 'OFF'}`);
36
+ // Example: Call your device API
37
+ // await yourDeviceAPI.setOutletState(turnOn)
38
+ // Simulate device response
39
+ deviceIsOn = turnOn;
40
+ this.log.info(`[Device Control] ✓ Outlet is now ${turnOn ? 'ON' : 'OFF'}`);
41
+ };
42
+ // Register the Matter accessory
43
+ this.api.registerMatterAccessory({
44
+ uuid: 'example-outlet-state-management',
45
+ displayName: 'Example Smart Outlet',
46
+ deviceType: this.api.matterDeviceTypes.OnOffOutlet,
47
+ serialNumber: 'OUTLET-STATE-001',
48
+ manufacturer: 'State Management Examples',
49
+ model: 'SmartOutlet v1',
50
+ clusters: {
51
+ onOff: {
52
+ onOff: deviceIsOn, // Initial state
53
+ },
54
+ },
55
+ // ===== PATTERN 1: HANDLERS (Matter → Device) =====
56
+ // These are called when user controls device via Home app
57
+ // Similar to HAP's characteristic.on('set', handler)
58
+ handlers: {
59
+ onOff: {
60
+ on: async () => {
61
+ this.log.info('[HANDLER] User turned ON outlet via Home app');
62
+ // Control the actual device
63
+ await controlDevice(true);
64
+ // State is automatically updated in Matter after handler completes
65
+ // No need to call updateMatterAccessoryState here!
66
+ },
67
+ off: async () => {
68
+ this.log.info('[HANDLER] User turned OFF outlet via Home app');
69
+ // Control the actual device
70
+ await controlDevice(false);
71
+ // State is automatically updated in Matter after handler completes
72
+ },
73
+ },
74
+ },
75
+ });
76
+ // ===== PATTERN 2: STATE UPDATES (Device → Matter) =====
77
+ // Call this when device state changes externally
78
+ // Similar to HAP's characteristic.updateValue()
79
+ // Example: Device state changed via native mobile app
80
+ const handleNativeAppChange = (newState) => {
81
+ this.log.info(`[EXTERNAL] Outlet turned ${newState ? 'ON' : 'OFF'} via native app`);
82
+ // Update local state
83
+ deviceIsOn = newState;
84
+ // Update Matter state WITHOUT triggering handlers
85
+ // This is like HAP's updateCharacteristic - it just syncs the state
86
+ this.api.updateMatterAccessoryState('example-outlet-state-management', 'onOff', { onOff: newState });
87
+ this.log.info('[EXTERNAL] ✓ Home app state updated to match device');
88
+ };
89
+ // Example: Device state changed via physical button
90
+ const handlePhysicalButton = (newState) => {
91
+ this.log.info(`[EXTERNAL] Outlet turned ${newState ? 'ON' : 'OFF'} via physical button`);
92
+ deviceIsOn = newState;
93
+ // Update Matter state without triggering handlers
94
+ this.api.updateMatterAccessoryState('example-outlet-state-management', 'onOff', { onOff: newState });
95
+ };
96
+ // Example: Polling device state periodically
97
+ // eslint-disable-next-line unused-imports/no-unused-vars
98
+ const pollDeviceState = async () => {
99
+ // In real plugin, fetch state from device API
100
+ // const actualState = await yourDeviceAPI.getOutletState()
101
+ // For demo, simulate random state changes
102
+ const actualState = Math.random() > 0.5;
103
+ if (actualState !== deviceIsOn) {
104
+ this.log.info(`[POLLING] Detected state change: ${actualState ? 'ON' : 'OFF'}`);
105
+ deviceIsOn = actualState;
106
+ // Update Matter state without triggering handlers
107
+ this.api.updateMatterAccessoryState('example-outlet-state-management', 'onOff', { onOff: actualState });
108
+ }
109
+ };
110
+ // Simulate external state changes for demonstration
111
+ // In real plugin, these would be triggered by:
112
+ // - WebSocket/SSE from cloud API
113
+ // - Physical button press events
114
+ // - Polling interval
115
+ // - Push notifications
116
+ // Demo: Native app changes after 10 seconds
117
+ setTimeout(() => handleNativeAppChange(true), 10000);
118
+ // Demo: Physical button press after 20 seconds
119
+ setTimeout(() => handlePhysicalButton(false), 20000);
120
+ // Demo: Poll every 30 seconds (optional - use events/webhooks when possible)
121
+ // setInterval(pollDeviceState, 30000);
122
+ }
123
+ /**
124
+ * Example 2: Dimmable Light with Brightness
125
+ *
126
+ * Shows how to handle multiple cluster attributes
127
+ */
128
+ registerDimmableLightExample() {
129
+ let deviceIsOn = false;
130
+ let deviceBrightness = 127; // 0-254 scale
131
+ // Device control function
132
+ const controlDevice = async (on, brightness) => {
133
+ if (on !== undefined) {
134
+ deviceIsOn = on;
135
+ this.log.info(`[Device] Light turned ${on ? 'ON' : 'OFF'}`);
136
+ }
137
+ if (brightness !== undefined) {
138
+ deviceBrightness = brightness;
139
+ this.log.info(`[Device] Brightness set to ${Math.round(brightness / 254 * 100)}%`);
140
+ }
141
+ };
142
+ this.api.registerMatterAccessory({
143
+ uuid: 'example-dimmable-light-state',
144
+ displayName: 'Example Dimmable Light',
145
+ deviceType: this.api.matterDeviceTypes.DimmableLight,
146
+ serialNumber: 'LIGHT-STATE-001',
147
+ manufacturer: 'State Management Examples',
148
+ model: 'DimmableLight v1',
149
+ clusters: {
150
+ onOff: {
151
+ onOff: deviceIsOn,
152
+ },
153
+ levelControl: {
154
+ currentLevel: deviceBrightness,
155
+ minLevel: 1,
156
+ maxLevel: 254,
157
+ },
158
+ },
159
+ handlers: {
160
+ onOff: {
161
+ on: async () => {
162
+ await controlDevice(true);
163
+ },
164
+ off: async () => {
165
+ await controlDevice(false);
166
+ },
167
+ },
168
+ levelControl: {
169
+ moveToLevel: async (args) => {
170
+ this.log.info(`[HANDLER] User set brightness to ${args.level} via Home app`);
171
+ await controlDevice(undefined, args.level);
172
+ },
173
+ },
174
+ },
175
+ });
176
+ // Example: Device brightness changed via native app
177
+ const handleBrightnessChange = (newBrightness) => {
178
+ this.log.info(`[EXTERNAL] Brightness changed to ${Math.round(newBrightness / 254 * 100)}% via native app`);
179
+ deviceBrightness = newBrightness;
180
+ // Update only the brightness attribute
181
+ this.api.updateMatterAccessoryState('example-dimmable-light-state', 'levelControl', { currentLevel: newBrightness });
182
+ };
183
+ // Example: Both on/off and brightness changed together
184
+ const handleCompleteStateChange = (on, brightness) => {
185
+ this.log.info(`[EXTERNAL] Complete state change: ${on ? 'ON' : 'OFF'} at ${Math.round(brightness / 254 * 100)}%`);
186
+ deviceIsOn = on;
187
+ deviceBrightness = brightness;
188
+ // Update multiple clusters
189
+ this.api.updateMatterAccessoryState('example-dimmable-light-state', 'onOff', { onOff: on });
190
+ this.api.updateMatterAccessoryState('example-dimmable-light-state', 'levelControl', { currentLevel: brightness });
191
+ };
192
+ // Demo: Brightness change after 15 seconds
193
+ setTimeout(() => handleBrightnessChange(200), 15000);
194
+ // Demo: Complete state change after 25 seconds
195
+ setTimeout(() => handleCompleteStateChange(true, 100), 25000);
196
+ }
197
+ /**
198
+ * Example 3: Temperature Sensor (Read-Only)
199
+ *
200
+ * Sensors don't have handlers (no user commands)
201
+ * Only need state updates when sensor readings change
202
+ */
203
+ registerTemperatureSensorExample() {
204
+ let currentTemp = 2100; // 21.00°C in hundredths
205
+ this.api.registerMatterAccessory({
206
+ uuid: 'example-temp-sensor-state',
207
+ displayName: 'Example Temperature Sensor',
208
+ deviceType: this.api.matterDeviceTypes.TemperatureSensor,
209
+ serialNumber: 'TEMP-STATE-001',
210
+ manufacturer: 'State Management Examples',
211
+ model: 'TempSensor v1',
212
+ clusters: {
213
+ temperatureMeasurement: {
214
+ measuredValue: currentTemp,
215
+ minMeasuredValue: -5000,
216
+ maxMeasuredValue: 10000,
217
+ },
218
+ },
219
+ // No handlers needed - sensors are read-only!
220
+ });
221
+ // Poll sensor reading every 60 seconds
222
+ const updateTemperature = () => {
223
+ // In real plugin: const temp = await yourSensorAPI.getTemperature()
224
+ // Simulate temperature change
225
+ currentTemp = 2100 + Math.floor(Math.random() * 500 - 250); // 21°C ± 2.5°C
226
+ this.log.info(`[SENSOR] Temperature updated: ${(currentTemp / 100).toFixed(2)}°C`);
227
+ // Update Matter state
228
+ this.api.updateMatterAccessoryState('example-temp-sensor-state', 'temperatureMeasurement', { measuredValue: currentTemp });
229
+ };
230
+ // Update temperature every minute
231
+ setInterval(updateTemperature, 60000);
232
+ // Initial update after 5 seconds
233
+ setTimeout(updateTemperature, 5000);
234
+ }
235
+ }
236
+ //# sourceMappingURL=exampleStateManagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exampleStateManagement.js","sourceRoot":"","sources":["../src/exampleStateManagement.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,yBAAyB,CAAC,CAAC;AAC9E,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE1D;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,yBAAyB,CAAC,CAAA;AAC7E,CAAC,CAAA"}
package/dist/platform.js CHANGED
@@ -50,7 +50,14 @@ export class ExampleHomebridgePlatform {
50
50
  * Lighting Devices
51
51
  */
52
52
  registerLightingDevices() {
53
- // 1. On/Off Light
53
+ // Track state for both lights
54
+ // eslint-disable-next-line unused-imports/no-unused-vars
55
+ let onOffLightState = false;
56
+ // eslint-disable-next-line unused-imports/no-unused-vars
57
+ let dimmableLightOn = false;
58
+ let dimmableBrightness = 127; // 50% brightness (1-254 scale)
59
+ // 1. On/Off Light - WITH STATE MANAGEMENT EXAMPLE
60
+ // When this light changes, it will update the dimmable light's state
54
61
  this.api.registerMatterAccessory({
55
62
  uuid: 'matter-onoff-light',
56
63
  displayName: 'On/Off Light',
@@ -58,23 +65,66 @@ export class ExampleHomebridgePlatform {
58
65
  serialNumber: 'LIGHT-001',
59
66
  manufacturer: 'Matter Examples',
60
67
  model: 'OnOffLight v1',
61
- clusters: {
62
- onOff: {
63
- onOff: false,
64
- },
65
- },
68
+ clusters: {},
69
+ // clusters: {
70
+ // onOff: {
71
+ // onOff: onOffLightState,
72
+ // },
73
+ // },
74
+ // PATTERN 1: Handlers (Home app → Device)
75
+ // These execute when user controls via Home app
66
76
  handlers: {
67
77
  onOff: {
68
78
  on: async () => {
69
- this.log.info('[On/Off Light] Turned ON');
79
+ this.log.info('[On/Off Light] Turned ON via Home app handler');
80
+ // Update local state
81
+ onOffLightState = true;
82
+ // NOTE: This light's state automatically updates after handler completes!
83
+ // ═══════════════════════════════════════════════════════════════
84
+ // PATTERN 3: Reading Current State (api.getAccessoryState)
85
+ // ═══════════════════════════════════════════════════════════════
86
+ // You can read current state using the API (useful after plugin restarts)
87
+ const onOffState = this.api.getAccessoryState('matter-dimmable-light', 'onOff');
88
+ const levelState = this.api.getAccessoryState('matter-dimmable-light', 'levelControl');
89
+ this.log.error(`[On/Off Light] 📖 Reading Dimmable Light on/off via API: ${onOffState?.onOff ? 'ON' : 'OFF'}`);
90
+ this.log.error(`[On/Off Light] 📖 Reading Dimmable Light brightness via API: ${levelState?.currentLevel} (${Math.round((levelState?.currentLevel || 0) / 254 * 100)}%)`);
91
+ // Note: You can also track state in local variables (same as HAP pattern)
92
+ this.log.error(`[On/Off Light] 📖 Reading from local variable: ${dimmableBrightness} (${Math.round(dimmableBrightness / 254 * 100)}%)`);
93
+ // ═══════════════════════════════════════════════════════════════
94
+ // PATTERN 2 DEMONSTRATION: Update Dimmable Light WITHOUT handler
95
+ // ═══════════════════════════════════════════════════════════════
96
+ // Simulating: Dimmable light state changed externally (like via native app)
97
+ // This will update the Home app WITHOUT triggering the dimmable light's handler
98
+ // Note: Homebridge automatically defers the update to avoid transaction conflicts
99
+ this.log.info('[On/Off Light] → Updating Dimmable Light state using updateMatterAccessoryState (no handler!)');
100
+ dimmableLightOn = true;
101
+ this.api.updateMatterAccessoryState('matter-dimmable-light', 'onOff', {
102
+ onOff: true,
103
+ });
104
+ this.log.info('[On/Off Light] ✓ Dimmable Light state updated (handler was NOT called)');
70
105
  },
71
106
  off: async () => {
72
- this.log.info('[On/Off Light] Turned OFF');
107
+ this.log.info('[On/Off Light] Turned OFF via Home app handler');
108
+ // Update local state
109
+ onOffLightState = false;
110
+ // Reading current state using the API
111
+ const onOffState = this.api.getAccessoryState('matter-dimmable-light', 'onOff');
112
+ const levelState = this.api.getAccessoryState('matter-dimmable-light', 'levelControl');
113
+ this.log.error(`[On/Off Light] 📖 Reading Dimmable Light on/off via API: ${onOffState?.onOff ? 'ON' : 'OFF'}`);
114
+ this.log.error(`[On/Off Light] 📖 Reading Dimmable Light brightness via API: ${levelState?.currentLevel} (${Math.round((levelState?.currentLevel || 0) / 254 * 100)}%)`);
115
+ // Update Dimmable Light WITHOUT triggering its handler
116
+ this.log.info('[On/Off Light] → Updating Dimmable Light state using updateMatterAccessoryState (no handler!)');
117
+ dimmableLightOn = false;
118
+ this.api.updateMatterAccessoryState('matter-dimmable-light', 'onOff', {
119
+ onOff: false,
120
+ });
121
+ this.log.info('[On/Off Light] ✓ Dimmable Light state updated (handler was NOT called)');
73
122
  },
74
123
  },
75
124
  },
76
125
  });
77
- // 2. Dimmable Light
126
+ // 2. Dimmable Light - Will be updated by On/Off Light
127
+ // This demonstrates receiving state updates WITHOUT handler execution
78
128
  this.api.registerMatterAccessory({
79
129
  uuid: 'matter-dimmable-light',
80
130
  displayName: 'Dimmable Light',
@@ -82,28 +132,32 @@ export class ExampleHomebridgePlatform {
82
132
  serialNumber: 'LIGHT-002',
83
133
  manufacturer: 'Matter Examples',
84
134
  model: 'DimmableLight v1',
85
- clusters: {
86
- onOff: {
87
- onOff: false,
88
- },
89
- levelControl: {
90
- currentLevel: 127, // 50% brightness (1-254 scale)
91
- minLevel: 1,
92
- maxLevel: 254,
93
- },
94
- },
135
+ clusters: {},
136
+ // onOff: {
137
+ // onOff: dimmableLightOn,
138
+ // },
139
+ // levelControl: {
140
+ // currentLevel: dimmableBrightness,
141
+ // minLevel: 1,
142
+ // maxLevel: 254,
143
+ // },
144
+ // },
145
+ // These handlers will NOT be called when On/Off Light updates this accessory's state
95
146
  handlers: {
96
147
  onOff: {
97
148
  on: async () => {
98
- this.log.info('[Dimmable Light] Turned ON');
149
+ this.log.info('[Dimmable Light] Handler ON called (user controlled via Home app)');
150
+ dimmableLightOn = true;
99
151
  },
100
152
  off: async () => {
101
- this.log.info('[Dimmable Light] Turned OFF');
153
+ this.log.info('[Dimmable Light] Handler OFF called (user controlled via Home app)');
154
+ dimmableLightOn = false;
102
155
  },
103
156
  },
104
157
  levelControl: {
105
158
  moveToLevel: async (args) => {
106
- this.log.info(`[Dimmable Light] Brightness changed to ${args.level} (${Math.round(args.level / 254 * 100)}%)`);
159
+ this.log.info(`[Dimmable Light] Handler moveToLevel called with ${args.level} (${Math.round(args.level / 254 * 100)}%)`);
160
+ dimmableBrightness = args.level;
107
161
  },
108
162
  },
109
163
  },
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAA;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAA"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-matter",
3
3
  "displayName": "Homebridge Matter",
4
4
  "type": "module",
5
- "version": "0.0.1",
5
+ "version": "0.0.2",
6
6
  "description": "A short description about what your plugin does.",
7
7
  "author": "Your Name",
8
8
  "license": "Apache-2.0",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "scripts": {
26
26
  "build": "rimraf ./dist && tsc",
27
- "lint": "eslint . --max-warnings=0",
27
+ "lint": "eslint . --fix",
28
28
  "prepublishOnly": "npm run lint && npm run build",
29
29
  "watch": "npm run build && npm link && nodemon"
30
30
  },
@@ -32,14 +32,12 @@
32
32
  "homebridge-lib": "^7.1.9"
33
33
  },
34
34
  "devDependencies": {
35
- "@eslint/js": "^9.37.0",
36
- "@types/node": "^24.7.0",
37
- "eslint": "^9.37.0",
38
- "homebridge": "2.0.0-alpha.43",
35
+ "@antfu/eslint-config": "^5.4.1",
36
+ "@types/node": "^24.7.2",
37
+ "homebridge": "2.0.0-alpha.46",
39
38
  "nodemon": "^3.1.10",
40
39
  "rimraf": "^6.0.1",
41
40
  "ts-node": "^10.9.2",
42
- "typescript": "^5.9.3",
43
- "typescript-eslint": "^8.46.0"
41
+ "typescript": "^5.9.3"
44
42
  }
45
43
  }
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AgentMigrationStateService">
4
- <option name="migrationStatus" value="COMPLETED" />
5
- </component>
6
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AskMigrationStateService">
4
- <option name="migrationStatus" value="COMPLETED" />
5
- </component>
6
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Ask2AgentMigrationStateService">
4
- <option name="migrationStatus" value="COMPLETED" />
5
- </component>
6
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="EditMigrationStateService">
4
- <option name="migrationStatus" value="COMPLETED" />
5
- </component>
6
- </project>
@@ -1,3 +0,0 @@
1
- <component name="ProjectDictionaryState">
2
- <dictionary name="benpotter" />
3
- </component>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="WEB_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$" />
5
- <orderEntry type="inheritedJdk" />
6
- <orderEntry type="sourceFolder" forTests="false" />
7
- </component>
8
- </module>
@@ -1,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
- </profile>
6
- </component>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/homebridge-matter.iml" filepath="$PROJECT_DIR$/.idea/homebridge-matter.iml" />
6
- </modules>
7
- </component>
8
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>