isy-nodejs 1.0.7-alpha.0 → 1.0.9-alpha.1

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 (456) 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 +15 -34
  110. package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
  111. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +14 -13
  112. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +1 -1
  113. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -16
  114. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
  115. package/dist/esm/Devices/Insteon/index.js +10 -11
  116. package/dist/esm/Devices/Insteon/index.js.map +1 -1
  117. package/dist/esm/Devices/Lutron/Generated/LoadShed.js +6 -6
  118. package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -1
  119. package/dist/esm/Devices/NodeFactory.js.map +1 -1
  120. package/dist/esm/Devices/UDI/Generated/Channel.js +7 -7
  121. package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -1
  122. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +10 -10
  123. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -1
  124. package/dist/esm/Devices/UDI/Generated/Main.js +7 -7
  125. package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -1
  126. package/dist/esm/Devices/UDI/Generated/PulseCounter.js +8 -8
  127. package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -1
  128. package/dist/esm/Devices/UDI/Generated/Relay.js +6 -6
  129. package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -1
  130. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +6 -6
  131. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -1
  132. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +9 -9
  133. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -1
  134. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +6 -6
  135. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -1
  136. package/dist/esm/Devices/ZigBee/ZWaveBaseDevice.js +9 -0
  137. package/dist/esm/Devices/ZigBee/ZWaveBaseDevice.js.map +1 -0
  138. package/dist/esm/Devices/ZigBee/ZigBeeBase.js +9 -0
  139. package/dist/esm/Devices/ZigBee/ZigBeeBase.js.map +1 -0
  140. package/dist/esm/Devices/ZigBee/index.js +3 -0
  141. package/dist/esm/Devices/ZigBee/index.js.map +1 -0
  142. package/dist/esm/ISY.js +19 -3
  143. package/dist/esm/ISY.js.map +1 -1
  144. package/dist/esm/ISYNode.js.map +1 -1
  145. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +37 -5
  146. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -1
  147. package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js +1 -1
  148. package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
  149. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +6 -1
  150. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
  151. package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js +24 -0
  152. package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js.map +1 -0
  153. package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js +23 -0
  154. package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js.map +1 -0
  155. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +4 -4
  156. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
  157. package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js +23 -0
  158. package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js.map +1 -0
  159. package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js +24 -0
  160. package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js.map +1 -0
  161. package/dist/esm/Matter/Behaviors/Insteon/index.js +4 -0
  162. package/dist/esm/Matter/Behaviors/Insteon/index.js.map +1 -0
  163. package/dist/esm/Matter/Behaviors/index.js +6 -0
  164. package/dist/esm/Matter/Behaviors/index.js.map +1 -0
  165. package/dist/esm/Matter/Bridge/Server.js +23 -11
  166. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  167. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  168. package/dist/esm/Matter/Mappings/MappingRegistry.js +5 -4
  169. package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -1
  170. package/dist/esm/Matter/Mappings/index.js +1 -0
  171. package/dist/esm/Matter/Mappings/index.js.map +1 -1
  172. package/dist/esm/Registry.js +77 -0
  173. package/dist/esm/Registry.js.map +1 -0
  174. package/dist/esm/Utils.js +12 -0
  175. package/dist/esm/Utils.js.map +1 -1
  176. package/dist/esm/types/CodeGeneration/CodeFactory.d.ts +6 -5
  177. package/dist/esm/types/CodeGeneration/CodeFactory.d.ts.map +1 -1
  178. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  179. package/dist/esm/types/Definitions/Global/Commands.d.ts +4 -4
  180. package/dist/esm/types/Definitions/Global/Commands.d.ts.map +1 -1
  181. package/dist/esm/types/Definitions/Global/Drivers.d.ts +10 -8
  182. package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
  183. package/dist/esm/types/Definitions/Global/Events.d.ts +3 -3
  184. package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
  185. package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts +4 -0
  186. package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts.map +1 -1
  187. package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts +4 -0
  188. package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts.map +1 -1
  189. package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts +6 -0
  190. package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts.map +1 -1
  191. package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts +4 -0
  192. package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts.map +1 -1
  193. package/dist/esm/types/Devices/CompositeDevice.d.ts +64 -0
  194. package/dist/esm/types/Devices/CompositeDevice.d.ts.map +1 -0
  195. package/dist/esm/types/Devices/EndpointFor.d.ts +3 -2
  196. package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
  197. package/dist/esm/types/Devices/ISYDeviceNode.d.ts +4 -1
  198. package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
  199. package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts +25 -1
  200. package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts.map +1 -1
  201. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +2 -3
  202. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -1
  203. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +2 -3
  204. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -1
  205. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +2 -3
  206. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -1
  207. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +2 -3
  208. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -1
  209. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +2 -3
  210. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -1
  211. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +2 -3
  212. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -1
  213. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +2 -3
  214. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -1
  215. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +2 -3
  216. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -1
  217. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +2 -3
  218. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -1
  219. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +2 -3
  220. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -1
  221. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +2 -3
  222. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -1
  223. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +2 -3
  224. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -1
  225. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +2 -3
  226. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -1
  227. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +2 -3
  228. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -1
  229. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +2 -3
  230. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -1
  231. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +2 -3
  232. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -1
  233. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +2 -3
  234. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -1
  235. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +2 -3
  236. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -1
  237. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +2 -3
  238. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -1
  239. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +2 -3
  240. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -1
  241. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +2 -3
  242. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -1
  243. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +2 -3
  244. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -1
  245. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +2 -3
  246. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -1
  247. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +2 -3
  248. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -1
  249. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +2 -3
  250. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -1
  251. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +2 -3
  252. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -1
  253. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +2 -3
  254. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -1
  255. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +2 -3
  256. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -1
  257. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +2 -3
  258. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -1
  259. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +2 -3
  260. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -1
  261. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +2 -3
  262. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -1
  263. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +2 -3
  264. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -1
  265. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +2 -3
  266. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -1
  267. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +2 -3
  268. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -1
  269. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +2 -3
  270. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -1
  271. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +2 -3
  272. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -1
  273. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +2 -3
  274. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -1
  275. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +2 -3
  276. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -1
  277. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +8 -6
  278. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
  279. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts +7 -2
  280. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts.map +1 -1
  281. package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts +2 -2
  282. package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts.map +1 -1
  283. package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts +2 -2
  284. package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts.map +1 -1
  285. package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts +17 -5
  286. package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts.map +1 -1
  287. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +17 -16
  288. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
  289. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
  290. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
  291. package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts +14 -7
  292. package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts.map +1 -1
  293. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts +0 -1
  294. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
  295. package/dist/esm/types/Devices/Insteon/index.d.ts +10 -11
  296. package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
  297. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +2 -3
  298. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -1
  299. package/dist/esm/types/Devices/NodeFactory.d.ts +1 -1
  300. package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
  301. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +2 -3
  302. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -1
  303. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +2 -3
  304. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -1
  305. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +2 -3
  306. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -1
  307. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +2 -3
  308. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -1
  309. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +2 -3
  310. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -1
  311. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +2 -3
  312. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -1
  313. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +2 -3
  314. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -1
  315. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +2 -3
  316. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -1
  317. package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts +10 -0
  318. package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts.map +1 -0
  319. package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts +10 -0
  320. package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts.map +1 -0
  321. package/dist/esm/types/Devices/ZigBee/index.d.ts +2 -0
  322. package/dist/esm/types/Devices/ZigBee/index.d.ts.map +1 -0
  323. package/dist/esm/types/ISY.d.ts.map +1 -1
  324. package/dist/esm/types/ISYDevice.d.ts +3 -5
  325. package/dist/esm/types/ISYDevice.d.ts.map +1 -1
  326. package/dist/esm/types/ISYNode.d.ts +32 -25
  327. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  328. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +9 -5
  329. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -1
  330. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +8 -5
  331. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
  332. package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts +321 -0
  333. package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts.map +1 -0
  334. package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts +42 -0
  335. package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts.map +1 -0
  336. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +4 -4
  337. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
  338. package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts +24 -0
  339. package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts.map +1 -0
  340. package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts +241 -0
  341. package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts.map +1 -0
  342. package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts +4 -0
  343. package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts.map +1 -0
  344. package/dist/esm/types/Matter/Behaviors/index.d.ts +6 -0
  345. package/dist/esm/types/Matter/Behaviors/index.d.ts.map +1 -0
  346. package/dist/esm/types/Matter/Bridge/Server.d.ts +1 -0
  347. package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
  348. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +4173 -42
  349. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -1
  350. package/dist/esm/types/Matter/Mappings/index.d.ts +1 -0
  351. package/dist/esm/types/Matter/Mappings/index.d.ts.map +1 -1
  352. package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
  353. package/dist/esm/types/Registry.d.ts +37 -0
  354. package/dist/esm/types/Registry.d.ts.map +1 -0
  355. package/dist/esm/types/Utils.d.ts +13 -0
  356. package/dist/esm/types/Utils.d.ts.map +1 -1
  357. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  358. package/package.json +2 -2
  359. package/src/CodeGeneration/CodeFactory.ts +16 -8
  360. package/src/CodeGeneration/NodeClassFactory.ts +7 -9
  361. package/src/Definitions/Global/Commands.ts +16 -13
  362. package/src/Definitions/Global/Drivers.ts +56 -36
  363. package/src/Definitions/Global/Events.ts +4 -4
  364. package/src/Definitions/Insteon/generated/Boolean.ts +9 -0
  365. package/src/Definitions/Insteon/generated/Error.ts +9 -0
  366. package/src/Definitions/Insteon/generated/Lock.ts +28 -0
  367. package/src/Definitions/Insteon/generated/OnLevelRelay.ts +11 -0
  368. package/src/Devices/Brultech/Generated/Channel.ts +8 -9
  369. package/src/Devices/Brultech/Generated/Main.ts +11 -12
  370. package/src/Devices/CompositeDevice.ts +277 -0
  371. package/src/Devices/DeviceFactory.ts +1 -1
  372. package/src/Devices/ISYDeviceNode.ts +8 -2
  373. package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +7 -8
  374. package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +7 -8
  375. package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +7 -8
  376. package/src/Devices/Insteon/Generated/BinaryAlarm.ts +7 -8
  377. package/src/Devices/Insteon/Generated/BinaryControl.ts +7 -8
  378. package/src/Devices/Insteon/Generated/DimmerLamp.ts +9 -10
  379. package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +9 -10
  380. package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +9 -10
  381. package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +9 -10
  382. package/src/Devices/Insteon/Generated/DimmerSwitch.ts +6 -7
  383. package/src/Devices/Insteon/Generated/DoorLock.ts +7 -8
  384. package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +7 -8
  385. package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +7 -8
  386. package/src/Devices/Insteon/Generated/EzrainInput.ts +7 -8
  387. package/src/Devices/Insteon/Generated/EzrainOutput.ts +7 -8
  388. package/src/Devices/Insteon/Generated/FanLincMotor.ts +7 -8
  389. package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +15 -16
  390. package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +13 -14
  391. package/src/Devices/Insteon/Generated/ImeterSolo.ts +8 -9
  392. package/src/Devices/Insteon/Generated/IrLincTx.ts +6 -7
  393. package/src/Devices/Insteon/Generated/KeypadButton.ts +7 -8
  394. package/src/Devices/Insteon/Generated/KeypadDimmer.ts +9 -10
  395. package/src/Devices/Insteon/Generated/KeypadRelay.ts +7 -8
  396. package/src/Devices/Insteon/Generated/OnOffControl.ts +7 -8
  397. package/src/Devices/Insteon/Generated/Pir2844.ts +11 -12
  398. package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +7 -8
  399. package/src/Devices/Insteon/Generated/Pir2844c.ts +11 -12
  400. package/src/Devices/Insteon/Generated/RelayLamp.ts +7 -8
  401. package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +7 -8
  402. package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +7 -8
  403. package/src/Devices/Insteon/Generated/RelaySwitch.ts +6 -7
  404. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +6 -7
  405. package/src/Devices/Insteon/Generated/RemoteLinc2.ts +7 -8
  406. package/src/Devices/Insteon/Generated/Siren.ts +10 -11
  407. package/src/Devices/Insteon/Generated/SirenAlert.ts +6 -7
  408. package/src/Devices/Insteon/Generated/TempLinc.ts +13 -14
  409. package/src/Devices/Insteon/Generated/Thermostat.ts +13 -14
  410. package/src/Devices/Insteon/Generated/X10.ts +7 -8
  411. package/src/Devices/Insteon/InsteonDeviceFactory.ts +26 -12
  412. package/src/Devices/Insteon/InsteonDimmableDevice.ts +4 -4
  413. package/src/Devices/Insteon/InsteonDimmerOutletDevice.ts +3 -2
  414. package/src/Devices/Insteon/InsteonDoorWindowSensorDevice.ts +30 -7
  415. package/src/Devices/Insteon/InsteonFanDevice.ts +21 -36
  416. package/src/Devices/Insteon/InsteonOnOffOutletDevice.ts +16 -15
  417. package/src/Devices/Insteon/InsteonRelayDevice.ts +2 -3
  418. package/src/Devices/Insteon/index.ts +10 -14
  419. package/src/Devices/Lutron/Generated/LoadShed.ts +7 -8
  420. package/src/Devices/NCD/Generated/Relay.ts +19 -23
  421. package/src/Devices/NodeFactory.ts +1 -1
  422. package/src/Devices/Poly/Generated/MatterBridge.ts +6 -7
  423. package/src/Devices/Scene/Generated/Scene.ts +5 -6
  424. package/src/Devices/UDI/Generated/Channel.ts +8 -9
  425. package/src/Devices/UDI/Generated/Em3MainChannel.ts +11 -12
  426. package/src/Devices/UDI/Generated/Main.ts +8 -9
  427. package/src/Devices/UDI/Generated/PulseCounter.ts +9 -10
  428. package/src/Devices/UDI/Generated/Relay.ts +7 -8
  429. package/src/Devices/UDI/Generated/TemperatureSensor.ts +7 -8
  430. package/src/Devices/ZWave/Generated/ColorSwitch.ts +17 -18
  431. package/src/Devices/ZWave/Generated/DimmerSwitch.ts +7 -8
  432. package/src/Devices/ZigBee/ZigBeeBase.ts +22 -0
  433. package/src/Devices/ZigBee/index.ts +13 -0
  434. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +22 -20
  435. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +92 -76
  436. package/src/ISY.ts +27 -5
  437. package/src/ISYDevice.ts +4 -3
  438. package/src/ISYNode.ts +48 -32
  439. package/src/Matter/Behaviors/BehaviorRegistry.ts +44 -8
  440. package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +1 -1
  441. package/src/Matter/Behaviors/ISYClusterBehavior.ts +15 -6
  442. package/src/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.ts +30 -0
  443. package/src/Matter/Behaviors/Insteon/IdentifyBehavior.ts +26 -0
  444. package/src/Matter/Behaviors/Insteon/RelayOnOffBehavior.ts +34 -0
  445. package/src/Matter/Behaviors/Insteon/index.ts +3 -0
  446. package/src/Matter/Behaviors/index.ts +6 -0
  447. package/src/Matter/Bridge/Server.ts +94 -85
  448. package/src/Matter/Mappings/Insteon.ts +3 -3
  449. package/src/Matter/Mappings/MappingRegistry.ts +29 -40
  450. package/src/Matter/Mappings/index.ts +3 -1
  451. package/src/Registry.ts +112 -0
  452. package/src/Utils.ts +29 -0
  453. package/src/Devices/Insteon/DimmerLampSwitch.ts +0 -207
  454. package/src/Devices/Insteon/InsteonRelaySwitchDevice.ts +0 -11
  455. package/src/Devices/Insteon/RelayLampSwitch.ts +0 -132
  456. package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +0 -66
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "isy-nodejs",
3
3
  "description": "Node.js wrapper for ISY interface including websockets for change notifications. Fork of isy-js by Rod Toll. Designed to be used in a node.js application.",
4
4
  "license": "MIT",
5
- "version": "1.0.7-alpha.0",
5
+ "version": "1.0.9-alpha.1",
6
6
  "author": {
7
7
  "name": "Pradeep Mouli"
8
8
  },
@@ -74,5 +74,5 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "gitHead": "ce35a40c2400673ba8035446eb91348ff94d0df4"
77
+ "gitHead": "9521cb43ec9bffaa16e91234351abd5981c2037e"
78
78
  }
@@ -290,19 +290,27 @@ export class CodeFactory {
290
290
  return ts.factory.createLiteralTypeNode(this.createStringLiteral(literal));
291
291
  }
292
292
 
293
- createNumericLiteral(value: number): ts.NumericLiteral {
294
- return ts.factory.createNumericLiteral(value.toString());
293
+ createLiteral(value: string | number): ts.LiteralExpression {
294
+ if (typeof value === 'number') {
295
+ return this.createNumericLiteral(value as number);
296
+ }
297
+
298
+ return this.createStringLiteral(value);
299
+ }
300
+
301
+ createNumericLiteral(value: number, flags?: ts.TokenFlags): ts.NumericLiteral {
302
+ return ts.factory.createNumericLiteral(value.toString(), flags);
295
303
  }
296
304
 
297
305
  createStringLiteral(text: string): ts.StringLiteral {
298
- return ts.factory.createStringLiteral(text);
306
+ return ts.factory.createStringLiteral(text, true);
299
307
  }
300
308
 
301
309
  createKeywordTypeNode(kind: ts.KeywordTypeSyntaxKind): ts.KeywordTypeNode {
302
310
  return ts.factory.createKeywordTypeNode(kind);
303
311
  }
304
312
 
305
- createTypePredicateNode(parameterName: ts.Identifier, type: ts.TypeNode): ts.TypePredicateNode {
313
+ createTypePredicateNode(parameterName: ts.Identifier | string, type: ts.TypeNode): ts.TypePredicateNode {
306
314
  return ts.factory.createTypePredicateNode(undefined, parameterName, type);
307
315
  }
308
316
 
@@ -310,15 +318,15 @@ export class CodeFactory {
310
318
  return ts.factory.createBinaryExpression(left, operator, right);
311
319
  }
312
320
 
313
- createPropertyAccessExpression(expression: ts.Expression, name: string): ts.PropertyAccessExpression {
314
- return ts.factory.createPropertyAccessExpression(expression, this.createIdentifier(name)!);
321
+ createPropertyAccessExpression(expression: ts.Expression, name: string | ts.MemberName): ts.PropertyAccessExpression {
322
+ return ts.factory.createPropertyAccessExpression(expression, name);
315
323
  }
316
324
 
317
- createHeritageClause(token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword, types: ts.ExpressionWithTypeArguments[]): ts.HeritageClause {
325
+ createHeritageClause(token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword, ...types: ts.ExpressionWithTypeArguments[]): ts.HeritageClause {
318
326
  return ts.factory.createHeritageClause(token, types);
319
327
  }
320
328
 
321
- createExpressionWithTypeArguments(expression: ts.Expression, typeArguments?: ts.TypeNode[]): ts.ExpressionWithTypeArguments {
329
+ createExpressionWithTypeArguments(expression: ts.Expression, ...typeArguments: ts.TypeNode[]): ts.ExpressionWithTypeArguments {
322
330
  return ts.factory.createExpressionWithTypeArguments(expression, typeArguments);
323
331
  }
324
332
  createBlock(multiLine: boolean, ...statements: ts.Statement[]): ts.Block;
@@ -76,7 +76,7 @@ export class NodeClassFactory extends CodeFactory {
76
76
 
77
77
  public createNodeClass<T extends Family>(nodeClassDef: NodeClassDefinition<T>) {
78
78
  let path = `${NodeClassFactory.basePath}/${Family[nodeClassDef.family]}/Generated/${nodeClassDef.name}.ts`;
79
- let sf = ts.createSourceFile(path, '', ts.ScriptTarget.ES2023, true, ts.ScriptKind.TS);
79
+ let sf = ts.createSourceFile(path, '', ts.ScriptTarget.ES2024, true, ts.ScriptKind.TS);
80
80
  //@ts-expect-error
81
81
 
82
82
  sf.statements = [
@@ -163,7 +163,7 @@ export class NodeClassFactory extends CodeFactory {
163
163
  ),
164
164
 
165
165
  factory.createClassDeclaration(
166
- [factory.createToken(ts.SyntaxKind.ExportKeyword)],
166
+ [],
167
167
  factory.createIdentifier(`${nodeClassDef.name}Node`),
168
168
  undefined,
169
169
  [
@@ -303,7 +303,7 @@ export class NodeClassFactory extends CodeFactory {
303
303
  ])
304
304
  ],
305
305
  [
306
- factory.createPropertySignature(
306
+ /*factory.createPropertySignature(
307
307
  undefined,
308
308
  factory.createIdentifier('nodeDefId'),
309
309
  undefined,
@@ -314,7 +314,7 @@ export class NodeClassFactory extends CodeFactory {
314
314
  )
315
315
  )
316
316
  : NodeClassFactory.instance.createLiteralTypeNode(nodeClassDef.id)
317
- )
317
+ )*/
318
318
  ]
319
319
  ),
320
320
 
@@ -472,7 +472,8 @@ export class NodeClassFactory extends CodeFactory {
472
472
  newLineCharacter: '\n',
473
473
  trimTrailingWhitespace: true,
474
474
  ensureNewLineAtEndOfFile: true,
475
- indentStyle: ts.IndentStyle.Smart
475
+ indentStyle: ts.IndentStyle.Smart,
476
+
476
477
  });
477
478
  let currentKind = ts.SyntaxKind.Unknown;
478
479
  for (const s of f.getStatements()) {
@@ -652,10 +653,7 @@ export class NodeClassFactory extends CodeFactory {
652
653
  factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Driver'), factory.createIdentifier('create')), undefined, [
653
654
  factory.createStringLiteral(def.id),
654
655
  factory.createThis(),
655
- factory.createAsExpression(
656
- factory.createPropertyAccessExpression(factory.createIdentifier('nodeInfo'), factory.createIdentifier('property')),
657
- factory.createTypeReferenceNode(factory.createIdentifier('DriverState'), undefined)
658
- ),
656
+ factory.createElementAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier('nodeInfo'), factory.createIdentifier('state')), this.createStringLiteral(def.id)),
659
657
  factory.createObjectLiteralExpression(
660
658
  [
661
659
  factory.createPropertyAssignment(
@@ -1,7 +1,7 @@
1
1
  import { Converter } from '../../Converters.js';
2
2
  import type { ISYNode } from '../../ISYNode.js';
3
3
  import type { Driver } from './Drivers.js';
4
- import type { UnitOfMeasure } from './UOM.js';
4
+ import { UnitOfMeasure } from './UOM.js';
5
5
 
6
6
  /*export class Command<T extends string> extends Function {
7
7
 
@@ -15,10 +15,10 @@ import type { UnitOfMeasure } from './UOM.js';
15
15
  }*/
16
16
 
17
17
  export interface Parameter<P, T> {
18
- id: P;
19
- name: string;
18
+ id?: P;
19
+ name?: string;
20
20
 
21
- label: string;
21
+ label?: string;
22
22
  value?: T;
23
23
  uom: UnitOfMeasure;
24
24
  serverUom?: UnitOfMeasure;
@@ -82,14 +82,14 @@ export namespace Command {
82
82
 
83
83
 
84
84
  function getCommandFunctionSignature<P extends { [x: string]: Parameter<string, any> } | Parameter<string, any> | null> (command: string, node: ISYNode<any,any,any,any>,parameters?: P): Function {
85
- if (parameters === null) {
86
- return function (): Promise<boolean> {
85
+ if (!parameters) {
86
+ return () => {
87
87
  return node.sendCommand(command);
88
88
  };
89
89
  }
90
90
 
91
91
  else if (isParameterCollection(parameters)) {
92
- let cmd = function (params: { [x in keyof P]: typeof parameters[x]['value'] }): Promise<boolean> {
92
+ let cmd : any = (params: { [x in keyof P]: typeof parameters[x]['value'] }) => {
93
93
  for (let key in params) {
94
94
  let p = parameters[key];
95
95
  if (p.converter) {
@@ -97,23 +97,25 @@ export namespace Command {
97
97
  }
98
98
  }
99
99
  return node.sendCommand(command, params);
100
- } as any;
100
+ };
101
+ Object.defineProperty(cmd, 'parameters', {});
101
102
  for (let key in parameters) {
102
103
  let p = parameters[key];
103
- cmd.parameters[key] = p;
104
+
104
105
  let srvUom = node.drivers[p.driver]?.serverUom;
105
- if (node.drivers[parameters[key].driver]?.serverUom) {
106
- cmd.parameters[key].serverUom = node.drivers[parameters[key].driver].serverUom;
107
- if (srvUom) {
106
+ if (srvUom)
107
+ {
108
+ if(srvUom !== p.uom) {
108
109
  cmd.parameters[key].converter = Converter.get(p.uom, srvUom).to;
109
110
  cmd.parameters[key].serverUom = srvUom;
110
111
  }
111
112
  }
113
+
112
114
  }
113
115
  return cmd;
114
116
  }
115
117
  else if(parameters.name) {
116
- let cmd = function (value: P['value']): Promise<boolean> {
118
+ let cmd = function (value): Promise<boolean> {
117
119
  if(parameters.converter) {
118
120
  value = parameters.converter(value);
119
121
  }
@@ -145,6 +147,7 @@ export namespace Command {
145
147
  return cmd;
146
148
  }
147
149
 
150
+
148
151
  type Commands = {
149
152
  BEEP: ((value: number) => Promise<boolean>) & { label: 'Beep'; name: 'beep' };
150
153
  BL: ((value: number) => Promise<boolean>) & { label: 'Backlight'; name: 'backlight' };
@@ -264,9 +264,9 @@ export interface Driver<
264
264
  U extends UnitOfMeasure,
265
265
  T = number,
266
266
  SU extends UnitOfMeasure = U,
267
- ST = number,
268
- N = string,
269
- L = string
267
+ ST = T,
268
+ N = D,
269
+ L = N
270
270
  > {
271
271
  // #region Properties (8)
272
272
 
@@ -284,7 +284,9 @@ export interface Driver<
284
284
  pendingValue: T;
285
285
  rawValue?: ST;
286
286
  };
287
- uom: U;
287
+
288
+ initialized: boolean;
289
+ uom: U;
288
290
 
289
291
  // #endregion Properties (8)
290
292
 
@@ -302,8 +304,9 @@ export interface StatelessDriver<
302
304
  U extends UnitOfMeasure,
303
305
  T = number,
304
306
  SU extends UnitOfMeasure = U,
305
- N = string,
306
- L = string
307
+ ST = T,
308
+ N = D,
309
+ L = N
307
310
  > {
308
311
  // #region Properties (9)
309
312
 
@@ -319,6 +322,7 @@ export interface StatelessDriver<
319
322
  value: T;
320
323
  formattedValue?: any;
321
324
  pendingValue: T;
325
+ rawValue?: ST;
322
326
  };
323
327
  stateless: true;
324
328
  uom: U;
@@ -339,10 +343,10 @@ export type DriverTypeLiteral = EnumLiteral<DriverType>;
339
343
 
340
344
  export type EnumWithLiteral<D extends string | bigint | number | boolean> = D | EnumLiteral<D>;
341
345
  export namespace Driver {
342
- export type Signature<U extends UnitOfMeasure = UnitOfMeasure, V = any, SU = U, N = string, L = N> = { uom: U; value: V; name: N; label: L; serverUom?: SU };
346
+ export type Signature<U extends UnitOfMeasure = UnitOfMeasure, V = any, SU extends UnitOfMeasure = U, N = string, L = N> = { uom: U; value: V; name: N; label: L };
343
347
 
344
348
  export type Signatures<D> = UnionToIntersection<
345
- D extends string ? { [K in D]: Signature<UnitOfMeasure, any, UnitOfMeasure, string, string> }
349
+ D extends string ? { [K in D]: Signature<UnitOfMeasure, any, UnitOfMeasure, K, K> }
346
350
  : D extends { [K in keyof D]: Signature } ? D
347
351
  : never
348
352
  >;
@@ -366,21 +370,22 @@ export namespace Driver {
366
370
  };
367
371
  };
368
372
 
369
-
370
- export type For<D extends string, T, S extends boolean = false> = T extends Signature<infer U, infer V, infer SU, infer N, infer L> ? StatelessOrStateful<D, U, V, N, L, S> : never;
373
+ export type For<D extends string, T, S extends boolean = false> = T extends Signature<infer U, infer V, infer SU, infer N, infer L> ? StatelessOrStateful<D, U, V, SU, V, N, L, S> : never;
371
374
 
372
375
  export type ForAll<T, S extends boolean = false> = {
373
376
  [K in StringKeys<T>]: T[K] extends Signature<UnitOfMeasure, any, UnitOfMeasure, string, string> ? For<K, T[K], S> : never;
374
377
  };
375
378
 
376
- type test2 = ForAll<Drivers>;
379
+ export type SignaturesOf<D> = D extends ForAll<infer R> ? R : never;
380
+
381
+ type test2 = SignaturesOf<ForAll<Drivers>>;
377
382
 
378
383
  export type Type = DriverType;
379
384
  export type Literal = EnumLiteral<DriverType>;
380
385
  export type LiteralWithExtensions = Literal | `${string}.${Literal}`;
381
386
  export type LiteralWithType = EnumWithLiteral<DriverType>;
382
- type StatelessOrStateful<D extends string, U extends UnitOfMeasure, T = number, N = string, L = string, S extends boolean = false> =
383
- S extends true ? StatelessDriver<D, U, T, U, N, L> : Driver<D, U, T, U, N, L>;
387
+ type StatelessOrStateful<D extends string, U extends UnitOfMeasure, T = number, SU extends UnitOfMeasure = U, ST = T, N = D, L = N, S extends boolean = false> =
388
+ S extends true ? StatelessDriver<D, U, T, SU, ST, N, L> : Driver<D, U, T, SU, ST, N, L>;
384
389
 
385
390
  export function create<D extends Literal, U extends UnitOfMeasure, T = number, N extends string = string, L extends string = string, S extends boolean = false>(
386
391
  driver: EnumWithLiteral<D>,
@@ -390,7 +395,7 @@ export namespace Driver {
390
395
  driverSignature?: { uom: U; label: L; name: N },
391
396
  stateless?: S,
392
397
  converter?: Converter<any, T>
393
- ): StatelessOrStateful<D, U, T, N, L, S> {
398
+ ): StatelessOrStateful<D, U, T, UnitOfMeasure, any, N, L, S> {
394
399
  const query = async () => {
395
400
  return await node.readProperty(driver as D);
396
401
  };
@@ -404,19 +409,20 @@ export namespace Driver {
404
409
  state: {
405
410
  initial: true,
406
411
  value: initState?.value, //TODO include converter
407
- formattedValue: initState.formatted,
412
+ formattedValue: initState?.formatted,
408
413
  pendingValue: null
409
414
  },
410
415
  query,
411
416
  get value() {
412
417
  return query().then((p) => p.value) as Promise<T>;
413
418
  },
414
- name: initState.name ?? driverSignature.name ?? driverSignature.label ?? driver,
419
+ name: initState?.name ?? driverSignature.name ?? driverSignature.label ?? driver,
415
420
  label: driverSignature.label ?? driver
416
- } as unknown as StatelessOrStateful<D, U, T, N, L, typeof stateless>;
421
+ } as StatelessOrStateful<D, U, T, UnitOfMeasure, any, N, L, typeof stateless>;
417
422
  }
418
423
  var c = {
419
424
  id: driver as D,
425
+ initialized: initState ? true : false,
420
426
  uom: driverSignature?.uom as U,
421
427
  serverUom: initState?.uom != driverSignature?.uom ? initState?.uom : undefined,
422
428
  state: {
@@ -425,35 +431,45 @@ export namespace Driver {
425
431
  initState ?
426
432
  converter ? converter.from(initState.value)
427
433
  : driverSignature?.uom && initState?.uom != driverSignature?.uom ? Converter.convert(initState.uom, driverSignature.uom, initState.value)
428
- : initState.value : null,
434
+ : initState.value
435
+ : null,
429
436
  rawValue: initState ? initState.value : null,
430
437
  formattedValue: initState ? initState.formatted : null,
431
438
  pendingValue: null
432
439
  },
433
440
  async query() {
434
441
  let s = await query();
435
- this.state.value = converter ? converter.from(s.value) : this.uom !== s.uom ? Converter.convert(s.value, s.uom, this.uom) : s.value;
442
+ this.state.value =
443
+ converter ? converter.from(s.value)
444
+ : this.uom !== s.uom ? Converter.convert(s.value, s.uom, this.uom)
445
+ : s.value;
436
446
  this.state.formattedValue = s.formatted;
437
447
  this.state.rawValue = s.value;
438
448
  return s;
439
449
  },
440
- apply(state: DriverState, notify = false) {
441
- let previousValue = this.state.rawValue;
442
- this.state.rawValue = state.value;
443
- if (previousValue === this.state.rawValue) {
444
- return false;
445
- }
446
- if (state.uom != this.uom) {
447
- this.serverUom == state.uom;
448
- this.state.value = converter ? converter.from(this.state.rawValue) : Converter.convert(state.uom, this.uom, this.state.rawValue);
449
- } else if (converter) {
450
- this.state.value = converter.from(state.value);
451
- } else {
452
- this.state.value = state.value;
450
+ apply(state: DriverState, notify = true) {
451
+ if (state.id == this.id) {
452
+
453
+ let previousValue = this.state.rawValue;
454
+ this.state.rawValue = state.value;
455
+ if (previousValue === this.state.rawValue) {
456
+ return false;
457
+ }
458
+ if (state.uom != this.uom) {
459
+ this.serverUom == state.uom;
460
+ this.state.value = converter ? converter.from(this.state.rawValue) : Converter.convert(state.uom, this.uom, this.state.rawValue);
461
+ } else if (converter) {
462
+ this.state.value = converter.from(state.value);
463
+ } else {
464
+ this.state.value = state.value;
465
+ }
466
+ this.state.formattedValue = state.formatted;
467
+ if (notify) node.events.emit(`${this.name}Changed`, driver as D, this.state.value, previousValue, this.state.formattedValue);
468
+ if (!this.initialized) {
469
+ this.initialized = true;
470
+ }
471
+ return true;
453
472
  }
454
- this.state.formattedValue = state.formatted;
455
- if (notify) node.events.emit(`${this.name}Changed`, driver as D, this.state.value, previousValue, this.state.formattedValue);
456
- return true;
457
473
  },
458
474
  patch(value: T, formattedValue: string, uom: UnitOfMeasure, prec: number, notify = true) {
459
475
  let previousValue = this.state.rawValue;
@@ -471,6 +487,10 @@ export namespace Driver {
471
487
  return false;
472
488
  }
473
489
  if (notify) node.events.emit(`${this.name}Changed`, driver as D, this.state.value, previousValue, formattedValue);
490
+ if (!this.initialized) {
491
+
492
+ this.initialized = true;
493
+ }
474
494
  return true;
475
495
  },
476
496
  get value() {
@@ -487,7 +507,7 @@ export namespace Driver {
487
507
  // }
488
508
 
489
509
  //});
490
- return c as unknown as StatelessOrStateful<D, U, T, N, L, typeof stateless>;
510
+ return c as StatelessOrStateful<D, U, T, UnitOfMeasure, any, N, L, typeof stateless>;
491
511
  }
492
512
  }
493
513
 
@@ -20,7 +20,7 @@ export namespace Event {
20
20
 
21
21
  export type Signatures = { [x: string]: Signature };
22
22
 
23
- export type DriverToEvent<D extends Driver.Signature> = { name: `${D['name']}Changed`; value: D['value']; uom: D['uom'] };
23
+ export type DriverToEvent<D extends Driver.Signature> = { name: `${D['name']}Changed` | `${D['name']}Initialized`, value: D['value']; uom: D['uom'] };
24
24
 
25
25
  export type CommandToEvent<C extends Command.Signature> = { name: `${C['name']}Triggered` };
26
26
 
@@ -30,8 +30,8 @@ export namespace Event {
30
30
  : S extends { name: string; command: string } ? { on(eventName: S['name'], listener: (command: S['command']) => void): N }
31
31
  : { on(eventName: S['name'], listener: (...args: any[]) => void): N };
32
32
 
33
- export type ForAll<E extends string, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures> = {
34
- [x in E]: x extends keyof D ? { name: `${D[x]['name']}Changed`; driver: x; value: D[x]['value']; uom: UnitOfMeasure }
33
+ export type ForAll<E extends ISYNode.EventSignatures, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures> = {
34
+ [x in keyof E | keyof D]: x extends keyof D ? { name: `${D[x]['name']}Changed`; driver: x; value: D[x]['value']; uom: UnitOfMeasure }
35
35
  : x extends keyof C ? { name: `${C[x]['name']}Triggered`; command: x }
36
36
  : { name: x };
37
37
  };
@@ -44,7 +44,7 @@ export namespace Event {
44
44
 
45
45
  export type FunctionSigFor<E extends Signatures, N> = UnionToIntersection<HandlerSignature<ObjectToUnion<E>, N>>;
46
46
 
47
- type test1 = ForAll<'ST', Driver.Signatures<{ ST: { name: 'Status'; label: 'Status'; uom: UnitOfMeasure; value: boolean; formatted: string } } | 'RR'>, any>;
47
+ type test1 = ForAll<{'ST'}, Driver.Signatures<{ ST: { name: 'Status'; label: 'Status'; uom: UnitOfMeasure; value: boolean; formatted: string } } | 'RR'>, any>;
48
48
  type test = FunctionSigFor<test1, test1> & Omit<EventEmitter, 'on'>;
49
49
 
50
50
  export class NodeEventEmitter<N extends ISYNode<any, any, any, any>> extends EventEmitter {
@@ -2,3 +2,12 @@ export enum Boolean {
2
2
  False = 0,
3
3
  True = 255
4
4
  }
5
+
6
+ export namespace Boolean {
7
+ export function toBoolean(value: Boolean): boolean {
8
+ return value === Boolean.True;
9
+ }
10
+ export function fromBoolean(value: boolean): Boolean {
11
+ return value ? Boolean.True : Boolean.False;
12
+ }
13
+ }
@@ -2,3 +2,12 @@ export enum Error {
2
2
  True = 0,
3
3
  False = 1
4
4
  }
5
+
6
+ export namespace Error {
7
+ export function toBoolean(value: Error): boolean {
8
+ return value === Error.True;
9
+ }
10
+ export function fromBoolean(value: boolean): Error {
11
+ return value ? Error.True : Error.False;
12
+ }
13
+ }
@@ -1,4 +1,32 @@
1
+ import exp from 'constants';
2
+
1
3
  export enum Lock {
2
4
  Unlocked = 0,
3
5
  Locked = 100
4
6
  }
7
+
8
+
9
+ export namespace Lock {
10
+ export function toString(value: number): string {
11
+ switch (value) {
12
+ case Lock.Unlocked: return "Unlocked";
13
+ case Lock.Locked: return "Locked";
14
+ default: return value.toString();
15
+ }
16
+ }
17
+ export function toEnum(value: string): number {
18
+ switch (value) {
19
+ case "Unlocked": return Lock.Unlocked;
20
+ case "Locked": return Lock.Locked;
21
+ default: return parseInt(value);
22
+ }
23
+ }
24
+
25
+ export function toBoolean(value: Lock): boolean {
26
+ return value === Lock.Locked;
27
+ }
28
+
29
+ export function fromBoolean(value: boolean): Lock {
30
+ return value ? Lock.Locked : Lock.Unlocked;
31
+ }
32
+ }
@@ -2,3 +2,14 @@ export enum OnLevelRelay {
2
2
  Off = 0,
3
3
  On = 100
4
4
  }
5
+
6
+
7
+ export namespace OnLevelRelay {
8
+ export function toBoolean(value: OnLevelRelay): boolean {
9
+ return value === OnLevelRelay.On;
10
+ }
11
+
12
+ export function fromBoolean(value: boolean): OnLevelRelay {
13
+ return value ? OnLevelRelay.On : OnLevelRelay.Off;
14
+ }
15
+ }
@@ -17,16 +17,16 @@ const nodeDefId = "BTChannel";
17
17
  type Commands = Channel.Commands;
18
18
  type Drivers = Channel.Drivers;
19
19
 
20
- export class ChannelNode extends Base<Drivers, Commands> implements Channel.Interface {
20
+ class ChannelNode extends Base<Drivers, Commands> implements Channel.Interface {
21
21
  public override readonly commands = {};
22
22
  static override nodeDefId = "BTChannel";
23
- static override implements = ["BTChannel"];
24
- declare readonly nodeDefId: "BTChannel";
23
+ static override implements = ['BTChannel'];
24
+ declare readonly nodeDefId: 'BTChannel';
25
25
  constructor (isy: ISY, nodeInfo: NodeInfo) {
26
26
  super(isy, nodeInfo);
27
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Watt, label: "Status", name: "status" });
28
- this.drivers.TPW = Driver.create("TPW", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.KilowattsPerHour, label: "Total Energy", name: "totalEnergy" });
29
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
27
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Watt, label: "Status", name: "status" });
28
+ this.drivers.TPW = Driver.create("TPW", this, nodeInfo.state['TPW'], { uom: UnitOfMeasure.KilowattsPerHour, label: "Total Energy", name: "totalEnergy" });
29
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
30
30
  }
31
31
  public get status(): number {
32
32
  return this.drivers.ST?.value;
@@ -43,13 +43,12 @@ NodeFactory.register(ChannelNode);
43
43
 
44
44
  export namespace Channel {
45
45
  export interface Interface extends Omit<InstanceType<typeof ChannelNode>, keyof ISYDeviceNode<any, any, any, any>> {
46
- nodeDefId: "BTChannel";
47
46
  }
48
47
  export function is(node: ISYNode<any, any, any, any>): node is ChannelNode {
49
- return ["BTChannel"].includes(node.nodeDefId);
48
+ return ['BTChannel'].includes(node.nodeDefId);
50
49
  }
51
50
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ChannelNode {
52
- return ["BTChannel", "BTMain"].includes(node.nodeDefId);
51
+ return ['BTChannel', "BTMain"].includes(node.nodeDefId);
53
52
  }
54
53
  export function create(isy: ISY, nodeInfo: NodeInfo) {
55
54
  return new ChannelNode(isy, nodeInfo);
@@ -17,21 +17,21 @@ const nodeDefId = "BTMain";
17
17
  type Commands = Main.Commands;
18
18
  type Drivers = Main.Drivers;
19
19
 
20
- export class MainNode extends Base<Drivers, Commands> implements Main.Interface {
20
+ class MainNode extends Base<Drivers, Commands> implements Main.Interface {
21
21
  public override readonly commands = {
22
22
  QUERY: this.query
23
23
  };
24
24
  static override nodeDefId = "BTMain";
25
- static override implements = ["BTMain"];
26
- declare readonly nodeDefId: "BTMain";
25
+ static override implements = ['BTMain'];
26
+ declare readonly nodeDefId: 'BTMain';
27
27
  constructor (isy: ISY, nodeInfo: NodeInfo) {
28
28
  super(isy, nodeInfo);
29
- this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Watt, label: "Status", name: "status" });
30
- this.drivers.TPW = Driver.create("TPW", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.KilowattsPerHour, label: "Total Energy", name: "totalEnergy" });
31
- this.drivers.CV = Driver.create("CV", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Volt, label: "Current Voltage", name: "currentVoltage" });
32
- this.drivers.CC = Driver.create("CC", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Ampere, label: "Current Current", name: "currentCurrent" });
33
- this.drivers.PPW = Driver.create("PPW", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Watt, label: "Polarized Power", name: "polarizedPower" });
34
- this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
29
+ this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Watt, label: "Status", name: "status" });
30
+ this.drivers.TPW = Driver.create("TPW", this, nodeInfo.state['TPW'], { uom: UnitOfMeasure.KilowattsPerHour, label: "Total Energy", name: "totalEnergy" });
31
+ this.drivers.CV = Driver.create("CV", this, nodeInfo.state['CV'], { uom: UnitOfMeasure.Volt, label: "Current Voltage", name: "currentVoltage" });
32
+ this.drivers.CC = Driver.create("CC", this, nodeInfo.state['CC'], { uom: UnitOfMeasure.Ampere, label: "Current Current", name: "currentCurrent" });
33
+ this.drivers.PPW = Driver.create("PPW", this, nodeInfo.state['PPW'], { uom: UnitOfMeasure.Watt, label: "Polarized Power", name: "polarizedPower" });
34
+ this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
35
35
  }
36
36
  async query() { return this.sendCommand("QUERY"); }
37
37
  public get status(): number {
@@ -58,13 +58,12 @@ NodeFactory.register(MainNode);
58
58
 
59
59
  export namespace Main {
60
60
  export interface Interface extends Omit<InstanceType<typeof MainNode>, keyof ISYDeviceNode<any, any, any, any>> {
61
- nodeDefId: "BTMain";
62
61
  }
63
62
  export function is(node: ISYNode<any, any, any, any>): node is MainNode {
64
- return ["BTMain"].includes(node.nodeDefId);
63
+ return ['BTMain'].includes(node.nodeDefId);
65
64
  }
66
65
  export function isImplementedBy(node: ISYNode<any, any, any, any>): node is MainNode {
67
- return ["BTMain"].includes(node.nodeDefId);
66
+ return ['BTMain'].includes(node.nodeDefId);
68
67
  }
69
68
  export function create(isy: ISY, nodeInfo: NodeInfo) {
70
69
  return new MainNode(isy, nodeInfo);