isy-nodejs 1.0.7-alpha.0 → 1.0.8-alpha.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.
Files changed (442) hide show
  1. package/dist/esm/CodeGeneration/CodeFactory.js +12 -6
  2. package/dist/esm/CodeGeneration/CodeFactory.js.map +1 -1
  3. package/dist/esm/CodeGeneration/NodeClassFactory.js +16 -7
  4. package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
  5. package/dist/esm/Definitions/Global/Commands.js +6 -7
  6. package/dist/esm/Definitions/Global/Commands.js.map +1 -1
  7. package/dist/esm/Definitions/Global/Drivers.js +36 -23
  8. package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
  9. package/dist/esm/Definitions/Insteon/generated/Boolean.js +10 -0
  10. package/dist/esm/Definitions/Insteon/generated/Boolean.js.map +1 -1
  11. package/dist/esm/Definitions/Insteon/generated/Error.js +10 -0
  12. package/dist/esm/Definitions/Insteon/generated/Error.js.map +1 -1
  13. package/dist/esm/Definitions/Insteon/generated/Lock.js +26 -0
  14. package/dist/esm/Definitions/Insteon/generated/Lock.js.map +1 -1
  15. package/dist/esm/Definitions/Insteon/generated/OnLevelRelay.js +10 -0
  16. package/dist/esm/Definitions/Insteon/generated/OnLevelRelay.js.map +1 -1
  17. package/{src/Devices/ISYMultiNodeDevice.ts → dist/esm/Devices/CompositeDevice.js} +108 -9
  18. package/dist/esm/Devices/CompositeDevice.js.map +1 -0
  19. package/dist/esm/Devices/DeviceFactory.js +1 -1
  20. package/dist/esm/Devices/DeviceFactory.js.map +1 -1
  21. package/dist/esm/Devices/ISYDeviceNode.js +1 -0
  22. package/dist/esm/Devices/ISYDeviceNode.js.map +1 -1
  23. package/dist/esm/Devices/ISYMultiNodeDevice.js +25 -1
  24. package/dist/esm/Devices/ISYMultiNodeDevice.js.map +1 -1
  25. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +6 -6
  26. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -1
  27. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +6 -6
  28. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -1
  29. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +6 -6
  30. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -1
  31. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +6 -6
  32. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -1
  33. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +6 -6
  34. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -1
  35. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +8 -8
  36. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -1
  37. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +8 -8
  38. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -1
  39. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +8 -8
  40. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -1
  41. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +8 -8
  42. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -1
  43. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +5 -5
  44. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -1
  45. package/dist/esm/Devices/Insteon/Generated/DoorLock.js +6 -6
  46. package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -1
  47. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +6 -6
  48. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -1
  49. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +6 -6
  50. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -1
  51. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +6 -6
  52. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -1
  53. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +6 -6
  54. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -1
  55. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +6 -6
  56. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -1
  57. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +14 -14
  58. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -1
  59. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +12 -12
  60. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -1
  61. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +7 -7
  62. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -1
  63. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +5 -5
  64. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -1
  65. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +6 -6
  66. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -1
  67. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +8 -8
  68. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -1
  69. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +6 -6
  70. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -1
  71. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +6 -6
  72. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -1
  73. package/dist/esm/Devices/Insteon/Generated/Pir2844.js +10 -10
  74. package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -1
  75. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +6 -6
  76. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -1
  77. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +10 -10
  78. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -1
  79. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +6 -6
  80. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -1
  81. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +6 -6
  82. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -1
  83. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +6 -6
  84. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -1
  85. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +5 -5
  86. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -1
  87. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +5 -5
  88. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -1
  89. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +6 -6
  90. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -1
  91. package/dist/esm/Devices/Insteon/Generated/Siren.js +9 -9
  92. package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -1
  93. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +5 -5
  94. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -1
  95. package/dist/esm/Devices/Insteon/Generated/TempLinc.js +12 -12
  96. package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -1
  97. package/dist/esm/Devices/Insteon/Generated/Thermostat.js +12 -12
  98. package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -1
  99. package/dist/esm/Devices/Insteon/Generated/X10.js +6 -6
  100. package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -1
  101. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +20 -11
  102. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +1 -1
  103. package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js +2 -4
  104. package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js.map +1 -1
  105. package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js +2 -2
  106. package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js.map +1 -1
  107. package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js +20 -7
  108. package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js.map +1 -1
  109. package/dist/esm/Devices/Insteon/InsteonFanDevice.js +17 -34
  110. package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
  111. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +3 -13
  112. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +1 -1
  113. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -16
  114. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
  115. package/dist/esm/Devices/Insteon/index.js +10 -11
  116. package/dist/esm/Devices/Insteon/index.js.map +1 -1
  117. package/dist/esm/Devices/Lutron/Generated/LoadShed.js +6 -6
  118. package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -1
  119. package/dist/esm/Devices/NodeFactory.js.map +1 -1
  120. package/dist/esm/Devices/UDI/Generated/Channel.js +7 -7
  121. package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -1
  122. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +10 -10
  123. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -1
  124. package/dist/esm/Devices/UDI/Generated/Main.js +7 -7
  125. package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -1
  126. package/dist/esm/Devices/UDI/Generated/PulseCounter.js +8 -8
  127. package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -1
  128. package/dist/esm/Devices/UDI/Generated/Relay.js +6 -6
  129. package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -1
  130. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +6 -6
  131. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -1
  132. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +9 -9
  133. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -1
  134. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +6 -6
  135. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -1
  136. package/dist/esm/Devices/ZigBee/ZWaveBaseDevice.js +9 -0
  137. package/dist/esm/Devices/ZigBee/ZWaveBaseDevice.js.map +1 -0
  138. package/dist/esm/Devices/ZigBee/ZigBeeBase.js +9 -0
  139. package/dist/esm/Devices/ZigBee/ZigBeeBase.js.map +1 -0
  140. package/dist/esm/Devices/ZigBee/index.js +3 -0
  141. package/dist/esm/Devices/ZigBee/index.js.map +1 -0
  142. package/dist/esm/ISY.js +19 -3
  143. package/dist/esm/ISY.js.map +1 -1
  144. package/dist/esm/ISYNode.js.map +1 -1
  145. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +37 -5
  146. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -1
  147. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +6 -1
  148. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
  149. package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js +24 -0
  150. package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js.map +1 -0
  151. package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js +23 -0
  152. package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js.map +1 -0
  153. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +4 -4
  154. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
  155. package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js +23 -0
  156. package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js.map +1 -0
  157. package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js +24 -0
  158. package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js.map +1 -0
  159. package/dist/esm/Matter/Behaviors/Insteon/index.js +4 -0
  160. package/dist/esm/Matter/Behaviors/Insteon/index.js.map +1 -0
  161. package/dist/esm/Matter/Bridge/Server.js +22 -11
  162. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  163. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  164. package/dist/esm/Matter/Mappings/MappingRegistry.js +5 -4
  165. package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -1
  166. package/dist/esm/Registry.js +77 -0
  167. package/dist/esm/Registry.js.map +1 -0
  168. package/dist/esm/Utils.js +12 -0
  169. package/dist/esm/Utils.js.map +1 -1
  170. package/dist/esm/types/CodeGeneration/CodeFactory.d.ts +6 -5
  171. package/dist/esm/types/CodeGeneration/CodeFactory.d.ts.map +1 -1
  172. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  173. package/dist/esm/types/Definitions/Global/Commands.d.ts +4 -4
  174. package/dist/esm/types/Definitions/Global/Commands.d.ts.map +1 -1
  175. package/dist/esm/types/Definitions/Global/Drivers.d.ts +10 -8
  176. package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
  177. package/dist/esm/types/Definitions/Global/Events.d.ts +3 -3
  178. package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
  179. package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts +4 -0
  180. package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts.map +1 -1
  181. package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts +4 -0
  182. package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts.map +1 -1
  183. package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts +6 -0
  184. package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts.map +1 -1
  185. package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts +4 -0
  186. package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts.map +1 -1
  187. package/dist/esm/types/Devices/CompositeDevice.d.ts +64 -0
  188. package/dist/esm/types/Devices/CompositeDevice.d.ts.map +1 -0
  189. package/dist/esm/types/Devices/EndpointFor.d.ts +3 -2
  190. package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
  191. package/dist/esm/types/Devices/ISYDeviceNode.d.ts +4 -1
  192. package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
  193. package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts +25 -1
  194. package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts.map +1 -1
  195. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +2 -3
  196. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -1
  197. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +2 -3
  198. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -1
  199. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +2 -3
  200. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -1
  201. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +2 -3
  202. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -1
  203. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +2 -3
  204. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -1
  205. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +2 -3
  206. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -1
  207. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +2 -3
  208. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -1
  209. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +2 -3
  210. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -1
  211. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +2 -3
  212. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -1
  213. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +2 -3
  214. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -1
  215. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +2 -3
  216. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -1
  217. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +2 -3
  218. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -1
  219. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +2 -3
  220. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -1
  221. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +2 -3
  222. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -1
  223. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +2 -3
  224. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -1
  225. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +2 -3
  226. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -1
  227. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +2 -3
  228. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -1
  229. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +2 -3
  230. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -1
  231. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +2 -3
  232. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -1
  233. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +2 -3
  234. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -1
  235. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +2 -3
  236. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -1
  237. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +2 -3
  238. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -1
  239. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +2 -3
  240. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -1
  241. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +2 -3
  242. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -1
  243. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +2 -3
  244. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -1
  245. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +2 -3
  246. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -1
  247. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +2 -3
  248. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -1
  249. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +2 -3
  250. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -1
  251. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +2 -3
  252. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -1
  253. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +2 -3
  254. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -1
  255. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +2 -3
  256. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -1
  257. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +2 -3
  258. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -1
  259. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +2 -3
  260. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -1
  261. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +2 -3
  262. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -1
  263. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +2 -3
  264. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -1
  265. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +2 -3
  266. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -1
  267. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +2 -3
  268. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -1
  269. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +2 -3
  270. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -1
  271. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +8 -6
  272. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
  273. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts +7 -2
  274. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts.map +1 -1
  275. package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts +2 -2
  276. package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts.map +1 -1
  277. package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts +2 -2
  278. package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts.map +1 -1
  279. package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts +17 -5
  280. package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts.map +1 -1
  281. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +18 -16
  282. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
  283. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
  284. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
  285. package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts +8 -7
  286. package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts.map +1 -1
  287. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts +0 -1
  288. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
  289. package/dist/esm/types/Devices/Insteon/index.d.ts +10 -11
  290. package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
  291. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +2 -3
  292. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -1
  293. package/dist/esm/types/Devices/NodeFactory.d.ts +1 -1
  294. package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
  295. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +2 -3
  296. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -1
  297. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +2 -3
  298. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -1
  299. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +2 -3
  300. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -1
  301. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +2 -3
  302. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -1
  303. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +2 -3
  304. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -1
  305. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +2 -3
  306. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -1
  307. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +2 -3
  308. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -1
  309. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +2 -3
  310. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -1
  311. package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts +10 -0
  312. package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts.map +1 -0
  313. package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts +10 -0
  314. package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts.map +1 -0
  315. package/dist/esm/types/Devices/ZigBee/index.d.ts +2 -0
  316. package/dist/esm/types/Devices/ZigBee/index.d.ts.map +1 -0
  317. package/dist/esm/types/ISY.d.ts.map +1 -1
  318. package/dist/esm/types/ISYDevice.d.ts +3 -5
  319. package/dist/esm/types/ISYDevice.d.ts.map +1 -1
  320. package/dist/esm/types/ISYNode.d.ts +32 -25
  321. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  322. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +9 -5
  323. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -1
  324. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +8 -5
  325. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
  326. package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts +321 -0
  327. package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts.map +1 -0
  328. package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts +42 -0
  329. package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts.map +1 -0
  330. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +4 -4
  331. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
  332. package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts +24 -0
  333. package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts.map +1 -0
  334. package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts +241 -0
  335. package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts.map +1 -0
  336. package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts +4 -0
  337. package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts.map +1 -0
  338. package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
  339. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +4173 -42
  340. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -1
  341. package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
  342. package/dist/esm/types/Registry.d.ts +37 -0
  343. package/dist/esm/types/Registry.d.ts.map +1 -0
  344. package/dist/esm/types/Utils.d.ts +13 -0
  345. package/dist/esm/types/Utils.d.ts.map +1 -1
  346. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  347. package/package.json +2 -2
  348. package/src/CodeGeneration/CodeFactory.ts +16 -8
  349. package/src/CodeGeneration/NodeClassFactory.ts +7 -9
  350. package/src/Definitions/Global/Commands.ts +16 -13
  351. package/src/Definitions/Global/Drivers.ts +56 -36
  352. package/src/Definitions/Global/Events.ts +4 -4
  353. package/src/Definitions/Insteon/generated/Boolean.ts +9 -0
  354. package/src/Definitions/Insteon/generated/Error.ts +9 -0
  355. package/src/Definitions/Insteon/generated/Lock.ts +28 -0
  356. package/src/Definitions/Insteon/generated/OnLevelRelay.ts +11 -0
  357. package/src/Devices/Brultech/Generated/Channel.ts +8 -9
  358. package/src/Devices/Brultech/Generated/Main.ts +11 -12
  359. package/src/Devices/CompositeDevice.ts +277 -0
  360. package/src/Devices/DeviceFactory.ts +1 -1
  361. package/src/Devices/ISYDeviceNode.ts +8 -2
  362. package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +7 -8
  363. package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +7 -8
  364. package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +7 -8
  365. package/src/Devices/Insteon/Generated/BinaryAlarm.ts +7 -8
  366. package/src/Devices/Insteon/Generated/BinaryControl.ts +7 -8
  367. package/src/Devices/Insteon/Generated/DimmerLamp.ts +9 -10
  368. package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +9 -10
  369. package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +9 -10
  370. package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +9 -10
  371. package/src/Devices/Insteon/Generated/DimmerSwitch.ts +6 -7
  372. package/src/Devices/Insteon/Generated/DoorLock.ts +7 -8
  373. package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +7 -8
  374. package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +7 -8
  375. package/src/Devices/Insteon/Generated/EzrainInput.ts +7 -8
  376. package/src/Devices/Insteon/Generated/EzrainOutput.ts +7 -8
  377. package/src/Devices/Insteon/Generated/FanLincMotor.ts +7 -8
  378. package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +15 -16
  379. package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +13 -14
  380. package/src/Devices/Insteon/Generated/ImeterSolo.ts +8 -9
  381. package/src/Devices/Insteon/Generated/IrLincTx.ts +6 -7
  382. package/src/Devices/Insteon/Generated/KeypadButton.ts +7 -8
  383. package/src/Devices/Insteon/Generated/KeypadDimmer.ts +9 -10
  384. package/src/Devices/Insteon/Generated/KeypadRelay.ts +7 -8
  385. package/src/Devices/Insteon/Generated/OnOffControl.ts +7 -8
  386. package/src/Devices/Insteon/Generated/Pir2844.ts +11 -12
  387. package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +7 -8
  388. package/src/Devices/Insteon/Generated/Pir2844c.ts +11 -12
  389. package/src/Devices/Insteon/Generated/RelayLamp.ts +7 -8
  390. package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +7 -8
  391. package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +7 -8
  392. package/src/Devices/Insteon/Generated/RelaySwitch.ts +6 -7
  393. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +6 -7
  394. package/src/Devices/Insteon/Generated/RemoteLinc2.ts +7 -8
  395. package/src/Devices/Insteon/Generated/Siren.ts +10 -11
  396. package/src/Devices/Insteon/Generated/SirenAlert.ts +6 -7
  397. package/src/Devices/Insteon/Generated/TempLinc.ts +13 -14
  398. package/src/Devices/Insteon/Generated/Thermostat.ts +13 -14
  399. package/src/Devices/Insteon/Generated/X10.ts +7 -8
  400. package/src/Devices/Insteon/InsteonDeviceFactory.ts +26 -12
  401. package/src/Devices/Insteon/InsteonDimmableDevice.ts +4 -4
  402. package/src/Devices/Insteon/InsteonDimmerOutletDevice.ts +3 -2
  403. package/src/Devices/Insteon/InsteonDoorWindowSensorDevice.ts +30 -7
  404. package/src/Devices/Insteon/InsteonFanDevice.ts +21 -36
  405. package/src/Devices/Insteon/InsteonOnOffOutletDevice.ts +5 -17
  406. package/src/Devices/Insteon/InsteonRelayDevice.ts +2 -3
  407. package/src/Devices/Insteon/index.ts +10 -14
  408. package/src/Devices/Lutron/Generated/LoadShed.ts +7 -8
  409. package/src/Devices/NCD/Generated/Relay.ts +19 -23
  410. package/src/Devices/NodeFactory.ts +1 -1
  411. package/src/Devices/Poly/Generated/MatterBridge.ts +6 -7
  412. package/src/Devices/Scene/Generated/Scene.ts +5 -6
  413. package/src/Devices/UDI/Generated/Channel.ts +8 -9
  414. package/src/Devices/UDI/Generated/Em3MainChannel.ts +11 -12
  415. package/src/Devices/UDI/Generated/Main.ts +8 -9
  416. package/src/Devices/UDI/Generated/PulseCounter.ts +9 -10
  417. package/src/Devices/UDI/Generated/Relay.ts +7 -8
  418. package/src/Devices/UDI/Generated/TemperatureSensor.ts +7 -8
  419. package/src/Devices/ZWave/Generated/ColorSwitch.ts +17 -18
  420. package/src/Devices/ZWave/Generated/DimmerSwitch.ts +7 -8
  421. package/src/Devices/ZigBee/ZigBeeBase.ts +22 -0
  422. package/src/Devices/ZigBee/index.ts +13 -0
  423. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +22 -20
  424. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +92 -76
  425. package/src/ISY.ts +27 -5
  426. package/src/ISYDevice.ts +4 -3
  427. package/src/ISYNode.ts +48 -32
  428. package/src/Matter/Behaviors/BehaviorRegistry.ts +44 -8
  429. package/src/Matter/Behaviors/ISYClusterBehavior.ts +15 -6
  430. package/src/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.ts +30 -0
  431. package/src/Matter/Behaviors/Insteon/IdentifyBehavior.ts +26 -0
  432. package/src/Matter/Behaviors/Insteon/RelayOnOffBehavior.ts +34 -0
  433. package/src/Matter/Behaviors/Insteon/index.ts +3 -0
  434. package/src/Matter/Bridge/Server.ts +93 -85
  435. package/src/Matter/Mappings/Insteon.ts +3 -3
  436. package/src/Matter/Mappings/MappingRegistry.ts +29 -40
  437. package/src/Registry.ts +112 -0
  438. package/src/Utils.ts +29 -0
  439. package/src/Devices/Insteon/DimmerLampSwitch.ts +0 -207
  440. package/src/Devices/Insteon/InsteonRelaySwitchDevice.ts +0 -11
  441. package/src/Devices/Insteon/RelayLampSwitch.ts +0 -132
  442. package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +0 -66
@@ -17,7 +17,7 @@ const nodeDefId = "RelayLoadControl";
17
17
  type Commands = Relay.Commands;
18
18
  type Drivers = Relay.Drivers;
19
19
 
20
- export class RelayNode extends Base<Drivers, Commands> implements Relay.Interface {
20
+ class RelayNode extends Base<Drivers, Commands> implements Relay.Interface {
21
21
  public override readonly commands = {
22
22
  DON: this.on,
23
23
  DOF: this.off,
@@ -25,36 +25,38 @@ export class RelayNode extends Base<Drivers, Commands> implements Relay.Interfac
25
25
  ADRPST: this.adr
26
26
  };
27
27
  static override nodeDefId = "RelayLoadControl";
28
- static override implements = ["RelayLoadControl"];
29
- declare readonly nodeDefId: "RelayLoadControl";
28
+ static override implements = ['RelayLoadControl'];
29
+ declare readonly nodeDefId: 'RelayLoadControl';
30
30
  constructor (isy: ISY, nodeInfo: NodeInfo) {
31
31
  super(isy, nodeInfo);
32
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
33
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
32
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Unknown, label: "Status", name: "status" });
33
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Unknown, label: "Responding", name: "responding" });
34
34
  }
35
35
  async on() { return this.sendCommand("DON"); }
36
36
  async off() { return this.sendCommand("DOF"); }
37
37
  async query() { return this.sendCommand("QUERY"); }
38
- async adr(value: (0 | 1)) { return this.sendCommand("ADRPST", value); }
39
- public get status(): (0 | 100) {
40
- return this.drivers.ST?.value;
41
- }
42
- public get responding(): ZigBeeLegacy.Error {
43
- return this.drivers.ERR?.value;
44
- }
38
+ async adr(value: ) { return this.sendCommand("ADRPST", value); }
39
+ public get status(): {
40
+
41
+ return this.drivers.ST?.value;
42
+ }
43
+ public
44
+ get responding():
45
+ {
46
+ return this.drivers.ERR?.value;
47
+ }
45
48
  }
46
49
 
47
50
  NodeFactory.register(RelayNode);
48
51
 
49
52
  export namespace Relay {
50
53
  export interface Interface extends Omit<InstanceType<typeof RelayNode>, keyof ISYDeviceNode<any, any, any, any>> {
51
- nodeDefId: "RelayLoadControl";
52
54
  }
53
55
  export function is(node: ISYNode<any, any, any, any>): node is RelayNode {
54
- return ["RelayLoadControl"].includes(node.nodeDefId);
56
+ return ['RelayLoadControl'].includes(node.nodeDefId);
55
57
  }
56
58
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelayNode {
57
- return ["RelayLoadControl"].includes(node.nodeDefId);
59
+ return ['RelayLoadControl'].includes(node.nodeDefId);
58
60
  }
59
61
  export function create(isy: ISY, nodeInfo: NodeInfo) {
60
62
  return new RelayNode(isy, nodeInfo);
@@ -73,21 +75,21 @@ export namespace Relay {
73
75
  label: "Query";
74
76
  name: "query";
75
77
  };
76
- ADRPST: ((value: (0 | 1)) => Promise<boolean>) & {
78
+ ADRPST: ((value: ) => Promise<boolean>) & {
77
79
  label: "ADR";
78
80
  name: "adr";
79
81
  };
80
82
  };
81
83
  export type Drivers = {
82
84
  ST: {
83
- uom: UnitOfMeasure.Percent;
84
- value: (0 | 100);
85
+ uom: ;
86
+ value: ;
85
87
  label: "Status";
86
88
  name: "status";
87
89
  };
88
90
  ERR: {
89
- uom: UnitOfMeasure.Index;
90
- value: ZigBeeLegacy.Error;
91
+ uom: ;
92
+ value: ;
91
93
  label: "Responding";
92
94
  name: "responding";
93
95
  };
@@ -17,7 +17,7 @@ const nodeDefId = "Thermostat";
17
17
  type Commands = Thermostat.Commands;
18
18
  type Drivers = Thermostat.Drivers;
19
19
 
20
- export class ThermostatNode extends Base<Drivers, Commands> implements Thermostat.Interface {
20
+ class ThermostatNode extends Base<Drivers, Commands> implements Thermostat.Interface {
21
21
  public override readonly commands = {
22
22
  CLISPH: this.updateHeatSetpoint,
23
23
  CLISPC: this.updateCoolSetpoint,
@@ -30,100 +30,116 @@ export class ThermostatNode extends Base<Drivers, Commands> implements Thermosta
30
30
  ADRPST: this.adr
31
31
  };
32
32
  static override nodeDefId = "Thermostat";
33
- static override implements = ["Thermostat"];
34
- declare readonly nodeDefId: "Thermostat";
33
+ static override implements = ['Thermostat'];
34
+ declare readonly nodeDefId: 'Thermostat';
35
35
  constructor (isy: ISY, nodeInfo: NodeInfo) {
36
36
  super(isy, nodeInfo);
37
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Temperature", name: "temperature" });
38
- this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Heat Setpoint", name: "heatSetpoint" });
39
- this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Cool Setpoint", name: "coolSetpoint" });
40
- this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.ThermostatMode, label: "Mode", name: "mode" });
41
- this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.ThermostatFanMode, label: "Fan Mode", name: "fanMode" });
42
- this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.ThermostatHeatCoolState, label: "Heat/Cool State", name: "heatCoolState" });
43
- this.drivers.CLIFRS = Driver.create("CLIFRS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.ThermostatFanRunState, label: "Fan State", name: "fanState" });
44
- this.drivers.CLISMD = Driver.create("CLISMD", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Schedule Mode", name: "scheduleMode" });
45
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
37
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Unknown, label: "Temperature", name: "temperature" });
38
+ this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.state['CLISPH'], { uom: UnitOfMeasure.Unknown, label: "Heat Setpoint", name: "heatSetpoint" });
39
+ this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.state['CLISPC'], { uom: UnitOfMeasure.Unknown, label: "Cool Setpoint", name: "coolSetpoint" });
40
+ this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.state['CLIMD'], { uom: UnitOfMeasure.Unknown, label: "Mode", name: "mode" });
41
+ this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.state['CLIFS'], { uom: UnitOfMeasure.Unknown, label: "Fan Mode", name: "fanMode" });
42
+ this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.state['CLIHCS'], { uom: UnitOfMeasure.Unknown, label: "Heat/Cool State", name: "heatCoolState" });
43
+ this.drivers.CLIFRS = Driver.create("CLIFRS", this, nodeInfo.state['CLIFRS'], { uom: UnitOfMeasure.Unknown, label: "Fan State", name: "fanState" });
44
+ this.drivers.CLISMD = Driver.create("CLISMD", this, nodeInfo.state['CLISMD'], { uom: UnitOfMeasure.Unknown, label: "Schedule Mode", name: "scheduleMode" });
45
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Unknown, label: "Responding", name: "responding" });
46
46
  }
47
- async updateHeatSetpoint(value: number) { return this.sendCommand("CLISPH", value); }
48
- async updateCoolSetpoint(value: number) { return this.sendCommand("CLISPC", value); }
49
- async updateMode(value: number) { return this.sendCommand("CLIMD", value); }
50
- async updateFanMode(value: (0 | 1)) { return this.sendCommand("CLIFS", value); }
51
- async updateScheduleMode(value: number) { return this.sendCommand("CLISMD", value); }
52
- async heatSetpointShift(value: number) { return this.sendCommand("CLISPHD", value); }
53
- async coolSetpointShift(value: number) { return this.sendCommand("CLISPCD", value); }
47
+ async updateHeatSetpoint(value: ) { return this.sendCommand("CLISPH", value); }
48
+ async updateCoolSetpoint(value: ) { return this.sendCommand("CLISPC", value); }
49
+ async updateMode(value: ) { return this.sendCommand("CLIMD", value); }
50
+ async updateFanMode(value: ) { return this.sendCommand("CLIFS", value); }
51
+ async updateScheduleMode(value: ) { return this.sendCommand("CLISMD", value); }
52
+ async heatSetpointShift(value: ) { return this.sendCommand("CLISPHD", value); }
53
+ async coolSetpointShift(value: ) { return this.sendCommand("CLISPCD", value); }
54
54
  async query() { return this.sendCommand("QUERY"); }
55
- async adr(value: (0 | 1)) { return this.sendCommand("ADRPST", value); }
56
- public get temperature(): number {
57
- return this.drivers.ST?.value;
58
- }
59
- public get heatSetpoint(): number {
60
- return this.drivers.CLISPH?.value;
61
- }
62
- public get coolSetpoint(): number {
63
- return this.drivers.CLISPC?.value;
64
- }
65
- public get mode(): number {
66
- return this.drivers.CLIMD?.value;
67
- }
68
- public get fanMode(): (0 | 1) {
69
- return this.drivers.CLIFS?.value;
70
- }
71
- public get heatCoolState(): number {
72
- return this.drivers.CLIHCS?.value;
73
- }
74
- public get fanState(): (0 | 1) {
75
- return this.drivers.CLIFRS?.value;
76
- }
77
- public get scheduleMode(): number {
78
- return this.drivers.CLISMD?.value;
79
- }
80
- public get responding(): ZigBeeLegacy.Error {
81
- return this.drivers.ERR?.value;
82
- }
55
+ async adr(value: ) { return this.sendCommand("ADRPST", value); }
56
+ public get temperature(): {
57
+
58
+ return this.drivers.ST?.value;
59
+ }
60
+ public
61
+ get heatSetpoint():
62
+ {
63
+ return this.drivers.CLISPH?.value;
64
+ }
65
+ public
66
+ get coolSetpoint():
67
+ {
68
+ return this.drivers.CLISPC?.value;
69
+ }
70
+ public
71
+ get mode():
72
+ {
73
+ return this.drivers.CLIMD?.value;
74
+ }
75
+ public
76
+ get fanMode():
77
+ {
78
+ return this.drivers.CLIFS?.value;
79
+ }
80
+ public
81
+ get heatCoolState():
82
+ {
83
+ return this.drivers.CLIHCS?.value;
84
+ }
85
+ public
86
+ get fanState():
87
+ {
88
+ return this.drivers.CLIFRS?.value;
89
+ }
90
+ public
91
+ get scheduleMode():
92
+ {
93
+ return this.drivers.CLISMD?.value;
94
+ }
95
+ public
96
+ get responding():
97
+ {
98
+ return this.drivers.ERR?.value;
99
+ }
83
100
  }
84
101
 
85
102
  NodeFactory.register(ThermostatNode);
86
103
 
87
104
  export namespace Thermostat {
88
105
  export interface Interface extends Omit<InstanceType<typeof ThermostatNode>, keyof ISYDeviceNode<any, any, any, any>> {
89
- nodeDefId: "Thermostat";
90
106
  }
91
107
  export function is(node: ISYNode<any, any, any, any>): node is ThermostatNode {
92
- return ["Thermostat"].includes(node.nodeDefId);
108
+ return ['Thermostat'].includes(node.nodeDefId);
93
109
  }
94
110
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ThermostatNode {
95
- return ["Thermostat"].includes(node.nodeDefId);
111
+ return ['Thermostat'].includes(node.nodeDefId);
96
112
  }
97
113
  export function create(isy: ISY, nodeInfo: NodeInfo) {
98
114
  return new ThermostatNode(isy, nodeInfo);
99
115
  }
100
116
  export const Node = ThermostatNode;
101
117
  export type Commands = {
102
- CLISPH: ((value: number) => Promise<boolean>) & {
118
+ CLISPH: ((value: ) => Promise<boolean>) & {
103
119
  label: "Heat Setpoint";
104
120
  name: "updateHeatSetpoint";
105
121
  };
106
- CLISPC: ((value: number) => Promise<boolean>) & {
122
+ CLISPC: ((value: ) => Promise<boolean>) & {
107
123
  label: "Cool Setpoint";
108
124
  name: "updateCoolSetpoint";
109
125
  };
110
- CLIMD: ((value: number) => Promise<boolean>) & {
126
+ CLIMD: ((value: ) => Promise<boolean>) & {
111
127
  label: "Mode";
112
128
  name: "updateMode";
113
129
  };
114
- CLIFS: ((value: (0 | 1)) => Promise<boolean>) & {
130
+ CLIFS: ((value: ) => Promise<boolean>) & {
115
131
  label: "Fan Mode";
116
132
  name: "updateFanMode";
117
133
  };
118
- CLISMD: ((value: number) => Promise<boolean>) & {
134
+ CLISMD: ((value: ) => Promise<boolean>) & {
119
135
  label: "Schedule Mode";
120
136
  name: "updateScheduleMode";
121
137
  };
122
- CLISPHD: ((value: number) => Promise<boolean>) & {
138
+ CLISPHD: ((value: ) => Promise<boolean>) & {
123
139
  label: "Heat Setpoint Shift";
124
140
  name: "heatSetpointShift";
125
141
  };
126
- CLISPCD: ((value: number) => Promise<boolean>) & {
142
+ CLISPCD: ((value: ) => Promise<boolean>) & {
127
143
  label: "Cool Setpoint Shift";
128
144
  name: "coolSetpointShift";
129
145
  };
@@ -131,63 +147,63 @@ export namespace Thermostat {
131
147
  label: "Query";
132
148
  name: "query";
133
149
  };
134
- ADRPST: ((value: (0 | 1)) => Promise<boolean>) & {
150
+ ADRPST: ((value: ) => Promise<boolean>) & {
135
151
  label: "ADR";
136
152
  name: "adr";
137
153
  };
138
154
  };
139
155
  export type Drivers = {
140
156
  ST: {
141
- uom: UnitOfMeasure.Degree;
142
- value: number;
157
+ uom: ;
158
+ value: ;
143
159
  label: "Temperature";
144
160
  name: "temperature";
145
161
  };
146
162
  CLISPH: {
147
- uom: UnitOfMeasure.Degree;
148
- value: number;
163
+ uom: ;
164
+ value: ;
149
165
  label: "Heat Setpoint";
150
166
  name: "heatSetpoint";
151
167
  };
152
168
  CLISPC: {
153
- uom: UnitOfMeasure.Degree;
154
- value: number;
169
+ uom: ;
170
+ value: ;
155
171
  label: "Cool Setpoint";
156
172
  name: "coolSetpoint";
157
173
  };
158
174
  CLIMD: {
159
- uom: UnitOfMeasure.ThermostatMode;
160
- value: number;
175
+ uom: ;
176
+ value: ;
161
177
  label: "Mode";
162
178
  name: "mode";
163
179
  };
164
180
  CLIFS: {
165
- uom: UnitOfMeasure.ThermostatFanMode;
166
- value: (0 | 1);
181
+ uom: ;
182
+ value: ;
167
183
  label: "Fan Mode";
168
184
  name: "fanMode";
169
185
  };
170
186
  CLIHCS: {
171
- uom: UnitOfMeasure.ThermostatHeatCoolState;
172
- value: number;
187
+ uom: ;
188
+ value: ;
173
189
  label: "Heat/Cool State";
174
190
  name: "heatCoolState";
175
191
  };
176
192
  CLIFRS: {
177
- uom: UnitOfMeasure.ThermostatFanRunState;
178
- value: (0 | 1);
193
+ uom: ;
194
+ value: ;
179
195
  label: "Fan State";
180
196
  name: "fanState";
181
197
  };
182
198
  CLISMD: {
183
- uom: UnitOfMeasure.Index;
184
- value: number;
199
+ uom: ;
200
+ value: ;
185
201
  label: "Schedule Mode";
186
202
  name: "scheduleMode";
187
203
  };
188
204
  ERR: {
189
- uom: UnitOfMeasure.Index;
190
- value: ZigBeeLegacy.Error;
205
+ uom: ;
206
+ value: ;
191
207
  label: "Responding";
192
208
  name: "responding";
193
209
  };
package/src/ISY.ts CHANGED
@@ -28,6 +28,7 @@ import { ISYError } from './ISYError.js';
28
28
  import type { Config } from './Model/Config.js';
29
29
  import { findPackageJson } from './Utils.js';
30
30
  import { GenericNode } from './Devices/GenericNode.js';
31
+ import { CompositeDevice } from './Devices/CompositeDevice.js';
31
32
 
32
33
  type InitStep = 'config' | 'loadNodes' | 'readFolders' | 'readDevices' | 'readScenes' | 'variables' | 'websocket' | 'refreshStatuses' | 'initialize';
33
34
 
@@ -753,7 +754,7 @@ export class ISY extends EventEmitter implements Disposable {
753
754
  } else {
754
755
  this.deviceMap[nodeInfo.pnode].push(nodeInfo.address);
755
756
  }
756
- let newDevice: ISYDeviceNode<any, any, any, any> = null;
757
+ let newDevice = null;
757
758
 
758
759
  // let deviceTypeInfo = this.isyTypeToTypeName(device.type, device.address);
759
760
  // this.logger.info(JSON.stringify(deviceTypeInfo));
@@ -761,7 +762,7 @@ export class ISY extends EventEmitter implements Disposable {
761
762
  const enabled = nodeInfo.enabled ?? true;
762
763
  const d = await NodeFactory.get(nodeInfo);
763
764
  const m = DeviceFactory.getDeviceDetails(nodeInfo);
764
- const cls = m?.class ?? d;
765
+ const cls = m.class ?? d;
765
766
  nodeInfo.property = Array.isArray(nodeInfo.property) ? nodeInfo.property : [nodeInfo.property];
766
767
  nodeInfo.state = nodeInfo.property.reduce((acc, p) => {
767
768
  if (p && p?.id) {
@@ -773,7 +774,8 @@ export class ISY extends EventEmitter implements Disposable {
773
774
 
774
775
  if (cls) {
775
776
  try {
776
- newDevice = new cls(this, nodeInfo) as ISYDeviceNode<any, any, any, any>;
777
+ newDevice = new cls(this, nodeInfo);
778
+
777
779
  } catch (e) {
778
780
  this.logger.error(`Error creating device ${nodeInfo.name} with type ${nodeInfo.type} and nodedef ${nodeInfo.nodeDefId}: ${e.message}`);
779
781
  continue;
@@ -808,7 +810,12 @@ export class ISY extends EventEmitter implements Disposable {
808
810
  // this.deviceList.push(newDevice);
809
811
  } else {
810
812
  }
811
- this.nodeMap.set(newDevice.address, newDevice);
813
+ this.nodeMap.set(newDevice.address, CompositeDevice.isComposite(newDevice) ? newDevice.root : newDevice);
814
+ if(CompositeDevice.isComposite(newDevice))
815
+ {
816
+ if(this.deviceList.set)
817
+ this.deviceList.set(newDevice.address, newDevice);
818
+ }
812
819
  } else {
813
820
  this.logger.info(`Ignoring disabled device: ${nodeInfo.name}`);
814
821
  }
@@ -816,7 +823,22 @@ export class ISY extends EventEmitter implements Disposable {
816
823
  this.logger.error(`Error loading device node: ${e.message}`);
817
824
  }
818
825
  }
819
- this.logger.info(`${this.nodeMap.size} devices added.`);
826
+ this.logger.info(`${this.nodeMap.size} nodes added.`);
827
+ for(const node of this.nodeMap.values()) {
828
+ if(node.parentAddress !== node.address) {
829
+ let parent = this.deviceList.get(node.parentAddress) as unknown as CompositeDevice<any,any>;
830
+ if(parent && CompositeDevice.isComposite(parent))
831
+ parent.addNode(node);
832
+
833
+ }
834
+ else
835
+ {
836
+ this.deviceList.set(node.address, node as unknown as ISYDevice<any, any, any, any>);
837
+ }
838
+
839
+
840
+ }
841
+ this.logger.info(`${this.deviceList.size} unique devices added.`);
820
842
  } catch (e) {
821
843
  throw new ISYInitializationError(e, 'readDevices');
822
844
  }
package/src/ISYDevice.ts CHANGED
@@ -5,14 +5,14 @@ import { ISYDeviceNode } from './Devices/ISYDeviceNode.js';
5
5
  import type { ISYNode } from './ISYNode.js';
6
6
  import type { ISYScene } from './ISYScene.js';
7
7
 
8
- export interface ISYDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures> extends ISYDeviceInfo {
8
+ export interface ISYDevice<T extends Family, D, C, E> extends ISYDeviceInfo {
9
9
  // #region Properties (22)
10
10
 
11
11
  address: string;
12
12
  category: Category;
13
- commands: Command.ForAll<C>;
13
+ commands: C;
14
14
  deviceClass: any;
15
- drivers: Driver.ForAll<D>;
15
+ drivers: D;
16
16
 
17
17
  events: E;
18
18
  enabled: boolean;
@@ -52,6 +52,7 @@ export function isDeviceClass<T extends Family, D extends ISYNode.DriverSignatur
52
52
  return device.prototype instanceof ISYDeviceNode;
53
53
  }
54
54
 
55
+
55
56
  export interface ISYDeviceInfo {
56
57
  type: string;
57
58
  deviceClass: any;
package/src/ISYNode.ts CHANGED
@@ -4,18 +4,22 @@ import { Family } from './Definitions/Global/Families.js';
4
4
  import { UnitOfMeasure } from './Definitions/Global/UOM.js';
5
5
  import { ISY } from './ISY.js';
6
6
 
7
+ import type { Merge, UnionToIntersection } from '@matter/general';
7
8
  import { CliConfigSetLevels } from 'winston/lib/winston/config/index.js';
8
9
  import { Converter } from './Converters.js';
9
10
  import type { Command } from './Definitions/Global/Commands.js';
10
11
  import { Event } from './Definitions/Global/Events.js';
12
+ import type { CompositeDevice } from './Devices/CompositeDevice.js';
11
13
  import type { Constructor } from './Devices/Constructor.js';
14
+
15
+
16
+ import { NodeType } from './ISYConstants.js';
17
+ import type { ISYScene } from './ISYScene.js';
12
18
  import type { DriverState } from './Model/DriverState.js';
13
19
  import { NodeInfo } from './Model/NodeInfo.js';
14
20
  import type { NodeNotes } from './Model/NodeNotes.js';
15
21
  import { type ObjectToUnion, type StringKeys } from './Utils.js';
16
- import { NodeType } from './ISYConstants.js';
17
- import type { ISYScene } from './ISYScene.js';
18
- import type { Merge, UnionToIntersection } from '@matter/general';
22
+ import type { ISYDevice } from './ISYDevice.js';
19
23
 
20
24
  //type DriverValues<DK extends string | number | symbol,V = any> = {[x in DK]?:V};
21
25
 
@@ -24,7 +28,7 @@ export class ISYNode<
24
28
  D extends ISYNode.DriverSignatures = {},
25
29
  C extends ISYNode.CommandSignatures = {},
26
30
  E extends ISYNode.EventSignatures = { [x in keyof D]: Event.DriverToEvent<D[x]> & { driver: x } } & { [x in keyof C]: Event.CommandToEvent<C[x]> & { command: x } }
27
- > {
31
+ > {
28
32
  // #region Properties (32)
29
33
 
30
34
  static #displayNameFunction: Function;
@@ -157,18 +161,17 @@ export class ISYNode<
157
161
 
158
162
  public applyStatus(prop: DriverState) {
159
163
  try {
160
- var d = this.drivers[prop.id];
164
+ var d = this.drivers[prop.id];
161
165
 
162
- if (d) {
163
- d.apply(prop);
166
+ if (d) {
167
+ d.apply(prop);
164
168
 
165
- this.logger(`Property ${d?.label ?? prop.id} (${prop.id}) refreshed to: ${d.value} (${prop.formatted}})`);
166
- //d.state.value = this.convertFrom(prop.value, prop.uom, prop.id);
167
- //d.state.formatted = prop.formatted;
168
- //d.state.uom = prop.uom;
169
- }
170
- }
171
- catch(e) {
169
+ this.logger(`Property ${d?.label ?? prop.id} (${prop.id}) refreshed to: ${d.value} (${prop.formatted}})`);
170
+ //d.state.value = this.convertFrom(prop.value, prop.uom, prop.id);
171
+ //d.state.formatted = prop.formatted;
172
+ //d.state.uom = prop.uom;
173
+ }
174
+ } catch (e) {
172
175
  this.logger(e?.message ?? e, 'error');
173
176
  }
174
177
  }
@@ -360,23 +363,24 @@ export class ISYNode<
360
363
  public async sendCommand(command: StringKeys<C>, value: string | number, parameters: Record<string | symbol, string | number | undefined>);
361
364
  public async sendCommand(command: StringKeys<C>, value: string | number): Promise<any>;
362
365
  public async sendCommand(command: StringKeys<C>, parameters: Record<string | symbol, string | number | undefined>): Promise<any>;
363
- async sendCommand(command: StringKeys<C>, valueOrParameters?: string | number | Record<string | symbol, string | number | undefined>, parameters?: Record<string | symbol, string | number | undefined>): Promise<any> {
366
+ async sendCommand(
367
+ command: StringKeys<C>,
368
+ valueOrParameters?: string | number | Record<string | symbol, string | number | undefined>,
369
+ parameters?: Record<string | symbol, string | number | undefined>
370
+ ): Promise<any> {
364
371
  if (valueOrParameters === null || valueOrParameters === undefined) {
365
372
  return this.isy.sendNodeCommand(this, command);
366
373
  }
367
374
 
368
- if(parameters === null || parameters === undefined) {
369
- return this.isy.sendNodeCommand(this, command, valueOrParameters);
370
- }
371
- if(typeof valueOrParameters === 'object') {
372
- return this.isy.sendNodeCommand(this, command, {...valueOrParameters,...parameters});
373
- }
374
- if(typeof valueOrParameters === 'string' || typeof valueOrParameters === 'number') {
375
- return this.isy.sendNodeCommand(this, command, { default: valueOrParameters, ...parameters });
376
- }
377
-
378
-
379
-
375
+ if (parameters === null || parameters === undefined) {
376
+ return this.isy.sendNodeCommand(this, command, valueOrParameters);
377
+ }
378
+ if (typeof valueOrParameters === 'object') {
379
+ return this.isy.sendNodeCommand(this, command, { ...valueOrParameters, ...parameters });
380
+ }
381
+ if (typeof valueOrParameters === 'string' || typeof valueOrParameters === 'number') {
382
+ return this.isy.sendNodeCommand(this, command, { default: valueOrParameters, ...parameters });
383
+ }
380
384
  }
381
385
 
382
386
  public async updateProperty(propertyName: string, value: any): Promise<any> {
@@ -540,12 +544,17 @@ export type EventsOf<T> = T extends ISYNode<any, any, any, infer E> ? E : never;
540
544
  export namespace ISYNode {
541
545
  export type FromSignatures<T> = T extends DriverSignatures ? Driver.ForAll<T> : never;
542
546
 
543
- export type DriversOf<T> = T extends ISYNode<any, infer D, any, any> ? D : never;
547
+ type InternalDriversOf<T> = T extends ISYNode<any, infer D, any, any> ? D : never;
548
+
549
+ export type DriversOf<T> =
550
+ T extends ISYNode<any, any, any, any> ? InternalDriversOf<T>
551
+ : T extends CompositeDevice<any, any> ? T['drivers']
552
+ : never;
544
553
  export type CommandsOf<T> = T extends ISYNode<any, any, infer C, any> ? C : never;
545
554
  export type EventsOf<T> = T extends ISYNode<any, any, any, infer E> ? E : never;
546
555
  export type FamilyOf<T> = T extends ISYNode<infer F, any, any, any> ? F : never;
547
556
 
548
- export type DriverTypesOf<T extends ISYNode> = ObjectToUnion<DriversOf<T>>;
557
+ export type DriverTypesOf<T> = ObjectToUnion<DriversOf<T>>;
549
558
 
550
559
  export type CommandTypesOf<T extends ISYNode> = ObjectToUnion<CommandsOf<T>>;
551
560
 
@@ -553,9 +562,16 @@ export namespace ISYNode {
553
562
 
554
563
  export type EventNamesOf<T extends ISYNode> = EventTypesOf<T> extends { name: infer U } ? U : never;
555
564
 
556
- export type DriverNamesOf<T extends ISYNode> = DriverTypesOf<T> extends { name: infer U } ? U : never;
565
+ export type DriverNamesOf<T> =
566
+ DriverTypesOf<T> extends { name: infer U } ? U
567
+ : DriversOf<T> extends { name: infer U } ? U
568
+ : never;
569
+
570
+ export type DriverKeysOf<T> = keyof DriversOf<T>;
571
+
572
+ export type CommandKeysOf<T> = keyof CommandsOf<T>;
557
573
 
558
- export type CommandNamesOf<T extends ISYNode> = CommandTypesOf<T> extends { name: infer U } ? U : never;
574
+ export type CommandNamesOf<T extends ISYNode> = CommandsOf<T> extends { name: infer U } ? U : never;
559
575
  export type List = NodeList;
560
576
 
561
577
  export type DriverMap<T extends NodeList> = Flatten<{
@@ -585,7 +601,7 @@ export namespace ISYNode {
585
601
 
586
602
  export const With = <K extends Family, D extends DriverSignatures, C extends CommandSignatures, T extends Constructor<ISYNode<K, any, any, any>>>(Base: T) => {
587
603
  return class extends Base implements Omit<ISYNode<K, D, C>, 'events'> {
588
- declare drivers: Driver.ForAll<any, false>;
604
+ declare drivers: Driver.ForAll<D, false>;
589
605
  declare commands: Command.ForAll<C>;
590
606
  };
591
607
  };