isy-nodejs 1.0.2-alpha.3 → 1.0.2-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/CodeGeneration/NodeClassFactory.js +76 -33
- 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 +13 -8
- 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 -10
- 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/NodeClassFactory.d.ts +6 -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/NodeClassFactory.ts +144 -39
- package/src/CodeGeneration/NodeFactory.ts +341 -0
- 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 +20 -28
- 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 +8 -2
- 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 +39 -14
- 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
|
@@ -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,13 +12,13 @@ import { ZigBeeLegacy } 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 = "Thermostat";
|
|
16
16
|
|
|
17
17
|
type Commands = Thermostat.Commands;
|
|
18
18
|
type Drivers = Thermostat.Drivers;
|
|
19
19
|
|
|
20
20
|
export class ThermostatNode extends Base<Drivers, Commands> implements Thermostat.Interface {
|
|
21
|
-
public readonly commands = {
|
|
21
|
+
public override readonly commands = {
|
|
22
22
|
CLISPH: this.updateHeatSetpoint,
|
|
23
23
|
CLISPC: this.updateCoolSetpoint,
|
|
24
24
|
CLIMD: this.updateMode,
|
|
@@ -29,7 +29,8 @@ export class ThermostatNode extends Base<Drivers, Commands> implements Thermosta
|
|
|
29
29
|
QUERY: this.query,
|
|
30
30
|
ADRPST: this.adr
|
|
31
31
|
};
|
|
32
|
-
static nodeDefId = "Thermostat";
|
|
32
|
+
static override nodeDefId = "Thermostat";
|
|
33
|
+
static override implements = ["Thermostat"];
|
|
33
34
|
declare readonly nodeDefId: "Thermostat";
|
|
34
35
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
35
36
|
super(isy, nodeInfo);
|
|
@@ -43,33 +44,15 @@ export class ThermostatNode extends Base<Drivers, Commands> implements Thermosta
|
|
|
43
44
|
this.drivers.CLISMD = Driver.create("CLISMD", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Unknown, label: "Schedule Mode", name: "scheduleMode" });
|
|
44
45
|
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Unknown, label: "Responding", name: "responding" });
|
|
45
46
|
}
|
|
46
|
-
async updateHeatSetpoint(value: ) {
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
async
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
async
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
async updateFanMode(value: ) {
|
|
56
|
-
return this.sendCommand("CLIFS", { value: value });
|
|
57
|
-
}
|
|
58
|
-
async updateScheduleMode(value: ) {
|
|
59
|
-
return this.sendCommand("CLISMD", { value: value });
|
|
60
|
-
}
|
|
61
|
-
async heatSetpointShift(value: ) {
|
|
62
|
-
return this.sendCommand("CLISPHD", { value: value });
|
|
63
|
-
}
|
|
64
|
-
async coolSetpointShift(value: ) {
|
|
65
|
-
return this.sendCommand("CLISPCD", { value: value });
|
|
66
|
-
}
|
|
67
|
-
async query() {
|
|
68
|
-
return this.sendCommand("QUERY");
|
|
69
|
-
}
|
|
70
|
-
async adr(value: ) {
|
|
71
|
-
return this.sendCommand("ADRPST", { value: value });
|
|
72
|
-
}
|
|
47
|
+
async updateHeatSetpoint(value: ) { return this.sendCommand("CLISPH", { value: value }); }
|
|
48
|
+
async updateCoolSetpoint(value: ) { return this.sendCommand("CLISPC", { value: value }); }
|
|
49
|
+
async updateMode(value: ) { return this.sendCommand("CLIMD", { value: value }); }
|
|
50
|
+
async updateFanMode(value: ) { return this.sendCommand("CLIFS", { value: value }); }
|
|
51
|
+
async updateScheduleMode(value: ) { return this.sendCommand("CLISMD", { value: value }); }
|
|
52
|
+
async heatSetpointShift(value: ) { return this.sendCommand("CLISPHD", { value: value }); }
|
|
53
|
+
async coolSetpointShift(value: ) { return this.sendCommand("CLISPCD", { value: value }); }
|
|
54
|
+
async query() { return this.sendCommand("QUERY"); }
|
|
55
|
+
async adr(value: ) { return this.sendCommand("ADRPST", { value: value }); }
|
|
73
56
|
public get temperature(): {
|
|
74
57
|
|
|
75
58
|
return this.drivers.ST?.value;
|
|
@@ -122,8 +105,9 @@ export namespace Thermostat {
|
|
|
122
105
|
export interface Interface extends Omit<InstanceType<typeof ThermostatNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
123
106
|
nodeDefId: "Thermostat";
|
|
124
107
|
}
|
|
125
|
-
export function is(node: ISYNode<any, any, any, any>): node is ThermostatNode {
|
|
126
|
-
|
|
108
|
+
export function is(node: ISYNode<any, any, any, any>): node is ThermostatNode { return ["Thermostat"].includes(node.nodeDefId); }
|
|
109
|
+
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ThermostatNode {
|
|
110
|
+
return ["Thermostat"].includes(node.nodeDefId);
|
|
127
111
|
}
|
|
128
112
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
129
113
|
return new ThermostatNode(isy, nodeInfo);
|
package/src/Devices/index.ts
CHANGED
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
|
|
2
1
|
import type { Family } from '../Definitions/index.js';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import * as Insteon from './Insteon/index.js';
|
|
3
|
+
import { NodeFactory } from './NodeFactory.js';
|
|
4
|
+
import { ZWaveBaseDevice } from './ZWave/ZWaveBaseDevice.js';
|
|
5
|
+
import * as ZWave from './ZWave/index.js';
|
|
5
6
|
|
|
6
7
|
export const Devices = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Insteon: Insteon,
|
|
9
|
+
ZWave: { Base: ZWaveBaseDevice },
|
|
10
|
+
ZigBee: {}
|
|
11
|
+
};
|
|
12
|
+
Insteon.AlertModuleArmed.Node
|
|
13
|
+
|
|
14
|
+
export * as Insteon from './Insteon/index.js';
|
|
15
|
+
export * as ZWave from './ZWave/index.js';
|
|
10
16
|
|
|
11
|
-
}
|
|
12
17
|
|
|
13
18
|
export namespace Devices {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
export type Insteon = typeof Insteon;
|
|
20
|
+
export type ZWave = typeof ZWave;
|
|
21
|
+
export type ZigBee = {};
|
|
17
22
|
}
|
|
18
23
|
|
|
19
|
-
|
|
20
24
|
export type Devices<T extends Family.Insteon | Family.ZWave | Family.ZigBee> = (typeof Devices)[`Insteon`];
|
|
21
25
|
|
|
22
|
-
export type ToDevice<T extends keyof Devices<any>> = T extends keyof Devices<infer B> ? Devices<B>[`${T}`] : never
|
|
26
|
+
/*export type ToDevice<T extends keyof Devices<any>> = T extends keyof Devices<infer B> ? Devices<B>[`${T}`] : never;*/
|
|
23
27
|
|
|
28
|
+
NodeFactory.sortImplementsRegistry();
|
|
24
29
|
export default Devices;
|
package/src/ISY.ts
CHANGED
|
@@ -470,12 +470,18 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
470
470
|
}
|
|
471
471
|
|
|
472
472
|
public async loadVariables(type: VariableType): Promise<any> {
|
|
473
|
+
try
|
|
474
|
+
{
|
|
473
475
|
const that = this;
|
|
474
476
|
this.logger.info(`Loading ISY Variables of type: ${type}`);
|
|
475
477
|
return this.sendRequest(`vars/definitions/${type}`)
|
|
476
478
|
.then((result) => that.#createVariables(type, result))
|
|
477
479
|
.then(() => that.sendRequest(`vars/get/${type}`))
|
|
478
480
|
.then(that.#setVariableValues.bind(that));
|
|
481
|
+
}
|
|
482
|
+
catch{
|
|
483
|
+
this.logger.warn('error loading variables');
|
|
484
|
+
}
|
|
479
485
|
}
|
|
480
486
|
|
|
481
487
|
public nodeChangedHandler(node: ELKAlarmPanelDevice | ElkAlarmSensorDevice, propertyName = null) {
|
|
@@ -531,12 +537,12 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
531
537
|
if (parameters !== null && parameters !== undefined) {
|
|
532
538
|
if (typeof parameters == 'object') {
|
|
533
539
|
var q = parameters as Record<P, string | number>;
|
|
534
|
-
for (const paramName
|
|
540
|
+
for (const paramName in q) {
|
|
535
541
|
if (paramName === 'value') {
|
|
536
542
|
uriToUse += `/${q[paramName]}`;
|
|
537
543
|
continue;
|
|
538
544
|
}
|
|
539
|
-
if (typeof q[paramName] === 'string' || typeof q[paramName] === 'number')
|
|
545
|
+
else if (typeof q[paramName] === 'string' || typeof q[paramName] === 'number') uriToUse += `/${paramName}/${q[paramName]}`;
|
|
540
546
|
}
|
|
541
547
|
|
|
542
548
|
//uriToUse += `/${q[((p : Record<string,number|number>) => `${p[]}/${p.paramValue}` ).join('/')}`;
|
package/src/ISYDevice.ts
CHANGED
|
@@ -1,67 +1,78 @@
|
|
|
1
1
|
import type { Command } from './Definitions/Global/Commands.js';
|
|
2
2
|
import type { Driver } from './Definitions/Global/Drivers.js';
|
|
3
3
|
import type { UnitOfMeasure } from './Definitions/Global/UOM.js';
|
|
4
|
-
import type { Family } from './Definitions/index.js';
|
|
4
|
+
import type { Category, Family } from './Definitions/index.js';
|
|
5
|
+
import { ISYDeviceNode } from './Devices/ISYDeviceNode.js';
|
|
5
6
|
import type { ISY } from './ISY.js';
|
|
6
7
|
import type { ISYNode } from './ISYNode.js';
|
|
7
8
|
import type { ISYScene } from './ISYScene.js';
|
|
8
9
|
import type { DriverState } from './Model/DriverState.js';
|
|
9
10
|
import type { StringKeys } from './Utils.js';
|
|
10
11
|
|
|
11
|
-
export interface ISYDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
12
|
+
export interface ISYDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures> extends ISYDeviceInfo {
|
|
13
|
+
// #region Properties (22)
|
|
14
|
+
|
|
15
|
+
address: string;
|
|
16
|
+
category: Category;
|
|
17
|
+
commands: Command.ForAll<C>;
|
|
18
|
+
deviceClass: any;
|
|
19
|
+
drivers: Driver.ForAll<D>;
|
|
20
|
+
|
|
21
|
+
events: E;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
family: T;
|
|
24
|
+
hidden: boolean;
|
|
25
|
+
isDimmable: boolean;
|
|
26
|
+
label: string;
|
|
27
|
+
model: string;
|
|
28
|
+
modelNumber: string;
|
|
29
|
+
name: any;
|
|
30
|
+
parentAddress: any;
|
|
31
|
+
productName: string;
|
|
32
|
+
scenes: ISYScene[];
|
|
33
|
+
subCategory: number;
|
|
34
|
+
type: any;
|
|
35
|
+
typeCode: string;
|
|
36
|
+
version: string;
|
|
37
|
+
|
|
38
|
+
vendorName: string;
|
|
39
|
+
|
|
40
|
+
// #endregion Properties (22)
|
|
41
|
+
|
|
42
|
+
// #region Public Methods (18)
|
|
43
|
+
|
|
44
|
+
// #endregion Public Methods (18)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function isDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures>(
|
|
48
|
+
device: ISYNode<T, D, C, E>
|
|
49
|
+
): device is ISYDevice<T, D, C, E> & ISYNode<T, D, C, E> {
|
|
50
|
+
return device instanceof ISYDeviceNode;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function isDeviceClass<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures>(
|
|
54
|
+
device: typeof ISYNode<T, D, C, E>
|
|
55
|
+
): device is (new (...args) => ISYDevice<T, D, C, E>) & typeof ISYNode<T, D, C, E> {
|
|
56
|
+
return device.prototype instanceof ISYDeviceNode;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface ISYDeviceInfo {
|
|
60
|
+
type: string;
|
|
61
|
+
deviceClass: any;
|
|
62
|
+
|
|
63
|
+
productName: string;
|
|
64
|
+
|
|
65
|
+
productId: string | number;
|
|
66
|
+
|
|
67
|
+
modelName: string;
|
|
68
|
+
|
|
69
|
+
modelNumber: string;
|
|
70
|
+
|
|
71
|
+
version: string;
|
|
72
|
+
|
|
73
|
+
category: Category;
|
|
74
|
+
|
|
75
|
+
subCategory: number;
|
|
76
|
+
|
|
77
|
+
manufacturer: string;
|
|
67
78
|
}
|
package/src/ISYNode.ts
CHANGED
|
@@ -13,10 +13,10 @@ import type { Constructor } from './Devices/Constructor.js';
|
|
|
13
13
|
import type { DriverState } from './Model/DriverState.js';
|
|
14
14
|
import { NodeInfo } from './Model/NodeInfo.js';
|
|
15
15
|
import type { NodeNotes } from './Model/NodeNotes.js';
|
|
16
|
-
import { type StringKeys } from './Utils.js';
|
|
16
|
+
import { type ObjectToUnion, type StringKeys } from './Utils.js';
|
|
17
17
|
import { NodeType } from './ISYConstants.js';
|
|
18
18
|
import type { ISYScene } from './ISYScene.js';
|
|
19
|
-
import type { UnionToIntersection } from '@matter/general';
|
|
19
|
+
import type { Merge, UnionToIntersection } from '@matter/general';
|
|
20
20
|
|
|
21
21
|
//type DriverValues<DK extends string | number | symbol,V = any> = {[x in DK]?:V};
|
|
22
22
|
|
|
@@ -41,6 +41,8 @@ export class ISYNode<
|
|
|
41
41
|
public static family: Family;
|
|
42
42
|
public static nodeDefId = 'Unknown';
|
|
43
43
|
|
|
44
|
+
public static implements: string[] = [];
|
|
45
|
+
|
|
44
46
|
public baseName: any;
|
|
45
47
|
public commands: Command.ForAll<C>;
|
|
46
48
|
//public readonly formatted: DriverValues<keyof D,string> = {};
|
|
@@ -50,7 +52,7 @@ export class ISYNode<
|
|
|
50
52
|
public drivers: Driver.ForAll<D> = {} as Driver.ForAll<D>;
|
|
51
53
|
public enabled: boolean;
|
|
52
54
|
//TODO: add signature for non-command/non-driver events
|
|
53
|
-
public events: Event.FunctionSigFor<E, Event.NodeEventEmitter<this
|
|
55
|
+
public events: Merge<Event.NodeEventEmitter<this>,Event.FunctionSigFor<E, Event.NodeEventEmitter<this>>>;
|
|
54
56
|
//Event.FunctionSigFor<Event.ForAll<E,typeof this>> & Omit<EventEmitter,'on'>
|
|
55
57
|
/*{
|
|
56
58
|
[x in E]: x extends keyof D ? {name:`${D[x]["name"]}Changed`, driver: x, value: D[x]["value"], formatted: string, uom: UnitOfMeasure}
|
|
@@ -125,6 +127,7 @@ export class ISYNode<
|
|
|
125
127
|
}
|
|
126
128
|
this.events = Event.createEmitter(this);
|
|
127
129
|
|
|
130
|
+
|
|
128
131
|
//this.logger(this.nodeDefId);
|
|
129
132
|
this.lastChanged = new Date();
|
|
130
133
|
}
|
|
@@ -222,7 +225,13 @@ export class ISYNode<
|
|
|
222
225
|
|
|
223
226
|
public async getNotes(): Promise<NodeNotes> {
|
|
224
227
|
try {
|
|
225
|
-
const result = await this.isy.sendRequest(`nodes/${this.address}/notes`, {
|
|
228
|
+
const result = await this.isy.sendRequest(`nodes/${this.address}/notes`, {
|
|
229
|
+
trailingSlash: false,
|
|
230
|
+
errorLogLevel: 'debug',
|
|
231
|
+
validateStatus(status) {
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
});
|
|
226
235
|
if (result !== null && result !== undefined) {
|
|
227
236
|
return result.NodeProperties;
|
|
228
237
|
} else {
|
|
@@ -235,7 +244,7 @@ export class ISYNode<
|
|
|
235
244
|
|
|
236
245
|
public handleControlTrigger(controlName: keyof E & keyof C): boolean {
|
|
237
246
|
//this.lastChanged = new Date();
|
|
238
|
-
this.events.emit(
|
|
247
|
+
//this.events.emit(`${this.commands[controlName].name}`, controlName);
|
|
239
248
|
return true;
|
|
240
249
|
}
|
|
241
250
|
|
|
@@ -343,9 +352,13 @@ export class ISYNode<
|
|
|
343
352
|
that.logger(e);
|
|
344
353
|
}
|
|
345
354
|
}
|
|
346
|
-
|
|
347
|
-
public async sendCommand(command: StringKeys<C>, parameters
|
|
348
|
-
|
|
355
|
+
public async sendCommand(command: StringKeys<C>): Promise<any>;
|
|
356
|
+
public async sendCommand(command: StringKeys<C>, value: string | number, parameters: Record<string | symbol, string | number | undefined>);
|
|
357
|
+
public async sendCommand(command: StringKeys<C>, parameters: Record<string | symbol, string | number | undefined> | string | number): Promise<any>;
|
|
358
|
+
async sendCommand(command: StringKeys<C>, value?: string | number, parameters?: Record<string | symbol, string | number | undefined> | string | number): Promise<any> {
|
|
359
|
+
if (value !== undefined && typeof parameters === 'object') {
|
|
360
|
+
return this.isy.sendNodeCommand(this, command, { default: value, ...parameters });
|
|
361
|
+
}
|
|
349
362
|
return this.isy.sendNodeCommand(this, command, parameters);
|
|
350
363
|
}
|
|
351
364
|
|
|
@@ -515,6 +528,17 @@ export namespace ISYNode {
|
|
|
515
528
|
export type EventsOf<T> = T extends ISYNode<any, any, any, infer E> ? E : never;
|
|
516
529
|
export type FamilyOf<T> = T extends ISYNode<infer F, any, any, any> ? F : never;
|
|
517
530
|
|
|
531
|
+
export type DriverTypesOf<T extends ISYNode> = ObjectToUnion<DriversOf<T>>;
|
|
532
|
+
|
|
533
|
+
export type CommandTypesOf<T extends ISYNode> = ObjectToUnion<CommandsOf<T>>;
|
|
534
|
+
|
|
535
|
+
export type EventTypesOf<T extends ISYNode> = ObjectToUnion<EventsOf<T>>;
|
|
536
|
+
|
|
537
|
+
export type EventNamesOf<T extends ISYNode> = EventTypesOf<T> extends { name: infer U } ? U : never;
|
|
538
|
+
|
|
539
|
+
export type DriverNamesOf<T extends ISYNode> = DriverTypesOf<T> extends { name: infer U } ? U : never;
|
|
540
|
+
|
|
541
|
+
export type CommandNamesOf<T extends ISYNode> = CommandTypesOf<T> extends { name: infer U } ? U : never;
|
|
518
542
|
export type List = NodeList;
|
|
519
543
|
|
|
520
544
|
export type DriverMap<T extends NodeList> = Flatten<{
|
package/src/ISYScene.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Command } from './Definitions/Global/Commands.js';
|
|
2
|
+
import type { Driver } from './Definitions/Global/Drivers.js';
|
|
2
3
|
import { Family } from './Definitions/Global/Families.js';
|
|
4
|
+
import {Insteon} from './Devices/index.js';
|
|
5
|
+
import type { ISY } from './ISY.js';
|
|
3
6
|
import { Commands, LinkType } from './ISYConstants.js';
|
|
7
|
+
import { ISYDevice } from './ISYDevice.js';
|
|
4
8
|
import { ISYNode } from './ISYNode.js';
|
|
5
|
-
import { ISYDevice } from './ISYDevice.js';
|
|
6
|
-
import type { ISY } from './ISY.js';
|
|
7
|
-
import type { Driver } from './Definitions/Global/Drivers.js';
|
|
8
|
-
import type { Command } from './Definitions/Global/Commands.js';
|
|
9
9
|
import type { NodeInfo, StaticNodeInfo } from './Model/NodeInfo.js';
|
|
10
10
|
|
|
11
|
-
interface SceneInfo extends StaticNodeInfo
|
|
12
|
-
{
|
|
11
|
+
interface SceneInfo extends StaticNodeInfo {
|
|
13
12
|
members?: {
|
|
14
13
|
link: any;
|
|
15
14
|
};
|
|
16
15
|
flag?: any;
|
|
17
|
-
nodeDefId?:
|
|
16
|
+
nodeDefId?: 'InsteonDimmer';
|
|
18
17
|
address: string;
|
|
19
18
|
name: string;
|
|
20
19
|
family?: Family;
|
|
@@ -23,13 +22,12 @@ interface SceneInfo extends StaticNodeInfo
|
|
|
23
22
|
startDelay: number;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Command.Signatures<'DON' | 'DOF'>> {
|
|
27
|
-
|
|
25
|
+
export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>, Command.Signatures<'DON' | 'DOF'>> {
|
|
28
26
|
public connectionType: string;
|
|
29
27
|
public batteryOperated: boolean;
|
|
30
28
|
public deviceType: any;
|
|
31
29
|
public deviceFriendlyName: string;
|
|
32
|
-
public members:
|
|
30
|
+
public members: ISYNode<any, any, any,any>[];
|
|
33
31
|
public typeCode: string;
|
|
34
32
|
constructor(isy: ISY, scene: SceneInfo) {
|
|
35
33
|
super(isy, scene as NodeInfo);
|
|
@@ -47,11 +45,15 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
47
45
|
// childDevices.push(node._);
|
|
48
46
|
// childDevices.push(object)
|
|
49
47
|
const s = node._;
|
|
50
|
-
const d = isy.
|
|
48
|
+
const d = isy.getNode(s);
|
|
51
49
|
|
|
52
|
-
if (d !== null && d !== undefined) {
|
|
50
|
+
if (d !== null && d !== undefined) {
|
|
51
|
+
//d.addLink(this);
|
|
52
|
+
}
|
|
53
53
|
|
|
54
|
-
if (d instanceof Insteon.
|
|
54
|
+
if (d instanceof Insteon.DimmerLamp.Node && node.type !== LinkType.Controller) {
|
|
55
|
+
this.isDimmable = true;
|
|
56
|
+
}
|
|
55
57
|
this.members.push(d);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
@@ -62,11 +64,14 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
62
64
|
// childDevices.push(node._);
|
|
63
65
|
// childDevices.push(object)
|
|
64
66
|
const s = scene.members.link._;
|
|
65
|
-
const d = isy.
|
|
66
|
-
if (d) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
const d = isy.getNode(s);
|
|
68
|
+
if (d) {
|
|
69
|
+
//d.addLink(this);
|
|
70
|
+
// tslint:disable-next-line: triple-equals
|
|
71
|
+
if ((d.isDimmable && node.type != LinkType.Controller) || this.isDimmable) {
|
|
72
|
+
this.isDimmable = true;
|
|
73
|
+
}
|
|
74
|
+
this.members.push(d);
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
}
|
|
@@ -76,11 +81,12 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
76
81
|
// Get the current light state
|
|
77
82
|
get isOn() {
|
|
78
83
|
for (const device of this.members) {
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
let d = device as unknown as ISYNode;
|
|
85
|
+
/*if (Insteon.RelayLamp.isImplementedBy(d)) {
|
|
86
|
+
if (d.status > 0) {
|
|
81
87
|
return true;
|
|
82
88
|
}
|
|
83
|
-
}
|
|
89
|
+
}*/
|
|
84
90
|
}
|
|
85
91
|
return false;
|
|
86
92
|
}
|
|
@@ -89,10 +95,10 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
89
95
|
let lightDeviceCount = 0;
|
|
90
96
|
let blevel = 0;
|
|
91
97
|
for (const device of this.members) {
|
|
92
|
-
if (device instanceof Insteon.
|
|
98
|
+
if (device instanceof Insteon.DimmerSwitch.Node) {
|
|
93
99
|
lightDeviceCount++;
|
|
94
100
|
//blevel += device.brightnessLevel;
|
|
95
|
-
} else if (device instanceof Insteon.
|
|
101
|
+
} else if (device instanceof Insteon.RelayLampSwitch.Node) {
|
|
96
102
|
lightDeviceCount++;
|
|
97
103
|
blevel += device.drivers.ST ? 100 : 0;
|
|
98
104
|
}
|
|
@@ -114,7 +120,6 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
114
120
|
|
|
115
121
|
if (this.isDimmable) {
|
|
116
122
|
this.emit('propertyChanged', 'brightnesslevel', this.brightnessLevel, this.brightnessLevel, this.brightnessLevel + '%');
|
|
117
|
-
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
125
|
public async updateIsOn(lightState: boolean) {
|
|
@@ -125,7 +130,7 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
125
130
|
}
|
|
126
131
|
public getAreAllLightsInSpecifiedState(state) {
|
|
127
132
|
for (const device of this.members) {
|
|
128
|
-
if (device instanceof Insteon.
|
|
133
|
+
if (device instanceof Insteon.RelayLampSwitch.Node) {
|
|
129
134
|
if (device.drivers.ST !== state) {
|
|
130
135
|
return false;
|
|
131
136
|
}
|
|
@@ -133,6 +138,4 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
133
138
|
}
|
|
134
139
|
return true;
|
|
135
140
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
141
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ClusterBehavior, type Behavior } from '@matter/node';
|
|
2
|
+
import type { RelaxTypes } from '../../Utils.js';
|
|
3
|
+
import type { Constructor } from '../../Devices/Constructor.js';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export namespace BehaviorRegistry
|
|
8
|
+
{
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const registry: {[x:string]: Constructor<ClusterBehavior>} = {};
|
|
12
|
+
|
|
13
|
+
type ClusterBehaviorType = RelaxTypes<Omit<typeof ClusterBehavior, "withInterface" | "unimplemented">>;
|
|
14
|
+
|
|
15
|
+
export function register<T extends Behavior.Type>(behavior: {cluster: {name: string}} & Constructor<ClusterBehavior>): void
|
|
16
|
+
{
|
|
17
|
+
registry[behavior.cluster.name.toLowerCase()] = behavior;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function get(cluster: string): Constructor<ClusterBehavior>
|
|
21
|
+
{
|
|
22
|
+
return registry[cluster.toLowerCase()];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
}
|
|
@@ -12,6 +12,8 @@ import { MappingRegistry } from '../../../Model/ClusterMap.js';
|
|
|
12
12
|
import { ClusterForBehavior, ISYClusterBehavior, type PropertyChange } from '../ISYClusterBehavior.js';
|
|
13
13
|
|
|
14
14
|
import { Converter } from '../../../Converters.js';
|
|
15
|
+
import { BehaviorRegistry } from '../BehaviorRegistry.js';
|
|
16
|
+
import type { ClusterBehavior } from '@matter/node';
|
|
15
17
|
|
|
16
18
|
export class ISYOnOffBehavior extends ISYClusterBehavior(OnOffLightRequirements.OnOffServer, InsteonRelayDevice) {
|
|
17
19
|
override async initialize(_options?: {}) {
|
|
@@ -38,6 +40,8 @@ export class ISYOnOffBehavior extends ISYClusterBehavior(OnOffLightRequirements.
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
|
|
43
|
+
BehaviorRegistry.register(ISYOnOffBehavior);
|
|
44
|
+
|
|
41
45
|
export class ISYDimmableBehavior extends ISYClusterBehavior(DimmableLightRequirements.LevelControlServer, InsteonDimmableDevice) {
|
|
42
46
|
override async initialize(_options?: {}) {
|
|
43
47
|
await super.initialize(_options);
|
|
@@ -57,3 +61,5 @@ export class ISYDimmableBehavior extends ISYClusterBehavior(DimmableLightRequire
|
|
|
57
61
|
|
|
58
62
|
}
|
|
59
63
|
}
|
|
64
|
+
|
|
65
|
+
BehaviorRegistry.register(ISYDimmableBehavior);
|