isy-nodejs 1.0.2-alpha.3 → 1.0.2-alpha.6
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.
- package/dist/esm/CodeGeneration/CodeFactory.js +245 -0
- package/dist/esm/CodeGeneration/CodeFactory.js.map +1 -0
- package/dist/esm/CodeGeneration/NodeClassFactory.js +182 -129
- package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
- package/dist/esm/CodeGeneration/NodeFactory.js +245 -0
- package/dist/esm/CodeGeneration/NodeFactory.js.map +1 -0
- package/dist/esm/Converters.js +15 -1
- package/dist/esm/Converters.js.map +1 -1
- package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
- package/dist/esm/Definitions/Global/Events.js.map +1 -1
- package/dist/esm/Devices/ISYDevice.js +0 -33
- package/dist/esm/Devices/ISYDevice.js.map +1 -1
- package/dist/esm/Devices/ISYDeviceNode.js +2 -2
- package/dist/esm/Devices/ISYDeviceNode.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +54 -0
- package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +54 -0
- package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +46 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +46 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +75 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +78 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +80 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +74 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +40 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DoorLock.js +45 -0
- package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +47 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +53 -0
- package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +93 -0
- package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +81 -0
- package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +39 -0
- package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +46 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +78 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +56 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +39 -0
- package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844.js +64 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +50 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +64 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +54 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +56 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +58 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +44 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Siren.js +66 -0
- package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +35 -0
- package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/TempLinc.js +83 -0
- package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Thermostat.js +83 -0
- package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/X10.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/index.js +39 -0
- package/dist/esm/Devices/Insteon/Generated/index.js.map +1 -0
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +3 -4
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js +2 -2
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/KeypadButton.js +11 -11
- package/dist/esm/Devices/Insteon/KeypadButton.js.map +1 -1
- package/dist/esm/Devices/Insteon/index.js +16 -29
- package/dist/esm/Devices/Insteon/index.js.map +1 -1
- package/dist/esm/Devices/Lutron/Generated/LoadShed.js +45 -0
- package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -0
- package/dist/esm/Devices/NodeFactory.js +45 -8
- package/dist/esm/Devices/NodeFactory.js.map +1 -1
- package/dist/esm/Devices/Scene/index.js +2 -2
- package/dist/esm/Devices/Scene/index.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/Channel.js +42 -0
- package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +54 -0
- package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/Main.js +45 -0
- package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/PulseCounter.js +46 -0
- package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/Relay.js +45 -0
- package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +38 -0
- package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -0
- package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +57 -0
- package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -0
- package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +65 -0
- package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -0
- package/dist/esm/Devices/ZWave/Generated/index.js +3 -0
- package/dist/esm/Devices/ZWave/Generated/index.js.map +1 -0
- package/dist/esm/Devices/ZWave/index.js +1 -0
- package/dist/esm/Devices/ZWave/index.js.map +1 -1
- package/dist/esm/Devices/index.js +9 -3
- package/dist/esm/Devices/index.js.map +1 -1
- package/dist/esm/ISY.js +14 -9
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYDevice.js +7 -1
- package/dist/esm/ISYDevice.js.map +1 -1
- package/dist/esm/ISYNode.js +13 -4
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/ISYScene.js +13 -12
- package/dist/esm/ISYScene.js.map +1 -1
- package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +13 -0
- package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +3 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
- package/dist/esm/Matter/Bridge/Server.js +65 -56
- package/dist/esm/Matter/Bridge/Server.js.map +1 -1
- package/dist/esm/Matter/Mappings/Insteon.js +28 -9
- package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
- package/dist/esm/Model/ClassDefinition.js +22 -3
- package/dist/esm/Model/ClassDefinition.js.map +1 -1
- package/dist/esm/Model/ClusterMap.js +45 -19
- package/dist/esm/Model/ClusterMap.js.map +1 -1
- package/dist/esm/Model/NodeInfo.js +1 -1
- package/dist/esm/Model/NodeInfo.js.map +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/types/CodeGeneration/CodeFactory.d.ts +75 -0
- package/dist/esm/types/CodeGeneration/CodeFactory.d.ts.map +1 -0
- package/dist/esm/types/CodeGeneration/EnumFactory.d.ts +1 -1
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +22 -3
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
- package/dist/esm/types/CodeGeneration/NodeFactory.d.ts +75 -0
- package/dist/esm/types/CodeGeneration/NodeFactory.d.ts.map +1 -0
- package/dist/esm/types/Converters.d.ts +9 -3
- package/dist/esm/types/Converters.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Events.d.ts +2 -2
- package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
- package/dist/esm/types/Devices/DeviceMap.d.ts +1 -1
- package/dist/esm/types/Devices/DeviceMap.d.ts.map +1 -1
- package/dist/esm/types/Devices/EndpointFor.d.ts +7 -5
- package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
- package/dist/esm/types/Devices/ISYDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/ISYDeviceNode.d.ts +5 -13
- package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +144 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +150 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +156 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +138 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +51 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +52 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +70 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +52 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +168 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +142 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +71 -0
- package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +51 -0
- package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +150 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +94 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +44 -0
- package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +98 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +98 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +94 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +100 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +57 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +63 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +52 -0
- package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +109 -0
- package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +37 -0
- package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +148 -0
- package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +148 -0
- package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/index.d.ts +39 -0
- package/dist/esm/types/Devices/Insteon/Generated/index.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts +4 -10
- package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +22 -28
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +3 -3
- package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts +19 -19
- package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/index.d.ts +6 -42
- package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +64 -0
- package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -0
- package/dist/esm/types/Devices/NodeFactory.d.ts +18 -7
- package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
- package/dist/esm/types/Devices/Scene/index.d.ts +2 -1
- package/dist/esm/types/Devices/Scene/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +51 -0
- package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +72 -0
- package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +59 -0
- package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +58 -0
- package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +64 -0
- package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +44 -0
- package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +90 -0
- package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +124 -0
- package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/Generated/index.d.ts +3 -0
- package/dist/esm/types/Devices/ZWave/Generated/index.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/index.d.ts +7 -21
- package/dist/esm/types/Devices/index.d.ts.map +1 -1
- package/dist/esm/types/ISY.d.ts.map +1 -1
- package/dist/esm/types/ISYDevice.d.ts +19 -28
- package/dist/esm/types/ISYDevice.d.ts.map +1 -1
- package/dist/esm/types/ISYNode.d.ts +25 -8
- package/dist/esm/types/ISYNode.d.ts.map +1 -1
- package/dist/esm/types/ISYScene.d.ts +5 -6
- package/dist/esm/types/ISYScene.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +11 -0
- package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +1 -4
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +5 -4
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Bridge/Server.d.ts +1 -1
- package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
- package/dist/esm/types/Model/ClassDefinition.d.ts +6 -2
- package/dist/esm/types/Model/ClassDefinition.d.ts.map +1 -1
- package/dist/esm/types/Model/ClusterMap.d.ts +12 -21
- package/dist/esm/types/Model/ClusterMap.d.ts.map +1 -1
- package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
- package/dist/esm/types/Utils.d.ts +18 -0
- package/dist/esm/types/Utils.d.ts.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/CodeGeneration/CodeFactory.ts +341 -0
- package/src/CodeGeneration/NodeClassFactory.ts +362 -233
- package/src/Converters.ts +23 -3
- package/src/Definitions/Global/Drivers.ts +1 -0
- package/src/Definitions/Global/Events.ts +3 -3
- package/src/Devices/Brultech/Generated/Channel.ts +8 -6
- package/src/Devices/Brultech/Generated/Main.ts +9 -9
- package/src/Devices/DeviceMap.ts +1 -1
- package/src/Devices/ISYDevice.ts +8 -57
- package/src/Devices/ISYDeviceNode.ts +143 -166
- package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +13 -21
- package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +18 -29
- package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +18 -29
- package/src/Devices/Insteon/Generated/BinaryAlarm.ts +14 -17
- package/src/Devices/Insteon/Generated/BinaryControl.ts +14 -17
- package/src/Devices/Insteon/Generated/DimmerLamp.ts +25 -51
- package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +36 -64
- package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +31 -60
- package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +24 -47
- package/src/Devices/Insteon/Generated/DimmerSwitch.ts +13 -14
- package/src/Devices/Insteon/Generated/DoorLock.ts +11 -15
- package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +12 -11
- package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +12 -18
- package/src/Devices/Insteon/Generated/EzrainInput.ts +12 -11
- package/src/Devices/Insteon/Generated/EzrainOutput.ts +13 -21
- package/src/Devices/Insteon/Generated/FanLincMotor.ts +15 -27
- package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +19 -39
- package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +17 -33
- package/src/Devices/Insteon/Generated/ImeterSolo.ts +11 -15
- package/src/Devices/Insteon/Generated/IrLincTx.ts +10 -12
- package/src/Devices/Insteon/Generated/{KeypadButtonAdv.ts → KeypadButton.ts} +23 -26
- package/src/Devices/Insteon/Generated/KeypadDimmer.ts +30 -57
- package/src/Devices/Insteon/Generated/KeypadRelay.ts +30 -43
- package/src/Devices/Insteon/Generated/OnOffControl.ts +15 -12
- package/src/Devices/Insteon/Generated/Pir2844.ts +15 -20
- package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +16 -23
- package/src/Devices/Insteon/Generated/Pir2844c.ts +15 -20
- package/src/Devices/Insteon/Generated/RelayLamp.ts +29 -41
- package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +29 -42
- package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +24 -39
- package/src/Devices/Insteon/Generated/RelaySwitch.ts +14 -17
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +15 -20
- package/src/Devices/Insteon/Generated/RemoteLinc2.ts +12 -11
- package/src/Devices/Insteon/Generated/Siren.ts +18 -29
- package/src/Devices/Insteon/Generated/SirenAlert.ts +11 -8
- package/src/Devices/Insteon/Generated/TempLinc.ts +18 -36
- package/src/Devices/Insteon/Generated/Thermostat.ts +18 -36
- package/src/Devices/Insteon/Generated/X10.ts +13 -21
- package/src/Devices/Insteon/Generated/index.ts +38 -0
- package/src/Devices/Insteon/InsteonBaseDevice.ts +5 -4
- package/src/Devices/Insteon/InsteonFanDevice.ts +3 -4
- package/src/Devices/Insteon/InsteonRelayDevice.ts +1 -0
- package/src/Devices/Insteon/KeypadButton.ts +31 -31
- package/src/Devices/Insteon/index.ts +18 -26
- package/src/Devices/Lutron/Generated/LoadShed.ts +11 -15
- package/src/Devices/NCD/Generated/Relay.ts +12 -18
- package/src/Devices/NodeFactory.ts +67 -13
- package/src/Devices/Poly/Generated/MatterBridge.ts +84 -0
- package/src/Devices/Scene/Generated/Scene.ts +33 -65
- package/src/Devices/Scene/index.ts +2 -1
- package/src/Devices/UDI/Generated/Channel.ts +8 -6
- package/src/Devices/UDI/Generated/Em3MainChannel.ts +8 -6
- package/src/Devices/UDI/Generated/Main.ts +9 -9
- package/src/Devices/UDI/Generated/PulseCounter.ts +8 -6
- package/src/Devices/UDI/Generated/Relay.ts +11 -15
- package/src/Devices/UDI/Generated/TemperatureSensor.ts +8 -6
- package/src/Devices/ZWave/Generated/ColorSwitch.ts +16 -24
- package/src/Devices/ZWave/Generated/DimmerSwitch.ts +25 -49
- package/src/Devices/ZWave/Generated/index.ts +2 -0
- package/src/Devices/ZWave/index.ts +5 -1
- package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +12 -18
- package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +17 -33
- package/src/Devices/index.ts +17 -12
- package/src/ISY.ts +9 -3
- package/src/ISYDevice.ts +68 -57
- package/src/ISYNode.ts +32 -8
- package/src/ISYScene.ts +31 -28
- package/src/Matter/Behaviors/BehaviorRegistry.ts +26 -0
- package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +6 -0
- package/src/Matter/Bridge/Server.ts +39 -15
- package/src/Matter/Mappings/Insteon.ts +37 -20
- package/src/Model/ClassDefinition.ts +34 -4
- package/src/Model/ClusterMap.ts +73 -57
- package/src/Model/NodeInfo.ts +1 -1
- package/src/Utils.ts +38 -0
- package/tsconfig.json +7 -1
- package/src/Devices/Insteon/Generated/AlertModuleSirenAdv.ts +0 -123
- package/src/Devices/Insteon/Generated/BallastRelayLampSwitchAdv.ts +0 -123
- package/src/Devices/Insteon/Generated/BinaryAlarmAdv.ts +0 -91
- package/src/Devices/Insteon/Generated/BinaryControlAdv.ts +0 -91
- package/src/Devices/Insteon/Generated/DimmerLampSwitchAdv.ts +0 -207
- package/src/Devices/Insteon/Generated/DimmerLampSwitchLedAdv.ts +0 -215
- package/src/Devices/Insteon/Generated/DimmerMotorSwitchAdv.ts +0 -191
- package/src/Devices/Insteon/Generated/DimmerSwitchOnlyAdv.ts +0 -73
- package/src/Devices/Insteon/Generated/Ezio2x4InputAdv.ts +0 -75
- package/src/Devices/Insteon/Generated/EzrainInputAdv.ts +0 -75
- package/src/Devices/Insteon/Generated/KeypadDimmerAdv.ts +0 -207
- package/src/Devices/Insteon/Generated/KeypadRelayAdv.ts +0 -131
- package/src/Devices/Insteon/Generated/OnOffControlAdv.ts +0 -65
- package/src/Devices/Insteon/Generated/Pir2844Adv.ts +0 -139
- package/src/Devices/Insteon/Generated/Pir2844OnOffAdv.ts +0 -107
- package/src/Devices/Insteon/Generated/Pir2844cAdv.ts +0 -139
- package/src/Devices/Insteon/Generated/RelayLampOnlyAdv.ts +0 -123
- package/src/Devices/Insteon/Generated/RelayLampSwitchAdv.ts +0 -131
- package/src/Devices/Insteon/Generated/RelayLampSwitchLedAdv.ts +0 -139
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyAdv.ts +0 -81
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQueryAdv.ts +0 -89
- package/src/Devices/Insteon/Generated/RemoteLinc2Adv.ts +0 -75
- package/src/Devices/Insteon/Generated/SirenArm.ts +0 -55
package/src/Converters.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnitOfMeasure } from './Definitions/Global/UOM.js';
|
|
2
|
-
import { type Paths, type StringKeys } from './Utils.js';
|
|
2
|
+
import { type Leaves, type Paths, type PathsWithLimit, type StringKeys } from './Utils.js';
|
|
3
3
|
|
|
4
4
|
let BooleanPercentage: Converter<boolean, number>;
|
|
5
5
|
let NullConverter: Converter<any, any>;
|
|
@@ -57,7 +57,7 @@ function registerConverters() {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
function registerConverter(
|
|
61
61
|
from: keyof typeof StandardConverters | keyof typeof Converter.Matter | Paths<typeof StandardConverters> | Paths<typeof Converter.Matter> | string,
|
|
62
62
|
to: keyof typeof StandardConverters | keyof typeof Converter.Matter | string,
|
|
63
63
|
converter: Converter<any, any>
|
|
@@ -89,6 +89,18 @@ export namespace Converter {
|
|
|
89
89
|
: value
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
},
|
|
93
|
+
Percent: {
|
|
94
|
+
LightingLevel: {
|
|
95
|
+
from: (value) =>
|
|
96
|
+
value === 1 ? 0
|
|
97
|
+
: value === 254 ? 100
|
|
98
|
+
: Math.round(value / 254 * 100),
|
|
99
|
+
to: (value) =>
|
|
100
|
+
value === 0 ? 1
|
|
101
|
+
: value === 100 ? 254
|
|
102
|
+
: Math.round(value / 100 * 254)
|
|
103
|
+
}
|
|
92
104
|
}
|
|
93
105
|
};
|
|
94
106
|
|
|
@@ -96,6 +108,8 @@ export namespace Converter {
|
|
|
96
108
|
|
|
97
109
|
export type StandardConverters = `${StringKeys<typeof StandardConverters>}.${StringKeys<typeof StandardConverters>}`;
|
|
98
110
|
|
|
111
|
+
//export type StandardConvertersList = PathsWithLimit<typeof StandardConverters, 1>;
|
|
112
|
+
|
|
99
113
|
export type MatterISYConvertibleTypes = `${StringKeys<(typeof Matter)[`${keyof typeof Matter}`]>}`;
|
|
100
114
|
|
|
101
115
|
export type ISYMatterConvertibleTypes = `${StringKeys<typeof Matter>}`;
|
|
@@ -105,7 +119,7 @@ export namespace Converter {
|
|
|
105
119
|
export type KnownConverters = StandardConverters | MatterConverters;
|
|
106
120
|
const cache: { [x: string]: Converter<any, any> } = {};
|
|
107
121
|
export function get(label: KnownConverters): Converter<any, any>;
|
|
108
|
-
export function get(from: UnitOfMeasure, to: UnitOfMeasure)
|
|
122
|
+
export function get(from: UnitOfMeasure, to: UnitOfMeasure): Converter<any,any>
|
|
109
123
|
export function get(from: ConverterTypes, to: ConverterTypes);
|
|
110
124
|
export function get(from: UnitOfMeasure, to: UnitOfMeasure);
|
|
111
125
|
export function get(from: MatterISYConvertibleTypes, to: ISYMatterConvertibleTypes);
|
|
@@ -141,6 +155,12 @@ export namespace Converter {
|
|
|
141
155
|
}
|
|
142
156
|
return null;
|
|
143
157
|
}
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
export function register<F,T>(from: UnitOfMeasure, to: UnitOfMeasure, converter: Converter<F, T>) {
|
|
161
|
+
registerConverter(UnitOfMeasure[from], UnitOfMeasure[to], converter);
|
|
162
|
+
}
|
|
163
|
+
|
|
144
164
|
}
|
|
145
165
|
|
|
146
166
|
registerConverters();
|
|
@@ -365,6 +365,7 @@ export namespace Driver {
|
|
|
365
365
|
};
|
|
366
366
|
};
|
|
367
367
|
|
|
368
|
+
|
|
368
369
|
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;
|
|
369
370
|
|
|
370
371
|
export type ForAll<T, S extends boolean = false> = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { UnionToIntersection } from '@matter/general';
|
|
1
|
+
import type { Merge, UnionToIntersection } from '@matter/general';
|
|
2
2
|
import type { AnyMxRecord } from 'dns';
|
|
3
3
|
import EventEmitter, { on } from 'events';
|
|
4
4
|
import type { EventType } from '../../Events/EventType.js';
|
|
@@ -60,14 +60,14 @@ export namespace Event {
|
|
|
60
60
|
|
|
61
61
|
export function createEmitter<N extends ISYNode<any, D, C, E>, E extends ISYNode.EventSignatures, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures>(
|
|
62
62
|
node: N
|
|
63
|
-
): FunctionSigFor<E, NodeEventEmitter<N
|
|
63
|
+
): Merge<NodeEventEmitter<N>,FunctionSigFor<E, NodeEventEmitter<N>>> {
|
|
64
64
|
var f = new NodeEventEmitter(node);
|
|
65
65
|
for (let evt in node.drivers) {
|
|
66
66
|
|
|
67
67
|
//f[`on${ev.name}`] = f.on.bind(f, ev.name);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
return f as
|
|
70
|
+
return f as any;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
export class ISYEvent<TAction, TEventType extends EventType> {
|
|
@@ -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
|
|
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,14 +12,15 @@ import { Brultech } from "../../../Definitions/index.js";
|
|
|
12
12
|
import type { DriverState } from "../../../Model/DriverState.js";
|
|
13
13
|
import { NodeFactory } from "../../NodeFactory.js";
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const nodeDefId = "BTChannel";
|
|
16
16
|
|
|
17
17
|
type Commands = Channel.Commands;
|
|
18
18
|
type Drivers = Channel.Drivers;
|
|
19
19
|
|
|
20
20
|
export class ChannelNode extends Base<Drivers, Commands> implements Channel.Interface {
|
|
21
|
-
public readonly commands = {};
|
|
22
|
-
static nodeDefId = "BTChannel";
|
|
21
|
+
public override readonly commands = {};
|
|
22
|
+
static override nodeDefId = "BTChannel";
|
|
23
|
+
static override implements = ["BTChannel"];
|
|
23
24
|
declare readonly nodeDefId: "BTChannel";
|
|
24
25
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
25
26
|
super(isy, nodeInfo);
|
|
@@ -44,8 +45,9 @@ export namespace Channel {
|
|
|
44
45
|
export interface Interface extends Omit<InstanceType<typeof ChannelNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
45
46
|
nodeDefId: "BTChannel";
|
|
46
47
|
}
|
|
47
|
-
export function is(node: ISYNode<any, any, any, any>): node is ChannelNode {
|
|
48
|
-
|
|
48
|
+
export function is(node: ISYNode<any, any, any, any>): node is ChannelNode { return ["BTChannel"].includes(node.nodeDefId); }
|
|
49
|
+
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ChannelNode {
|
|
50
|
+
return ["BTChannel", "BTMain"].includes(node.nodeDefId);
|
|
49
51
|
}
|
|
50
52
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
51
53
|
return new ChannelNode(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
|
|
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,16 +12,17 @@ import { Brultech } from "../../../Definitions/index.js";
|
|
|
12
12
|
import type { DriverState } from "../../../Model/DriverState.js";
|
|
13
13
|
import { NodeFactory } from "../../NodeFactory.js";
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const nodeDefId = "BTMain";
|
|
16
16
|
|
|
17
17
|
type Commands = Main.Commands;
|
|
18
18
|
type Drivers = Main.Drivers;
|
|
19
19
|
|
|
20
20
|
export class MainNode extends Base<Drivers, Commands> implements Main.Interface {
|
|
21
|
-
public readonly commands = {
|
|
21
|
+
public override readonly commands = {
|
|
22
22
|
QUERY: this.query
|
|
23
23
|
};
|
|
24
|
-
static nodeDefId = "BTMain";
|
|
24
|
+
static override nodeDefId = "BTMain";
|
|
25
|
+
static override implements = ["BTMain"];
|
|
25
26
|
declare readonly nodeDefId: "BTMain";
|
|
26
27
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
27
28
|
super(isy, nodeInfo);
|
|
@@ -32,9 +33,7 @@ export class MainNode extends Base<Drivers, Commands> implements Main.Interface
|
|
|
32
33
|
this.drivers.PPW = Driver.create("PPW", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Watt, label: "Polarized Power", name: "polarizedPower" });
|
|
33
34
|
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
34
35
|
}
|
|
35
|
-
async query() {
|
|
36
|
-
return this.sendCommand("QUERY");
|
|
37
|
-
}
|
|
36
|
+
async query() { return this.sendCommand("QUERY"); }
|
|
38
37
|
public get status(): number {
|
|
39
38
|
return this.drivers.ST?.value;
|
|
40
39
|
}
|
|
@@ -61,8 +60,9 @@ export namespace Main {
|
|
|
61
60
|
export interface Interface extends Omit<InstanceType<typeof MainNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
62
61
|
nodeDefId: "BTMain";
|
|
63
62
|
}
|
|
64
|
-
export function is(node: ISYNode<any, any, any, any>): node is MainNode {
|
|
65
|
-
|
|
63
|
+
export function is(node: ISYNode<any, any, any, any>): node is MainNode { return ["BTMain"].includes(node.nodeDefId); }
|
|
64
|
+
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is MainNode {
|
|
65
|
+
return ["BTMain"].includes(node.nodeDefId);
|
|
66
66
|
}
|
|
67
67
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
68
68
|
return new MainNode(isy, nodeInfo);
|
package/src/Devices/DeviceMap.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { getCategory } from '../Utils.js';
|
|
|
12
12
|
|
|
13
13
|
type s<T extends Family> = ISYDevice<T,any,any,any>;
|
|
14
14
|
|
|
15
|
-
type DeviceNames<T extends Family> = `${T extends Family.Insteon | Family.ZWave | Family.ZigBee ? Devices<T>[keyof Devices<T>]["name"] : ""}`;
|
|
15
|
+
type DeviceNames<T extends Family> = `${T extends Family.Insteon | Family.ZWave | Family.ZigBee ? Devices<T>[keyof Devices<T>]["constructor"]["name"] : ""}`;
|
|
16
16
|
type x = DeviceNames<Family.Insteon>
|
|
17
17
|
export interface DeviceDef<T extends Family>
|
|
18
18
|
{
|
package/src/Devices/ISYDevice.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
1
|
import { ClusterBehavior } from '@project-chip/matter.js/behavior/cluster';
|
|
3
2
|
import type { Endpoint, EndpointType, MutableEndpoint } from '@project-chip/matter.js/endpoint';
|
|
4
3
|
import type { SupportedBehaviors } from '@project-chip/matter.js/endpoint/properties';
|
|
5
|
-
import 'winston'
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import 'winston';
|
|
8
5
|
|
|
9
6
|
// export const ISYBinaryStateDevice = <K extends Family,D extends DriverSignatures, T extends Constructor<ISYDeviceNode<K,Driver.ToSignatures<'ST'>,any,any>>>(Base: T) => {
|
|
10
7
|
// return class extends Base implements ISYBinaryStateDevice{
|
|
@@ -39,24 +36,19 @@ import 'winston'
|
|
|
39
36
|
// };
|
|
40
37
|
// };
|
|
41
38
|
|
|
42
|
-
export interface ISYBinaryStateDevice
|
|
43
|
-
|
|
44
|
-
get state(): Promise<boolean>;
|
|
45
|
-
|
|
39
|
+
export interface ISYBinaryStateDevice {
|
|
40
|
+
get state(): Promise<boolean>;
|
|
46
41
|
}
|
|
47
42
|
|
|
48
|
-
export interface ISYLevelDevice
|
|
49
|
-
{
|
|
43
|
+
export interface ISYLevelDevice {
|
|
50
44
|
get level(): number;
|
|
51
45
|
}
|
|
52
46
|
|
|
53
|
-
|
|
54
47
|
// export const ISYUpdateableBinaryStateDevice = <K extends Family, T extends Constructor<ISYDeviceNode<K,any,any,string>>>(
|
|
55
48
|
// Base: T
|
|
56
49
|
// ) => {
|
|
57
50
|
// return class extends Base implements ISYDevice<K,Driver.ToSignatures<'ST'>, any & {'DON': (...args) => boolean, 'DOF': (...args) => boolean}> {
|
|
58
51
|
|
|
59
|
-
|
|
60
52
|
// get state(): Promise<boolean> {
|
|
61
53
|
// return Promise.resolve(this.drivers > 0);
|
|
62
54
|
// //return this.readProperty('ST').then(p => p.value > 0);
|
|
@@ -88,54 +80,13 @@ export interface ISYLevelDevice
|
|
|
88
80
|
// };
|
|
89
81
|
// };
|
|
90
82
|
|
|
91
|
-
|
|
92
|
-
export interface MapsToEndpointType<T extends EndpointType> {
|
|
83
|
+
export interface MapsToEndpointType<T extends EndpointType> {
|
|
93
84
|
initialize(endpoint: Endpoint<T>): void;
|
|
94
|
-
|
|
95
85
|
}
|
|
96
86
|
|
|
97
87
|
type BehaviorList<T extends ClusterBehavior> = SupportedBehaviors & T;
|
|
98
88
|
|
|
99
|
-
export interface MapsToEndpoint<T extends ClusterBehavior>
|
|
100
|
-
|
|
101
|
-
initialize<K extends MutableEndpoint.With<EndpointType.Empty,BehaviorList<T>>>(endpoint: Endpoint<K>): void;
|
|
102
|
-
|
|
89
|
+
export interface MapsToEndpoint<T extends ClusterBehavior> {
|
|
90
|
+
//@ts-ignore
|
|
91
|
+
initialize<K extends MutableEndpoint.With<EndpointType.Empty, BehaviorList<T>>>(endpoint: Endpoint<K>): void;
|
|
103
92
|
}
|
|
104
|
-
|
|
105
|
-
// export const ISYLevelDevice = <T extends Constructor<ISYDeviceNode<any,any,any,any>>>(base: T) =>
|
|
106
|
-
// class extends base {
|
|
107
|
-
// get level(): number {
|
|
108
|
-
// return super.drivers.ST?.value;
|
|
109
|
-
// }
|
|
110
|
-
// };
|
|
111
|
-
|
|
112
|
-
// tslint:disable-next-line: variable-name
|
|
113
|
-
|
|
114
|
-
// export const ISYUpdateableLevelDevice = <T extends Constructor<ISYDeviceNode<any,any,any>>>(base: T) =>
|
|
115
|
-
// class extends base {
|
|
116
|
-
// get level(): number {
|
|
117
|
-
// return this.local.ST;
|
|
118
|
-
// }
|
|
119
|
-
|
|
120
|
-
// public async updateLevel(level: number): Promise<any> {
|
|
121
|
-
// if (level != this.local.ST && level !== (this.pending.ST ?? this.local.ST)) {
|
|
122
|
-
|
|
123
|
-
// this.pending.ST = level;
|
|
124
|
-
// if (level > 0) {
|
|
125
|
-
// return this.sendCommand(
|
|
126
|
-
// Commands.On,
|
|
127
|
-
// this.convertTo(level, this.uom.ST)
|
|
128
|
-
// ).then((p) => {
|
|
129
|
-
// //this.local.ST = this.pending.ST; *Wait to receive propertu update from subscription
|
|
130
|
-
// this.pending.ST = null;
|
|
131
|
-
// });
|
|
132
|
-
// } else {
|
|
133
|
-
// return this.sendCommand(Commands.Off).then((p) => {
|
|
134
|
-
// //this.local.ST = this.pending.ST; *Wait to receive propertu update from subscription
|
|
135
|
-
// this.pending.ST = null;
|
|
136
|
-
// });
|
|
137
|
-
// }
|
|
138
|
-
// }
|
|
139
|
-
// return Promise.resolve();
|
|
140
|
-
// }
|
|
141
|
-
// };
|
|
@@ -1,182 +1,159 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Category } from '../Definitions/Global/Categories.js';
|
|
2
|
+
import type { Command } from '../Definitions/Global/Commands.js';
|
|
2
3
|
import type { Driver } from '../Definitions/Global/Drivers.js';
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
5
|
-
import {
|
|
4
|
+
import type { Event } from '../Definitions/Global/Events.js';
|
|
5
|
+
import type { Family } from '../Definitions/index.js';
|
|
6
|
+
import { type ISY } from '../ISY.js';
|
|
7
|
+
import type { ISYDevice, ISYDeviceInfo } from '../ISYDevice.js';
|
|
8
|
+
import { ISYNode } from '../ISYNode.js';
|
|
6
9
|
import type { ISYScene } from '../ISYScene.js';
|
|
7
10
|
import type { DriverState } from '../Model/DriverState.js';
|
|
8
11
|
import type { NodeInfo } from '../Model/NodeInfo.js';
|
|
9
|
-
import type { Category } from '../Definitions/Global/Categories.js';
|
|
10
|
-
import type { Command } from '../Definitions/Global/Commands.js';
|
|
11
|
-
import type { Event } from '../Definitions/Global/Events.js';
|
|
12
12
|
import type { StringKeys } from '../Utils.js';
|
|
13
|
-
import type { Family } from '../Definitions/index.js';
|
|
14
13
|
|
|
15
|
-
export
|
|
14
|
+
export class ISYDeviceNode<
|
|
15
|
+
T extends Family,
|
|
16
|
+
D extends ISYNode.DriverSignatures,
|
|
17
|
+
C extends ISYNode.CommandSignatures,
|
|
18
|
+
E extends ISYNode.EventSignatures = { [x in keyof D]: Event.DriverToEvent<D[x]> & { driver: x } } & { [x in keyof C]: Event.CommandToEvent<C[x]> & { command: x } }
|
|
19
|
+
>
|
|
20
|
+
extends ISYNode<T, D, C, E>
|
|
21
|
+
implements ISYDeviceInfo
|
|
16
22
|
{
|
|
17
|
-
|
|
18
|
-
deviceClass: any;
|
|
23
|
+
public declare family: T;
|
|
19
24
|
|
|
20
|
-
|
|
25
|
+
public readonly typeCode: string;
|
|
26
|
+
public readonly deviceClass: any;
|
|
27
|
+
public readonly category: Category;
|
|
28
|
+
public readonly subCategory: number;
|
|
21
29
|
|
|
22
|
-
|
|
30
|
+
//public readonly isDimmable: boolean;
|
|
23
31
|
|
|
24
|
-
|
|
32
|
+
//public _parentDevice: ISYDeviceNode<T, any, any, any>;
|
|
33
|
+
//public readonly children: Array<ISYDeviceNode<T, any, any, any>> = [];
|
|
25
34
|
|
|
35
|
+
public _enabled: any;
|
|
36
|
+
productName: string;
|
|
37
|
+
model: string;
|
|
26
38
|
modelNumber: string;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
this.subCategory = Number(s[1]);
|
|
73
|
-
|
|
74
|
-
// console.log(nodeDetail);
|
|
75
|
-
// if (this.parentAddress !== this.address && this.parentAddress !== undefined) {
|
|
76
|
-
// this._parentDevice = isy.getDevice(this.parentAddress) as unknown as ISYDeviceNode<T, any, any, any>;
|
|
77
|
-
// if (!isNullOrUndefined(this._parentDevice)) {
|
|
78
|
-
// this._parentDevice.addChild(this);
|
|
79
|
-
// }
|
|
80
|
-
// }
|
|
81
|
-
// if (Array.isArray(node.property)) {
|
|
82
|
-
// for (const prop of node.property) {
|
|
83
|
-
// this.local[prop.id] = this.convertFrom(prop.value, prop.uom, prop.id as Driver.Literal);
|
|
84
|
-
// this.formatted[prop.id] = prop.formatted;
|
|
85
|
-
// this.uom[prop.id] = prop.uom;
|
|
86
|
-
// this.logger(
|
|
87
|
-
// `Property ${Controls[prop.id].label} (${prop.id}) initialized to: ${this.local[prop.id]} (${this.formatted[prop.id]})`
|
|
88
|
-
// );
|
|
89
|
-
// }
|
|
90
|
-
// } else if (node.property) {
|
|
91
|
-
// this.local[node.property.id] = this.convertFrom(
|
|
92
|
-
// node.property.value,
|
|
93
|
-
// node.property.uom,
|
|
94
|
-
// node.property.id as Driver.Literal
|
|
95
|
-
// );
|
|
96
|
-
// this.formatted[node.property.id] = node.property.formatted;
|
|
97
|
-
// this.uom[node.property.id] = node.property.uom;
|
|
98
|
-
// this.logger(
|
|
99
|
-
// `Property ${Controls[node.property.id].label} (${node.property.id}) initialized to: ${this.local[node.property.id]} (${this.formatted[node.property.id]})`
|
|
100
|
-
// );
|
|
101
|
-
// }
|
|
102
|
-
}
|
|
39
|
+
version: string;
|
|
40
|
+
|
|
41
|
+
constructor(isy: ISY, node: NodeInfo) {
|
|
42
|
+
super(isy, node);
|
|
43
|
+
|
|
44
|
+
this.family = node.family as T;
|
|
45
|
+
this.nodeType = 1;
|
|
46
|
+
this.type = node.type;
|
|
47
|
+
this._enabled = node.enabled;
|
|
48
|
+
this.deviceClass = node.deviceClass;
|
|
49
|
+
this.parentAddress = node.pnode;
|
|
50
|
+
const s = this.type.split('.');
|
|
51
|
+
this.category = Number(s[0]) as Category;
|
|
52
|
+
this.subCategory = Number(s[1]);
|
|
53
|
+
|
|
54
|
+
// console.log(nodeDetail);
|
|
55
|
+
// if (this.parentAddress !== this.address && this.parentAddress !== undefined) {
|
|
56
|
+
// this._parentDevice = isy.getDevice(this.parentAddress) as unknown as ISYDeviceNode<T, any, any, any>;
|
|
57
|
+
// if (!isNullOrUndefined(this._parentDevice)) {
|
|
58
|
+
// this._parentDevice.addChild(this);
|
|
59
|
+
// }
|
|
60
|
+
// }
|
|
61
|
+
// if (Array.isArray(node.property)) {
|
|
62
|
+
// for (const prop of node.property) {
|
|
63
|
+
// this.local[prop.id] = this.convertFrom(prop.value, prop.uom, prop.id as Driver.Literal);
|
|
64
|
+
// this.formatted[prop.id] = prop.formatted;
|
|
65
|
+
// this.uom[prop.id] = prop.uom;
|
|
66
|
+
// this.logger(
|
|
67
|
+
// `Property ${Controls[prop.id].label} (${prop.id}) initialized to: ${this.local[prop.id]} (${this.formatted[prop.id]})`
|
|
68
|
+
// );
|
|
69
|
+
// }
|
|
70
|
+
// } else if (node.property) {
|
|
71
|
+
// this.local[node.property.id] = this.convertFrom(
|
|
72
|
+
// node.property.value,
|
|
73
|
+
// node.property.uom,
|
|
74
|
+
// node.property.id as Driver.Literal
|
|
75
|
+
// );
|
|
76
|
+
// this.formatted[node.property.id] = node.property.formatted;
|
|
77
|
+
// this.uom[node.property.id] = node.property.uom;
|
|
78
|
+
// this.logger(
|
|
79
|
+
// `Property ${Controls[node.property.id].label} (${node.property.id}) initialized to: ${this.local[node.property.id]} (${this.formatted[node.property.id]})`
|
|
80
|
+
// );
|
|
81
|
+
// }
|
|
82
|
+
}
|
|
83
|
+
manufacturer: string;
|
|
103
84
|
productId: string | number;
|
|
104
85
|
modelName: string;
|
|
105
86
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// } finally {
|
|
179
|
-
// return changed;
|
|
180
|
-
// }
|
|
181
|
-
// }
|
|
87
|
+
_parentDevice: ISYDevice<T, any, any, any>;
|
|
88
|
+
children: ISYNode<any, any, any, any>[];
|
|
89
|
+
|
|
90
|
+
public addChild<K extends ISYNode<any, any, any, any>>(childDevice: K) {
|
|
91
|
+
this.children.push(childDevice);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// override get parentNode() : ISYDevice<T, any, any, any> {
|
|
95
|
+
// super.parentNode()
|
|
96
|
+
// if (this._parentDevice === undefined) {
|
|
97
|
+
// if (this.parentAddress !== this.address && this.parentAddress !== null && this.parentAddress !== undefined) {
|
|
98
|
+
// this._parentDevice = this.isy.getDevice(this.parentAddress) as unknown as ISYDeviceNode<T, Driver.Literal, string>;
|
|
99
|
+
// if (this._parentDevice !== null) {
|
|
100
|
+
// this._parentDevice.addChild(this);
|
|
101
|
+
// }
|
|
102
|
+
// }
|
|
103
|
+
// this._parentDevice = null;
|
|
104
|
+
// }
|
|
105
|
+
// return this._parentDevice;
|
|
106
|
+
// }
|
|
107
|
+
|
|
108
|
+
// public async readProperty(propertyName: Driver.Literal): Promise<DriverState> {
|
|
109
|
+
// var result = await this.isy.sendRequest(`nodes/${this.address}/${propertyName}`);
|
|
110
|
+
// this.logger(JSON.stringify(result), "debug");
|
|
111
|
+
// return result.property;
|
|
112
|
+
// }
|
|
113
|
+
|
|
114
|
+
// public async readProperties(): Promise<DriverState[]> {
|
|
115
|
+
// var result = await this.isy.sendRequest(`nodes/${this.address}/status`);
|
|
116
|
+
// this.logger(JSON.stringify(result), "debug");
|
|
117
|
+
// return result.property;
|
|
118
|
+
// }
|
|
119
|
+
|
|
120
|
+
// public async updateProperty(propertyName: Driver.Literal, value: string): Promise<any> {
|
|
121
|
+
// const val = this.convertTo(Number(value), Number(this.uom[propertyName]));
|
|
122
|
+
// this.logger(`Updating property ${Controls[propertyName].label}. incoming value: ${value} outgoing value: ${val}`);
|
|
123
|
+
// this.pending[propertyName] = value;
|
|
124
|
+
// return this.isy.sendRequest(`nodes/${this.address}/set/${propertyName}/${val}`).then((p) => {
|
|
125
|
+
// this.local[propertyName] = value;
|
|
126
|
+
// this.pending[propertyName] = null;
|
|
127
|
+
// });
|
|
128
|
+
// }
|
|
129
|
+
|
|
130
|
+
// public override handlePropertyChange(driver: any, value: any, formattedValue: string) {
|
|
131
|
+
// let changed = false;
|
|
132
|
+
// const priorVal = this.local[driver];
|
|
133
|
+
// try {
|
|
134
|
+
// const val = this.convertFrom(value, this.uom[driver]);
|
|
135
|
+
|
|
136
|
+
// if (this.local[driver] !== val) {
|
|
137
|
+
// this.logger(`Property ${Controls[driver].label} (${driver}) updated to: ${val} (${formattedValue})`);
|
|
138
|
+
// this.local[driver] = val;
|
|
139
|
+
// this.formatted[driver] = formattedValue;
|
|
140
|
+
// this.lastChanged = new Date();
|
|
141
|
+
// changed = true;
|
|
142
|
+
// } else {
|
|
143
|
+
// this.logger(`Update event triggered, property ${Controls[driver].label} (${driver}) is unchanged.`);
|
|
144
|
+
// }
|
|
145
|
+
// if (changed) {
|
|
146
|
+
// this.emit("PropertyChanged", driver, val, priorVal, formattedValue);
|
|
147
|
+
|
|
148
|
+
// this.scenes.forEach((element) => {
|
|
149
|
+
// this.logger(`Recalulating ${element.deviceFriendlyName}`);
|
|
150
|
+
// element.recalculateState();
|
|
151
|
+
// });
|
|
152
|
+
// }
|
|
153
|
+
// } catch (error) {
|
|
154
|
+
// this.logger(error, "error");
|
|
155
|
+
// } finally {
|
|
156
|
+
// return changed;
|
|
157
|
+
// }
|
|
158
|
+
// }
|
|
182
159
|
}
|