isy-nodejs 1.0.7-alpha.0 → 1.0.9-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/CodeGeneration/CodeFactory.js +12 -6
- package/dist/esm/CodeGeneration/CodeFactory.js.map +1 -1
- package/dist/esm/CodeGeneration/NodeClassFactory.js +16 -7
- package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
- package/dist/esm/Definitions/Global/Commands.js +6 -7
- package/dist/esm/Definitions/Global/Commands.js.map +1 -1
- package/dist/esm/Definitions/Global/Drivers.js +36 -23
- package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
- package/dist/esm/Definitions/Insteon/generated/Boolean.js +10 -0
- package/dist/esm/Definitions/Insteon/generated/Boolean.js.map +1 -1
- package/dist/esm/Definitions/Insteon/generated/Error.js +10 -0
- package/dist/esm/Definitions/Insteon/generated/Error.js.map +1 -1
- package/dist/esm/Definitions/Insteon/generated/Lock.js +26 -0
- package/dist/esm/Definitions/Insteon/generated/Lock.js.map +1 -1
- package/dist/esm/Definitions/Insteon/generated/OnLevelRelay.js +10 -0
- package/dist/esm/Definitions/Insteon/generated/OnLevelRelay.js.map +1 -1
- package/{src/Devices/ISYMultiNodeDevice.ts → dist/esm/Devices/CompositeDevice.js} +108 -9
- package/dist/esm/Devices/CompositeDevice.js.map +1 -0
- package/dist/esm/Devices/DeviceFactory.js +1 -1
- package/dist/esm/Devices/DeviceFactory.js.map +1 -1
- package/dist/esm/Devices/ISYDeviceNode.js +1 -0
- package/dist/esm/Devices/ISYDeviceNode.js.map +1 -1
- package/dist/esm/Devices/ISYMultiNodeDevice.js +25 -1
- package/dist/esm/Devices/ISYMultiNodeDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +8 -8
- package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +8 -8
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +8 -8
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +8 -8
- package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +5 -5
- package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/DoorLock.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +14 -14
- package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +12 -12
- package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +7 -7
- package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +5 -5
- package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +8 -8
- package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Pir2844.js +10 -10
- package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +10 -10
- package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +5 -5
- package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +5 -5
- package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Siren.js +9 -9
- package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +5 -5
- package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/TempLinc.js +12 -12
- package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/Thermostat.js +12 -12
- package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/X10.js +6 -6
- package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +20 -11
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js +2 -4
- package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js +2 -2
- package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js +20 -7
- package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js +15 -34
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +14 -13
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -16
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/index.js +10 -11
- package/dist/esm/Devices/Insteon/index.js.map +1 -1
- package/dist/esm/Devices/Lutron/Generated/LoadShed.js +6 -6
- package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -1
- package/dist/esm/Devices/NodeFactory.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/Channel.js +7 -7
- package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +10 -10
- package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/Main.js +7 -7
- package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/PulseCounter.js +8 -8
- package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/Relay.js +6 -6
- package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +6 -6
- package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -1
- package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +9 -9
- package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -1
- package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +6 -6
- package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -1
- package/dist/esm/Devices/ZigBee/ZWaveBaseDevice.js +9 -0
- package/dist/esm/Devices/ZigBee/ZWaveBaseDevice.js.map +1 -0
- package/dist/esm/Devices/ZigBee/ZigBeeBase.js +9 -0
- package/dist/esm/Devices/ZigBee/ZigBeeBase.js.map +1 -0
- package/dist/esm/Devices/ZigBee/index.js +3 -0
- package/dist/esm/Devices/ZigBee/index.js.map +1 -0
- package/dist/esm/ISY.js +19 -3
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +37 -5
- package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -1
- package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js +1 -1
- package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
- package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +6 -1
- package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
- package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js +24 -0
- package/dist/esm/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.js.map +1 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js +23 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYDimmableBehavior.js.map +1 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +4 -4
- package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
- package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js +23 -0
- package/dist/esm/Matter/Behaviors/Insteon/IdentifyBehavior.js.map +1 -0
- package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js +24 -0
- package/dist/esm/Matter/Behaviors/Insteon/RelayOnOffBehavior.js.map +1 -0
- package/dist/esm/Matter/Behaviors/Insteon/index.js +4 -0
- package/dist/esm/Matter/Behaviors/Insteon/index.js.map +1 -0
- package/dist/esm/Matter/Behaviors/index.js +6 -0
- package/dist/esm/Matter/Behaviors/index.js.map +1 -0
- package/dist/esm/Matter/Bridge/Server.js +23 -11
- package/dist/esm/Matter/Bridge/Server.js.map +1 -1
- package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
- package/dist/esm/Matter/Mappings/MappingRegistry.js +5 -4
- package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -1
- package/dist/esm/Matter/Mappings/index.js +1 -0
- package/dist/esm/Matter/Mappings/index.js.map +1 -1
- package/dist/esm/Registry.js +77 -0
- package/dist/esm/Registry.js.map +1 -0
- package/dist/esm/Utils.js +12 -0
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/types/CodeGeneration/CodeFactory.d.ts +6 -5
- package/dist/esm/types/CodeGeneration/CodeFactory.d.ts.map +1 -1
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Commands.d.ts +4 -4
- package/dist/esm/types/Definitions/Global/Commands.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Drivers.d.ts +10 -8
- package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Events.d.ts +3 -3
- package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts +4 -0
- package/dist/esm/types/Definitions/Insteon/generated/Boolean.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts +4 -0
- package/dist/esm/types/Definitions/Insteon/generated/Error.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts +6 -0
- package/dist/esm/types/Definitions/Insteon/generated/Lock.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts +4 -0
- package/dist/esm/types/Definitions/Insteon/generated/OnLevelRelay.d.ts.map +1 -1
- package/dist/esm/types/Devices/CompositeDevice.d.ts +64 -0
- package/dist/esm/types/Devices/CompositeDevice.d.ts.map +1 -0
- package/dist/esm/types/Devices/EndpointFor.d.ts +3 -2
- package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
- package/dist/esm/types/Devices/ISYDeviceNode.d.ts +4 -1
- package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
- package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts +25 -1
- package/dist/esm/types/Devices/ISYMultiNodeDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +2 -3
- package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +8 -6
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts +7 -2
- package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts +2 -2
- package/dist/esm/types/Devices/Insteon/InsteonDimmableDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts +2 -2
- package/dist/esm/types/Devices/Insteon/InsteonDimmerOutletDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts +17 -5
- package/dist/esm/types/Devices/Insteon/InsteonDoorWindowSensorDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +17 -16
- 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/InsteonOnOffOutletDevice.d.ts +14 -7
- package/dist/esm/types/Devices/Insteon/InsteonOnOffOutletDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts +0 -1
- package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/index.d.ts +10 -11
- package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +2 -3
- package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -1
- package/dist/esm/types/Devices/NodeFactory.d.ts +1 -1
- package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +2 -3
- package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +2 -3
- package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +2 -3
- package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +2 -3
- package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +2 -3
- package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +2 -3
- package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -1
- package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +2 -3
- package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -1
- package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts +10 -0
- package/dist/esm/types/Devices/ZigBee/ZWaveBaseDevice.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts +10 -0
- package/dist/esm/types/Devices/ZigBee/ZigBeeBase.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZigBee/index.d.ts +2 -0
- package/dist/esm/types/Devices/ZigBee/index.d.ts.map +1 -0
- package/dist/esm/types/ISY.d.ts.map +1 -1
- package/dist/esm/types/ISYDevice.d.ts +3 -5
- package/dist/esm/types/ISYDevice.d.ts.map +1 -1
- package/dist/esm/types/ISYNode.d.ts +32 -25
- package/dist/esm/types/ISYNode.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +9 -5
- package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +8 -5
- package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts +321 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts +42 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYDimmableBehavior.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +4 -4
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts +24 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/IdentifyBehavior.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts +241 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/RelayOnOffBehavior.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts +4 -0
- package/dist/esm/types/Matter/Behaviors/Insteon/index.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/index.d.ts +6 -0
- package/dist/esm/types/Matter/Behaviors/index.d.ts.map +1 -0
- package/dist/esm/types/Matter/Bridge/Server.d.ts +1 -0
- package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
- package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +4173 -42
- package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -1
- package/dist/esm/types/Matter/Mappings/index.d.ts +1 -0
- package/dist/esm/types/Matter/Mappings/index.d.ts.map +1 -1
- package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
- package/dist/esm/types/Registry.d.ts +37 -0
- package/dist/esm/types/Registry.d.ts.map +1 -0
- package/dist/esm/types/Utils.d.ts +13 -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 +16 -8
- package/src/CodeGeneration/NodeClassFactory.ts +7 -9
- package/src/Definitions/Global/Commands.ts +16 -13
- package/src/Definitions/Global/Drivers.ts +56 -36
- package/src/Definitions/Global/Events.ts +4 -4
- package/src/Definitions/Insteon/generated/Boolean.ts +9 -0
- package/src/Definitions/Insteon/generated/Error.ts +9 -0
- package/src/Definitions/Insteon/generated/Lock.ts +28 -0
- package/src/Definitions/Insteon/generated/OnLevelRelay.ts +11 -0
- package/src/Devices/Brultech/Generated/Channel.ts +8 -9
- package/src/Devices/Brultech/Generated/Main.ts +11 -12
- package/src/Devices/CompositeDevice.ts +277 -0
- package/src/Devices/DeviceFactory.ts +1 -1
- package/src/Devices/ISYDeviceNode.ts +8 -2
- package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +7 -8
- package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +7 -8
- package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +7 -8
- package/src/Devices/Insteon/Generated/BinaryAlarm.ts +7 -8
- package/src/Devices/Insteon/Generated/BinaryControl.ts +7 -8
- package/src/Devices/Insteon/Generated/DimmerLamp.ts +9 -10
- package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +9 -10
- package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +9 -10
- package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +9 -10
- package/src/Devices/Insteon/Generated/DimmerSwitch.ts +6 -7
- package/src/Devices/Insteon/Generated/DoorLock.ts +7 -8
- package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +7 -8
- package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +7 -8
- package/src/Devices/Insteon/Generated/EzrainInput.ts +7 -8
- package/src/Devices/Insteon/Generated/EzrainOutput.ts +7 -8
- package/src/Devices/Insteon/Generated/FanLincMotor.ts +7 -8
- package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +15 -16
- package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +13 -14
- package/src/Devices/Insteon/Generated/ImeterSolo.ts +8 -9
- package/src/Devices/Insteon/Generated/IrLincTx.ts +6 -7
- package/src/Devices/Insteon/Generated/KeypadButton.ts +7 -8
- package/src/Devices/Insteon/Generated/KeypadDimmer.ts +9 -10
- package/src/Devices/Insteon/Generated/KeypadRelay.ts +7 -8
- package/src/Devices/Insteon/Generated/OnOffControl.ts +7 -8
- package/src/Devices/Insteon/Generated/Pir2844.ts +11 -12
- package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +7 -8
- package/src/Devices/Insteon/Generated/Pir2844c.ts +11 -12
- package/src/Devices/Insteon/Generated/RelayLamp.ts +7 -8
- package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +7 -8
- package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +7 -8
- package/src/Devices/Insteon/Generated/RelaySwitch.ts +6 -7
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +6 -7
- package/src/Devices/Insteon/Generated/RemoteLinc2.ts +7 -8
- package/src/Devices/Insteon/Generated/Siren.ts +10 -11
- package/src/Devices/Insteon/Generated/SirenAlert.ts +6 -7
- package/src/Devices/Insteon/Generated/TempLinc.ts +13 -14
- package/src/Devices/Insteon/Generated/Thermostat.ts +13 -14
- package/src/Devices/Insteon/Generated/X10.ts +7 -8
- package/src/Devices/Insteon/InsteonDeviceFactory.ts +26 -12
- package/src/Devices/Insteon/InsteonDimmableDevice.ts +4 -4
- package/src/Devices/Insteon/InsteonDimmerOutletDevice.ts +3 -2
- package/src/Devices/Insteon/InsteonDoorWindowSensorDevice.ts +30 -7
- package/src/Devices/Insteon/InsteonFanDevice.ts +21 -36
- package/src/Devices/Insteon/InsteonOnOffOutletDevice.ts +16 -15
- package/src/Devices/Insteon/InsteonRelayDevice.ts +2 -3
- package/src/Devices/Insteon/index.ts +10 -14
- package/src/Devices/Lutron/Generated/LoadShed.ts +7 -8
- package/src/Devices/NCD/Generated/Relay.ts +19 -23
- package/src/Devices/NodeFactory.ts +1 -1
- package/src/Devices/Poly/Generated/MatterBridge.ts +6 -7
- package/src/Devices/Scene/Generated/Scene.ts +5 -6
- package/src/Devices/UDI/Generated/Channel.ts +8 -9
- package/src/Devices/UDI/Generated/Em3MainChannel.ts +11 -12
- package/src/Devices/UDI/Generated/Main.ts +8 -9
- package/src/Devices/UDI/Generated/PulseCounter.ts +9 -10
- package/src/Devices/UDI/Generated/Relay.ts +7 -8
- package/src/Devices/UDI/Generated/TemperatureSensor.ts +7 -8
- package/src/Devices/ZWave/Generated/ColorSwitch.ts +17 -18
- package/src/Devices/ZWave/Generated/DimmerSwitch.ts +7 -8
- package/src/Devices/ZigBee/ZigBeeBase.ts +22 -0
- package/src/Devices/ZigBee/index.ts +13 -0
- package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +22 -20
- package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +92 -76
- package/src/ISY.ts +27 -5
- package/src/ISYDevice.ts +4 -3
- package/src/ISYNode.ts +48 -32
- package/src/Matter/Behaviors/BehaviorRegistry.ts +44 -8
- package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +1 -1
- package/src/Matter/Behaviors/ISYClusterBehavior.ts +15 -6
- package/src/Matter/Behaviors/Insteon/DimmerLevelControlBehavior.ts +30 -0
- package/src/Matter/Behaviors/Insteon/IdentifyBehavior.ts +26 -0
- package/src/Matter/Behaviors/Insteon/RelayOnOffBehavior.ts +34 -0
- package/src/Matter/Behaviors/Insteon/index.ts +3 -0
- package/src/Matter/Behaviors/index.ts +6 -0
- package/src/Matter/Bridge/Server.ts +94 -85
- package/src/Matter/Mappings/Insteon.ts +3 -3
- package/src/Matter/Mappings/MappingRegistry.ts +29 -40
- package/src/Matter/Mappings/index.ts +3 -1
- package/src/Registry.ts +112 -0
- package/src/Utils.ts +29 -0
- package/src/Devices/Insteon/DimmerLampSwitch.ts +0 -207
- package/src/Devices/Insteon/InsteonRelaySwitchDevice.ts +0 -11
- package/src/Devices/Insteon/RelayLampSwitch.ts +0 -132
- package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +0 -66
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
|
|
2
|
+
import type { Driver } from '../Definitions/Global/Drivers.js';
|
|
3
|
+
import type { UnitOfMeasure } from '../Definitions/Global/UOM.js';
|
|
4
|
+
|
|
5
|
+
import type { ISYDevice } from '../ISYDevice.js';
|
|
6
|
+
import { DriverMap, ISYNode, NodeList } from '../ISYNode.js';
|
|
7
|
+
import type { ISYScene } from '../ISYScene.js';
|
|
8
|
+
import type { DriverState } from '../Model/DriverState.js';
|
|
9
|
+
import type { Category, Family } from '../Definitions/index.js';
|
|
10
|
+
import { ISY } from '../ISY.js';
|
|
11
|
+
import type { NodeInfo } from '../Model/NodeInfo.js';
|
|
12
|
+
import { NodeFactory } from './NodeFactory.js';
|
|
13
|
+
import type { Constructor } from 'type-fest';
|
|
14
|
+
import type { ISYDeviceNode } from './ISYDeviceNode.js';
|
|
15
|
+
import type { ObjectToUnion, StringKeys } from '../Utils.js';
|
|
16
|
+
|
|
17
|
+
import type { Fan } from './Insteon/InsteonFanDevice.js';
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
export type CompositeDevice<F extends Family, N extends {[x: string]: ISYDeviceNode<F,any,any,any>},R = N[keyof N]> =
|
|
21
|
+
{[x in keyof N]: N[x]} & {
|
|
22
|
+
|
|
23
|
+
root: R;
|
|
24
|
+
|
|
25
|
+
events: { [x in keyof N]: N[x]['events'] };
|
|
26
|
+
|
|
27
|
+
drivers: { [x in keyof N]: N[x]['drivers'] };
|
|
28
|
+
|
|
29
|
+
commands: { [x in keyof N]: N[x]['commands'] };
|
|
30
|
+
|
|
31
|
+
addNode: (node: NodeInfo | ISYNode, isy?: ISY) => void;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
} & ISYDevice<Family, any,unknown,any>;
|
|
36
|
+
|
|
37
|
+
export namespace CompositeDevice {
|
|
38
|
+
export type DriversOf<N extends CompositeDevice<any,any>> = N['drivers'];
|
|
39
|
+
|
|
40
|
+
export type CommandsOf<N extends CompositeDevice<any,any>> = N['commands'];
|
|
41
|
+
|
|
42
|
+
export type EventsOf<N extends CompositeDevice<any,any>> = N['events'];
|
|
43
|
+
|
|
44
|
+
export type DriverNamesOf<N extends CompositeDevice<any,any>> = ObjectToUnion<{[x in StringKeys<DriversOf<N>>] : `${x}.${ISYNode.DriverNamesOf<N[x]> & string}`}>;
|
|
45
|
+
|
|
46
|
+
export type CommandNamesOf<N extends CompositeDevice<any, any>> = ObjectToUnion<{ [x in StringKeys<DriversOf<N>>]: `${x}.${ISYNode.CommandNamesOf<N[x]> & string}` }>;
|
|
47
|
+
|
|
48
|
+
export type EventNamesOf<N extends CompositeDevice<any, any>> = ObjectToUnion<{ [x in StringKeys<DriversOf<N>>]: `${x}.${ISYNode.EventNamesOf<N[x]> & string}` }>;
|
|
49
|
+
|
|
50
|
+
export type DriverKeysOf<N extends CompositeDevice<any, any>> = ObjectToUnion<{ [x in StringKeys<DriversOf<N>>]: `${x}.${ISYNode.DriverKeysOf<N[x]> & string}` }>;
|
|
51
|
+
|
|
52
|
+
export type CommandKeysOf<N extends CompositeDevice<any, any>> = ObjectToUnion<{ [x in StringKeys<CommandsOf<N>>]: `${x}.${ISYNode.CommandKeysOf<N[x]> & string}` }>;
|
|
53
|
+
|
|
54
|
+
export function of<F extends Family, N extends { [x: string]: ISYDeviceNode<any, any, any, any> }>(nodes: { [x in keyof N]: Constructor<N[x]> }, keyFunction: (node: NodeInfo) => [keyof N, boolean]): Constructor<CompositeDevice<F, N>>;
|
|
55
|
+
export function of<F extends Family, N extends { [x: string]: ISYDeviceNode<any, any, any, any> }>(nodes: { [x in keyof N]: Constructor<N[x]> }, keyMap: {[x in keyof N]: number | string}): Constructor<CompositeDevice<F, N>>;
|
|
56
|
+
export function of<F extends Family, N extends { [x: string]: ISYDeviceNode<any, any, any, any> }>(nodes: { [x in keyof N]: Constructor<N[x]> }, keyFunction: {[x in keyof N]: number | string} |((node: NodeInfo) => [keyof N, boolean])): Constructor<CompositeDevice<F, N>> {
|
|
57
|
+
if(keyFunction === undefined) {
|
|
58
|
+
keyFunction = (node: NodeInfo) => [node.name, true];
|
|
59
|
+
}
|
|
60
|
+
if(typeof keyFunction === 'function') {
|
|
61
|
+
return CompositeOf(nodes, keyFunction as any);
|
|
62
|
+
}
|
|
63
|
+
else if(typeof keyFunction === 'object') {
|
|
64
|
+
return CompositeOf(nodes, (node: NodeInfo | ISYNode) => {for (const key in keyFunction)
|
|
65
|
+
{
|
|
66
|
+
if(node.address.endsWith(keyFunction[key].toString())) {
|
|
67
|
+
return [key, keyFunction[key] == 1 || keyFunction[key] == '1'];
|
|
68
|
+
}
|
|
69
|
+
}});
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function isComposite(device: ISYDevice<any, any, any, any>): device is CompositeDevice<any, any> {
|
|
78
|
+
return 'addNode' in device;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
export function CompositeOf <F extends Family, N extends {[x: string]: ISYDeviceNode<any,any,any,any>}>(nodes: {[x in keyof N]: Constructor<N[x]>}, keyFunction: (node: NodeInfo | ISYNode) => [keyof N,boolean]) : Constructor<CompositeDevice<F,N>>
|
|
85
|
+
{
|
|
86
|
+
return class implements ISYDevice<Family, any, unknown, any> {
|
|
87
|
+
readonly isy: ISY;
|
|
88
|
+
|
|
89
|
+
constructor(...args: any[]) {
|
|
90
|
+
|
|
91
|
+
if(args[0] instanceof ISY) {
|
|
92
|
+
this.isy = args.shift();
|
|
93
|
+
for (const nodeInfo of args as NodeInfo[]) {
|
|
94
|
+
|
|
95
|
+
this.addNode(nodeInfo, this.isy);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
category: Category;
|
|
101
|
+
deviceClass: any;
|
|
102
|
+
enabled: boolean;
|
|
103
|
+
family: Family;
|
|
104
|
+
hidden: boolean;
|
|
105
|
+
isDimmable: boolean;
|
|
106
|
+
label: string;
|
|
107
|
+
model: string;
|
|
108
|
+
modelNumber: string;
|
|
109
|
+
name: any;
|
|
110
|
+
parentAddress: any;
|
|
111
|
+
productName: string;
|
|
112
|
+
scenes: ISYScene[];
|
|
113
|
+
subCategory: number;
|
|
114
|
+
type: any;
|
|
115
|
+
typeCode: string;
|
|
116
|
+
version: string;
|
|
117
|
+
vendorName: string;
|
|
118
|
+
productId: string | number;
|
|
119
|
+
modelName: string;
|
|
120
|
+
manufacturer: string;
|
|
121
|
+
|
|
122
|
+
public address: string;
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
public events: { [x in keyof N]: N[x]['events'] } = {} as any;
|
|
126
|
+
|
|
127
|
+
public drivers: { [x in keyof N]: N[x]['drivers'] } = {} as any;
|
|
128
|
+
|
|
129
|
+
public commands: { [x in keyof N]: N[x]['commands'] } = {} as any;
|
|
130
|
+
|
|
131
|
+
public root = null;
|
|
132
|
+
|
|
133
|
+
public addNode(node: ISYNode): void;
|
|
134
|
+
public addNode(node: NodeInfo, isy: ISY): void;
|
|
135
|
+
public addNode(node: NodeInfo | ISYNode, isy = this.isy) {
|
|
136
|
+
|
|
137
|
+
let n : ISYDeviceNode<any, any, any, any> = null;
|
|
138
|
+
if(node instanceof ISYNode) {
|
|
139
|
+
n = node as ISYDeviceNode<any, any, any, any>;
|
|
140
|
+
}
|
|
141
|
+
else
|
|
142
|
+
{
|
|
143
|
+
n = new nodes[keyFunction(node)[0]](isy, node);
|
|
144
|
+
}
|
|
145
|
+
const keyL = keyFunction(node);
|
|
146
|
+
const key = keyL[0];
|
|
147
|
+
const isRoot = keyL[1];
|
|
148
|
+
|
|
149
|
+
Object.defineProperty(this, key, n);
|
|
150
|
+
|
|
151
|
+
Object.defineProperty(this.events, key, { get(): () => any { return this[key].events; } });
|
|
152
|
+
Object.defineProperty(this.drivers, key, { get(): () => any { return this[key].drivers; } });
|
|
153
|
+
Object.defineProperty(this.commands, key, { get(): () => any { return this[key].commands; } });
|
|
154
|
+
if(isRoot) {
|
|
155
|
+
this.address = node.address;
|
|
156
|
+
this.family = n.family;
|
|
157
|
+
this.category = n.category;
|
|
158
|
+
this.deviceClass = n.deviceClass;
|
|
159
|
+
this.enabled = n.enabled;
|
|
160
|
+
this.hidden = n.hidden;
|
|
161
|
+
this.isDimmable = n.isDimmable;
|
|
162
|
+
this.label = n.label;
|
|
163
|
+
this.model = n.model;
|
|
164
|
+
this.modelNumber = n.modelNumber;
|
|
165
|
+
this.name = n.name;
|
|
166
|
+
this.parentAddress = n.parentAddress;
|
|
167
|
+
this.productName = n.productName;
|
|
168
|
+
this.scenes = n.scenes;
|
|
169
|
+
this.subCategory = n.subCategory;
|
|
170
|
+
this.type = n.type;
|
|
171
|
+
this.typeCode = n.typeCode;
|
|
172
|
+
this.version = n.version;
|
|
173
|
+
this.vendorName = n.vendorName;
|
|
174
|
+
this.productId = n.productId;
|
|
175
|
+
this.modelName = n.modelName;
|
|
176
|
+
this.manufacturer = n.manufacturer;
|
|
177
|
+
this.root = n;
|
|
178
|
+
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
} as unknown as Constructor<CompositeDevice<F,N>>;
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
/*
|
|
192
|
+
|
|
193
|
+
export class ISYMultiNodeDevice<T extends Family, N extends NodeList>
|
|
194
|
+
implements ISYDevice<T, ISYNode.DriverMap<N>, ISYNode.CommandMap<N>, string> {
|
|
195
|
+
commands: UnionToIntersection<{ [x in keyof N]: ISYNode.CommandsOf<N[x]>; } extends Record<string, unknown> ? keyof N extends string ? { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends Record<string, unknown> ? keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends string ? { [x in `${string & keyof N}.${string & keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N]}`]: { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N][x extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? any : B : B : B : B : B : B : B : B : B : B : x]; } : never : never : never : never>;
|
|
196
|
+
readProperty(propertyName: keyof UnionToIntersection<{ [x in keyof N]: ISYNode.DriversOf<N[x]>; } extends Record<string, unknown> ? keyof N extends string ? { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N] extends Record<string, unknown> ? keyof { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N] extends string ? { [x in `${string & keyof N}.${string & keyof { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N]}`]: { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N][x extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? any : B : B : B : B : B : B : B : B : B : B : x]; } : never : never : never : never>): Promise<DriverState> {
|
|
197
|
+
throw new Error('Method not implemented.');
|
|
198
|
+
}
|
|
199
|
+
sendCommand(command: Extract<keyof UnionToIntersection<{ [x in keyof N]: ISYNode.CommandsOf<N[x]>; } extends Record<string, unknown> ? keyof N extends string ? { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends Record<string, unknown> ? keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends string ? { [x in `${string & keyof N}.${string & keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N]}`]: { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N][x extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? any : B : B : B : B : B : B : B : B : B : B : x]; } : never : never : never : never>, string>, parameters?: Record<string | symbol, string | number> | string | number): Promise<any> {
|
|
200
|
+
throw new Error('Method not implemented.');
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
updateProperty(propertyName: keyof ISYNode.DriverMap<N>, value: string): Promise<any> {
|
|
204
|
+
throw new Error('Method not implemented.');
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
handleControlTrigger(controlName: string): boolean {
|
|
208
|
+
throw new Error('Method not implemented.');
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
_parentDevice: ISYDevice<T, any, any, any>;
|
|
212
|
+
children: ISYNode<any, any, any, any>[];
|
|
213
|
+
convertTo(value: any, uom: number);
|
|
214
|
+
convertTo(value: any, uom: number, propertyName: keyof DriverMap<N>);
|
|
215
|
+
convertTo(value: unknown, uom: unknown, propertyName?: unknown): any {
|
|
216
|
+
throw new Error('Method not implemented.');
|
|
217
|
+
}
|
|
218
|
+
convertFrom(value: any, uom: number);
|
|
219
|
+
convertFrom(value: any, uom: number, propertyName: keyof DriverMap<N>);
|
|
220
|
+
convertFrom(value: unknown, uom: unknown, propertyName?: unknown): any {
|
|
221
|
+
throw new Error('Method not implemented.');
|
|
222
|
+
}
|
|
223
|
+
addLink(isyScene: ISYScene): void {
|
|
224
|
+
throw new Error('Method not implemented.');
|
|
225
|
+
}
|
|
226
|
+
addChild(childDevice: ISYNode<any, any, any, any>): void {
|
|
227
|
+
throw new Error('Method not implemented.');
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
readProperties(): Promise<DriverState[]> {
|
|
231
|
+
throw new Error('Method not implemented.');
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
refresh(): Promise<any> {
|
|
235
|
+
throw new Error('Method not implemented.');
|
|
236
|
+
}
|
|
237
|
+
refreshNotes(): Promise<void> {
|
|
238
|
+
throw new Error('Method not implemented.');
|
|
239
|
+
}
|
|
240
|
+
parseResult(node: { property: DriverState | DriverState[]; }): void {
|
|
241
|
+
throw new Error('Method not implemented.');
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
handlePropertyChange(propertyName: keyof ISYNode.DriverMap<N> & string, value: any, uom: UnitOfMeasure, prec: number, formattedValue: string): boolean {
|
|
245
|
+
throw new Error('Method not implemented.');
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
logger(arg0: string): unknown {
|
|
249
|
+
throw new Error('Method not implemented.');
|
|
250
|
+
}
|
|
251
|
+
handleEvent(evt: any): unknown {
|
|
252
|
+
throw new Error('Method not implemented.');
|
|
253
|
+
}
|
|
254
|
+
on(arg0: string, arg1: any): unknown {
|
|
255
|
+
throw new Error('Method not implemented.');
|
|
256
|
+
}
|
|
257
|
+
name: any;
|
|
258
|
+
drivers: Driver.ForAll<ISYNode.DriverMap<N>>;
|
|
259
|
+
address: string;
|
|
260
|
+
family: T;
|
|
261
|
+
typeCode: string;
|
|
262
|
+
deviceClass: any;
|
|
263
|
+
parentAddress: any;
|
|
264
|
+
category: number;
|
|
265
|
+
subCategory: number;
|
|
266
|
+
type: any;
|
|
267
|
+
scenes: ISYScene[];
|
|
268
|
+
hidden: boolean;
|
|
269
|
+
enabled: boolean;
|
|
270
|
+
productName: string;
|
|
271
|
+
model: string;
|
|
272
|
+
modelNumber: string;
|
|
273
|
+
version: string;
|
|
274
|
+
isDimmable: boolean;
|
|
275
|
+
label: string;
|
|
276
|
+
|
|
277
|
+
} */
|
|
@@ -15,7 +15,7 @@ export class DeviceFactory {
|
|
|
15
15
|
|
|
16
16
|
if ((node.family ?? Family.Insteon) == Family.Insteon) {
|
|
17
17
|
|
|
18
|
-
return InsteonDeviceFactory.
|
|
18
|
+
return InsteonDeviceFactory.getDeviceDetails(node) as any;
|
|
19
19
|
|
|
20
20
|
} else { return {name: 'Unsupported Device', class: null, unsupported: true} }
|
|
21
21
|
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import type EventEmitter from 'events';
|
|
1
2
|
import type { Category } from '../Definitions/Global/Categories.js';
|
|
2
3
|
import type { Command } from '../Definitions/Global/Commands.js';
|
|
3
4
|
import type { Driver } from '../Definitions/Global/Drivers.js';
|
|
4
5
|
import type { Event } from '../Definitions/Global/Events.js';
|
|
5
6
|
import type { Family } from '../Definitions/index.js';
|
|
7
|
+
import type { NodeEvent } from '../Events/NodeEvent.js';
|
|
6
8
|
import { type ISY } from '../ISY.js';
|
|
7
9
|
import type { ISYDevice, ISYDeviceInfo } from '../ISYDevice.js';
|
|
8
10
|
import { ISYNode } from '../ISYNode.js';
|
|
9
11
|
import type { ISYScene } from '../ISYScene.js';
|
|
10
12
|
import type { DriverState } from '../Model/DriverState.js';
|
|
11
13
|
import type { NodeInfo } from '../Model/NodeInfo.js';
|
|
12
|
-
import type {
|
|
14
|
+
import type {StringKeys } from '../Utils.js';
|
|
13
15
|
|
|
14
16
|
export class ISYDeviceNode<
|
|
15
17
|
T extends Family,
|
|
@@ -18,7 +20,8 @@ export class ISYDeviceNode<
|
|
|
18
20
|
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
21
|
>
|
|
20
22
|
extends ISYNode<T, D, C, E>
|
|
21
|
-
implements ISYDeviceInfo
|
|
23
|
+
implements ISYDeviceInfo,
|
|
24
|
+
ISYDevice<T, Driver.ForAll<D>, Command.ForAll<C>, any>
|
|
22
25
|
{
|
|
23
26
|
public declare family: T;
|
|
24
27
|
|
|
@@ -27,6 +30,8 @@ export class ISYDeviceNode<
|
|
|
27
30
|
public readonly category: Category;
|
|
28
31
|
public readonly subCategory: number;
|
|
29
32
|
|
|
33
|
+
|
|
34
|
+
|
|
30
35
|
//public readonly isDimmable: boolean;
|
|
31
36
|
|
|
32
37
|
//public _parentDevice: ISYDeviceNode<T, any, any, any>;
|
|
@@ -80,6 +85,7 @@ export class ISYDeviceNode<
|
|
|
80
85
|
// );
|
|
81
86
|
// }
|
|
82
87
|
}
|
|
88
|
+
vendorName: string;
|
|
83
89
|
manufacturer: string;
|
|
84
90
|
productId: string | number;
|
|
85
91
|
modelName: string;
|
|
@@ -17,7 +17,7 @@ const nodeDefId = "AlertModuleArmed";
|
|
|
17
17
|
type Commands = AlertModuleArmed.Commands;
|
|
18
18
|
type Drivers = AlertModuleArmed.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class AlertModuleArmedNode extends Base<Drivers, Commands> implements AlertModuleArmed.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
DON: this.on,
|
|
23
23
|
DOF: this.off,
|
|
@@ -26,12 +26,12 @@ export class AlertModuleArmedNode extends Base<Drivers, Commands> implements Ale
|
|
|
26
26
|
WDU: this.writeChanges
|
|
27
27
|
};
|
|
28
28
|
static override nodeDefId = "AlertModuleArmed";
|
|
29
|
-
static override implements = [
|
|
30
|
-
declare readonly nodeDefId:
|
|
29
|
+
static override implements = ['AlertModuleArmed', "SirenAlert", "SirenArm"];
|
|
30
|
+
declare readonly nodeDefId: 'AlertModuleArmed';
|
|
31
31
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
32
32
|
super(isy, nodeInfo);
|
|
33
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
34
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
33
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
34
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
35
35
|
}
|
|
36
36
|
async on() { return this.sendCommand("DON"); }
|
|
37
37
|
async off() { return this.sendCommand("DOF"); }
|
|
@@ -50,13 +50,12 @@ NodeFactory.register(AlertModuleArmedNode);
|
|
|
50
50
|
|
|
51
51
|
export namespace AlertModuleArmed {
|
|
52
52
|
export interface Interface extends Omit<InstanceType<typeof AlertModuleArmedNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
53
|
-
nodeDefId: "AlertModuleArmed";
|
|
54
53
|
}
|
|
55
54
|
export function is(node: ISYNode<any, any, any, any>): node is AlertModuleArmedNode {
|
|
56
|
-
return [
|
|
55
|
+
return ['AlertModuleArmed'].includes(node.nodeDefId);
|
|
57
56
|
}
|
|
58
57
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is AlertModuleArmedNode {
|
|
59
|
-
return [
|
|
58
|
+
return ['AlertModuleArmed', "BallastRelayLampSwitch", "BallastRelayLampSwitch_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "RelayLampOnly", "RelayLampOnly_ADV", "KeypadRelay", "KeypadRelay_ADV", "FanLincMotor", "EZRAIN_Output", "AlertModuleSiren", "AlertModuleSiren_ADV"].includes(node.nodeDefId);
|
|
60
59
|
}
|
|
61
60
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
62
61
|
return new AlertModuleArmedNode(isy, nodeInfo);
|
|
@@ -17,7 +17,7 @@ const nodeDefId = "AlertModuleSiren";
|
|
|
17
17
|
type Commands = AlertModuleSiren.Commands;
|
|
18
18
|
type Drivers = AlertModuleSiren.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class AlertModuleSirenNode extends Base<Drivers, Commands> implements AlertModuleSiren.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
DON: this.on,
|
|
23
23
|
DOF: this.off,
|
|
@@ -28,12 +28,12 @@ export class AlertModuleSirenNode extends Base<Drivers, Commands> implements Ale
|
|
|
28
28
|
WDU: this.writeChanges
|
|
29
29
|
};
|
|
30
30
|
static override nodeDefId = "AlertModuleSiren";
|
|
31
|
-
static override implements = [
|
|
32
|
-
declare readonly nodeDefId:
|
|
31
|
+
static override implements = ['AlertModuleSiren', "AlertModuleArmed", "SirenAlert", "SirenArm"];
|
|
32
|
+
declare readonly nodeDefId: 'AlertModuleSiren' | "AlertModuleSiren_ADV";
|
|
33
33
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
34
34
|
super(isy, nodeInfo);
|
|
35
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
36
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
35
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
36
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
37
37
|
}
|
|
38
38
|
async on(onLevel?: number) { return this.sendCommand("DON", { OL: onLevel }); }
|
|
39
39
|
async off() { return this.sendCommand("DOF"); }
|
|
@@ -55,13 +55,12 @@ NodeFactory.register(AlertModuleSirenNode, "AlertModuleSiren_ADV");
|
|
|
55
55
|
|
|
56
56
|
export namespace AlertModuleSiren {
|
|
57
57
|
export interface Interface extends Omit<InstanceType<typeof AlertModuleSirenNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
58
|
-
nodeDefId: "AlertModuleSiren" | "AlertModuleSiren_ADV";
|
|
59
58
|
}
|
|
60
59
|
export function is(node: ISYNode<any, any, any, any>): node is AlertModuleSirenNode {
|
|
61
|
-
return [
|
|
60
|
+
return ['AlertModuleSiren', "AlertModuleSiren_ADV"].includes(node.nodeDefId);
|
|
62
61
|
}
|
|
63
62
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is AlertModuleSirenNode {
|
|
64
|
-
return [
|
|
63
|
+
return ['AlertModuleSiren', "AlertModuleSiren_ADV"].includes(node.nodeDefId);
|
|
65
64
|
}
|
|
66
65
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
67
66
|
return new AlertModuleSirenNode(isy, nodeInfo);
|
|
@@ -17,7 +17,7 @@ const nodeDefId = "BallastRelayLampSwitch";
|
|
|
17
17
|
type Commands = BallastRelayLampSwitch.Commands;
|
|
18
18
|
type Drivers = BallastRelayLampSwitch.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class BallastRelayLampSwitchNode extends Base<Drivers, Commands> implements BallastRelayLampSwitch.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
DON: this.on,
|
|
23
23
|
DOF: this.off,
|
|
@@ -28,12 +28,12 @@ export class BallastRelayLampSwitchNode extends Base<Drivers, Commands> implemen
|
|
|
28
28
|
WDU: this.writeChanges
|
|
29
29
|
};
|
|
30
30
|
static override nodeDefId = "BallastRelayLampSwitch";
|
|
31
|
-
static override implements = [
|
|
32
|
-
declare readonly nodeDefId:
|
|
31
|
+
static override implements = ['BallastRelayLampSwitch', "RelayLampOnly", "RelayLampOnly_ADV", "IRLincTx", "EZRAIN_Output", "EZIO2x4_Output", "EZIO2x4_Input", "EZIO2x4_Input_ADV", "BinaryAlarm", "BinaryAlarm_ADV", "BinaryControl", "BinaryControl_ADV", "AlertModuleArmed", "SirenAlert", "SirenArm"];
|
|
32
|
+
declare readonly nodeDefId: 'BallastRelayLampSwitch' | "BallastRelayLampSwitch_ADV";
|
|
33
33
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
34
34
|
super(isy, nodeInfo);
|
|
35
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
36
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
35
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
36
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
37
37
|
}
|
|
38
38
|
async on(value?: (0 | 100)) { return this.sendCommand("DON", value); }
|
|
39
39
|
async off() { return this.sendCommand("DOF"); }
|
|
@@ -55,13 +55,12 @@ NodeFactory.register(BallastRelayLampSwitchNode, "BallastRelayLampSwitch_ADV");
|
|
|
55
55
|
|
|
56
56
|
export namespace BallastRelayLampSwitch {
|
|
57
57
|
export interface Interface extends Omit<InstanceType<typeof BallastRelayLampSwitchNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
58
|
-
nodeDefId: "BallastRelayLampSwitch" | "BallastRelayLampSwitch_ADV";
|
|
59
58
|
}
|
|
60
59
|
export function is(node: ISYNode<any, any, any, any>): node is BallastRelayLampSwitchNode {
|
|
61
|
-
return [
|
|
60
|
+
return ['BallastRelayLampSwitch', "BallastRelayLampSwitch_ADV"].includes(node.nodeDefId);
|
|
62
61
|
}
|
|
63
62
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is BallastRelayLampSwitchNode {
|
|
64
|
-
return [
|
|
63
|
+
return ['BallastRelayLampSwitch', "BallastRelayLampSwitch_ADV"].includes(node.nodeDefId);
|
|
65
64
|
}
|
|
66
65
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
67
66
|
return new BallastRelayLampSwitchNode(isy, nodeInfo);
|
|
@@ -17,19 +17,19 @@ const nodeDefId = "BinaryAlarm";
|
|
|
17
17
|
type Commands = BinaryAlarm.Commands;
|
|
18
18
|
type Drivers = BinaryAlarm.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class BinaryAlarmNode extends Base<Drivers, Commands> implements BinaryAlarm.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
QUERY: this.query,
|
|
23
23
|
BEEP: this.beep,
|
|
24
24
|
WDU: this.writeChanges
|
|
25
25
|
};
|
|
26
26
|
static override nodeDefId = "BinaryAlarm";
|
|
27
|
-
static override implements = [
|
|
28
|
-
declare readonly nodeDefId:
|
|
27
|
+
static override implements = ['BinaryAlarm', "BinaryControl", "BinaryControl_ADV", "SirenAlert", "SirenArm"];
|
|
28
|
+
declare readonly nodeDefId: 'BinaryAlarm' | "BinaryAlarm_ADV";
|
|
29
29
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
30
30
|
super(isy, nodeInfo);
|
|
31
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
32
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
31
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
32
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
33
33
|
}
|
|
34
34
|
async query() { return this.sendCommand("QUERY"); }
|
|
35
35
|
async beep(value?: number) { return this.sendCommand("BEEP", value); }
|
|
@@ -47,13 +47,12 @@ NodeFactory.register(BinaryAlarmNode, "BinaryAlarm_ADV");
|
|
|
47
47
|
|
|
48
48
|
export namespace BinaryAlarm {
|
|
49
49
|
export interface Interface extends Omit<InstanceType<typeof BinaryAlarmNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
50
|
-
nodeDefId: "BinaryAlarm" | "BinaryAlarm_ADV";
|
|
51
50
|
}
|
|
52
51
|
export function is(node: ISYNode<any, any, any, any>): node is BinaryAlarmNode {
|
|
53
|
-
return [
|
|
52
|
+
return ['BinaryAlarm', "BinaryAlarm_ADV"].includes(node.nodeDefId);
|
|
54
53
|
}
|
|
55
54
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is BinaryAlarmNode {
|
|
56
|
-
return [
|
|
55
|
+
return ['BinaryAlarm', "BallastRelayLampSwitch", "BallastRelayLampSwitch_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "KeypadRelay", "KeypadRelay_ADV", "BinaryAlarm_ADV"].includes(node.nodeDefId);
|
|
57
56
|
}
|
|
58
57
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
59
58
|
return new BinaryAlarmNode(isy, nodeInfo);
|
|
@@ -17,19 +17,19 @@ const nodeDefId = "BinaryControl";
|
|
|
17
17
|
type Commands = BinaryControl.Commands;
|
|
18
18
|
type Drivers = BinaryControl.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class BinaryControlNode extends Base<Drivers, Commands> implements BinaryControl.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
QUERY: this.query,
|
|
23
23
|
BEEP: this.beep,
|
|
24
24
|
WDU: this.writeChanges
|
|
25
25
|
};
|
|
26
26
|
static override nodeDefId = "BinaryControl";
|
|
27
|
-
static override implements = [
|
|
28
|
-
declare readonly nodeDefId:
|
|
27
|
+
static override implements = ['BinaryControl', "SirenAlert", "SirenArm"];
|
|
28
|
+
declare readonly nodeDefId: 'BinaryControl' | "BinaryControl_ADV";
|
|
29
29
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
30
30
|
super(isy, nodeInfo);
|
|
31
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
32
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
31
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
32
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
33
33
|
}
|
|
34
34
|
async query() { return this.sendCommand("QUERY"); }
|
|
35
35
|
async beep(value?: number) { return this.sendCommand("BEEP", value); }
|
|
@@ -47,13 +47,12 @@ NodeFactory.register(BinaryControlNode, "BinaryControl_ADV");
|
|
|
47
47
|
|
|
48
48
|
export namespace BinaryControl {
|
|
49
49
|
export interface Interface extends Omit<InstanceType<typeof BinaryControlNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
50
|
-
nodeDefId: "BinaryControl" | "BinaryControl_ADV";
|
|
51
50
|
}
|
|
52
51
|
export function is(node: ISYNode<any, any, any, any>): node is BinaryControlNode {
|
|
53
|
-
return [
|
|
52
|
+
return ['BinaryControl', "BinaryControl_ADV"].includes(node.nodeDefId);
|
|
54
53
|
}
|
|
55
54
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is BinaryControlNode {
|
|
56
|
-
return [
|
|
55
|
+
return ['BinaryControl', "BallastRelayLampSwitch", "BallastRelayLampSwitch_ADV", "RelayLampSwitch", "RelayLampSwitch_ADV", "RelayLampSwitchLED", "RelayLampSwitchLED_ADV", "KeypadRelay", "KeypadRelay_ADV", "BinaryAlarm", "BinaryAlarm_ADV", "BinaryControl_ADV"].includes(node.nodeDefId);
|
|
57
56
|
}
|
|
58
57
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
59
58
|
return new BinaryControlNode(isy, nodeInfo);
|
|
@@ -17,7 +17,7 @@ const nodeDefId = "DimmerLampOnly";
|
|
|
17
17
|
type Commands = DimmerLamp.Commands;
|
|
18
18
|
type Drivers = DimmerLamp.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class DimmerLampNode extends Base<Drivers, Commands> implements DimmerLamp.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
DON: this.on,
|
|
23
23
|
DOF: this.off,
|
|
@@ -35,14 +35,14 @@ export class DimmerLampNode extends Base<Drivers, Commands> implements DimmerLam
|
|
|
35
35
|
WDU: this.writeChanges
|
|
36
36
|
};
|
|
37
37
|
static override nodeDefId = "DimmerLampOnly";
|
|
38
|
-
static override implements = [
|
|
39
|
-
declare readonly nodeDefId:
|
|
38
|
+
static override implements = ['DimmerLampOnly', "IRLincTx", "SirenAlert", "SirenArm"];
|
|
39
|
+
declare readonly nodeDefId: 'DimmerLampOnly';
|
|
40
40
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
41
41
|
super(isy, nodeInfo);
|
|
42
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
43
|
-
this.drivers.OL = Driver.create("OL", this, nodeInfo.
|
|
44
|
-
this.drivers.RR = Driver.create("RR", this, nodeInfo.
|
|
45
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
42
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
43
|
+
this.drivers.OL = Driver.create("OL", this, nodeInfo.state['OL'], { uom: UnitOfMeasure.Percent, label: "On Level", name: "onLevel" });
|
|
44
|
+
this.drivers.RR = Driver.create("RR", this, nodeInfo.state['RR'], { uom: UnitOfMeasure.Index, label: "Ramp Rate", name: "rampRate" });
|
|
45
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
46
46
|
}
|
|
47
47
|
async on(value?: number) { return this.sendCommand("DON", value); }
|
|
48
48
|
async off() { return this.sendCommand("DOF"); }
|
|
@@ -76,13 +76,12 @@ NodeFactory.register(DimmerLampNode);
|
|
|
76
76
|
|
|
77
77
|
export namespace DimmerLamp {
|
|
78
78
|
export interface Interface extends Omit<InstanceType<typeof DimmerLampNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
79
|
-
nodeDefId: "DimmerLampOnly";
|
|
80
79
|
}
|
|
81
80
|
export function is(node: ISYNode<any, any, any, any>): node is DimmerLampNode {
|
|
82
|
-
return [
|
|
81
|
+
return ['DimmerLampOnly'].includes(node.nodeDefId);
|
|
83
82
|
}
|
|
84
83
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is DimmerLampNode {
|
|
85
|
-
return [
|
|
84
|
+
return ['DimmerLampOnly', "DimmerLampSwitch", "DimmerLampSwitch_ADV", "DimmerLampSwitchLED", "DimmerLampSwitchLED_ADV"].includes(node.nodeDefId);
|
|
86
85
|
}
|
|
87
86
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
88
87
|
return new DimmerLampNode(isy, nodeInfo);
|
|
@@ -17,7 +17,7 @@ const nodeDefId = "DimmerLampSwitch";
|
|
|
17
17
|
type Commands = DimmerLampSwitch.Commands;
|
|
18
18
|
type Drivers = DimmerLampSwitch.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class DimmerLampSwitchNode extends Base<Drivers, Commands> implements DimmerLampSwitch.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
DON: this.on,
|
|
23
23
|
DOF: this.off,
|
|
@@ -36,14 +36,14 @@ export class DimmerLampSwitchNode extends Base<Drivers, Commands> implements Dim
|
|
|
36
36
|
WDU: this.writeChanges
|
|
37
37
|
};
|
|
38
38
|
static override nodeDefId = "DimmerLampSwitch";
|
|
39
|
-
static override implements = [
|
|
40
|
-
declare readonly nodeDefId:
|
|
39
|
+
static override implements = ['DimmerLampSwitch', "DimmerSwitchOnly", "DimmerSwitchOnly_ADV", "DimmerLampOnly", "RelaySwitchOnlyPlusQuery", "RelaySwitchOnlyPlusQuery_ADV", "RelaySwitchOnly", "RelaySwitchOnly_ADV", "RemoteLinc2", "RemoteLinc2_ADV", "IRLincTx", "SirenAlert", "SirenArm"];
|
|
40
|
+
declare readonly nodeDefId: 'DimmerLampSwitch' | "DimmerLampSwitch_ADV";
|
|
41
41
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
42
42
|
super(isy, nodeInfo);
|
|
43
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
44
|
-
this.drivers.OL = Driver.create("OL", this, nodeInfo.
|
|
45
|
-
this.drivers.RR = Driver.create("RR", this, nodeInfo.
|
|
46
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
43
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
44
|
+
this.drivers.OL = Driver.create("OL", this, nodeInfo.state['OL'], { uom: UnitOfMeasure.Percent, label: "On Level", name: "onLevel" });
|
|
45
|
+
this.drivers.RR = Driver.create("RR", this, nodeInfo.state['RR'], { uom: UnitOfMeasure.Index, label: "Ramp Rate", name: "rampRate" });
|
|
46
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
47
47
|
}
|
|
48
48
|
async on(value?: number) { return this.sendCommand("DON", value); }
|
|
49
49
|
async off() { return this.sendCommand("DOF"); }
|
|
@@ -79,13 +79,12 @@ NodeFactory.register(DimmerLampSwitchNode, "DimmerLampSwitch_ADV");
|
|
|
79
79
|
|
|
80
80
|
export namespace DimmerLampSwitch {
|
|
81
81
|
export interface Interface extends Omit<InstanceType<typeof DimmerLampSwitchNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
82
|
-
nodeDefId: "DimmerLampSwitch" | "DimmerLampSwitch_ADV";
|
|
83
82
|
}
|
|
84
83
|
export function is(node: ISYNode<any, any, any, any>): node is DimmerLampSwitchNode {
|
|
85
|
-
return [
|
|
84
|
+
return ['DimmerLampSwitch', "DimmerLampSwitch_ADV"].includes(node.nodeDefId);
|
|
86
85
|
}
|
|
87
86
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is DimmerLampSwitchNode {
|
|
88
|
-
return [
|
|
87
|
+
return ['DimmerLampSwitch', "DimmerLampSwitch_ADV"].includes(node.nodeDefId);
|
|
89
88
|
}
|
|
90
89
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
91
90
|
return new DimmerLampSwitchNode(isy, nodeInfo);
|