isy-nodejs 1.0.2-alpha.2 → 1.0.2-alpha.4

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 (417) hide show
  1. package/dist/esm/CodeGeneration/NodeClassFactory.js +76 -33
  2. package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
  3. package/dist/esm/CodeGeneration/NodeFactory.js +245 -0
  4. package/dist/esm/CodeGeneration/NodeFactory.js.map +1 -0
  5. package/dist/esm/Converters.js +15 -1
  6. package/dist/esm/Converters.js.map +1 -1
  7. package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
  8. package/dist/esm/Definitions/Global/Events.js.map +1 -1
  9. package/dist/esm/Devices/ISYDevice.js +0 -33
  10. package/dist/esm/Devices/ISYDevice.js.map +1 -1
  11. package/dist/esm/Devices/ISYDeviceNode.js +2 -2
  12. package/dist/esm/Devices/ISYDeviceNode.js.map +1 -1
  13. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +49 -0
  14. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -0
  15. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +54 -0
  16. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -0
  17. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +54 -0
  18. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -0
  19. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +46 -0
  20. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -0
  21. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +46 -0
  22. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -0
  23. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +75 -0
  24. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -0
  25. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +78 -0
  26. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -0
  27. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +80 -0
  28. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -0
  29. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +74 -0
  30. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -0
  31. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +40 -0
  32. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -0
  33. package/dist/esm/Devices/Insteon/Generated/DoorLock.js +45 -0
  34. package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -0
  35. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +42 -0
  36. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -0
  37. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +47 -0
  38. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -0
  39. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +42 -0
  40. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -0
  41. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +49 -0
  42. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -0
  43. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +53 -0
  44. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -0
  45. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +93 -0
  46. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -0
  47. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +81 -0
  48. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -0
  49. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +49 -0
  50. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -0
  51. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +39 -0
  52. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -0
  53. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +46 -0
  54. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -0
  55. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +78 -0
  56. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -0
  57. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +56 -0
  58. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -0
  59. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +39 -0
  60. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -0
  61. package/dist/esm/Devices/Insteon/Generated/Pir2844.js +64 -0
  62. package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -0
  63. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +50 -0
  64. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -0
  65. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +64 -0
  66. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -0
  67. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +54 -0
  68. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -0
  69. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +56 -0
  70. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -0
  71. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +58 -0
  72. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -0
  73. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +42 -0
  74. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -0
  75. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +44 -0
  76. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -0
  77. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +42 -0
  78. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -0
  79. package/dist/esm/Devices/Insteon/Generated/Siren.js +66 -0
  80. package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -0
  81. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +35 -0
  82. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -0
  83. package/dist/esm/Devices/Insteon/Generated/TempLinc.js +83 -0
  84. package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -0
  85. package/dist/esm/Devices/Insteon/Generated/Thermostat.js +83 -0
  86. package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -0
  87. package/dist/esm/Devices/Insteon/Generated/X10.js +49 -0
  88. package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -0
  89. package/dist/esm/Devices/Insteon/Generated/index.js +39 -0
  90. package/dist/esm/Devices/Insteon/Generated/index.js.map +1 -0
  91. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +3 -4
  92. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +1 -1
  93. package/dist/esm/Devices/Insteon/InsteonFanDevice.js +2 -2
  94. package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
  95. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
  96. package/dist/esm/Devices/Insteon/KeypadButton.js +11 -11
  97. package/dist/esm/Devices/Insteon/KeypadButton.js.map +1 -1
  98. package/dist/esm/Devices/Insteon/index.js +16 -29
  99. package/dist/esm/Devices/Insteon/index.js.map +1 -1
  100. package/dist/esm/Devices/Lutron/Generated/LoadShed.js +45 -0
  101. package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -0
  102. package/dist/esm/Devices/NodeFactory.js +45 -8
  103. package/dist/esm/Devices/NodeFactory.js.map +1 -1
  104. package/dist/esm/Devices/Scene/index.js +2 -2
  105. package/dist/esm/Devices/Scene/index.js.map +1 -1
  106. package/dist/esm/Devices/UDI/Generated/Channel.js +42 -0
  107. package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -0
  108. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +54 -0
  109. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -0
  110. package/dist/esm/Devices/UDI/Generated/Main.js +45 -0
  111. package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -0
  112. package/dist/esm/Devices/UDI/Generated/PulseCounter.js +46 -0
  113. package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -0
  114. package/dist/esm/Devices/UDI/Generated/Relay.js +45 -0
  115. package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -0
  116. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +38 -0
  117. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -0
  118. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +57 -0
  119. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -0
  120. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +65 -0
  121. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -0
  122. package/dist/esm/Devices/ZWave/Generated/index.js +3 -0
  123. package/dist/esm/Devices/ZWave/Generated/index.js.map +1 -0
  124. package/dist/esm/Devices/ZWave/index.js +1 -0
  125. package/dist/esm/Devices/ZWave/index.js.map +1 -1
  126. package/dist/esm/Devices/index.js +9 -3
  127. package/dist/esm/Devices/index.js.map +1 -1
  128. package/dist/esm/ISY.js +16 -10
  129. package/dist/esm/ISY.js.map +1 -1
  130. package/dist/esm/ISYDevice.js +7 -1
  131. package/dist/esm/ISYDevice.js.map +1 -1
  132. package/dist/esm/ISYNode.js +13 -4
  133. package/dist/esm/ISYNode.js.map +1 -1
  134. package/dist/esm/ISYScene.js +13 -12
  135. package/dist/esm/ISYScene.js.map +1 -1
  136. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +13 -0
  137. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -0
  138. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +3 -0
  139. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
  140. package/dist/esm/Matter/Bridge/Server.js +66 -59
  141. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  142. package/dist/esm/Matter/Mappings/Insteon.js +28 -10
  143. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  144. package/dist/esm/Model/ClassDefinition.js +22 -3
  145. package/dist/esm/Model/ClassDefinition.js.map +1 -1
  146. package/dist/esm/Model/ClusterMap.js +45 -19
  147. package/dist/esm/Model/ClusterMap.js.map +1 -1
  148. package/dist/esm/Model/NodeInfo.js +1 -1
  149. package/dist/esm/Model/NodeInfo.js.map +1 -1
  150. package/dist/esm/Utils.js.map +1 -1
  151. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +6 -3
  152. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  153. package/dist/esm/types/CodeGeneration/NodeFactory.d.ts +75 -0
  154. package/dist/esm/types/CodeGeneration/NodeFactory.d.ts.map +1 -0
  155. package/dist/esm/types/Converters.d.ts +8 -2
  156. package/dist/esm/types/Converters.d.ts.map +1 -1
  157. package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
  158. package/dist/esm/types/Definitions/Global/Events.d.ts +2 -2
  159. package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
  160. package/dist/esm/types/Devices/DeviceMap.d.ts +1 -1
  161. package/dist/esm/types/Devices/DeviceMap.d.ts.map +1 -1
  162. package/dist/esm/types/Devices/EndpointFor.d.ts +7 -5
  163. package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
  164. package/dist/esm/types/Devices/ISYDevice.d.ts.map +1 -1
  165. package/dist/esm/types/Devices/ISYDeviceNode.d.ts +5 -13
  166. package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
  167. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +76 -0
  168. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -0
  169. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +88 -0
  170. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -0
  171. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +88 -0
  172. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -0
  173. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +64 -0
  174. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -0
  175. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +64 -0
  176. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -0
  177. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +144 -0
  178. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -0
  179. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +150 -0
  180. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -0
  181. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +156 -0
  182. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -0
  183. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +138 -0
  184. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -0
  185. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +51 -0
  186. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -0
  187. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +64 -0
  188. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -0
  189. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +52 -0
  190. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -0
  191. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +70 -0
  192. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -0
  193. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +52 -0
  194. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -0
  195. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +76 -0
  196. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -0
  197. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +88 -0
  198. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -0
  199. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +168 -0
  200. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -0
  201. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +142 -0
  202. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -0
  203. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +71 -0
  204. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -0
  205. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +51 -0
  206. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -0
  207. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +64 -0
  208. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -0
  209. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +150 -0
  210. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -0
  211. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +94 -0
  212. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -0
  213. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +44 -0
  214. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -0
  215. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +98 -0
  216. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -0
  217. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +76 -0
  218. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -0
  219. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +98 -0
  220. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -0
  221. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +88 -0
  222. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -0
  223. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +94 -0
  224. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -0
  225. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +100 -0
  226. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -0
  227. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +57 -0
  228. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -0
  229. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +63 -0
  230. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -0
  231. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +52 -0
  232. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -0
  233. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +109 -0
  234. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -0
  235. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +37 -0
  236. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -0
  237. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +148 -0
  238. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -0
  239. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +148 -0
  240. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -0
  241. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +76 -0
  242. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -0
  243. package/dist/esm/types/Devices/Insteon/Generated/index.d.ts +39 -0
  244. package/dist/esm/types/Devices/Insteon/Generated/index.d.ts.map +1 -0
  245. package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts +4 -10
  246. package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts.map +1 -1
  247. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +22 -28
  248. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
  249. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +3 -3
  250. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
  251. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
  252. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
  253. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
  254. package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts +19 -19
  255. package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts.map +1 -1
  256. package/dist/esm/types/Devices/Insteon/index.d.ts +6 -42
  257. package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
  258. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +64 -0
  259. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -0
  260. package/dist/esm/types/Devices/NodeFactory.d.ts +18 -7
  261. package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
  262. package/dist/esm/types/Devices/Scene/index.d.ts +2 -1
  263. package/dist/esm/types/Devices/Scene/index.d.ts.map +1 -1
  264. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +51 -0
  265. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -0
  266. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +72 -0
  267. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -0
  268. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +59 -0
  269. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -0
  270. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +58 -0
  271. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -0
  272. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +64 -0
  273. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -0
  274. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +44 -0
  275. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -0
  276. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +90 -0
  277. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -0
  278. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +124 -0
  279. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -0
  280. package/dist/esm/types/Devices/ZWave/Generated/index.d.ts +3 -0
  281. package/dist/esm/types/Devices/ZWave/Generated/index.d.ts.map +1 -0
  282. package/dist/esm/types/Devices/ZWave/index.d.ts.map +1 -1
  283. package/dist/esm/types/Devices/index.d.ts +7 -21
  284. package/dist/esm/types/Devices/index.d.ts.map +1 -1
  285. package/dist/esm/types/ISY.d.ts.map +1 -1
  286. package/dist/esm/types/ISYDevice.d.ts +19 -28
  287. package/dist/esm/types/ISYDevice.d.ts.map +1 -1
  288. package/dist/esm/types/ISYNode.d.ts +25 -8
  289. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  290. package/dist/esm/types/ISYScene.d.ts +5 -6
  291. package/dist/esm/types/ISYScene.d.ts.map +1 -1
  292. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +11 -0
  293. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -0
  294. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +1 -4
  295. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
  296. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +5 -4
  297. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
  298. package/dist/esm/types/Matter/Bridge/Server.d.ts +1 -1
  299. package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
  300. package/dist/esm/types/Model/ClassDefinition.d.ts +6 -2
  301. package/dist/esm/types/Model/ClassDefinition.d.ts.map +1 -1
  302. package/dist/esm/types/Model/ClusterMap.d.ts +12 -21
  303. package/dist/esm/types/Model/ClusterMap.d.ts.map +1 -1
  304. package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
  305. package/dist/esm/types/Utils.d.ts +18 -0
  306. package/dist/esm/types/Utils.d.ts.map +1 -1
  307. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  308. package/package.json +2 -2
  309. package/src/CodeGeneration/NodeClassFactory.ts +144 -39
  310. package/src/CodeGeneration/NodeFactory.ts +341 -0
  311. package/src/Converters.ts +24 -4
  312. package/src/Definitions/Global/Drivers.ts +1 -0
  313. package/src/Definitions/Global/Events.ts +3 -3
  314. package/src/Devices/Brultech/Generated/Channel.ts +8 -6
  315. package/src/Devices/Brultech/Generated/Main.ts +9 -9
  316. package/src/Devices/DeviceMap.ts +1 -1
  317. package/src/Devices/ISYDevice.ts +8 -57
  318. package/src/Devices/ISYDeviceNode.ts +143 -166
  319. package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +13 -21
  320. package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +18 -29
  321. package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +18 -29
  322. package/src/Devices/Insteon/Generated/BinaryAlarm.ts +14 -17
  323. package/src/Devices/Insteon/Generated/BinaryControl.ts +14 -17
  324. package/src/Devices/Insteon/Generated/DimmerLamp.ts +25 -51
  325. package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +36 -64
  326. package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +31 -60
  327. package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +24 -47
  328. package/src/Devices/Insteon/Generated/DimmerSwitch.ts +13 -14
  329. package/src/Devices/Insteon/Generated/DoorLock.ts +11 -15
  330. package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +12 -11
  331. package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +12 -18
  332. package/src/Devices/Insteon/Generated/EzrainInput.ts +12 -11
  333. package/src/Devices/Insteon/Generated/EzrainOutput.ts +20 -28
  334. package/src/Devices/Insteon/Generated/FanLincMotor.ts +15 -27
  335. package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +19 -39
  336. package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +17 -33
  337. package/src/Devices/Insteon/Generated/ImeterSolo.ts +11 -15
  338. package/src/Devices/Insteon/Generated/IrLincTx.ts +10 -12
  339. package/src/Devices/Insteon/Generated/{KeypadButtonAdv.ts → KeypadButton.ts} +23 -26
  340. package/src/Devices/Insteon/Generated/KeypadDimmer.ts +30 -57
  341. package/src/Devices/Insteon/Generated/KeypadRelay.ts +30 -43
  342. package/src/Devices/Insteon/Generated/OnOffControl.ts +15 -12
  343. package/src/Devices/Insteon/Generated/Pir2844.ts +15 -20
  344. package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +16 -23
  345. package/src/Devices/Insteon/Generated/Pir2844c.ts +15 -20
  346. package/src/Devices/Insteon/Generated/RelayLamp.ts +29 -41
  347. package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +29 -42
  348. package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +24 -39
  349. package/src/Devices/Insteon/Generated/RelaySwitch.ts +14 -17
  350. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +15 -20
  351. package/src/Devices/Insteon/Generated/RemoteLinc2.ts +12 -11
  352. package/src/Devices/Insteon/Generated/Siren.ts +18 -29
  353. package/src/Devices/Insteon/Generated/SirenAlert.ts +11 -8
  354. package/src/Devices/Insteon/Generated/TempLinc.ts +18 -36
  355. package/src/Devices/Insteon/Generated/Thermostat.ts +18 -36
  356. package/src/Devices/Insteon/Generated/X10.ts +13 -21
  357. package/src/Devices/Insteon/Generated/index.ts +38 -0
  358. package/src/Devices/Insteon/InsteonBaseDevice.ts +5 -4
  359. package/src/Devices/Insteon/InsteonFanDevice.ts +3 -4
  360. package/src/Devices/Insteon/InsteonRelayDevice.ts +1 -0
  361. package/src/Devices/Insteon/KeypadButton.ts +31 -31
  362. package/src/Devices/Insteon/index.ts +18 -26
  363. package/src/Devices/Lutron/Generated/LoadShed.ts +11 -15
  364. package/src/Devices/NCD/Generated/Relay.ts +12 -18
  365. package/src/Devices/NodeFactory.ts +67 -13
  366. package/src/Devices/Poly/Generated/MatterBridge.ts +84 -0
  367. package/src/Devices/Scene/Generated/Scene.ts +33 -65
  368. package/src/Devices/Scene/index.ts +2 -1
  369. package/src/Devices/UDI/Generated/Channel.ts +8 -6
  370. package/src/Devices/UDI/Generated/Em3MainChannel.ts +8 -6
  371. package/src/Devices/UDI/Generated/Main.ts +9 -9
  372. package/src/Devices/UDI/Generated/PulseCounter.ts +8 -6
  373. package/src/Devices/UDI/Generated/Relay.ts +11 -15
  374. package/src/Devices/UDI/Generated/TemperatureSensor.ts +8 -6
  375. package/src/Devices/ZWave/Generated/ColorSwitch.ts +16 -24
  376. package/src/Devices/ZWave/Generated/DimmerSwitch.ts +25 -49
  377. package/src/Devices/ZWave/Generated/index.ts +2 -0
  378. package/src/Devices/ZWave/index.ts +5 -1
  379. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +12 -18
  380. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +17 -33
  381. package/src/Devices/index.ts +17 -12
  382. package/src/ISY.ts +11 -4
  383. package/src/ISYDevice.ts +68 -57
  384. package/src/ISYNode.ts +32 -8
  385. package/src/ISYScene.ts +31 -28
  386. package/src/Matter/Behaviors/BehaviorRegistry.ts +26 -0
  387. package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +6 -0
  388. package/src/Matter/Bridge/Server.ts +42 -18
  389. package/src/Matter/Mappings/Insteon.ts +39 -14
  390. package/src/Model/ClassDefinition.ts +34 -4
  391. package/src/Model/ClusterMap.ts +73 -57
  392. package/src/Model/NodeInfo.ts +1 -1
  393. package/src/Utils.ts +38 -0
  394. package/tsconfig.json +7 -1
  395. package/src/Devices/Insteon/Generated/AlertModuleSirenAdv.ts +0 -123
  396. package/src/Devices/Insteon/Generated/BallastRelayLampSwitchAdv.ts +0 -123
  397. package/src/Devices/Insteon/Generated/BinaryAlarmAdv.ts +0 -91
  398. package/src/Devices/Insteon/Generated/BinaryControlAdv.ts +0 -91
  399. package/src/Devices/Insteon/Generated/DimmerLampSwitchAdv.ts +0 -207
  400. package/src/Devices/Insteon/Generated/DimmerLampSwitchLedAdv.ts +0 -215
  401. package/src/Devices/Insteon/Generated/DimmerMotorSwitchAdv.ts +0 -191
  402. package/src/Devices/Insteon/Generated/DimmerSwitchOnlyAdv.ts +0 -73
  403. package/src/Devices/Insteon/Generated/Ezio2x4InputAdv.ts +0 -75
  404. package/src/Devices/Insteon/Generated/EzrainInputAdv.ts +0 -75
  405. package/src/Devices/Insteon/Generated/KeypadDimmerAdv.ts +0 -207
  406. package/src/Devices/Insteon/Generated/KeypadRelayAdv.ts +0 -131
  407. package/src/Devices/Insteon/Generated/OnOffControlAdv.ts +0 -65
  408. package/src/Devices/Insteon/Generated/Pir2844Adv.ts +0 -139
  409. package/src/Devices/Insteon/Generated/Pir2844OnOffAdv.ts +0 -107
  410. package/src/Devices/Insteon/Generated/Pir2844cAdv.ts +0 -139
  411. package/src/Devices/Insteon/Generated/RelayLampOnlyAdv.ts +0 -123
  412. package/src/Devices/Insteon/Generated/RelayLampSwitchAdv.ts +0 -131
  413. package/src/Devices/Insteon/Generated/RelayLampSwitchLedAdv.ts +0 -139
  414. package/src/Devices/Insteon/Generated/RelaySwitchOnlyAdv.ts +0 -81
  415. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQueryAdv.ts +0 -89
  416. package/src/Devices/Insteon/Generated/RemoteLinc2Adv.ts +0 -75
  417. package/src/Devices/Insteon/Generated/SirenArm.ts +0 -55
@@ -1,18 +1,18 @@
1
1
  /* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
2
2
 
3
- import { UnitOfMeasure } from "../../Definitions/Global/UOM.js";
4
- import { Family } from "../../Definitions/Global/Families.js";
5
- import type { NodeInfo } from "../../Model/NodeInfo.js";
6
- import type { ISY } from "../../ISY.js";
7
- import type { ISYNode } from "../../ISYNode.js";
8
- import { Base } from "./index.js";
9
- import { ISYDeviceNode } from "../ISYDeviceNode.js";
10
- import { Driver } from "../../Definitions/Global/Drivers.js";
11
- import { Insteon } from "../../Definitions/index.js";
12
- import type { DriverState } from "../../Model/DriverState.js";
13
- import { NodeFactory } from "../NodeFactory.js";
3
+ import { Driver } from '../../Definitions/Global/Drivers.js';
4
+ import { Family } from '../../Definitions/Global/Families.js';
5
+ import { UnitOfMeasure } from '../../Definitions/Global/UOM.js';
6
+ import { Insteon } from '../../Definitions/index.js';
7
+ import type { ISY } from '../../ISY.js';
8
+ import type { ISYNode } from '../../ISYNode.js';
9
+ import type { DriverState } from '../../Model/DriverState.js';
10
+ import type { NodeInfo } from '../../Model/NodeInfo.js';
11
+ import { ISYDeviceNode } from '../ISYDeviceNode.js';
12
+ import { NodeFactory } from '../NodeFactory.js';
13
+ import { Base } from './index.js';
14
14
 
15
- export const nodeDefId = "KeypadButton";
15
+ export const nodeDefId = 'KeypadButton';
16
16
 
17
17
  type Commands = KeypadButton.Commands;
18
18
  type Drivers = KeypadButton.Drivers;
@@ -23,21 +23,21 @@ export class KeypadButtonNode extends Base<Drivers, Commands> implements KeypadB
23
23
  BL: this.backlight,
24
24
  WDU: this.writeChanges
25
25
  };
26
- static override nodeDefId = "KeypadButton";
27
- declare readonly nodeDefId: "KeypadButton";
28
- constructor (isy: ISY, nodeInfo: NodeInfo) {
26
+ static override nodeDefId = 'KeypadButton';
27
+ declare readonly nodeDefId: 'KeypadButton';
28
+ constructor(isy: ISY, nodeInfo: NodeInfo) {
29
29
  super(isy, nodeInfo);
30
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
31
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
30
+ this.drivers.ST = Driver.create('ST', this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: 'Status', name: 'status' });
31
+ this.drivers.ERR = Driver.create('ERR', this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: 'Responding', name: 'responding' });
32
32
  }
33
33
  async query() {
34
- return this.sendCommand("QUERY");
34
+ return this.sendCommand('QUERY');
35
35
  }
36
36
  async backlight(value: number) {
37
- return this.sendCommand("BL", { value: value });
37
+ return this.sendCommand('BL', { value: value });
38
38
  }
39
39
  async writeChanges() {
40
- return this.sendCommand("WDU");
40
+ return this.sendCommand('WDU');
41
41
  }
42
42
  public get status(): Insteon.OnLevelRelay {
43
43
  return this.drivers.ST?.value;
@@ -51,7 +51,7 @@ NodeFactory.register(KeypadButtonNode);
51
51
 
52
52
  export namespace KeypadButton {
53
53
  export interface Interface extends Omit<InstanceType<typeof KeypadButtonNode>, keyof ISYDeviceNode<any, any, any, any>> {
54
- nodeDefId: "KeypadButton";
54
+ nodeDefId: 'KeypadButton';
55
55
  }
56
56
  export function is(node: ISYNode<any, any, any, any>): node is KeypadButtonNode {
57
57
  return node.nodeDefId === nodeDefId;
@@ -62,30 +62,30 @@ export namespace KeypadButton {
62
62
  export const Node = KeypadButtonNode;
63
63
  export type Commands = {
64
64
  QUERY: (() => Promise<boolean>) & {
65
- label: "Query";
66
- name: "query";
65
+ label: 'Query';
66
+ name: 'query';
67
67
  };
68
68
  BL: ((value: number) => Promise<boolean>) & {
69
- label: "Backlight";
70
- name: "backlight";
69
+ label: 'Backlight';
70
+ name: 'backlight';
71
71
  };
72
72
  WDU: (() => Promise<boolean>) & {
73
- label: "Write Changes";
74
- name: "writeChanges";
73
+ label: 'Write Changes';
74
+ name: 'writeChanges';
75
75
  };
76
76
  };
77
77
  export type Drivers = {
78
78
  ST: {
79
79
  uom: UnitOfMeasure.Percent;
80
80
  value: Insteon.OnLevelRelay;
81
- label: "Status";
82
- name: "status";
81
+ label: 'Status';
82
+ name: 'status';
83
83
  };
84
84
  ERR: {
85
85
  uom: UnitOfMeasure.Index;
86
86
  value: Insteon.Error;
87
- label: "Responding";
88
- name: "responding";
87
+ label: 'Responding';
88
+ name: 'responding';
89
89
  };
90
90
  };
91
91
  }
@@ -13,39 +13,31 @@ import { InsteonRelaySwitchDevice } from "./InsteonRelaySwitchDevice.js";
13
13
  import { InsteonThermostatDevice } from "./InsteonThermostatDevice.js";
14
14
  import { InsteonDoorWindowSensorDevice } from './InsteonDoorWindowSensorDevice.js';
15
15
 
16
+ import { ISYNode } from '../../ISYNode.js';
17
+ import type * as GeneratedTypes from "./Generated/index.js";
18
+
16
19
  export {InsteonBaseDevice as Base} from "./InsteonBaseDevice.js";
17
20
 
21
+ export {InsteonLeakSensorDevice as LeakSensor} from "./InsteonLeakSensorDevice.js";
22
+
23
+ export {InsteonMotionSensorDevice as MotionSensor} from "./InsteonMotionSensorDevice.js";
24
+
25
+ export {InsteonSmokeSensorDevice as SmokeSensor} from "./InsteonSmokeSensorDevice.js";
26
+
27
+ export {InsteonDoorWindowSensorDevice as DoorWindowSensor} from "./InsteonDoorWindowSensorDevice.js";
18
28
 
19
- export const Insteon = {
29
+ export {InsteonDimmerOutletDevice as DimmerOutlet} from "./InsteonDimmerOutletDevice.js";
30
+
31
+ /*export const Insteon = {
20
32
  LeakSensor: InsteonLeakSensorDevice,
21
33
  MotionSensor: InsteonMotionSensorDevice,
22
34
  SmokeSensor: InsteonSmokeSensorDevice,
23
- RelaySwitch: InsteonRelaySwitchDevice,
24
35
  DoorWindowSensor: InsteonDoorWindowSensorDevice,
25
- DimmerSwitch: InsteonDimmerSwitchDevice,
26
36
  DimmerOutlet: InsteonDimmerOutletDevice,
27
-
28
- Relay: InsteonRelayDevice,
29
- Dimmer: InsteonDimmableDevice,
30
- KeypadDimmer: InsteonKeypadDimmerDevice,
31
37
  Thermostat: InsteonThermostatDevice,
32
38
  Lock: InsteonLockDevice,
33
- Fan: InsteonFanDevice
34
- };
35
-
36
-
37
- export namespace Insteon {
38
- //export type Base<D,C> = InsteonBaseDevice<D,C>;
39
- export type LeakSensor = InsteonLeakSensorDevice;
40
- export type MotionSensor = InsteonMotionSensorDevice;
41
- export type SmokeSensor = InsteonSmokeSensorDevice;
42
- export type RelaySwitch = InsteonRelaySwitchDevice;
43
- export type DimmerSwitch = InsteonDimmerSwitchDevice;
44
- export type DimmerOutlet = InsteonDimmerOutletDevice;
45
- export type Relay = InsteonRelayDevice;
46
- export type Dimmer = InsteonDimmableDevice;
47
- export type KeypadDimmer = InsteonKeypadDimmerDevice;
48
- export type Thermostat = InsteonThermostatDevice;
49
- export type Lock = InsteonLockDevice;
50
- export type Fan = InsteonFanDevice;
51
- }
39
+ Fan: InsteonFanDevice,
40
+ ...Generated */
41
+
42
+
43
+ export * from './Generated/index.js';
@@ -3,7 +3,7 @@
3
3
  import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
4
4
  import { Family } from "../../../Definitions/Global/Families.js";
5
5
  import type { NodeInfo } from "../../../Model/NodeInfo.js";
6
- import type { ISY } from "../../../ISY.js";
6
+ import { ISY } from "../../../ISY.js";
7
7
  import type { ISYNode } from "../../../ISYNode.js";
8
8
  import { Base } from "../index.js";
9
9
  import { ISYDeviceNode } from "../../ISYDeviceNode.js";
@@ -12,33 +12,28 @@ import { Lutron } from "../../../Definitions/index.js";
12
12
  import type { DriverState } from "../../../Model/DriverState.js";
13
13
  import { NodeFactory } from "../../NodeFactory.js";
14
14
 
15
- export const nodeDefId = "LUTLoadShed";
15
+ const nodeDefId = "LUTLoadShed";
16
16
 
17
17
  type Commands = LoadShed.Commands;
18
18
  type Drivers = LoadShed.Drivers;
19
19
 
20
20
  export class LoadShedNode extends Base<Drivers, Commands> implements LoadShed.Interface {
21
- public readonly commands = {
21
+ public override readonly commands = {
22
22
  DON: this.on,
23
23
  DOF: this.off,
24
24
  QUERY: this.query
25
25
  };
26
- static nodeDefId = "LUTLoadShed";
26
+ static override nodeDefId = "LUTLoadShed";
27
+ static override implements = ["LUTLoadShed"];
27
28
  declare readonly nodeDefId: "LUTLoadShed";
28
29
  constructor (isy: ISY, nodeInfo: NodeInfo) {
29
30
  super(isy, nodeInfo);
30
31
  this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
31
32
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
32
33
  }
33
- async on(value?: (0 | 100)) {
34
- return this.sendCommand("DON", { value: value });
35
- }
36
- async off() {
37
- return this.sendCommand("DOF");
38
- }
39
- async query() {
40
- return this.sendCommand("QUERY");
41
- }
34
+ async on(value?: (0 | 100)) { return this.sendCommand("DON", { value: value }); }
35
+ async off() { return this.sendCommand("DOF"); }
36
+ async query() { return this.sendCommand("QUERY"); }
42
37
  public get status(): (0 | 100) {
43
38
  return this.drivers.ST?.value;
44
39
  }
@@ -53,8 +48,9 @@ export namespace LoadShed {
53
48
  export interface Interface extends Omit<InstanceType<typeof LoadShedNode>, keyof ISYDeviceNode<any, any, any, any>> {
54
49
  nodeDefId: "LUTLoadShed";
55
50
  }
56
- export function is(node: ISYNode<any, any, any, any>): node is LoadShedNode {
57
- return node.nodeDefId === nodeDefId;
51
+ export function is(node: ISYNode<any, any, any, any>): node is LoadShedNode { return ["LUTLoadShed"].includes(node.nodeDefId); }
52
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is LoadShedNode {
53
+ return ["LUTLoadShed"].includes(node.nodeDefId);
58
54
  }
59
55
  export function create(isy: ISY, nodeInfo: NodeInfo) {
60
56
  return new LoadShedNode(isy, nodeInfo);
@@ -3,7 +3,7 @@
3
3
  import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
4
4
  import { Family } from "../../../Definitions/Global/Families.js";
5
5
  import type { NodeInfo } from "../../../Model/NodeInfo.js";
6
- import type { ISY } from "../../../ISY.js";
6
+ import { ISY } from "../../../ISY.js";
7
7
  import type { ISYNode } from "../../../ISYNode.js";
8
8
  import { Base } from "../index.js";
9
9
  import { ISYDeviceNode } from "../../ISYDeviceNode.js";
@@ -12,37 +12,30 @@ import { NCD } from "../../../Definitions/index.js";
12
12
  import type { DriverState } from "../../../Model/DriverState.js";
13
13
  import { NodeFactory } from "../../NodeFactory.js";
14
14
 
15
- export const nodeDefId = "NCDRelay";
15
+ const nodeDefId = "NCDRelay";
16
16
 
17
17
  type Commands = Relay.Commands;
18
18
  type Drivers = Relay.Drivers;
19
19
 
20
20
  export class RelayNode extends Base<Drivers, Commands> implements Relay.Interface {
21
- public readonly commands = {
21
+ public override readonly commands = {
22
22
  DON: this.on,
23
23
  DOF: this.off,
24
24
  QUERY: this.query,
25
25
  ADRPST: this.adr
26
26
  };
27
- static nodeDefId = "NCDRelay";
27
+ static override nodeDefId = "NCDRelay";
28
+ static override implements = ["NCDRelay"];
28
29
  declare readonly nodeDefId: "NCDRelay";
29
30
  constructor (isy: ISY, nodeInfo: NodeInfo) {
30
31
  super(isy, nodeInfo);
31
32
  this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
32
33
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
33
34
  }
34
- async on() {
35
- return this.sendCommand("DON");
36
- }
37
- async off() {
38
- return this.sendCommand("DOF");
39
- }
40
- async query() {
41
- return this.sendCommand("QUERY");
42
- }
43
- async adr(value: (0 | 1)) {
44
- return this.sendCommand("ADRPST", { value: value });
45
- }
35
+ async on() { return this.sendCommand("DON"); }
36
+ async off() { return this.sendCommand("DOF"); }
37
+ async query() { return this.sendCommand("QUERY"); }
38
+ async adr(value: (0 | 1)) { return this.sendCommand("ADRPST", { value: value }); }
46
39
  public get status(): (0 | 100) {
47
40
  return this.drivers.ST?.value;
48
41
  }
@@ -57,8 +50,9 @@ export namespace Relay {
57
50
  export interface Interface extends Omit<InstanceType<typeof RelayNode>, keyof ISYDeviceNode<any, any, any, any>> {
58
51
  nodeDefId: "NCDRelay";
59
52
  }
60
- export function is(node: ISYNode<any, any, any, any>): node is RelayNode {
61
- return node.nodeDefId === nodeDefId;
53
+ export function is(node: ISYNode<any, any, any, any>): node is RelayNode { return ["NCDRelay"].includes(node.nodeDefId); }
54
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelayNode {
55
+ return ["NCDRelay"].includes(node.nodeDefId);
62
56
  }
63
57
  export function create(isy: ISY, nodeInfo: NodeInfo) {
64
58
  return new RelayNode(isy, nodeInfo);
@@ -4,33 +4,86 @@ import { ISYNode } from '../ISYNode.js';
4
4
  import type { NodeDef } from '../Model/NodeDef.js';
5
5
  import { isDynamic, type NodeInfo } from '../Model/NodeInfo.js';
6
6
  import type { Constructor } from './Constructor.js';
7
- import type { IdentityOf } from '../Utils.js';
8
- import { Family } from '../Definitions/index.js';
7
+ import type { IdentityOf, StringKeys } from '../Utils.js';
8
+ import { Family, type EnumLiteral } from '../Definitions/index.js';
9
9
 
10
10
 
11
11
 
12
12
  export namespace NodeFactory {
13
13
  export const registry: NodeClassRegistry = {};
14
14
 
15
+ export type NodeClass<T extends Family | keyof typeof Family> = T extends Family? typeof ISYNode<T, any, any, any> : T extends keyof typeof Family ? typeof ISYNode<typeof Family[T] , any, any, any> : never;
15
16
 
17
+ export const implementsRegistry: {[x in StringKeys<typeof Family>]?: {[x: string]: string[]}} = {};
16
18
 
19
+ export function register<F extends keyof typeof Family>(nodeClass: NodeClass<F>, id: string = nodeClass.nodeDefId) {
20
+ //let s; //FamilyNodeClassRegistry<(typeof Family)[F]>;
21
+ let f = Family[nodeClass.family];
22
+ let s = (registry[f] ?? (registry[f] = {})) as FamilyNodeClassRegistry<any>;
23
+ s[id] = nodeClass;
24
+ if (!implementsRegistry[f]) {
25
+ implementsRegistry[f] = {};
26
+ }
27
+ implementsRegistry[f][id] = nodeClass.implements;
28
+
29
+
30
+ }
17
31
 
18
- export function register<F extends keyof typeof Family>(nodeClass: typeof ISYNode<(typeof Family)[F], any, any, any>, id: string = nodeClass.nodeDefId) {
19
- let s: FamilyNodeClassRegistry<(typeof Family)[F]>;
20
32
 
21
- s = registry[Family[nodeClass.family]] ?? (registry[nodeClass.family] = new Map());
22
- s.set(nodeClass.nodeDefId, nodeClass);
33
+ function compare(a: typeof ISYNode<any, any, any, any>, b: typeof ISYNode<any, any, any, any>)
34
+ {
35
+ if(a.nodeDefId === b.nodeDefId)
36
+ {
37
+ return 0;
38
+ }
39
+ if(a.implements.includes(b.nodeDefId))
40
+ return 1;
41
+ if(b.implements.includes(a.nodeDefId))
42
+ return -1;
43
+ return a.nodeDefId.localeCompare(b.nodeDefId);
44
+ }
45
+
46
+ export function sortImplementsRegistry()
47
+ {
48
+ for (let f in implementsRegistry) {
49
+ let reg = implementsRegistry[f];
50
+ for (let e in reg) {
51
+
52
+ reg[e] = reg[e].sort((a,b) => compare(getForNodeDefId(f as keyof typeof Family, a), getForNodeDefId(f as keyof typeof Family, b)));
53
+ }
54
+ }
55
+ }
56
+
57
+ export function getImplements<F extends keyof typeof Family, T extends ISYNode<typeof Family[F],any,any,any>>(node: T) {
58
+ return implementsRegistry[Family[node.family] as F][node.nodeDefId];
23
59
  }
24
60
 
25
- export function getForNodeDefId<F extends keyof typeof Family>(family: F, nodeDefId: string): Constructor<ISYNode<(typeof Family)[F], any, any, any>> {
26
- return registry[family]?.get(nodeDefId);
61
+ export function getForNode<F extends keyof typeof Family>(family: F, node: NodeInfo<typeof Family[F]>): NodeClass<F> {
62
+ if(isDynamic(node))
63
+ {
64
+ return getForNodeDefId(family, node.sgid);
65
+ }
66
+ return getForNodeDefId(family, node.nodeDefId);
27
67
  }
28
68
 
29
- export function getForNLSId<F extends keyof typeof Family>(family: F, nodeDefId: string): Constructor<ISYNode<(typeof Family)[F], any, any, any>> {
30
- return registry[family].get(nodeDefId);
69
+
70
+
71
+ export function getForNodeDefId<F extends keyof typeof Family | Family>(family: F, nodeDefId: string): NodeClass<F> {
72
+ if(typeof family === "string")
73
+ {
74
+ return registry[family as keyof typeof Family][nodeDefId] as NodeClass<F>;
75
+ }
76
+ else if(typeof family === "number")
77
+ {
78
+ return registry[Family[family] as keyof typeof Family][nodeDefId] as NodeClass<F>;
79
+ }
80
+
31
81
  }
32
82
 
33
- export async function get<F extends keyof typeof Family>(node: NodeInfo<typeof Family[F]>, isy: ISY = ISY.instance): Promise<Constructor<ISYNode<typeof Family[F], any, any, any>>> {
83
+
84
+
85
+
86
+ export async function get<F extends keyof typeof Family>(node: NodeInfo<typeof Family[F]>, isy: ISY = ISY.instance): Promise<typeof ISYNode<typeof Family[F], any, any, any>> {
34
87
  if (!isDynamic(node))
35
88
  {
36
89
  return Promise.resolve(getForNodeDefId(Family[node.family] as F, node.nodeDefId));
@@ -63,6 +116,7 @@ export namespace NodeFactory {
63
116
  }
64
117
  }
65
118
  }
66
- export type FamilyNodeClassRegistry<T extends Family> = Map<string, Constructor<ISYNode<T,any,any,any>>>;
119
+ export type FamilyNodeClassRegistry<T extends Family> = {[x:string]:NodeFactory.NodeClass<T>};
120
+
67
121
 
68
- export type NodeClassRegistry = { [x in Extract<keyof typeof Family,string>]?: FamilyNodeClassRegistry<typeof Family[x]>};
122
+ type NodeClassRegistry = { [x in Extract<keyof typeof Family,string>]?: FamilyNodeClassRegistry<typeof Family[x]>};
@@ -0,0 +1,84 @@
1
+ /* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
2
+
3
+ import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
4
+ import { Family } from "../../../Definitions/Global/Families.js";
5
+ import type { NodeInfo } from "../../../Model/NodeInfo.js";
6
+ import { ISY } from "../../../ISY.js";
7
+ import type { ISYNode } from "../../../ISYNode.js";
8
+ import { Base } from "../index.js";
9
+ import { ISYDeviceNode } from "../../ISYDeviceNode.js";
10
+ import { Driver } from "../../../Definitions/Global/Drivers.js";
11
+ import { Poly } from "../../../Definitions/index.js";
12
+ import type { DriverState } from "../../../Model/DriverState.js";
13
+ import { NodeFactory } from "../../NodeFactory.js";
14
+
15
+ const nodeDefId = "CONTROLLER";
16
+
17
+ type Commands = MatterBridge.Commands;
18
+ type Drivers = MatterBridge.Drivers;
19
+
20
+ export class MatterBridgeNode extends Base<Drivers, Commands> implements MatterBridge.Interface {
21
+ public override readonly commands = {
22
+ DISCOVER: this.discover,
23
+ QUERY: this.query,
24
+ START_BRIDGE: this.startBridge,
25
+ STOP_BRIDGE: this.stopBridge
26
+ };
27
+ static override nodeDefId = "CONTROLLER";
28
+ static override implements = ["CONTROLLER"];
29
+ declare readonly nodeDefId: "CONTROLLER";
30
+ constructor (isy: ISY, nodeInfo: NodeInfo) {
31
+ super(isy, nodeInfo);
32
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Unknown, label: "Status", name: "status" });
33
+ }
34
+ async discover() { return this.sendCommand("DISCOVER"); }
35
+ async query() { return this.sendCommand("QUERY"); }
36
+ async startBridge() { return this.sendCommand("START_BRIDGE"); }
37
+ async stopBridge() { return this.sendCommand("STOP_BRIDGE"); }
38
+ public get status(): {
39
+
40
+ return this.drivers.ST?.value;
41
+ }
42
+ }
43
+
44
+ NodeFactory.register(MatterBridgeNode);
45
+
46
+ export namespace MatterBridge {
47
+ export interface Interface extends Omit<InstanceType<typeof MatterBridgeNode>, keyof ISYDeviceNode<any, any, any, any>> {
48
+ nodeDefId: "CONTROLLER";
49
+ }
50
+ export function is(node: ISYNode<any, any, any, any>): node is MatterBridgeNode { return ["CONTROLLER"].includes(node.nodeDefId); }
51
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is MatterBridgeNode {
52
+ return ["CONTROLLER"].includes(node.nodeDefId);
53
+ }
54
+ export function create(isy: ISY, nodeInfo: NodeInfo) {
55
+ return new MatterBridgeNode(isy, nodeInfo);
56
+ }
57
+ export const Node = MatterBridgeNode;
58
+ export type Commands = {
59
+ DISCOVER: (() => Promise<boolean>) & {
60
+ label: "Discover";
61
+ name: "discover";
62
+ };
63
+ QUERY: (() => Promise<boolean>) & {
64
+ label: "Query";
65
+ name: "query";
66
+ };
67
+ START_BRIDGE: (() => Promise<boolean>) & {
68
+ label: "Start Bridge";
69
+ name: "startBridge";
70
+ };
71
+ STOP_BRIDGE: (() => Promise<boolean>) & {
72
+ label: "Stop Bridge";
73
+ name: "stopBridge";
74
+ };
75
+ };
76
+ export type Drivers = {
77
+ ST: {
78
+ uom: ;
79
+ value: ;
80
+ label: "Status";
81
+ name: "status";
82
+ };
83
+ };
84
+ }
@@ -1,24 +1,24 @@
1
- /* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
2
-
1
+ /* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
2
+
3
3
  import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
4
4
  import { Family } from "../../../Definitions/Global/Families.js";
5
5
  import type { NodeInfo } from "../../../Model/NodeInfo.js";
6
- import type { ISY } from "../../../ISY.js";
6
+ import { ISY } from "../../../ISY.js";
7
7
  import type { ISYNode } from "../../../ISYNode.js";
8
8
  import { Base } from "../index.js";
9
9
  import { ISYDeviceNode } from "../../ISYDeviceNode.js";
10
10
  import { Driver } from "../../../Definitions/Global/Drivers.js";
11
- import { Scene as SceneEnums } from "../../../Definitions/index.js";
11
+ import { Scene } from "../../../Definitions/index.js";
12
12
  import type { DriverState } from "../../../Model/DriverState.js";
13
13
  import { NodeFactory } from "../../NodeFactory.js";
14
-
15
- export const nodeDefId = "InsteonDimmer";
16
-
14
+
15
+ const nodeDefId = "InsteonDimmer";
16
+
17
17
  type Commands = Scene.Commands;
18
18
  type Drivers = Scene.Drivers;
19
-
19
+
20
20
  export class SceneNode extends Base<Drivers, Commands> implements Scene.Interface {
21
- public readonly commands = {
21
+ public override readonly commands = {
22
22
  DON: this.on,
23
23
  DOF: this.off,
24
24
  DFOF: this.fastOff,
@@ -37,72 +37,40 @@ export class SceneNode extends Base<Drivers, Commands> implements Scene.Interfac
37
37
  CLISPHD: this.heatSetpointShift,
38
38
  CLISPCD: this.coolSetpointShift
39
39
  };
40
- static nodeDefId = "InsteonDimmer";
40
+ static override nodeDefId = "InsteonDimmer";
41
+ static override implements = ["InsteonDimmer"];
41
42
  declare readonly nodeDefId: "InsteonDimmer";
42
43
  constructor (isy: ISY, nodeInfo: NodeInfo) {
43
44
  super(isy, nodeInfo);
44
45
  }
45
- async on(value?: number) {
46
- return this.sendCommand("DON", { value: value });
47
- }
48
- async off() {
49
- return this.sendCommand("DOF");
50
- }
51
- async fastOff() {
52
- return this.sendCommand("DFOF");
53
- }
54
- async fastOn() {
55
- return this.sendCommand("DFON");
56
- }
57
- async brighten() {
58
- return this.sendCommand("BRT");
59
- }
60
- async dim() {
61
- return this.sendCommand("DIM");
62
- }
63
- async fadeUp() {
64
- return this.sendCommand("FDUP");
65
- }
66
- async fadeDown() {
67
- return this.sendCommand("FDDOWN");
68
- }
69
- async fadeStop() {
70
- return this.sendCommand("FDSTOP");
71
- }
72
- async beep() {
73
- return this.sendCommand("BEEP");
74
- }
75
- async query() {
76
- return this.sendCommand("QUERY");
77
- }
78
- async mode(value: number) {
79
- return this.sendCommand("CLIMD", { value: value });
80
- }
81
- async fanMode(value: (0 | 1)) {
82
- return this.sendCommand("CLIFS", { value: value });
83
- }
84
- async heatSetpoint(value: number) {
85
- return this.sendCommand("CLISPH", { value: value });
86
- }
87
- async coolSetpoint(value: number) {
88
- return this.sendCommand("CLISPC", { value: value });
89
- }
90
- async heatSetpointShift(value: number) {
91
- return this.sendCommand("CLISPHD", { value: value });
92
- }
93
- async coolSetpointShift(value: number) {
94
- return this.sendCommand("CLISPCD", { value: value });
95
- }
46
+ async on(value?: number) { return this.sendCommand("DON", { value: value }); }
47
+ async off() { return this.sendCommand("DOF"); }
48
+ async fastOff() { return this.sendCommand("DFOF"); }
49
+ async fastOn() { return this.sendCommand("DFON"); }
50
+ async brighten() { return this.sendCommand("BRT"); }
51
+ async dim() { return this.sendCommand("DIM"); }
52
+ async fadeUp() { return this.sendCommand("FDUP"); }
53
+ async fadeDown() { return this.sendCommand("FDDOWN"); }
54
+ async fadeStop() { return this.sendCommand("FDSTOP"); }
55
+ async beep() { return this.sendCommand("BEEP"); }
56
+ async query() { return this.sendCommand("QUERY"); }
57
+ async mode(value: number) { return this.sendCommand("CLIMD", { value: value }); }
58
+ async fanMode(value: (0 | 1)) { return this.sendCommand("CLIFS", { value: value }); }
59
+ async heatSetpoint(value: number) { return this.sendCommand("CLISPH", { value: value }); }
60
+ async coolSetpoint(value: number) { return this.sendCommand("CLISPC", { value: value }); }
61
+ async heatSetpointShift(value: number) { return this.sendCommand("CLISPHD", { value: value }); }
62
+ async coolSetpointShift(value: number) { return this.sendCommand("CLISPCD", { value: value }); }
96
63
  }
97
-
64
+
98
65
  NodeFactory.register(SceneNode);
99
-
66
+
100
67
  export namespace Scene {
101
68
  export interface Interface extends Omit<InstanceType<typeof SceneNode>, keyof ISYDeviceNode<any, any, any, any>> {
102
69
  nodeDefId: "InsteonDimmer";
103
70
  }
104
- export function is(node: ISYNode<any, any, any, any>): node is SceneNode {
105
- return node.nodeDefId === nodeDefId;
71
+ export function is(node: ISYNode<any, any, any, any>): node is SceneNode { return ["InsteonDimmer"].includes(node.nodeDefId); }
72
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is SceneNode {
73
+ return ["InsteonDimmer"].includes(node.nodeDefId);
106
74
  }
107
75
  export function create(isy: ISY, nodeInfo: NodeInfo) {
108
76
  return new SceneNode(isy, nodeInfo);
@@ -1,4 +1,5 @@
1
1
  import type { Family } from '../../Definitions/Global/Families.js';
2
2
  import {ISYNode} from '../../ISYNode.js'
3
+ import { ISYDeviceNode } from '../ISYDeviceNode.js';
3
4
 
4
- export class Base<D extends ISYNode.DriverSignatures,C extends ISYNode.CommandSignatures> extends ISYNode<Family.Scene,D,C> {}
5
+ export class Base<D extends ISYNode.DriverSignatures,C extends ISYNode.CommandSignatures> extends ISYDeviceNode<Family.Scene,D,C> {}