isy-nodejs 1.0.6-alpha.2 → 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 (445) 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 +7 -6
  145. package/dist/esm/ISYNode.js.map +1 -1
  146. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +37 -5
  147. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -1
  148. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +10 -3
  149. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
  150. package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js +24 -0
  151. package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js.map +1 -0
  152. package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js +23 -0
  153. package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js.map +1 -0
  154. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +4 -4
  155. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
  156. package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js +23 -0
  157. package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js.map +1 -0
  158. package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js +24 -0
  159. package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js.map +1 -0
  160. package/dist/esm/Matter/Behaviors/Insteon/index.js +4 -0
  161. package/dist/esm/Matter/Behaviors/Insteon/index.js.map +1 -0
  162. package/dist/esm/Matter/Bridge/Server.js +22 -11
  163. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  164. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  165. package/dist/esm/Matter/Mappings/MappingRegistry.js +5 -4
  166. package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -1
  167. package/dist/esm/Registry.js +77 -0
  168. package/dist/esm/Registry.js.map +1 -0
  169. package/dist/esm/Utils.js +12 -0
  170. package/dist/esm/Utils.js.map +1 -1
  171. package/dist/esm/types/CodeGeneration/CodeFactory.d.ts +6 -5
  172. package/dist/esm/types/CodeGeneration/CodeFactory.d.ts.map +1 -1
  173. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  174. package/dist/esm/types/Definitions/Global/Commands.d.ts +4 -4
  175. package/dist/esm/types/Definitions/Global/Commands.d.ts.map +1 -1
  176. package/dist/esm/types/Definitions/Global/Drivers.d.ts +11 -8
  177. package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
  178. package/dist/esm/types/Definitions/Global/Events.d.ts +3 -3
  179. package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
  180. package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts +4 -0
  181. package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts.map +1 -1
  182. package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts +4 -0
  183. package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts.map +1 -1
  184. package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts +6 -0
  185. package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts.map +1 -1
  186. package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts +4 -0
  187. package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts.map +1 -1
  188. package/dist/esm/types/Devices/CompositeDevice.d.ts +64 -0
  189. package/dist/esm/types/Devices/CompositeDevice.d.ts.map +1 -0
  190. package/dist/esm/types/Devices/EndpointFor.d.ts +3 -2
  191. package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
  192. package/dist/esm/types/Devices/ISYDeviceNode.d.ts +4 -1
  193. package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
  194. package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts +25 -1
  195. package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts.map +1 -1
  196. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +2 -3
  197. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -1
  198. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +2 -3
  199. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -1
  200. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +2 -3
  201. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -1
  202. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +2 -3
  203. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -1
  204. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +2 -3
  205. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -1
  206. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +2 -3
  207. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -1
  208. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +2 -3
  209. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -1
  210. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +2 -3
  211. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -1
  212. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +2 -3
  213. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -1
  214. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +2 -3
  215. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -1
  216. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +2 -3
  217. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -1
  218. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +2 -3
  219. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -1
  220. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +2 -3
  221. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -1
  222. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +2 -3
  223. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -1
  224. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +2 -3
  225. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -1
  226. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +2 -3
  227. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -1
  228. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +2 -3
  229. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -1
  230. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +2 -3
  231. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -1
  232. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +2 -3
  233. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -1
  234. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +2 -3
  235. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -1
  236. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +2 -3
  237. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -1
  238. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +2 -3
  239. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -1
  240. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +2 -3
  241. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -1
  242. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +2 -3
  243. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -1
  244. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +2 -3
  245. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -1
  246. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +2 -3
  247. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -1
  248. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +2 -3
  249. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -1
  250. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +2 -3
  251. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -1
  252. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +2 -3
  253. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -1
  254. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +2 -3
  255. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -1
  256. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +2 -3
  257. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -1
  258. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +2 -3
  259. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -1
  260. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +2 -3
  261. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -1
  262. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +2 -3
  263. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -1
  264. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +2 -3
  265. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -1
  266. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +2 -3
  267. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -1
  268. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +2 -3
  269. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -1
  270. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +2 -3
  271. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -1
  272. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +8 -6
  273. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
  274. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts +7 -2
  275. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts.map +1 -1
  276. package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts +2 -2
  277. package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts.map +1 -1
  278. package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts +2 -2
  279. package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts.map +1 -1
  280. package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts +17 -5
  281. package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts.map +1 -1
  282. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +18 -16
  283. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
  284. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
  285. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
  286. package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts +8 -7
  287. package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts.map +1 -1
  288. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts +0 -1
  289. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
  290. package/dist/esm/types/Devices/Insteon/index.d.ts +10 -11
  291. package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
  292. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +2 -3
  293. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -1
  294. package/dist/esm/types/Devices/NodeFactory.d.ts +1 -1
  295. package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
  296. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +2 -3
  297. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -1
  298. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +2 -3
  299. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -1
  300. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +2 -3
  301. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -1
  302. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +2 -3
  303. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -1
  304. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +2 -3
  305. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -1
  306. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +2 -3
  307. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -1
  308. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +2 -3
  309. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -1
  310. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +2 -3
  311. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -1
  312. package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts +10 -0
  313. package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts.map +1 -0
  314. package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts +10 -0
  315. package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts.map +1 -0
  316. package/dist/esm/types/Devices/ZigBee/index.d.ts +2 -0
  317. package/dist/esm/types/Devices/ZigBee/index.d.ts.map +1 -0
  318. package/dist/esm/types/ISY.d.ts.map +1 -1
  319. package/dist/esm/types/ISYDevice.d.ts +3 -5
  320. package/dist/esm/types/ISYDevice.d.ts.map +1 -1
  321. package/dist/esm/types/ISYNode.d.ts +33 -28
  322. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  323. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +9 -5
  324. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -1
  325. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +1 -1
  326. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
  327. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +8 -5
  328. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
  329. package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts +321 -0
  330. package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts.map +1 -0
  331. package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts +42 -0
  332. package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts.map +1 -0
  333. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +4 -4
  334. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
  335. package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts +24 -0
  336. package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts.map +1 -0
  337. package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts +241 -0
  338. package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts.map +1 -0
  339. package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts +4 -0
  340. package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts.map +1 -0
  341. package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
  342. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +4173 -42
  343. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -1
  344. package/dist/esm/types/Registry.d.ts +37 -0
  345. package/dist/esm/types/Registry.d.ts.map +1 -0
  346. package/dist/esm/types/Utils.d.ts +13 -0
  347. package/dist/esm/types/Utils.d.ts.map +1 -1
  348. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  349. package/package.json +2 -2
  350. package/src/CodeGeneration/CodeFactory.ts +16 -8
  351. package/src/CodeGeneration/NodeClassFactory.ts +7 -9
  352. package/src/Definitions/Global/Commands.ts +16 -13
  353. package/src/Definitions/Global/Drivers.ts +57 -36
  354. package/src/Definitions/Global/Events.ts +4 -4
  355. package/src/Definitions/Insteon/generated/Boolean.ts +9 -0
  356. package/src/Definitions/Insteon/generated/Error.ts +9 -0
  357. package/src/Definitions/Insteon/generated/Lock.ts +28 -0
  358. package/src/Definitions/Insteon/generated/OnLevelRelay.ts +11 -0
  359. package/src/Devices/Brultech/Generated/Channel.ts +8 -9
  360. package/src/Devices/Brultech/Generated/Main.ts +11 -12
  361. package/src/Devices/CompositeDevice.ts +277 -0
  362. package/src/Devices/DeviceFactory.ts +1 -1
  363. package/src/Devices/ISYDeviceNode.ts +8 -2
  364. package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +7 -8
  365. package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +7 -8
  366. package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +7 -8
  367. package/src/Devices/Insteon/Generated/BinaryAlarm.ts +7 -8
  368. package/src/Devices/Insteon/Generated/BinaryControl.ts +7 -8
  369. package/src/Devices/Insteon/Generated/DimmerLamp.ts +9 -10
  370. package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +9 -10
  371. package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +9 -10
  372. package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +9 -10
  373. package/src/Devices/Insteon/Generated/DimmerSwitch.ts +6 -7
  374. package/src/Devices/Insteon/Generated/DoorLock.ts +7 -8
  375. package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +7 -8
  376. package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +7 -8
  377. package/src/Devices/Insteon/Generated/EzrainInput.ts +7 -8
  378. package/src/Devices/Insteon/Generated/EzrainOutput.ts +7 -8
  379. package/src/Devices/Insteon/Generated/FanLincMotor.ts +7 -8
  380. package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +15 -16
  381. package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +13 -14
  382. package/src/Devices/Insteon/Generated/ImeterSolo.ts +8 -9
  383. package/src/Devices/Insteon/Generated/IrLincTx.ts +6 -7
  384. package/src/Devices/Insteon/Generated/KeypadButton.ts +7 -8
  385. package/src/Devices/Insteon/Generated/KeypadDimmer.ts +9 -10
  386. package/src/Devices/Insteon/Generated/KeypadRelay.ts +7 -8
  387. package/src/Devices/Insteon/Generated/OnOffControl.ts +7 -8
  388. package/src/Devices/Insteon/Generated/Pir2844.ts +11 -12
  389. package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +7 -8
  390. package/src/Devices/Insteon/Generated/Pir2844c.ts +11 -12
  391. package/src/Devices/Insteon/Generated/RelayLamp.ts +7 -8
  392. package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +7 -8
  393. package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +7 -8
  394. package/src/Devices/Insteon/Generated/RelaySwitch.ts +6 -7
  395. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +6 -7
  396. package/src/Devices/Insteon/Generated/RemoteLinc2.ts +7 -8
  397. package/src/Devices/Insteon/Generated/Siren.ts +10 -11
  398. package/src/Devices/Insteon/Generated/SirenAlert.ts +6 -7
  399. package/src/Devices/Insteon/Generated/TempLinc.ts +13 -14
  400. package/src/Devices/Insteon/Generated/Thermostat.ts +13 -14
  401. package/src/Devices/Insteon/Generated/X10.ts +7 -8
  402. package/src/Devices/Insteon/InsteonDeviceFactory.ts +26 -12
  403. package/src/Devices/Insteon/InsteonDimmableDevice.ts +4 -4
  404. package/src/Devices/Insteon/InsteonDimmerOutletDevice.ts +3 -2
  405. package/src/Devices/Insteon/InsteonDoorWindowSensorDevice.ts +30 -7
  406. package/src/Devices/Insteon/InsteonFanDevice.ts +21 -36
  407. package/src/Devices/Insteon/InsteonOnOffOutletDevice.ts +5 -17
  408. package/src/Devices/Insteon/InsteonRelayDevice.ts +2 -3
  409. package/src/Devices/Insteon/index.ts +10 -14
  410. package/src/Devices/Lutron/Generated/LoadShed.ts +7 -8
  411. package/src/Devices/NCD/Generated/Relay.ts +19 -23
  412. package/src/Devices/NodeFactory.ts +1 -1
  413. package/src/Devices/Poly/Generated/MatterBridge.ts +6 -7
  414. package/src/Devices/Scene/Generated/Scene.ts +5 -6
  415. package/src/Devices/UDI/Generated/Channel.ts +8 -9
  416. package/src/Devices/UDI/Generated/Em3MainChannel.ts +11 -12
  417. package/src/Devices/UDI/Generated/Main.ts +8 -9
  418. package/src/Devices/UDI/Generated/PulseCounter.ts +9 -10
  419. package/src/Devices/UDI/Generated/Relay.ts +7 -8
  420. package/src/Devices/UDI/Generated/TemperatureSensor.ts +7 -8
  421. package/src/Devices/ZWave/Generated/ColorSwitch.ts +17 -18
  422. package/src/Devices/ZWave/Generated/DimmerSwitch.ts +7 -8
  423. package/src/Devices/ZigBee/ZigBeeBase.ts +22 -0
  424. package/src/Devices/ZigBee/index.ts +13 -0
  425. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +22 -20
  426. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +92 -76
  427. package/src/ISY.ts +27 -5
  428. package/src/ISYDevice.ts +4 -3
  429. package/src/ISYNode.ts +56 -39
  430. package/src/Matter/Behaviors/BehaviorRegistry.ts +44 -8
  431. package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +2 -2
  432. package/src/Matter/Behaviors/ISYClusterBehavior.ts +20 -9
  433. package/src/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.ts +30 -0
  434. package/src/Matter/Behaviors/Insteon/IdentifyBehavior.ts +26 -0
  435. package/src/Matter/Behaviors/Insteon/RelayOnOffBehavior.ts +34 -0
  436. package/src/Matter/Behaviors/Insteon/index.ts +3 -0
  437. package/src/Matter/Bridge/Server.ts +93 -85
  438. package/src/Matter/Mappings/Insteon.ts +3 -3
  439. package/src/Matter/Mappings/MappingRegistry.ts +29 -40
  440. package/src/Registry.ts +112 -0
  441. package/src/Utils.ts +29 -0
  442. package/src/Devices/Insteon/DimmerLampSwitch.ts +0 -207
  443. package/src/Devices/Insteon/InsteonRelaySwitchDevice.ts +0 -11
  444. package/src/Devices/Insteon/RelayLampSwitch.ts +0 -132
  445. package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +0 -66
@@ -17,7 +17,7 @@ const nodeDefId = "Siren";
17
17
  type Commands = Siren.Commands;
18
18
  type Drivers = Siren.Drivers;
19
19
 
20
- export class SirenNode extends Base<Drivers, Commands> implements Siren.Interface {
20
+ class SirenNode extends Base<Drivers, Commands> implements Siren.Interface {
21
21
  public override readonly commands = {
22
22
  DON: this.on,
23
23
  DOF: this.off,
@@ -28,15 +28,15 @@ export class SirenNode extends Base<Drivers, Commands> implements Siren.Interfac
28
28
  WDU: this.writeChanges
29
29
  };
30
30
  static override nodeDefId = "Siren";
31
- static override implements = ["Siren", "SirenAlert", "SirenArm"];
32
- declare readonly nodeDefId: "Siren" | "Siren_ADV";
31
+ static override implements = ['Siren', "SirenAlert", "SirenArm"];
32
+ declare readonly nodeDefId: 'Siren' | "Siren_ADV";
33
33
  constructor (isy: ISY, nodeInfo: NodeInfo) {
34
34
  super(isy, nodeInfo);
35
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Siren", name: "siren" });
36
- this.drivers.MODE = Driver.create("MODE", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Mode", name: "mode" });
37
- this.drivers.DELAY = Driver.create("DELAY", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.DurationInSeconds, label: "Arm Countdown", name: "armCountdown" });
38
- this.drivers.DUR = Driver.create("DUR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.DurationInSeconds, label: "Siren Duration", name: "sirenDuration" });
39
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
35
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Siren", name: "siren" });
36
+ this.drivers.MODE = Driver.create("MODE", this, nodeInfo.state['MODE'], { uom: UnitOfMeasure.Index, label: "Mode", name: "mode" });
37
+ this.drivers.DELAY = Driver.create("DELAY", this, nodeInfo.state['DELAY'], { uom: UnitOfMeasure.DurationInSeconds, label: "Arm Countdown", name: "armCountdown" });
38
+ this.drivers.DUR = Driver.create("DUR", this, nodeInfo.state['DUR'], { uom: UnitOfMeasure.DurationInSeconds, label: "Siren Duration", name: "sirenDuration" });
39
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
40
40
  }
41
41
  async on(duration?: number) { return this.sendCommand("DON", { DUR: duration }); }
42
42
  async off() { return this.sendCommand("DOF"); }
@@ -67,13 +67,12 @@ NodeFactory.register(SirenNode, "Siren_ADV");
67
67
 
68
68
  export namespace Siren {
69
69
  export interface Interface extends Omit<InstanceType<typeof SirenNode>, keyof ISYDeviceNode<any, any, any, any>> {
70
- nodeDefId: "Siren" | "Siren_ADV";
71
70
  }
72
71
  export function is(node: ISYNode<any, any, any, any>): node is SirenNode {
73
- return ["Siren", "Siren_ADV"].includes(node.nodeDefId);
72
+ return ['Siren', "Siren_ADV"].includes(node.nodeDefId);
74
73
  }
75
74
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is SirenNode {
76
- return ["Siren", "Siren_ADV"].includes(node.nodeDefId);
75
+ return ['Siren', "Siren_ADV"].includes(node.nodeDefId);
77
76
  }
78
77
  export function create(isy: ISY, nodeInfo: NodeInfo) {
79
78
  return new SirenNode(isy, nodeInfo);
@@ -17,14 +17,14 @@ const nodeDefId = "SirenAlert";
17
17
  type Commands = SirenAlert.Commands;
18
18
  type Drivers = SirenAlert.Drivers;
19
19
 
20
- export class SirenAlertNode extends Base<Drivers, Commands> implements SirenAlert.Interface {
20
+ class SirenAlertNode extends Base<Drivers, Commands> implements SirenAlert.Interface {
21
21
  public override readonly commands = {};
22
22
  static override nodeDefId = "SirenAlert";
23
- static override implements = ["SirenAlert"];
24
- declare readonly nodeDefId: "SirenAlert" | "SirenArm";
23
+ static override implements = ['SirenAlert'];
24
+ declare readonly nodeDefId: 'SirenAlert' | "SirenArm";
25
25
  constructor (isy: ISY, nodeInfo: NodeInfo) {
26
26
  super(isy, nodeInfo);
27
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
27
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
28
28
  }
29
29
  public get responding(): Insteon.Error {
30
30
  return this.drivers.ERR?.value;
@@ -36,13 +36,12 @@ NodeFactory.register(SirenAlertNode, "SirenArm");
36
36
 
37
37
  export namespace SirenAlert {
38
38
  export interface Interface extends Omit<InstanceType<typeof SirenAlertNode>, keyof ISYDeviceNode<any, any, any, any>> {
39
- nodeDefId: "SirenAlert" | "SirenArm";
40
39
  }
41
40
  export function is(node: ISYNode<any, any, any, any>): node is SirenAlertNode {
42
- return ["SirenAlert", "SirenArm"].includes(node.nodeDefId);
41
+ return ['SirenAlert', "SirenArm"].includes(node.nodeDefId);
43
42
  }
44
43
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is SirenAlertNode {
45
- return ["SirenAlert", "X10", "Thermostat", "TempLinc", "OnOffControl", "OnOffControl_ADV", "DimmerMotorSwitch", "DimmerMotorSwitch_ADV", "DimmerLampSwitch", "DimmerLampSwitch_ADV", "DimmerLampSwitchLED", "DimmerLampSwitchLED_ADV", "DimmerSwitchOnly", "DimmerSwitchOnly_ADV", "DimmerLampOnly", "KeypadDimmer", "KeypadDimmer_ADV", "BallastRelayLampSwitch", "BallastRelayLampSwitch_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "RelaySwitchOnlyPlusQuery", "RelaySwitchOnlyPlusQuery_ADV", "RelaySwitchOnly", "RelaySwitchOnly_ADV", "RelayLampOnly", "RelayLampOnly_ADV", "KeypadRelay", "KeypadRelay_ADV", "RemoteLinc2", "RemoteLinc2_ADV", "IRLincTx", "FanLincMotor", "KeypadButton", "KeypadButton_ADV", "EZRAIN_Output", "EZRAIN_Input", "EZRAIN_Input_ADV", "EZIO2x4_Output", "EZIO2x4_Input", "EZIO2x4_Input_ADV", "IMETER_SOLO", "DoorLock", "BinaryAlarm", "BinaryAlarm_ADV", "BinaryControl", "BinaryControl_ADV", "AlertModuleSiren", "AlertModuleSiren_ADV", "AlertModuleArmed", "Siren", "Siren_ADV", "SirenArm", "PIR2844_ADV", "PIR2844C_ADV", "PIR2844OnOff_ADV"].includes(node.nodeDefId);
44
+ return ['SirenAlert', "X10", "Thermostat", "TempLinc", "OnOffControl", "OnOffControl_ADV", "DimmerMotorSwitch", "DimmerMotorSwitch_ADV", "DimmerLampSwitch", "DimmerLampSwitch_ADV", "DimmerLampSwitchLED", "DimmerLampSwitchLED_ADV", "DimmerSwitchOnly", "DimmerSwitchOnly_ADV", "DimmerLampOnly", "KeypadDimmer", "KeypadDimmer_ADV", "BallastRelayLampSwitch", "BallastRelayLampSwitch_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "RelaySwitchOnlyPlusQuery", "RelaySwitchOnlyPlusQuery_ADV", "RelaySwitchOnly", "RelaySwitchOnly_ADV", "RelayLampOnly", "RelayLampOnly_ADV", "KeypadRelay", "KeypadRelay_ADV", "RemoteLinc2", "RemoteLinc2_ADV", "IRLincTx", "FanLincMotor", "KeypadButton", "KeypadButton_ADV", "EZRAIN_Output", "EZRAIN_Input", "EZRAIN_Input_ADV", "EZIO2x4_Output", "EZIO2x4_Input", "EZIO2x4_Input_ADV", "IMETER_SOLO", "DoorLock", "BinaryAlarm", "BinaryAlarm_ADV", "BinaryControl", "BinaryControl_ADV", "AlertModuleSiren", "AlertModuleSiren_ADV", "AlertModuleArmed", "Siren", "Siren_ADV", "SirenArm", "PIR2844_ADV", "PIR2844C_ADV", "PIR2844OnOff_ADV"].includes(node.nodeDefId);
46
45
  }
47
46
  export function create(isy: ISY, nodeInfo: NodeInfo) {
48
47
  return new SirenAlertNode(isy, nodeInfo);
@@ -17,7 +17,7 @@ const nodeDefId = "TempLinc";
17
17
  type Commands = TempLinc.Commands;
18
18
  type Drivers = TempLinc.Drivers;
19
19
 
20
- export class TempLincNode extends Base<Drivers, Commands> implements TempLinc.Interface {
20
+ class TempLincNode extends Base<Drivers, Commands> implements TempLinc.Interface {
21
21
  public override readonly commands = {
22
22
  CLISPH: this.updateHeatSetpoint,
23
23
  CLISPC: this.updateCoolSetpoint,
@@ -31,18 +31,18 @@ export class TempLincNode extends Base<Drivers, Commands> implements TempLinc.In
31
31
  WDU: this.writeChanges
32
32
  };
33
33
  static override nodeDefId = "TempLinc";
34
- static override implements = ["TempLinc", "IRLincTx", "SirenAlert", "SirenArm"];
35
- declare readonly nodeDefId: "TempLinc";
34
+ static override implements = ['TempLinc', "IRLincTx", "SirenAlert", "SirenArm"];
35
+ declare readonly nodeDefId: 'TempLinc';
36
36
  constructor (isy: ISY, nodeInfo: NodeInfo) {
37
37
  super(isy, nodeInfo);
38
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Temperature", name: "temperature" });
39
- this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Heat Setpoint", name: "heatSetpoint" });
40
- this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Cool Setpoint", name: "coolSetpoint" });
41
- this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.InsteonThermostatMode, label: "Mode", name: "mode" });
42
- this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.InsteonThermostatFanMode, label: "Fan Mode", name: "fanMode" });
43
- this.drivers.CLIHUM = Driver.create("CLIHUM", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Humidity", name: "humidity" });
44
- this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.ThermostatHeatCoolState, label: "Heat/Cool State", name: "heatCoolState" });
45
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
38
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Degree, label: "Temperature", name: "temperature" });
39
+ this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.state['CLISPH'], { uom: UnitOfMeasure.Degree, label: "Heat Setpoint", name: "heatSetpoint" });
40
+ this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.state['CLISPC'], { uom: UnitOfMeasure.Degree, label: "Cool Setpoint", name: "coolSetpoint" });
41
+ this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.state['CLIMD'], { uom: UnitOfMeasure.InsteonThermostatMode, label: "Mode", name: "mode" });
42
+ this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.state['CLIFS'], { uom: UnitOfMeasure.InsteonThermostatFanMode, label: "Fan Mode", name: "fanMode" });
43
+ this.drivers.CLIHUM = Driver.create("CLIHUM", this, nodeInfo.state['CLIHUM'], { uom: UnitOfMeasure.Percent, label: "Humidity", name: "humidity" });
44
+ this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.state['CLIHCS'], { uom: UnitOfMeasure.ThermostatHeatCoolState, label: "Heat/Cool State", name: "heatCoolState" });
45
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
46
46
  }
47
47
  async updateHeatSetpoint(value: number) { return this.sendCommand("CLISPH", value); }
48
48
  async updateCoolSetpoint(value: number) { return this.sendCommand("CLISPC", value); }
@@ -84,13 +84,12 @@ NodeFactory.register(TempLincNode);
84
84
 
85
85
  export namespace TempLinc {
86
86
  export interface Interface extends Omit<InstanceType<typeof TempLincNode>, keyof ISYDeviceNode<any, any, any, any>> {
87
- nodeDefId: "TempLinc";
88
87
  }
89
88
  export function is(node: ISYNode<any, any, any, any>): node is TempLincNode {
90
- return ["TempLinc"].includes(node.nodeDefId);
89
+ return ['TempLinc'].includes(node.nodeDefId);
91
90
  }
92
91
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is TempLincNode {
93
- return ["TempLinc", "Thermostat"].includes(node.nodeDefId);
92
+ return ['TempLinc', "Thermostat"].includes(node.nodeDefId);
94
93
  }
95
94
  export function create(isy: ISY, nodeInfo: NodeInfo) {
96
95
  return new TempLincNode(isy, nodeInfo);
@@ -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,
@@ -31,18 +31,18 @@ export class ThermostatNode extends Base<Drivers, Commands> implements Thermosta
31
31
  WDU: this.writeChanges
32
32
  };
33
33
  static override nodeDefId = "Thermostat";
34
- static override implements = ["Thermostat"];
35
- declare readonly nodeDefId: "Thermostat";
34
+ static override implements = ['Thermostat'];
35
+ declare readonly nodeDefId: 'Thermostat';
36
36
  constructor (isy: ISY, nodeInfo: NodeInfo) {
37
37
  super(isy, nodeInfo);
38
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Temperature", name: "temperature" });
39
- this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Heat Setpoint", name: "heatSetpoint" });
40
- this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Degree, label: "Cool Setpoint", name: "coolSetpoint" });
41
- this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.InsteonThermostatMode, label: "Mode", name: "mode" });
42
- this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.InsteonThermostatFanMode, label: "Fan Mode", name: "fanMode" });
43
- this.drivers.CLIHUM = Driver.create("CLIHUM", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Humidity", name: "humidity" });
44
- this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.ThermostatHeatCoolState, label: "Heat/Cool State", name: "heatCoolState" });
45
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
38
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Degree, label: "Temperature", name: "temperature" });
39
+ this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.state['CLISPH'], { uom: UnitOfMeasure.Degree, label: "Heat Setpoint", name: "heatSetpoint" });
40
+ this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.state['CLISPC'], { uom: UnitOfMeasure.Degree, label: "Cool Setpoint", name: "coolSetpoint" });
41
+ this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.state['CLIMD'], { uom: UnitOfMeasure.InsteonThermostatMode, label: "Mode", name: "mode" });
42
+ this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.state['CLIFS'], { uom: UnitOfMeasure.InsteonThermostatFanMode, label: "Fan Mode", name: "fanMode" });
43
+ this.drivers.CLIHUM = Driver.create("CLIHUM", this, nodeInfo.state['CLIHUM'], { uom: UnitOfMeasure.Percent, label: "Humidity", name: "humidity" });
44
+ this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.state['CLIHCS'], { uom: UnitOfMeasure.ThermostatHeatCoolState, label: "Heat/Cool State", name: "heatCoolState" });
45
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
46
46
  }
47
47
  async updateHeatSetpoint(value: number) { return this.sendCommand("CLISPH", value); }
48
48
  async updateCoolSetpoint(value: number) { return this.sendCommand("CLISPC", value); }
@@ -84,13 +84,12 @@ NodeFactory.register(ThermostatNode);
84
84
 
85
85
  export namespace Thermostat {
86
86
  export interface Interface extends Omit<InstanceType<typeof ThermostatNode>, keyof ISYDeviceNode<any, any, any, any>> {
87
- nodeDefId: "Thermostat";
88
87
  }
89
88
  export function is(node: ISYNode<any, any, any, any>): node is ThermostatNode {
90
- return ["Thermostat"].includes(node.nodeDefId);
89
+ return ['Thermostat'].includes(node.nodeDefId);
91
90
  }
92
91
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ThermostatNode {
93
- return ["Thermostat"].includes(node.nodeDefId);
92
+ return ['Thermostat'].includes(node.nodeDefId);
94
93
  }
95
94
  export function create(isy: ISY, nodeInfo: NodeInfo) {
96
95
  return new ThermostatNode(isy, nodeInfo);
@@ -17,7 +17,7 @@ const nodeDefId = "X10";
17
17
  type Commands = X10.Commands;
18
18
  type Drivers = X10.Drivers;
19
19
 
20
- export class X10Node extends Base<Drivers, Commands> implements X10.Interface {
20
+ class X10Node extends Base<Drivers, Commands> implements X10.Interface {
21
21
  public override readonly commands = {
22
22
  DON: this.on,
23
23
  DOF: this.off,
@@ -26,12 +26,12 @@ export class X10Node extends Base<Drivers, Commands> implements X10.Interface {
26
26
  QUERY: this.query
27
27
  };
28
28
  static override nodeDefId = "X10";
29
- static override implements = ["X10"];
30
- declare readonly nodeDefId: "X10";
29
+ static override implements = ['X10'];
30
+ declare readonly nodeDefId: 'X10';
31
31
  constructor (isy: ISY, nodeInfo: NodeInfo) {
32
32
  super(isy, nodeInfo);
33
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
34
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
33
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
34
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
35
35
  }
36
36
  async on() { return this.sendCommand("DON"); }
37
37
  async off() { return this.sendCommand("DOF"); }
@@ -50,13 +50,12 @@ NodeFactory.register(X10Node);
50
50
 
51
51
  export namespace X10 {
52
52
  export interface Interface extends Omit<InstanceType<typeof X10Node>, keyof ISYDeviceNode<any, any, any, any>> {
53
- nodeDefId: "X10";
54
53
  }
55
54
  export function is(node: ISYNode<any, any, any, any>): node is X10Node {
56
- return ["X10"].includes(node.nodeDefId);
55
+ return ['X10'].includes(node.nodeDefId);
57
56
  }
58
57
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is X10Node {
59
- return ["X10"].includes(node.nodeDefId);
58
+ return ['X10'].includes(node.nodeDefId);
60
59
  }
61
60
  export function create(isy: ISY, nodeInfo: NodeInfo) {
62
61
  return new X10Node(isy, nodeInfo);
@@ -14,6 +14,7 @@ import { DeviceDef, type CategoryDef, type FamilyDef } from '../DeviceMap.js';
14
14
  import { writeFileSync } from 'fs';
15
15
  import type { Constructor } from '../Constructor.js';
16
16
  import { Family } from '../../Definitions/index.js';
17
+ import type { ISYDevice } from '../../ISYDevice.js';
17
18
 
18
19
 
19
20
 
@@ -63,17 +64,30 @@ export class InsteonDeviceFactory {
63
64
  // writeFileSync("DeviceMapClean.json", JSON.stringify(fams));
64
65
  // }
65
66
 
66
- static getDeviceDetails(node: NodeInfo): { name: string; modelNumber?: string; version?: string; class?: Constructor<ISYNode<Family.Insteon,any,any>>; unsupported?: true; } {
67
+ static getDeviceDetails(node: NodeInfo): { name: string; modelNumber?: string; version?: string; class?: Constructor<ISYNode<Family.Insteon,any,any>> | Constructor<ISYDevice<Family.Insteon,any,any,any>>; unsupported?: true; } {
67
68
  const family = Number(node.family ?? '1');
68
69
  //let insteonFamilyDef = s[0] as FamilyDef<Family.Insteon>;
69
70
  if ((family ?? Family.Insteon) === Family.Insteon) {
70
- //insteonFamilyDef.categories.forEach(callbackfn)
71
- return this.getInsteonDeviceDetails(node);
71
+ //insteonFamilyDef.categories.forEach(callbackfn))
72
+ let n = this.getInsteonDeviceDetails(node);
73
+ if(n.class)
74
+ {
75
+ if('Node' in n.class)
76
+ {
77
+ return {...n, class: n.class.Node};
78
+ }
79
+ if ('Device' in n.class) {
80
+ return { ...n, class: n.class.Device };
81
+ }
82
+ if (n.class instanceof Function) {
83
+ return n as any;
84
+ }
85
+ }
72
86
 
73
- } else { return { name: "Unsupported Device", class: Insteon.Base, unsupported: true }; }
87
+ } return { name: "Unsupported Device", class: Insteon.Base, unsupported: true };
74
88
  }
75
89
 
76
- public static getInsteonDeviceDetails(node: NodeInfo): { name: string; modelNumber?: string; version?: string; class: Constructor<ISYNode<Family.Insteon,any,any>>; unsupported?: true; } {
90
+ public static getInsteonDeviceDetails(node: NodeInfo): { name: string; modelNumber?: string; version?: string; class: {Node: Constructor<ISYNode<Family.Insteon,any,any>>} | {Device: Constructor<ISYDevice<Family.Insteon,any,any,any>>} | Constructor<ISYNode<Family.Insteon,any,any>>, unsupported?: true; } {
77
91
  const type = parseTypeCode(node.type as any);
78
92
  const subAddress = node.address.split(' ').pop();
79
93
 
@@ -173,7 +187,7 @@ export class InsteonDeviceFactory {
173
187
 
174
188
  public static getSwitchLightInfo(deviceCode: number, subAddress: string): { name: string; modelNumber?: string; version?: string; class?: typeof Insteon.RelayLampSwitch.Node | typeof Insteon.KeypadRelay.Node | typeof Insteon.KeypadButton.Node | typeof Insteon.OnOffOutlet; } {
175
189
  const c = String.fromCharCode(deviceCode);
176
- let retVal = { name: 'Generic Insteon Relay', class: Insteon.RelayLampSwitch.Node } as { name: string; modelNumber?: string; version?: string; class?: typeof Insteon.RelayLampSwitch.Node | typeof Insteon.KeypadRelay.Node | typeof Insteon.KeypadButton.Node | typeof Insteon.OnOffOutlet; };
190
+ let retVal = { name: 'Generic Insteon Relay'} as { name: string; modelNumber?: string; version?: string; class?: typeof Insteon.RelayLampSwitch.Node | typeof Insteon.KeypadRelay.Node | typeof Insteon.KeypadButton.Node | typeof Insteon.OnOffOutlet; };
177
191
  switch (c) {
178
192
  case String.fromCharCode(6):
179
193
  retVal = { name: 'ApplianceLinc - Outdoor Plugin Module', modelNumber: '2456S3E' };
@@ -330,7 +344,7 @@ export class InsteonDeviceFactory {
330
344
 
331
345
  private static getDimLightInfo(deviceCode: number, subAddress: string, node: NodeInfo): { name: string; modelNumber?: string; version?: string; class?: Constructor<ISYNode<Family.Insteon,any,any>>; } {
332
346
  const c = String.fromCharCode(deviceCode);
333
- let retVal = { name: "Generic Insteon Dimmer", class: Insteon.DimmerLamp.Node } as {
347
+ let retVal = { name: "Generic Insteon Dimmer" } as {
334
348
  name: string;
335
349
  modelNumber?: string;
336
350
  version?: string;
@@ -447,7 +461,7 @@ export class InsteonDeviceFactory {
447
461
  break;
448
462
  case '.':
449
463
 
450
- retVal = { name: 'FanLinc', modelNumber: '2475F', class: Insteon.Fan };
464
+ retVal = { name: 'FanLinc', modelNumber: '2475F', class: Insteon.Fan as any};
451
465
  break;
452
466
  case '!':
453
467
  retVal = { name: 'Dual Band OutletLinc Dimmer', modelNumber: '2472D', class: Insteon.DimmerOutlet };
@@ -697,15 +711,15 @@ export class InsteonDeviceFactory {
697
711
  retVal = { name: 'TriggerLinc', modelNumber: '2421', class: Insteon.DoorWindowSensor };
698
712
  break;
699
713
  case '\t':
700
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-222', class: Insteon.DoorWindowSensor };
714
+ retVal = { name: 'Open/Close Sensor', modelNumber: '2843-222', class: Insteon.DoorWindowSensor.Device };
701
715
  break;
702
716
  case String.fromCharCode(6):
703
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-422', class: Insteon.DoorWindowSensor };
717
+ retVal = { name: 'Open/Close Sensor', modelNumber: '2843-422', class: Insteon.DoorWindowSensor.Device };
704
718
  break;
705
719
  case String.fromCharCode(7):
706
720
  break;
707
721
  case String.fromCharCode(25):
708
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-522', class: Insteon.DoorWindowSensor };
722
+ retVal = { name: 'Open/Close Sensor', modelNumber: '2843-522', class: Insteon.DoorWindowSensor.Device };
709
723
  break;
710
724
  case '\b':
711
725
  retVal = { name: 'Leak Sensor', modelNumber: '2852-222', class: Insteon.LeakSensor };
@@ -827,7 +841,7 @@ export class InsteonDeviceFactory {
827
841
 
828
842
  private static getAccessControlInfo(deviceCode: number): { name: string; modelNumber?: string; version?: string; class?: Constructor<ISYNode<any,any,any,any>>; } {
829
843
  const c = String.fromCharCode(deviceCode);
830
- const retVal = { name: '', modelNumber: '', class: Insteon.Lock };
844
+ const retVal = { name: '', modelNumber: '', class: Insteon.DoorLock.Node };
831
845
  switch (c) {
832
846
  case String.fromCharCode(6):
833
847
  retVal.name = 'MorningLinc';
@@ -7,7 +7,8 @@ import type { DimmableLightRequirements } from '@project-chip/matter.js/devices/
7
7
  import { OnOffBehavior as OOB } from '@project-chip/matter.js/behaviors/on-off';
8
8
  import 'winston';
9
9
  import type { NodeInfo } from '../../Model/NodeInfo.js';
10
- import { DimmerLampSwitchNode } from './Generated/DimmerLampSwitch.js';
10
+ import { DimmerLampSwitch } from './Generated/DimmerLampSwitch.js';
11
+
11
12
 
12
13
 
13
14
  // #region Type aliases (2)
@@ -19,13 +20,12 @@ type OnOffBehavior = typeof OOB;
19
20
 
20
21
  // #region Classes (1)
21
22
 
22
- //@ts-ignore
23
- export class InsteonDimmableDevice extends DimmerLampSwitchNode{
23
+ export class InsteonDimmableDevice extends DimmerLampSwitch.Node {
24
24
  // #region Constructors (1)
25
25
 
26
26
  constructor(isy: ISY, node: NodeInfo) {
27
27
  super(isy, node);
28
- this.isDimmable = true;
28
+
29
29
  }
30
30
 
31
31
  // #endregion Constructors (1)
@@ -1,8 +1,9 @@
1
1
  import type { NodeInfo } from '../../Model/NodeInfo.js';
2
2
  import type { ISY } from '../../ISY.js';
3
- import { DimmerLampNode } from './Generated/DimmerLamp.js';
3
+ import { DimmerLamp } from './Generated/DimmerLamp.js';
4
4
 
5
- export class InsteonDimmerOutletDevice extends DimmerLampNode {
5
+
6
+ export class InsteonDimmerOutletDevice extends DimmerLamp.Node{
6
7
  constructor (isy: ISY, deviceNode: NodeInfo) {
7
8
  super(isy, deviceNode);
8
9
  }
@@ -1,18 +1,41 @@
1
1
  import type { NodeInfo } from '../../Model/NodeInfo.js';
2
- import { ISY } from '../../ISY.js';
2
+ import type { ISY } from '../../ISY.js';
3
3
  import { ISYBinaryStateDevice } from '../ISYDevice.js';
4
4
  import { InsteonBaseDevice } from './InsteonBaseDevice.js';
5
5
  import 'winston';
6
+ import { BinaryAlarm } from './Generated/BinaryAlarm.js';
7
+ import { CompositeDevice } from '../CompositeDevice.js';
8
+ import { nodeDefId } from './KeypadButton.js';
9
+ import { OnLevelRelay } from '../../Definitions/Insteon/index.js';
10
+ import { NodeFactory } from '../NodeFactory.js';
11
+ import type { Family } from '../../Definitions/index.js';
6
12
 
7
- export class InsteonDoorWindowSensorDevice extends InsteonBaseDevice {
8
13
 
14
+ const nodes = {
15
+ contactSensor: BinaryAlarm.Node,
16
+ heartbeat: BinaryAlarm.Node,
17
+ lowBattery: BinaryAlarm.Node
18
+ }
19
+ //@ts-ignore
20
+ export class DoorWindowSensorDevice extends CompositeDevice.of(nodes, {contactSensor: 1, heartbeat: 3, lowBattery: 4} )
21
+ {
22
+
23
+ constructor (isy: ISY, ...node: NodeInfo[]) {
24
+ super(isy, ...node);
9
25
 
10
- constructor (isy: ISY, deviceNode: NodeInfo) {
11
- super(isy, deviceNode);
12
26
 
13
27
 
14
28
  }
15
- get isOpen() {
16
- return this.drivers.ST.value === 0;
17
- }
29
+
30
+ }
31
+
32
+ export namespace DoorWindowSensor {
33
+ export class Device extends DoorWindowSensorDevice { }
34
+
35
+ export const ContactSensor = BinaryAlarm;
36
+
37
+ export const Heartbeat = BinaryAlarm;
38
+
39
+ export const LowBattery = BinaryAlarm;
40
+
18
41
  }
@@ -1,30 +1,33 @@
1
1
  import { Family } from '../../Definitions/Global/Families.js';
2
2
  import { ISY } from '../../ISY.js';
3
3
 
4
-
5
4
  import 'winston';
6
5
  import { Command, Driver, UnitOfMeasure } from '../../Definitions/index.js';
7
6
  import type { DriverState } from '../../Model/DriverState.js';
8
7
  import type { NodeInfo, StaticNodeInfo } from '../../Model/NodeInfo.js';
8
+ import { CompositeDevice, CompositeOf } from '../CompositeDevice.js';
9
+ import { DimmerLamp } from './Generated/DimmerLamp.js';
10
+ import { FanLincMotor } from './Generated/FanLincMotor.js';
9
11
  import { InsteonBaseDevice } from './InsteonBaseDevice.js';
10
12
  import { InsteonDimmableDevice } from './InsteonDimmableDevice.js';
11
13
 
12
- export class InsteonFanMotorDevice extends InsteonBaseDevice<Driver.Signatures<'ST'>, Command.Signatures<'DON' | 'DOF'>> {
14
+ export class InsteonFanMotorDevice extends FanLincMotor.Node {
13
15
  constructor(isy: ISY, deviceNode: StaticNodeInfo) {
14
16
  super(isy, deviceNode);
15
- this.drivers.ST = Driver.create('ST', this, deviceNode.property as DriverState, { uom: UnitOfMeasure.Percent, label: 'Fan Speed (%)', name: 'fanSpeed' });
17
+ //*this.drivers. == Driver.create('ST', this, deviceNode.property as DriverState, { uom: UnitOfMeasure.Percent, label: 'Fan Speed (%)', name: 'fanSpeed' });
16
18
  this.hidden = true;
19
+
17
20
  }
18
21
 
19
22
  get isOn() {
20
- return this.drivers.ST.value !== 0;
23
+ return this.status !== 0;
21
24
  }
22
25
  get fanSpeed() {
23
- return this.drivers.ST.value;
26
+ return this.status;
24
27
  }
25
28
 
26
29
  public async updateFanSpeed(level: number) {
27
- return level;
30
+ return this.on(level);
28
31
  }
29
32
  public async updateIsOn(isOn: boolean) {
30
33
  if (!isOn) {
@@ -35,40 +38,22 @@ export class InsteonFanMotorDevice extends InsteonBaseDevice<Driver.Signatures<'
35
38
  }
36
39
  }
37
40
 
38
- export class InsteonFanDevice extends InsteonBaseDevice {
39
- public light?: InsteonDimmableDevice;
40
- public motor: InsteonFanMotorDevice;
41
+ export class FanDevice extends CompositeDevice.of({ light: DimmerLamp.Node, motor: FanLincMotor.Node }, {light: 1, motor: 2}) {
41
42
  constructor(isy: ISY, deviceNode: NodeInfo) {
42
43
  super(isy, deviceNode);
43
- this.light = new InsteonDimmableDevice(isy, deviceNode);
44
+
45
+
44
46
  /*this.light.events.on('PropertyChanged', ((a: any, b: any, c: any, d: string) => { this.emit('PropertyChanged', `light.${a}`, b, c, d); }).bind(this));*/
45
- this.addChild(this.light);
46
47
  }
48
+ }
47
49
 
48
- public override handleEvent(event: { control?: string; data?: any; node?: any }): boolean {
49
- this.logger(JSON.stringify(event));
50
- const child = this.children.find((p) => p.address === event.node);
51
- if (child !== undefined) {
52
- return child.handleEvent(event);
53
- }
54
- return false;
55
- }
56
50
 
57
- public override addChild(childDevice) {
58
- super.addChild(childDevice);
59
- if (childDevice instanceof InsteonFanMotorDevice) {
60
- this.logger('Fan Motor Found');
61
- this.motor = childDevice as InsteonFanMotorDevice;
62
- this.motor.events.on(
63
- 'statusChanged',
64
- ((a: any, b: any, c: any, d: string) => {
65
- this.emit('propertyChanged', `motor.${a}`, b, c, d);
66
- }).bind(this)
67
- );
68
- }
69
- }
51
+ export namespace Fan {
52
+ export class Device extends FanDevice { }
70
53
 
71
- public async updateFanSpeed(level: number) {
72
- return this.motor.updateFanSpeed(level);
73
- }
74
- }
54
+ export const Motor = FanLincMotor;
55
+
56
+ export const Light = DimmerLamp;
57
+
58
+
59
+ }
@@ -1,24 +1,12 @@
1
- import type { NodeInfo } from '../../Model/NodeInfo.js';
1
+ import 'winston';
2
2
  import { ISY } from '../../ISY.js';
3
+ import type { NodeInfo } from '../../Model/NodeInfo.js';
4
+ import { RelayLamp } from './Generated/RelayLamp.js';
3
5
  import { InsteonRelayDevice } from './InsteonRelayDevice.js';
4
- import 'winston';
5
-
6
- export class InsteonOnOffOutletDevice extends InsteonRelayDevice {
7
-
8
- public outlet1: InsteonRelayDevice;
9
- public outlet2: InsteonRelayDevice;
6
+ import { CompositeDevice, CompositeOf } from '../CompositeDevice.js';
10
7
 
8
+ export class OnOffOutlet extends CompositeDevice.of({ top: RelayLamp.Node, bottom: RelayLamp.Node }, {top: 1, bottom: 2}) {
11
9
  constructor(isy: ISY, deviceNode: NodeInfo) {
12
10
  super(isy, deviceNode);
13
- this.outlet1 = new InsteonRelayDevice(isy, deviceNode);
14
- //this.outlet1.on('PropertyChanged',(p,v,f) => this.handlePropertyChange("outlet1."+ p, v, f));
15
- super.addChild(this.outlet1);
16
-
17
- }
18
- public override addChild(childDevice) {
19
- super.addChild(childDevice);
20
- this.outlet2 = childDevice as InsteonRelayDevice;
21
- //this.outlet2.on('PropertyChanged', (p, v, f) => this.//handlePropertyChange("outlet2." + p, v, f));
22
- // if(childDevice)
23
11
  }
24
12
  }
@@ -15,6 +15,7 @@ export class InsteonRelayDevice extends RelayLampSwitch.Node /*InsteonBaseDevice
15
15
  constructor(isy: ISY, nodeInfo: NodeInfo) {
16
16
  super(isy, nodeInfo);
17
17
 
18
+
18
19
  }
19
20
 
20
21
  // #endregion Constructors (1)
@@ -34,9 +35,7 @@ export class InsteonRelayDevice extends RelayLampSwitch.Node /*InsteonBaseDevice
34
35
  }
35
36
 
36
37
  } */
37
- public override async sendBeep(level: number = 100): Promise<any> {
38
- return super.beep(level);
39
- }
38
+
40
39
 
41
40
  // #endregion Public Methods (2)
42
41
  }
@@ -1,31 +1,27 @@
1
-
2
1
  //import Base from "./InsteonBaseDevice.js"
3
2
 
3
+ export { InsteonBaseDevice as Base } from './InsteonBaseDevice.js';
4
4
 
5
-
6
- export {InsteonBaseDevice as Base} from "./InsteonBaseDevice.js";
7
-
8
- export {InsteonOnOffOutletDevice as OnOffOutlet} from "./InsteonOnOffOutletDevice.js";
5
+ export { OnOffOutlet as OnOffOutlet } from './InsteonOnOffOutletDevice.js';
9
6
 
10
7
  export * from './Generated/index.js';
11
8
 
12
- export {InsteonDimmableDevice as Dimmable} from "./InsteonDimmableDevice.js";
9
+ export { InsteonDimmableDevice as Dimmable } from './InsteonDimmableDevice.js';
13
10
 
14
- export {InsteonFanDevice as Fan} from "./InsteonFanDevice.js";
11
+ export { Fan as Fan } from './InsteonFanDevice.js';
15
12
 
16
- export {InsteonLockDevice as Lock} from "./InsteonLockDevice.js";
17
13
 
18
- export {InsteonRelayDevice as Relay} from "./InsteonRelayDevice.js";
14
+ export { InsteonRelayDevice as Relay } from './InsteonRelayDevice.js';
19
15
 
20
- export {InsteonLeakSensorDevice as LeakSensor} from "./InsteonLeakSensorDevice.js";
16
+ export { InsteonLeakSensorDevice as LeakSensor } from './InsteonLeakSensorDevice.js';
21
17
 
22
- export {InsteonMotionSensorDevice as MotionSensor} from "./InsteonMotionSensorDevice.js";
18
+ export { InsteonMotionSensorDevice as MotionSensor } from './InsteonMotionSensorDevice.js';
23
19
 
24
- export {InsteonSmokeSensorDevice as SmokeSensor} from "./InsteonSmokeSensorDevice.js";
20
+ export { InsteonSmokeSensorDevice as SmokeSensor } from './InsteonSmokeSensorDevice.js';
25
21
 
26
- export {InsteonDoorWindowSensorDevice as DoorWindowSensor} from "./InsteonDoorWindowSensorDevice.js";
22
+ export { DoorWindowSensor } from './InsteonDoorWindowSensorDevice.js';
27
23
 
28
- export {InsteonDimmerOutletDevice as DimmerOutlet} from "./InsteonDimmerOutletDevice.js";
24
+ export { InsteonDimmerOutletDevice as DimmerOutlet } from './InsteonDimmerOutletDevice.js';
29
25
 
30
26
  /*export const Insteon = {
31
27
  LeakSensor: InsteonLeakSensorDevice,