isy-nodejs 1.0.2-alpha.3 → 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 +13 -8
  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 +65 -56
  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 +9 -3
  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 +23 -3
  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 +8 -2
  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 +39 -15
  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
@@ -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,20 +12,21 @@ import { Insteon } 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 = "PIR2844";
15
+ const nodeDefId = "PIR2844";
16
16
 
17
17
  type Commands = Pir2844.Commands;
18
18
  type Drivers = Pir2844.Drivers;
19
19
 
20
20
  export class Pir2844Node extends Base<Drivers, Commands> implements Pir2844.Interface {
21
- public readonly commands = {
21
+ public override readonly commands = {
22
22
  CLITEMP: this.calibrateTemperature,
23
23
  QUERY: this.query,
24
24
  BEEP: this.beep,
25
25
  WDU: this.writeChanges
26
26
  };
27
- static nodeDefId = "PIR2844";
28
- declare readonly nodeDefId: "PIR2844";
27
+ static override nodeDefId = "PIR2844";
28
+ static override implements = ["PIR2844"];
29
+ declare readonly nodeDefId: "PIR2844" | "PIR2844_ADV";
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" });
@@ -35,18 +36,10 @@ export class Pir2844Node extends Base<Drivers, Commands> implements Pir2844.Inte
35
36
  this.drivers.GV1 = Driver.create("GV1", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Boolean, label: "Battery Powered", name: "batteryPowered" });
36
37
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
37
38
  }
38
- async calibrateTemperature(value: number) {
39
- return this.sendCommand("CLITEMP", { value: value });
40
- }
41
- async query() {
42
- return this.sendCommand("QUERY");
43
- }
44
- async beep(value?: number) {
45
- return this.sendCommand("BEEP", { value: value });
46
- }
47
- async writeChanges() {
48
- return this.sendCommand("WDU");
49
- }
39
+ async calibrateTemperature(value: number) { return this.sendCommand("CLITEMP", { value: value }); }
40
+ async query() { return this.sendCommand("QUERY"); }
41
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
42
+ async writeChanges() { return this.sendCommand("WDU"); }
50
43
  public get status(): Insteon.OnLevelRelay {
51
44
  return this.drivers.ST?.value;
52
45
  }
@@ -68,13 +61,15 @@ export class Pir2844Node extends Base<Drivers, Commands> implements Pir2844.Inte
68
61
  }
69
62
 
70
63
  NodeFactory.register(Pir2844Node);
64
+ NodeFactory.register(Pir2844Node, "PIR2844_ADV");
71
65
 
72
66
  export namespace Pir2844 {
73
67
  export interface Interface extends Omit<InstanceType<typeof Pir2844Node>, keyof ISYDeviceNode<any, any, any, any>> {
74
- nodeDefId: "PIR2844";
68
+ nodeDefId: "PIR2844" | "PIR2844_ADV";
75
69
  }
76
- export function is(node: ISYNode<any, any, any, any>): node is Pir2844Node {
77
- return node.nodeDefId === nodeDefId;
70
+ export function is(node: ISYNode<any, any, any, any>): node is Pir2844Node { return ["PIR2844", "PIR2844_ADV"].includes(node.nodeDefId); }
71
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is Pir2844Node {
72
+ return ["PIR2844", "PIR2844_ADV"].includes(node.nodeDefId);
78
73
  }
79
74
  export function create(isy: ISY, nodeInfo: NodeInfo) {
80
75
  return new Pir2844Node(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,41 +12,32 @@ import { Insteon } 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 = "PIR2844OnOff";
15
+ const nodeDefId = "PIR2844OnOff";
16
16
 
17
17
  type Commands = Pir2844OnOff.Commands;
18
18
  type Drivers = Pir2844OnOff.Drivers;
19
19
 
20
20
  export class Pir2844OnOffNode extends Base<Drivers, Commands> implements Pir2844OnOff.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
  BEEP: this.beep,
26
26
  WDU: this.writeChanges
27
27
  };
28
- static nodeDefId = "PIR2844OnOff";
29
- declare readonly nodeDefId: "PIR2844OnOff";
28
+ static override nodeDefId = "PIR2844OnOff";
29
+ static override implements = ["PIR2844OnOff"];
30
+ declare readonly nodeDefId: "PIR2844OnOff" | "PIR2844OnOff_ADV";
30
31
  constructor (isy: ISY, nodeInfo: NodeInfo) {
31
32
  super(isy, nodeInfo);
32
33
  this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
33
34
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
34
35
  }
35
- async on(value?: (0 | 100)) {
36
- return this.sendCommand("DON", { value: value });
37
- }
38
- async off() {
39
- return this.sendCommand("DOF");
40
- }
41
- async query() {
42
- return this.sendCommand("QUERY");
43
- }
44
- async beep(value?: number) {
45
- return this.sendCommand("BEEP", { value: value });
46
- }
47
- async writeChanges() {
48
- return this.sendCommand("WDU");
49
- }
36
+ async on(value?: (0 | 100)) { return this.sendCommand("DON", { value: value }); }
37
+ async off() { return this.sendCommand("DOF"); }
38
+ async query() { return this.sendCommand("QUERY"); }
39
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
40
+ async writeChanges() { return this.sendCommand("WDU"); }
50
41
  public get status(): Insteon.OnLevelRelay {
51
42
  return this.drivers.ST?.value;
52
43
  }
@@ -56,13 +47,15 @@ export class Pir2844OnOffNode extends Base<Drivers, Commands> implements Pir2844
56
47
  }
57
48
 
58
49
  NodeFactory.register(Pir2844OnOffNode);
50
+ NodeFactory.register(Pir2844OnOffNode, "PIR2844OnOff_ADV");
59
51
 
60
52
  export namespace Pir2844OnOff {
61
53
  export interface Interface extends Omit<InstanceType<typeof Pir2844OnOffNode>, keyof ISYDeviceNode<any, any, any, any>> {
62
- nodeDefId: "PIR2844OnOff";
54
+ nodeDefId: "PIR2844OnOff" | "PIR2844OnOff_ADV";
63
55
  }
64
- export function is(node: ISYNode<any, any, any, any>): node is Pir2844OnOffNode {
65
- return node.nodeDefId === nodeDefId;
56
+ export function is(node: ISYNode<any, any, any, any>): node is Pir2844OnOffNode { return ["PIR2844OnOff", "PIR2844OnOff_ADV"].includes(node.nodeDefId); }
57
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is Pir2844OnOffNode {
58
+ return ["PIR2844OnOff", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "KeypadRelay", "KeypadRelay_ADV", "PIR2844OnOff_ADV"].includes(node.nodeDefId);
66
59
  }
67
60
  export function create(isy: ISY, nodeInfo: NodeInfo) {
68
61
  return new Pir2844OnOffNode(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,20 +12,21 @@ import { Insteon } 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 = "PIR2844C";
15
+ const nodeDefId = "PIR2844C";
16
16
 
17
17
  type Commands = Pir2844c.Commands;
18
18
  type Drivers = Pir2844c.Drivers;
19
19
 
20
20
  export class Pir2844cNode extends Base<Drivers, Commands> implements Pir2844c.Interface {
21
- public readonly commands = {
21
+ public override readonly commands = {
22
22
  CLITEMP: this.calibrateTemperature,
23
23
  QUERY: this.query,
24
24
  BEEP: this.beep,
25
25
  WDU: this.writeChanges
26
26
  };
27
- static nodeDefId = "PIR2844C";
28
- declare readonly nodeDefId: "PIR2844C";
27
+ static override nodeDefId = "PIR2844C";
28
+ static override implements = ["PIR2844C"];
29
+ declare readonly nodeDefId: "PIR2844C" | "PIR2844C_ADV";
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" });
@@ -35,18 +36,10 @@ export class Pir2844cNode extends Base<Drivers, Commands> implements Pir2844c.In
35
36
  this.drivers.GV1 = Driver.create("GV1", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Boolean, label: "Battery Powered", name: "batteryPowered" });
36
37
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
37
38
  }
38
- async calibrateTemperature(value: number) {
39
- return this.sendCommand("CLITEMP", { value: value });
40
- }
41
- async query() {
42
- return this.sendCommand("QUERY");
43
- }
44
- async beep(value?: number) {
45
- return this.sendCommand("BEEP", { value: value });
46
- }
47
- async writeChanges() {
48
- return this.sendCommand("WDU");
49
- }
39
+ async calibrateTemperature(value: number) { return this.sendCommand("CLITEMP", { value: value }); }
40
+ async query() { return this.sendCommand("QUERY"); }
41
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
42
+ async writeChanges() { return this.sendCommand("WDU"); }
50
43
  public get status(): Insteon.OnLevelRelay {
51
44
  return this.drivers.ST?.value;
52
45
  }
@@ -68,13 +61,15 @@ export class Pir2844cNode extends Base<Drivers, Commands> implements Pir2844c.In
68
61
  }
69
62
 
70
63
  NodeFactory.register(Pir2844cNode);
64
+ NodeFactory.register(Pir2844cNode, "PIR2844C_ADV");
71
65
 
72
66
  export namespace Pir2844c {
73
67
  export interface Interface extends Omit<InstanceType<typeof Pir2844cNode>, keyof ISYDeviceNode<any, any, any, any>> {
74
- nodeDefId: "PIR2844C";
68
+ nodeDefId: "PIR2844C" | "PIR2844C_ADV";
75
69
  }
76
- export function is(node: ISYNode<any, any, any, any>): node is Pir2844cNode {
77
- return node.nodeDefId === nodeDefId;
70
+ export function is(node: ISYNode<any, any, any, any>): node is Pir2844cNode { return ["PIR2844C", "PIR2844C_ADV"].includes(node.nodeDefId); }
71
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is Pir2844cNode {
72
+ return ["PIR2844C", "PIR2844C_ADV"].includes(node.nodeDefId);
78
73
  }
79
74
  export function create(isy: ISY, nodeInfo: NodeInfo) {
80
75
  return new Pir2844cNode(isy, nodeInfo);
@@ -1,9 +1,9 @@
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";
@@ -11,14 +11,14 @@ import { Driver } from "../../../Definitions/Global/Drivers.js";
11
11
  import { Insteon } 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 = "RelayLampOnly";
16
-
14
+
15
+ const nodeDefId = "RelayLampOnly";
16
+
17
17
  type Commands = RelayLamp.Commands;
18
18
  type Drivers = RelayLamp.Drivers;
19
-
19
+
20
20
  export class RelayLampNode extends Base<Drivers, Commands> implements RelayLamp.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,
@@ -27,51 +27,39 @@ export class RelayLampNode extends Base<Drivers, Commands> implements RelayLamp.
27
27
  BEEP: this.beep,
28
28
  WDU: this.writeChanges
29
29
  };
30
- static nodeDefId = "RelayLampOnly";
31
- declare readonly nodeDefId: "RelayLampOnly";
30
+ static override nodeDefId = "RelayLampOnly";
31
+ static override implements = ["RelayLampOnly", "IRLincTx", "EZRAIN_Output", "EZIO2x4_Output", "AlertModuleArmed", "SirenAlert", "SirenArm"];
32
+ declare readonly nodeDefId: "RelayLampOnly" | "RelayLampOnly_ADV";
32
33
  constructor (isy: ISY, nodeInfo: NodeInfo) {
33
34
  super(isy, nodeInfo);
34
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
35
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Boolean, label: "Status", name: "status" });
35
36
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
36
-
37
37
  }
38
- async on(value?: (0 | 100)) {
39
- return this.sendCommand("DON", { value: value });
40
- }
41
- async off() {
42
- return this.sendCommand("DOF");
43
- }
44
- async fastOff() {
45
- return this.sendCommand("DFOF");
46
- }
47
- async fastOn() {
48
- return this.sendCommand("DFON");
49
- }
50
- async query() {
51
- return this.sendCommand("QUERY");
52
- }
53
- async beep(value?: number) {
54
- return this.sendCommand("BEEP", { value: value });
55
- }
56
- async writeChanges() {
57
- return this.sendCommand("WDU");
58
- }
59
- public get status(): Insteon.OnLevelRelay {
38
+ async on(value?: (0 | 100)) { return this.sendCommand("DON", { value: value }); }
39
+ async off() { return this.sendCommand("DOF"); }
40
+ async fastOff() { return this.sendCommand("DFOF"); }
41
+ async fastOn() { return this.sendCommand("DFON"); }
42
+ async query() { return this.sendCommand("QUERY"); }
43
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
44
+ async writeChanges() { return this.sendCommand("WDU"); }
45
+ public get status(): Insteon.OnLevelRelay | Insteon.OnLevelRelay {
60
46
  return this.drivers.ST?.value;
61
47
  }
62
48
  public get responding(): Insteon.Error {
63
49
  return this.drivers.ERR?.value;
64
50
  }
65
51
  }
66
-
52
+
67
53
  NodeFactory.register(RelayLampNode);
68
-
54
+ NodeFactory.register(RelayLampNode, "RelayLampOnly_ADV");
55
+
69
56
  export namespace RelayLamp {
70
57
  export interface Interface extends Omit<InstanceType<typeof RelayLampNode>, keyof ISYDeviceNode<any, any, any, any>> {
71
- nodeDefId: "RelayLampOnly";
58
+ nodeDefId: "RelayLampOnly" | "RelayLampOnly_ADV";
72
59
  }
73
- export function is(node: ISYNode<any, any, any, any>): node is RelayLampNode {
74
- return node.nodeDefId === nodeDefId;
60
+ export function is(node: ISYNode<any, any, any, any>): node is RelayLampNode { return ["RelayLampOnly", "RelayLampOnly_ADV"].includes(node.nodeDefId); }
61
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelayLampNode {
62
+ return ["RelayLampOnly", "BallastRelayLampSwitch", "BallastRelayLampSwitch_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "RelayLampOnly_ADV"].includes(node.nodeDefId);
75
63
  }
76
64
  export function create(isy: ISY, nodeInfo: NodeInfo) {
77
65
  return new RelayLampNode(isy, nodeInfo);
@@ -109,8 +97,8 @@ export namespace RelayLamp {
109
97
  };
110
98
  export type Drivers = {
111
99
  ST: {
112
- uom: UnitOfMeasure.Percent;
113
- value: Insteon.OnLevelRelay;
100
+ uom: UnitOfMeasure.Boolean | UnitOfMeasure.Percent;
101
+ value: Insteon.OnLevelRelay | Insteon.OnLevelRelay;
114
102
  label: "Status";
115
103
  name: "status";
116
104
  };
@@ -1,9 +1,9 @@
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";
@@ -11,12 +11,12 @@ import { Driver } from "../../../Definitions/Global/Drivers.js";
11
11
  import { Insteon } 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 = "RelayLampSwitch";
16
-
14
+
15
+ const nodeDefId = "RelayLampSwitch";
16
+
17
17
  type Commands = RelayLampSwitch.Commands;
18
18
  type Drivers = RelayLampSwitch.Drivers;
19
-
19
+
20
20
  export class RelayLampSwitchNode extends Base<Drivers, Commands> implements RelayLampSwitch.Interface {
21
21
  public override readonly commands = {
22
22
  DON: this.on,
@@ -28,53 +28,40 @@ export class RelayLampSwitchNode extends Base<Drivers, Commands> implements Rela
28
28
  BL: this.backlight,
29
29
  WDU: this.writeChanges
30
30
  };
31
- static override nodeDefId = "RelayLampSwitch";
32
- declare readonly nodeDefId: "RelayLampSwitch";
31
+ static override nodeDefId = "RelayLampSwitch";
32
+ static override implements = ["RelayLampSwitch", "RelaySwitchOnlyPlusQuery", "RelaySwitchOnlyPlusQuery_ADV", "RelaySwitchOnly", "RelaySwitchOnly_ADV", "RelayLampOnly", "RelayLampOnly_ADV", "IRLincTx", "EZRAIN_Output", "EZIO2x4_Output", "EZIO2x4_Input", "EZIO2x4_Input_ADV", "DoorLock", "BinaryAlarm", "BinaryAlarm_ADV", "BinaryControl", "BinaryControl_ADV", "AlertModuleArmed", "SirenAlert", "SirenArm", "PIR2844OnOff", "PIR2844OnOff_ADV"];
33
+ declare readonly nodeDefId: "RelayLampSwitch" | "RelayLampSwitch_ADV";
33
34
  constructor (isy: ISY, nodeInfo: NodeInfo) {
34
35
  super(isy, nodeInfo);
35
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
36
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Boolean, label: "Status", name: "status" });
36
37
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
37
38
  }
38
- async on(value?: (0 | 100)) {
39
- return this.sendCommand("DON", { value: value });
40
- }
41
- async off() {
42
- return this.sendCommand("DOF");
43
- }
44
- async fastOff() {
45
- return this.sendCommand("DFOF");
46
- }
47
- async fastOn() {
48
- return this.sendCommand("DFON");
49
- }
50
- async query() {
51
- return this.sendCommand("QUERY");
52
- }
53
- async beep(value?: number) {
54
- return this.sendCommand("BEEP", { value: value });
55
- }
56
- async backlight(value: number) {
57
- return this.sendCommand("BL", { value: value });
58
- }
59
- async writeChanges() {
60
- return this.sendCommand("WDU");
61
- }
62
- public get status(): Insteon.OnLevelRelay {
39
+ async on(value?: (0 | 100)) { return this.sendCommand("DON", { value: value }); }
40
+ async off() { return this.sendCommand("DOF"); }
41
+ async fastOff() { return this.sendCommand("DFOF"); }
42
+ async fastOn() { return this.sendCommand("DFON"); }
43
+ async query() { return this.sendCommand("QUERY"); }
44
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
45
+ async backlight(value: number) { return this.sendCommand("BL", { value: value }); }
46
+ async writeChanges() { return this.sendCommand("WDU"); }
47
+ public get status(): Insteon.OnLevelRelay | Insteon.OnLevelRelay {
63
48
  return this.drivers.ST?.value;
64
49
  }
65
50
  public get responding(): Insteon.Error {
66
51
  return this.drivers.ERR?.value;
67
52
  }
68
53
  }
69
-
54
+
70
55
  NodeFactory.register(RelayLampSwitchNode);
71
-
56
+ NodeFactory.register(RelayLampSwitchNode, "RelayLampSwitch_ADV");
57
+
72
58
  export namespace RelayLampSwitch {
73
59
  export interface Interface extends Omit<InstanceType<typeof RelayLampSwitchNode>, keyof ISYDeviceNode<any, any, any, any>> {
74
- nodeDefId: "RelayLampSwitch";
60
+ nodeDefId: "RelayLampSwitch" | "RelayLampSwitch_ADV";
75
61
  }
76
- export function is(node: ISYNode<any, any, any, any>): node is RelayLampSwitchNode {
77
- return node.nodeDefId === nodeDefId;
62
+ export function is(node: ISYNode<any, any, any, any>): node is RelayLampSwitchNode { return ["RelayLampSwitch", "RelayLampSwitch_ADV"].includes(node.nodeDefId); }
63
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelayLampSwitchNode {
64
+ return ["RelayLampSwitch", "RelayLampSwitch_ADV"].includes(node.nodeDefId);
78
65
  }
79
66
  export function create(isy: ISY, nodeInfo: NodeInfo) {
80
67
  return new RelayLampSwitchNode(isy, nodeInfo);
@@ -116,8 +103,8 @@ export namespace RelayLampSwitch {
116
103
  };
117
104
  export type Drivers = {
118
105
  ST: {
119
- uom: UnitOfMeasure.Percent;
120
- value: Insteon.OnLevelRelay;
106
+ uom: UnitOfMeasure.Boolean | UnitOfMeasure.Percent;
107
+ value: Insteon.OnLevelRelay | Insteon.OnLevelRelay;
121
108
  label: "Status";
122
109
  name: "status";
123
110
  };
@@ -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,13 +12,13 @@ import { Insteon } 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 = "RelayLampSwitchLED";
15
+ const nodeDefId = "RelayLampSwitchLED";
16
16
 
17
17
  type Commands = RelayLampSwitchLed.Commands;
18
18
  type Drivers = RelayLampSwitchLed.Drivers;
19
19
 
20
20
  export class RelayLampSwitchLedNode extends Base<Drivers, Commands> implements RelayLampSwitchLed.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,
@@ -29,41 +29,24 @@ export class RelayLampSwitchLedNode extends Base<Drivers, Commands> implements R
29
29
  BL: this.backlight,
30
30
  WDU: this.writeChanges
31
31
  };
32
- static nodeDefId = "RelayLampSwitchLED";
33
- declare readonly nodeDefId: "RelayLampSwitchLED";
32
+ static override nodeDefId = "RelayLampSwitchLED";
33
+ static override implements = ["RelayLampSwitchLED", "RelaySwitchOnlyPlusQuery", "RelaySwitchOnlyPlusQuery_ADV", "RelaySwitchOnly", "RelaySwitchOnly_ADV", "RelayLampOnly", "RelayLampOnly_ADV", "IRLincTx", "EZRAIN_Output", "EZIO2x4_Output", "EZIO2x4_Input", "EZIO2x4_Input_ADV", "DoorLock", "BinaryAlarm", "BinaryAlarm_ADV", "BinaryControl", "BinaryControl_ADV", "AlertModuleArmed", "SirenAlert", "SirenArm", "PIR2844OnOff", "PIR2844OnOff_ADV"];
34
+ declare readonly nodeDefId: "RelayLampSwitchLED" | "RelayLampSwitchLED_ADV";
34
35
  constructor (isy: ISY, nodeInfo: NodeInfo) {
35
36
  super(isy, nodeInfo);
36
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
37
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Boolean, label: "Status", name: "status" });
37
38
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
38
39
  }
39
- async on(value?: (0 | 100)) {
40
- return this.sendCommand("DON", { value: value });
41
- }
42
- async off() {
43
- return this.sendCommand("DOF");
44
- }
45
- async fastOff() {
46
- return this.sendCommand("DFOF");
47
- }
48
- async fastOn() {
49
- return this.sendCommand("DFON");
50
- }
51
- async query() {
52
- return this.sendCommand("QUERY");
53
- }
54
- async beep(value?: number) {
55
- return this.sendCommand("BEEP", { value: value });
56
- }
57
- async led(value: number) {
58
- return this.sendCommand("LED", { value: value });
59
- }
60
- async backlight(value: number) {
61
- return this.sendCommand("BL", { value: value });
62
- }
63
- async writeChanges() {
64
- return this.sendCommand("WDU");
65
- }
66
- public get status(): Insteon.OnLevelRelay {
40
+ async on(value?: (0 | 100)) { return this.sendCommand("DON", { value: value }); }
41
+ async off() { return this.sendCommand("DOF"); }
42
+ async fastOff() { return this.sendCommand("DFOF"); }
43
+ async fastOn() { return this.sendCommand("DFON"); }
44
+ async query() { return this.sendCommand("QUERY"); }
45
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
46
+ async led(value: number) { return this.sendCommand("LED", { value: value }); }
47
+ async backlight(value: number) { return this.sendCommand("BL", { value: value }); }
48
+ async writeChanges() { return this.sendCommand("WDU"); }
49
+ public get status(): Insteon.OnLevelRelay | Insteon.OnLevelRelay {
67
50
  return this.drivers.ST?.value;
68
51
  }
69
52
  public get responding(): Insteon.Error {
@@ -72,13 +55,15 @@ export class RelayLampSwitchLedNode extends Base<Drivers, Commands> implements R
72
55
  }
73
56
 
74
57
  NodeFactory.register(RelayLampSwitchLedNode);
58
+ NodeFactory.register(RelayLampSwitchLedNode, "RelayLampSwitchLED_ADV");
75
59
 
76
60
  export namespace RelayLampSwitchLed {
77
61
  export interface Interface extends Omit<InstanceType<typeof RelayLampSwitchLedNode>, keyof ISYDeviceNode<any, any, any, any>> {
78
- nodeDefId: "RelayLampSwitchLED";
62
+ nodeDefId: "RelayLampSwitchLED" | "RelayLampSwitchLED_ADV";
79
63
  }
80
- export function is(node: ISYNode<any, any, any, any>): node is RelayLampSwitchLedNode {
81
- return node.nodeDefId === nodeDefId;
64
+ export function is(node: ISYNode<any, any, any, any>): node is RelayLampSwitchLedNode { return ["RelayLampSwitchLED", "RelayLampSwitchLED_ADV"].includes(node.nodeDefId); }
65
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelayLampSwitchLedNode {
66
+ return ["RelayLampSwitchLED", "RelayLampSwitchLED_ADV"].includes(node.nodeDefId);
82
67
  }
83
68
  export function create(isy: ISY, nodeInfo: NodeInfo) {
84
69
  return new RelayLampSwitchLedNode(isy, nodeInfo);
@@ -124,8 +109,8 @@ export namespace RelayLampSwitchLed {
124
109
  };
125
110
  export type Drivers = {
126
111
  ST: {
127
- uom: UnitOfMeasure.Percent;
128
- value: Insteon.OnLevelRelay;
112
+ uom: UnitOfMeasure.Boolean | UnitOfMeasure.Percent;
113
+ value: Insteon.OnLevelRelay | Insteon.OnLevelRelay;
129
114
  label: "Status";
130
115
  name: "status";
131
116
  };
@@ -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,45 +12,42 @@ import { Insteon } 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 = "RelaySwitchOnly";
15
+ const nodeDefId = "RelaySwitchOnly";
16
16
 
17
17
  type Commands = RelaySwitch.Commands;
18
18
  type Drivers = RelaySwitch.Drivers;
19
19
 
20
20
  export class RelaySwitchNode extends Base<Drivers, Commands> implements RelaySwitch.Interface {
21
- public readonly commands = {
21
+ public override readonly commands = {
22
22
  BEEP: this.beep,
23
23
  BL: this.backlight,
24
24
  WDU: this.writeChanges
25
25
  };
26
- static nodeDefId = "RelaySwitchOnly";
27
- declare readonly nodeDefId: "RelaySwitchOnly";
26
+ static override nodeDefId = "RelaySwitchOnly";
27
+ static override implements = ["RelaySwitchOnly", "IRLincTx", "SirenAlert", "SirenArm"];
28
+ declare readonly nodeDefId: "RelaySwitchOnly" | "RelaySwitchOnly_ADV";
28
29
  constructor (isy: ISY, nodeInfo: NodeInfo) {
29
30
  super(isy, nodeInfo);
30
31
  this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
31
32
  }
32
- async beep(value?: number) {
33
- return this.sendCommand("BEEP", { value: value });
34
- }
35
- async backlight(value: number) {
36
- return this.sendCommand("BL", { value: value });
37
- }
38
- async writeChanges() {
39
- return this.sendCommand("WDU");
40
- }
33
+ async beep(value?: number) { return this.sendCommand("BEEP", { value: value }); }
34
+ async backlight(value: number) { return this.sendCommand("BL", { value: value }); }
35
+ async writeChanges() { return this.sendCommand("WDU"); }
41
36
  public get responding(): Insteon.Error {
42
37
  return this.drivers.ERR?.value;
43
38
  }
44
39
  }
45
40
 
46
41
  NodeFactory.register(RelaySwitchNode);
42
+ NodeFactory.register(RelaySwitchNode, "RelaySwitchOnly_ADV");
47
43
 
48
44
  export namespace RelaySwitch {
49
45
  export interface Interface extends Omit<InstanceType<typeof RelaySwitchNode>, keyof ISYDeviceNode<any, any, any, any>> {
50
- nodeDefId: "RelaySwitchOnly";
46
+ nodeDefId: "RelaySwitchOnly" | "RelaySwitchOnly_ADV";
51
47
  }
52
- export function is(node: ISYNode<any, any, any, any>): node is RelaySwitchNode {
53
- return node.nodeDefId === nodeDefId;
48
+ export function is(node: ISYNode<any, any, any, any>): node is RelaySwitchNode { return ["RelaySwitchOnly", "RelaySwitchOnly_ADV"].includes(node.nodeDefId); }
49
+ export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelaySwitchNode {
50
+ return ["RelaySwitchOnly", "DimmerMotorSwitch", "DimmerMotorSwitch_ADV", "DimmerLampSwitch", "DimmerLampSwitch_ADV", "DimmerLampSwitchLED", "DimmerLampSwitchLED_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "RelaySwitchOnlyPlusQuery", "RelaySwitchOnlyPlusQuery_ADV", "RelaySwitchOnly_ADV"].includes(node.nodeDefId);
54
51
  }
55
52
  export function create(isy: ISY, nodeInfo: NodeInfo) {
56
53
  return new RelaySwitchNode(isy, nodeInfo);