homebridge 2.0.0-alpha.7 → 2.0.0-alpha.71

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 (112) hide show
  1. package/README.md +1 -1
  2. package/bin/homebridge.js +22 -0
  3. package/dist/api.d.ts +250 -3
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +92 -0
  6. package/dist/api.js.map +1 -1
  7. package/dist/bridgeService.d.ts +11 -3
  8. package/dist/bridgeService.d.ts.map +1 -1
  9. package/dist/bridgeService.js +9 -5
  10. package/dist/bridgeService.js.map +1 -1
  11. package/dist/childBridgeFork.d.ts +30 -3
  12. package/dist/childBridgeFork.d.ts.map +1 -1
  13. package/dist/childBridgeFork.js +278 -5
  14. package/dist/childBridgeFork.js.map +1 -1
  15. package/dist/childBridgeService.d.ts +22 -0
  16. package/dist/childBridgeService.d.ts.map +1 -1
  17. package/dist/childBridgeService.js +85 -26
  18. package/dist/childBridgeService.js.map +1 -1
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +3 -2
  21. package/dist/cli.js.map +1 -1
  22. package/dist/externalPortService.d.ts +27 -6
  23. package/dist/externalPortService.d.ts.map +1 -1
  24. package/dist/externalPortService.js +73 -7
  25. package/dist/externalPortService.js.map +1 -1
  26. package/dist/index.d.ts +48 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +15 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/ipcService.d.ts +20 -0
  31. package/dist/ipcService.d.ts.map +1 -1
  32. package/dist/ipcService.js.map +1 -1
  33. package/dist/logger.d.ts +6 -0
  34. package/dist/logger.d.ts.map +1 -1
  35. package/dist/logger.js +8 -0
  36. package/dist/logger.js.map +1 -1
  37. package/dist/matter/index.d.ts +123 -0
  38. package/dist/matter/index.d.ts.map +1 -0
  39. package/dist/matter/index.js +19 -0
  40. package/dist/matter/index.js.map +1 -0
  41. package/dist/matter/matterAccessoryCache.d.ts +77 -0
  42. package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
  43. package/dist/matter/matterAccessoryCache.js +176 -0
  44. package/dist/matter/matterAccessoryCache.js.map +1 -0
  45. package/dist/matter/matterBehaviors.d.ts +177 -0
  46. package/dist/matter/matterBehaviors.d.ts.map +1 -0
  47. package/dist/matter/matterBehaviors.js +639 -0
  48. package/dist/matter/matterBehaviors.js.map +1 -0
  49. package/dist/matter/matterConfigValidator.d.ts +81 -0
  50. package/dist/matter/matterConfigValidator.d.ts.map +1 -0
  51. package/dist/matter/matterConfigValidator.js +240 -0
  52. package/dist/matter/matterConfigValidator.js.map +1 -0
  53. package/dist/matter/matterErrorHandler.d.ts +94 -0
  54. package/dist/matter/matterErrorHandler.d.ts.map +1 -0
  55. package/dist/matter/matterErrorHandler.js +485 -0
  56. package/dist/matter/matterErrorHandler.js.map +1 -0
  57. package/dist/matter/matterLogFormatter.d.ts +19 -0
  58. package/dist/matter/matterLogFormatter.d.ts.map +1 -0
  59. package/dist/matter/matterLogFormatter.js +126 -0
  60. package/dist/matter/matterLogFormatter.js.map +1 -0
  61. package/dist/matter/matterNetworkMonitor.d.ts +68 -0
  62. package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
  63. package/dist/matter/matterNetworkMonitor.js +249 -0
  64. package/dist/matter/matterNetworkMonitor.js.map +1 -0
  65. package/dist/matter/matterServer.d.ts +644 -0
  66. package/dist/matter/matterServer.d.ts.map +1 -0
  67. package/dist/matter/matterServer.js +1460 -0
  68. package/dist/matter/matterServer.js.map +1 -0
  69. package/dist/matter/matterServerHelpers.d.ts +76 -0
  70. package/dist/matter/matterServerHelpers.d.ts.map +1 -0
  71. package/dist/matter/matterServerHelpers.js +298 -0
  72. package/dist/matter/matterServerHelpers.js.map +1 -0
  73. package/dist/matter/matterSharedTypes.d.ts +165 -0
  74. package/dist/matter/matterSharedTypes.d.ts.map +1 -0
  75. package/dist/matter/matterSharedTypes.js +51 -0
  76. package/dist/matter/matterSharedTypes.js.map +1 -0
  77. package/dist/matter/matterStorage.d.ts +126 -0
  78. package/dist/matter/matterStorage.d.ts.map +1 -0
  79. package/dist/matter/matterStorage.js +419 -0
  80. package/dist/matter/matterStorage.js.map +1 -0
  81. package/dist/matter/matterTypes.d.ts +668 -0
  82. package/dist/matter/matterTypes.d.ts.map +1 -0
  83. package/dist/matter/matterTypes.js +174 -0
  84. package/dist/matter/matterTypes.js.map +1 -0
  85. package/dist/platformAccessory.d.ts +1 -0
  86. package/dist/platformAccessory.d.ts.map +1 -1
  87. package/dist/platformAccessory.js +8 -1
  88. package/dist/platformAccessory.js.map +1 -1
  89. package/dist/plugin.d.ts +0 -1
  90. package/dist/plugin.d.ts.map +1 -1
  91. package/dist/plugin.js +8 -11
  92. package/dist/plugin.js.map +1 -1
  93. package/dist/pluginManager.d.ts.map +1 -1
  94. package/dist/pluginManager.js +22 -21
  95. package/dist/pluginManager.js.map +1 -1
  96. package/dist/server.d.ts +23 -1
  97. package/dist/server.d.ts.map +1 -1
  98. package/dist/server.js +374 -10
  99. package/dist/server.js.map +1 -1
  100. package/dist/storageService.js +8 -8
  101. package/dist/storageService.js.map +1 -1
  102. package/dist/user.d.ts +1 -0
  103. package/dist/user.d.ts.map +1 -1
  104. package/dist/user.js +10 -7
  105. package/dist/user.js.map +1 -1
  106. package/dist/util/mac.d.ts.map +1 -1
  107. package/dist/util/mac.js +2 -2
  108. package/dist/util/mac.js.map +1 -1
  109. package/dist/version.js +2 -2
  110. package/dist/version.js.map +1 -1
  111. package/package.json +23 -22
  112. package/bin/homebridge +0 -19
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Custom Matter Behavior Classes for Homebridge
3
+ *
4
+ * These custom behaviors extend the base Matter.js behaviors and override
5
+ * command methods to allow plugins to inject custom handlers.
6
+ *
7
+ * Note: Only clusters with user-triggered commands need custom behaviors.
8
+ * Read-only clusters (like sensors) don't need custom behaviors since
9
+ * they only report state, they don't receive commands.
10
+ */
11
+ import type { MaybePromise } from '@matter/main';
12
+ import type { ColorControl, Identify, LevelControl, RvcOperationalState, ServiceArea, Thermostat, WindowCovering } from '@matter/main/clusters';
13
+ import type { MatterAccessoryMap, MatterCommandHandler } from './matterTypes.js';
14
+ import { ColorControlServer, DoorLockServer, FanControlServer, IdentifyServer, LevelControlServer, OnOffServer, RvcCleanModeServer, RvcOperationalStateServer, RvcRunModeServer, ServiceAreaServer, ThermostatServer, WindowCoveringBaseServer } from '@matter/main/behaviors';
15
+ /**
16
+ * Result type for Matter commands
17
+ * MaybePromise allows both sync and async returns, matching Matter.js base classes
18
+ */
19
+ type MatterCommandResult = MaybePromise<void>;
20
+ /**
21
+ * Set the accessories map reference for cache syncing
22
+ */
23
+ export declare function setAccessoriesMap(map: MatterAccessoryMap): void;
24
+ /**
25
+ * Register a handler for a specific endpoint/cluster/command
26
+ *
27
+ * @param endpointId - Unique endpoint identifier (typically the accessory UUID)
28
+ * @param clusterName - Name of the Matter cluster (e.g., 'onOff', 'levelControl')
29
+ * @param commandName - Name of the command method (e.g., 'on', 'off', 'moveToLevel')
30
+ * @param handler - Callback function to execute when the command is received
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * registerHandler('my-light-uuid', 'onOff', 'on', async () => {
35
+ * console.log('Light turned on!')
36
+ * })
37
+ * ```
38
+ */
39
+ export declare function registerHandler(endpointId: string, clusterName: string, commandName: string, handler: MatterCommandHandler): void;
40
+ /**
41
+ * Custom OnOff Server that calls plugin handlers
42
+ */
43
+ export declare class HomebridgeOnOffServer extends OnOffServer {
44
+ on(): MatterCommandResult;
45
+ off(): MatterCommandResult;
46
+ toggle(): MatterCommandResult;
47
+ }
48
+ /**
49
+ * Custom LevelControl Server that calls plugin handlers
50
+ */
51
+ export declare class HomebridgeLevelControlServer extends LevelControlServer {
52
+ moveToLevel(request: LevelControl.MoveToLevelRequest): MatterCommandResult;
53
+ moveToLevelWithOnOff(request: LevelControl.MoveToLevelRequest): MaybePromise;
54
+ move(request: LevelControl.MoveRequest): MaybePromise;
55
+ step(request: LevelControl.StepRequest): MaybePromise;
56
+ stop(request: LevelControl.StopRequest): MaybePromise;
57
+ }
58
+ /**
59
+ * Custom WindowCovering Server that calls plugin handlers
60
+ */
61
+ export declare class HomebridgeWindowCoveringServer extends WindowCoveringBaseServer {
62
+ upOrOpen(): MaybePromise;
63
+ downOrClose(): MaybePromise;
64
+ stopMotion(): MaybePromise;
65
+ goToLiftPercentage(request: WindowCovering.GoToLiftPercentageRequest): MaybePromise;
66
+ goToTiltPercentage(request: WindowCovering.GoToTiltPercentageRequest): MaybePromise;
67
+ }
68
+ /**
69
+ * Custom FanControl Server that calls plugin handlers
70
+ */
71
+ export declare class HomebridgeFanControlServer extends FanControlServer {
72
+ #private;
73
+ initialize(): void;
74
+ }
75
+ /**
76
+ * Custom DoorLock Server that calls plugin handlers
77
+ */
78
+ export declare class HomebridgeDoorLockServer extends DoorLockServer {
79
+ lockDoor(): MaybePromise;
80
+ unlockDoor(): MaybePromise;
81
+ }
82
+ /**
83
+ * Custom Thermostat Server that calls plugin handlers
84
+ */
85
+ export declare class HomebridgeThermostatServer extends ThermostatServer {
86
+ #private;
87
+ initialize(): void;
88
+ setpointRaiseLower(request: Thermostat.SetpointRaiseLowerRequest): MaybePromise;
89
+ }
90
+ /**
91
+ * Custom Identify Server that calls plugin handlers
92
+ */
93
+ export declare class HomebridgeIdentifyServer extends IdentifyServer {
94
+ identify(request: Identify.IdentifyRequest): MaybePromise;
95
+ }
96
+ /**
97
+ * Custom ColorControl Server that calls plugin handlers
98
+ *
99
+ * ColorControl handles color changes for lights (hue, saturation, XY color, color temperature).
100
+ * Plugin developers can override these *Logic methods to handle color changes in their hardware.
101
+ *
102
+ * Features (Xy, ColorTemperature, HueSaturation) are added by the device type, not this behavior.
103
+ * This ensures each device only gets the features it needs.
104
+ */
105
+ export declare class HomebridgeColorControlServer extends ColorControlServer {
106
+ /**
107
+ * Called when color temperature is changed
108
+ * @param colorTemperatureMireds - Target color temperature in mireds (micro reciprocal degrees)
109
+ * @param transitionTime - Transition time in seconds (0 = as fast as possible)
110
+ */
111
+ moveToColorTemperatureLogic(colorTemperatureMireds: number, transitionTime: number): MaybePromise;
112
+ /**
113
+ * Called when hue and saturation are changed together
114
+ * @param hue - Target hue value (0-254 for normal hue, 0-65535 for enhanced hue)
115
+ * @param saturation - Target saturation value (0-254)
116
+ * @param transitionTime - Transition time in seconds (0 = as fast as possible)
117
+ */
118
+ moveToHueAndSaturationLogic(hue: number, saturation: number, transitionTime: number): MaybePromise;
119
+ /**
120
+ * Called when XY color coordinates are changed
121
+ * @param targetX - Target X value (0-65535 representing 0.0-1.0 in CIE color space)
122
+ * @param targetY - Target Y value (0-65535 representing 0.0-1.0 in CIE color space)
123
+ * @param transitionTime - Transition time in seconds (0 = as fast as possible)
124
+ */
125
+ moveToColorLogic(targetX: number, targetY: number, transitionTime: number): MaybePromise;
126
+ /**
127
+ * Called when hue is changed individually
128
+ * @param targetHue - Target hue value
129
+ * @param direction - Direction to move (shortest, longest, up, down)
130
+ * @param transitionTime - Transition time in seconds
131
+ * @param isEnhancedHue - Whether this is enhanced hue (16-bit) or normal hue (8-bit)
132
+ */
133
+ moveToHueLogic(targetHue: number, direction: ColorControl.Direction, transitionTime: number, isEnhancedHue?: boolean): MaybePromise;
134
+ /**
135
+ * Called when saturation is changed individually
136
+ * @param targetSaturation - Target saturation value (0-254)
137
+ * @param transitionTime - Transition time in seconds
138
+ */
139
+ moveToSaturationLogic(targetSaturation: number, transitionTime: number): MaybePromise;
140
+ /**
141
+ * Called when all color movement should be stopped
142
+ */
143
+ stopAllColorMovement(): MaybePromise;
144
+ }
145
+ /**
146
+ * Custom RvcOperationalState Server that calls plugin handlers
147
+ * Handles robotic vacuum cleaner operational state commands
148
+ */
149
+ export declare class HomebridgeRvcOperationalStateServer extends RvcOperationalStateServer {
150
+ pause(): MaybePromise<RvcOperationalState.OperationalCommandResponse>;
151
+ resume(): MaybePromise<RvcOperationalState.OperationalCommandResponse>;
152
+ goHome(): MaybePromise<RvcOperationalState.OperationalCommandResponse>;
153
+ }
154
+ /**
155
+ * Custom RvcRunMode Server that calls plugin handlers
156
+ * Handles robotic vacuum cleaner run mode changes
157
+ */
158
+ export declare class HomebridgeRvcRunModeServer extends RvcRunModeServer {
159
+ changeToMode(request: any): any;
160
+ }
161
+ /**
162
+ * Custom RvcCleanMode Server that calls plugin handlers
163
+ * Handles robotic vacuum cleaner cleaning mode changes
164
+ */
165
+ export declare class HomebridgeRvcCleanModeServer extends RvcCleanModeServer {
166
+ changeToMode(request: any): any;
167
+ }
168
+ /**
169
+ * Custom ServiceArea Server that calls plugin handlers
170
+ * Handles service area selection for robotic vacuum cleaners
171
+ */
172
+ export declare class HomebridgeServiceAreaServer extends ServiceAreaServer {
173
+ selectAreas(request: ServiceArea.SelectAreasRequest): MaybePromise<ServiceArea.SelectAreasResponse>;
174
+ skipArea(request: ServiceArea.SkipAreaRequest): MaybePromise<ServiceArea.SkipAreaResponse>;
175
+ }
176
+ export {};
177
+ //# sourceMappingURL=matterBehaviors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterBehaviors.d.ts","sourceRoot":"","sources":["../../src/matter/matterBehaviors.ts"],"names":[],"mappings":"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"}