isy-nodejs 1.0.6-alpha.2 → 1.0.8-alpha.0
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 +17 -34
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +3 -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 +7 -6
- 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/ISYClusterBehavior.js +10 -3
- 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/Bridge/Server.js +22 -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/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 +11 -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 +18 -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 +8 -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 +33 -28
- 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/ISYBridgedDeviceBehavior.d.ts +1 -1
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.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/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/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 +57 -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 +5 -17
- 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 +56 -39
- package/src/Matter/Behaviors/BehaviorRegistry.ts +44 -8
- package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +2 -2
- package/src/Matter/Behaviors/ISYClusterBehavior.ts +20 -9
- 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/Bridge/Server.ts +93 -85
- package/src/Matter/Mappings/Insteon.ts +3 -3
- package/src/Matter/Mappings/MappingRegistry.ts +29 -40
- 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
|
@@ -17,7 +17,7 @@ const nodeDefId = "RelayLoadControl";
|
|
|
17
17
|
type Commands = Relay.Commands;
|
|
18
18
|
type Drivers = Relay.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class RelayNode extends Base<Drivers, Commands> implements Relay.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
DON: this.on,
|
|
23
23
|
DOF: this.off,
|
|
@@ -25,36 +25,38 @@ export class RelayNode extends Base<Drivers, Commands> implements Relay.Interfac
|
|
|
25
25
|
ADRPST: this.adr
|
|
26
26
|
};
|
|
27
27
|
static override nodeDefId = "RelayLoadControl";
|
|
28
|
-
static override implements = [
|
|
29
|
-
declare readonly nodeDefId:
|
|
28
|
+
static override implements = ['RelayLoadControl'];
|
|
29
|
+
declare readonly nodeDefId: 'RelayLoadControl';
|
|
30
30
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
31
31
|
super(isy, nodeInfo);
|
|
32
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
33
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
32
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Unknown, label: "Status", name: "status" });
|
|
33
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Unknown, label: "Responding", name: "responding" });
|
|
34
34
|
}
|
|
35
35
|
async on() { return this.sendCommand("DON"); }
|
|
36
36
|
async off() { return this.sendCommand("DOF"); }
|
|
37
37
|
async query() { return this.sendCommand("QUERY"); }
|
|
38
|
-
async adr(value:
|
|
39
|
-
public get status():
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
async adr(value: ) { return this.sendCommand("ADRPST", value); }
|
|
39
|
+
public get status(): {
|
|
40
|
+
|
|
41
|
+
return this.drivers.ST?.value;
|
|
42
|
+
}
|
|
43
|
+
public
|
|
44
|
+
get responding():
|
|
45
|
+
{
|
|
46
|
+
return this.drivers.ERR?.value;
|
|
47
|
+
}
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
NodeFactory.register(RelayNode);
|
|
48
51
|
|
|
49
52
|
export namespace Relay {
|
|
50
53
|
export interface Interface extends Omit<InstanceType<typeof RelayNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
51
|
-
nodeDefId: "RelayLoadControl";
|
|
52
54
|
}
|
|
53
55
|
export function is(node: ISYNode<any, any, any, any>): node is RelayNode {
|
|
54
|
-
return [
|
|
56
|
+
return ['RelayLoadControl'].includes(node.nodeDefId);
|
|
55
57
|
}
|
|
56
58
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is RelayNode {
|
|
57
|
-
return [
|
|
59
|
+
return ['RelayLoadControl'].includes(node.nodeDefId);
|
|
58
60
|
}
|
|
59
61
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
60
62
|
return new RelayNode(isy, nodeInfo);
|
|
@@ -73,21 +75,21 @@ export namespace Relay {
|
|
|
73
75
|
label: "Query";
|
|
74
76
|
name: "query";
|
|
75
77
|
};
|
|
76
|
-
ADRPST: ((value:
|
|
78
|
+
ADRPST: ((value: ) => Promise<boolean>) & {
|
|
77
79
|
label: "ADR";
|
|
78
80
|
name: "adr";
|
|
79
81
|
};
|
|
80
82
|
};
|
|
81
83
|
export type Drivers = {
|
|
82
84
|
ST: {
|
|
83
|
-
uom:
|
|
84
|
-
value:
|
|
85
|
+
uom: ;
|
|
86
|
+
value: ;
|
|
85
87
|
label: "Status";
|
|
86
88
|
name: "status";
|
|
87
89
|
};
|
|
88
90
|
ERR: {
|
|
89
|
-
uom:
|
|
90
|
-
value:
|
|
91
|
+
uom: ;
|
|
92
|
+
value: ;
|
|
91
93
|
label: "Responding";
|
|
92
94
|
name: "responding";
|
|
93
95
|
};
|
|
@@ -17,7 +17,7 @@ const nodeDefId = "Thermostat";
|
|
|
17
17
|
type Commands = Thermostat.Commands;
|
|
18
18
|
type Drivers = Thermostat.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class ThermostatNode extends Base<Drivers, Commands> implements Thermostat.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
CLISPH: this.updateHeatSetpoint,
|
|
23
23
|
CLISPC: this.updateCoolSetpoint,
|
|
@@ -30,100 +30,116 @@ export class ThermostatNode extends Base<Drivers, Commands> implements Thermosta
|
|
|
30
30
|
ADRPST: this.adr
|
|
31
31
|
};
|
|
32
32
|
static override nodeDefId = "Thermostat";
|
|
33
|
-
static override implements = [
|
|
34
|
-
declare readonly nodeDefId:
|
|
33
|
+
static override implements = ['Thermostat'];
|
|
34
|
+
declare readonly nodeDefId: 'Thermostat';
|
|
35
35
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
36
36
|
super(isy, nodeInfo);
|
|
37
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
38
|
-
this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.
|
|
39
|
-
this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.
|
|
40
|
-
this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.
|
|
41
|
-
this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.
|
|
42
|
-
this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.
|
|
43
|
-
this.drivers.CLIFRS = Driver.create("CLIFRS", this, nodeInfo.
|
|
44
|
-
this.drivers.CLISMD = Driver.create("CLISMD", this, nodeInfo.
|
|
45
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
37
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Unknown, label: "Temperature", name: "temperature" });
|
|
38
|
+
this.drivers.CLISPH = Driver.create("CLISPH", this, nodeInfo.state['CLISPH'], { uom: UnitOfMeasure.Unknown, label: "Heat Setpoint", name: "heatSetpoint" });
|
|
39
|
+
this.drivers.CLISPC = Driver.create("CLISPC", this, nodeInfo.state['CLISPC'], { uom: UnitOfMeasure.Unknown, label: "Cool Setpoint", name: "coolSetpoint" });
|
|
40
|
+
this.drivers.CLIMD = Driver.create("CLIMD", this, nodeInfo.state['CLIMD'], { uom: UnitOfMeasure.Unknown, label: "Mode", name: "mode" });
|
|
41
|
+
this.drivers.CLIFS = Driver.create("CLIFS", this, nodeInfo.state['CLIFS'], { uom: UnitOfMeasure.Unknown, label: "Fan Mode", name: "fanMode" });
|
|
42
|
+
this.drivers.CLIHCS = Driver.create("CLIHCS", this, nodeInfo.state['CLIHCS'], { uom: UnitOfMeasure.Unknown, label: "Heat/Cool State", name: "heatCoolState" });
|
|
43
|
+
this.drivers.CLIFRS = Driver.create("CLIFRS", this, nodeInfo.state['CLIFRS'], { uom: UnitOfMeasure.Unknown, label: "Fan State", name: "fanState" });
|
|
44
|
+
this.drivers.CLISMD = Driver.create("CLISMD", this, nodeInfo.state['CLISMD'], { uom: UnitOfMeasure.Unknown, label: "Schedule Mode", name: "scheduleMode" });
|
|
45
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Unknown, label: "Responding", name: "responding" });
|
|
46
46
|
}
|
|
47
|
-
async updateHeatSetpoint(value:
|
|
48
|
-
async updateCoolSetpoint(value:
|
|
49
|
-
async updateMode(value:
|
|
50
|
-
async updateFanMode(value:
|
|
51
|
-
async updateScheduleMode(value:
|
|
52
|
-
async heatSetpointShift(value:
|
|
53
|
-
async coolSetpointShift(value:
|
|
47
|
+
async updateHeatSetpoint(value: ) { return this.sendCommand("CLISPH", value); }
|
|
48
|
+
async updateCoolSetpoint(value: ) { return this.sendCommand("CLISPC", value); }
|
|
49
|
+
async updateMode(value: ) { return this.sendCommand("CLIMD", value); }
|
|
50
|
+
async updateFanMode(value: ) { return this.sendCommand("CLIFS", value); }
|
|
51
|
+
async updateScheduleMode(value: ) { return this.sendCommand("CLISMD", value); }
|
|
52
|
+
async heatSetpointShift(value: ) { return this.sendCommand("CLISPHD", value); }
|
|
53
|
+
async coolSetpointShift(value: ) { return this.sendCommand("CLISPCD", value); }
|
|
54
54
|
async query() { return this.sendCommand("QUERY"); }
|
|
55
|
-
async adr(value:
|
|
56
|
-
public get temperature():
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
55
|
+
async adr(value: ) { return this.sendCommand("ADRPST", value); }
|
|
56
|
+
public get temperature(): {
|
|
57
|
+
|
|
58
|
+
return this.drivers.ST?.value;
|
|
59
|
+
}
|
|
60
|
+
public
|
|
61
|
+
get heatSetpoint():
|
|
62
|
+
{
|
|
63
|
+
return this.drivers.CLISPH?.value;
|
|
64
|
+
}
|
|
65
|
+
public
|
|
66
|
+
get coolSetpoint():
|
|
67
|
+
{
|
|
68
|
+
return this.drivers.CLISPC?.value;
|
|
69
|
+
}
|
|
70
|
+
public
|
|
71
|
+
get mode():
|
|
72
|
+
{
|
|
73
|
+
return this.drivers.CLIMD?.value;
|
|
74
|
+
}
|
|
75
|
+
public
|
|
76
|
+
get fanMode():
|
|
77
|
+
{
|
|
78
|
+
return this.drivers.CLIFS?.value;
|
|
79
|
+
}
|
|
80
|
+
public
|
|
81
|
+
get heatCoolState():
|
|
82
|
+
{
|
|
83
|
+
return this.drivers.CLIHCS?.value;
|
|
84
|
+
}
|
|
85
|
+
public
|
|
86
|
+
get fanState():
|
|
87
|
+
{
|
|
88
|
+
return this.drivers.CLIFRS?.value;
|
|
89
|
+
}
|
|
90
|
+
public
|
|
91
|
+
get scheduleMode():
|
|
92
|
+
{
|
|
93
|
+
return this.drivers.CLISMD?.value;
|
|
94
|
+
}
|
|
95
|
+
public
|
|
96
|
+
get responding():
|
|
97
|
+
{
|
|
98
|
+
return this.drivers.ERR?.value;
|
|
99
|
+
}
|
|
83
100
|
}
|
|
84
101
|
|
|
85
102
|
NodeFactory.register(ThermostatNode);
|
|
86
103
|
|
|
87
104
|
export namespace Thermostat {
|
|
88
105
|
export interface Interface extends Omit<InstanceType<typeof ThermostatNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
89
|
-
nodeDefId: "Thermostat";
|
|
90
106
|
}
|
|
91
107
|
export function is(node: ISYNode<any, any, any, any>): node is ThermostatNode {
|
|
92
|
-
return [
|
|
108
|
+
return ['Thermostat'].includes(node.nodeDefId);
|
|
93
109
|
}
|
|
94
110
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ThermostatNode {
|
|
95
|
-
return [
|
|
111
|
+
return ['Thermostat'].includes(node.nodeDefId);
|
|
96
112
|
}
|
|
97
113
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
98
114
|
return new ThermostatNode(isy, nodeInfo);
|
|
99
115
|
}
|
|
100
116
|
export const Node = ThermostatNode;
|
|
101
117
|
export type Commands = {
|
|
102
|
-
CLISPH: ((value:
|
|
118
|
+
CLISPH: ((value: ) => Promise<boolean>) & {
|
|
103
119
|
label: "Heat Setpoint";
|
|
104
120
|
name: "updateHeatSetpoint";
|
|
105
121
|
};
|
|
106
|
-
CLISPC: ((value:
|
|
122
|
+
CLISPC: ((value: ) => Promise<boolean>) & {
|
|
107
123
|
label: "Cool Setpoint";
|
|
108
124
|
name: "updateCoolSetpoint";
|
|
109
125
|
};
|
|
110
|
-
CLIMD: ((value:
|
|
126
|
+
CLIMD: ((value: ) => Promise<boolean>) & {
|
|
111
127
|
label: "Mode";
|
|
112
128
|
name: "updateMode";
|
|
113
129
|
};
|
|
114
|
-
CLIFS: ((value:
|
|
130
|
+
CLIFS: ((value: ) => Promise<boolean>) & {
|
|
115
131
|
label: "Fan Mode";
|
|
116
132
|
name: "updateFanMode";
|
|
117
133
|
};
|
|
118
|
-
CLISMD: ((value:
|
|
134
|
+
CLISMD: ((value: ) => Promise<boolean>) & {
|
|
119
135
|
label: "Schedule Mode";
|
|
120
136
|
name: "updateScheduleMode";
|
|
121
137
|
};
|
|
122
|
-
CLISPHD: ((value:
|
|
138
|
+
CLISPHD: ((value: ) => Promise<boolean>) & {
|
|
123
139
|
label: "Heat Setpoint Shift";
|
|
124
140
|
name: "heatSetpointShift";
|
|
125
141
|
};
|
|
126
|
-
CLISPCD: ((value:
|
|
142
|
+
CLISPCD: ((value: ) => Promise<boolean>) & {
|
|
127
143
|
label: "Cool Setpoint Shift";
|
|
128
144
|
name: "coolSetpointShift";
|
|
129
145
|
};
|
|
@@ -131,63 +147,63 @@ export namespace Thermostat {
|
|
|
131
147
|
label: "Query";
|
|
132
148
|
name: "query";
|
|
133
149
|
};
|
|
134
|
-
ADRPST: ((value:
|
|
150
|
+
ADRPST: ((value: ) => Promise<boolean>) & {
|
|
135
151
|
label: "ADR";
|
|
136
152
|
name: "adr";
|
|
137
153
|
};
|
|
138
154
|
};
|
|
139
155
|
export type Drivers = {
|
|
140
156
|
ST: {
|
|
141
|
-
uom:
|
|
142
|
-
value:
|
|
157
|
+
uom: ;
|
|
158
|
+
value: ;
|
|
143
159
|
label: "Temperature";
|
|
144
160
|
name: "temperature";
|
|
145
161
|
};
|
|
146
162
|
CLISPH: {
|
|
147
|
-
uom:
|
|
148
|
-
value:
|
|
163
|
+
uom: ;
|
|
164
|
+
value: ;
|
|
149
165
|
label: "Heat Setpoint";
|
|
150
166
|
name: "heatSetpoint";
|
|
151
167
|
};
|
|
152
168
|
CLISPC: {
|
|
153
|
-
uom:
|
|
154
|
-
value:
|
|
169
|
+
uom: ;
|
|
170
|
+
value: ;
|
|
155
171
|
label: "Cool Setpoint";
|
|
156
172
|
name: "coolSetpoint";
|
|
157
173
|
};
|
|
158
174
|
CLIMD: {
|
|
159
|
-
uom:
|
|
160
|
-
value:
|
|
175
|
+
uom: ;
|
|
176
|
+
value: ;
|
|
161
177
|
label: "Mode";
|
|
162
178
|
name: "mode";
|
|
163
179
|
};
|
|
164
180
|
CLIFS: {
|
|
165
|
-
uom:
|
|
166
|
-
value:
|
|
181
|
+
uom: ;
|
|
182
|
+
value: ;
|
|
167
183
|
label: "Fan Mode";
|
|
168
184
|
name: "fanMode";
|
|
169
185
|
};
|
|
170
186
|
CLIHCS: {
|
|
171
|
-
uom:
|
|
172
|
-
value:
|
|
187
|
+
uom: ;
|
|
188
|
+
value: ;
|
|
173
189
|
label: "Heat/Cool State";
|
|
174
190
|
name: "heatCoolState";
|
|
175
191
|
};
|
|
176
192
|
CLIFRS: {
|
|
177
|
-
uom:
|
|
178
|
-
value:
|
|
193
|
+
uom: ;
|
|
194
|
+
value: ;
|
|
179
195
|
label: "Fan State";
|
|
180
196
|
name: "fanState";
|
|
181
197
|
};
|
|
182
198
|
CLISMD: {
|
|
183
|
-
uom:
|
|
184
|
-
value:
|
|
199
|
+
uom: ;
|
|
200
|
+
value: ;
|
|
185
201
|
label: "Schedule Mode";
|
|
186
202
|
name: "scheduleMode";
|
|
187
203
|
};
|
|
188
204
|
ERR: {
|
|
189
|
-
uom:
|
|
190
|
-
value:
|
|
205
|
+
uom: ;
|
|
206
|
+
value: ;
|
|
191
207
|
label: "Responding";
|
|
192
208
|
name: "responding";
|
|
193
209
|
};
|
package/src/ISY.ts
CHANGED
|
@@ -28,6 +28,7 @@ import { ISYError } from './ISYError.js';
|
|
|
28
28
|
import type { Config } from './Model/Config.js';
|
|
29
29
|
import { findPackageJson } from './Utils.js';
|
|
30
30
|
import { GenericNode } from './Devices/GenericNode.js';
|
|
31
|
+
import { CompositeDevice } from './Devices/CompositeDevice.js';
|
|
31
32
|
|
|
32
33
|
type InitStep = 'config' | 'loadNodes' | 'readFolders' | 'readDevices' | 'readScenes' | 'variables' | 'websocket' | 'refreshStatuses' | 'initialize';
|
|
33
34
|
|
|
@@ -753,7 +754,7 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
753
754
|
} else {
|
|
754
755
|
this.deviceMap[nodeInfo.pnode].push(nodeInfo.address);
|
|
755
756
|
}
|
|
756
|
-
let newDevice
|
|
757
|
+
let newDevice = null;
|
|
757
758
|
|
|
758
759
|
// let deviceTypeInfo = this.isyTypeToTypeName(device.type, device.address);
|
|
759
760
|
// this.logger.info(JSON.stringify(deviceTypeInfo));
|
|
@@ -761,7 +762,7 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
761
762
|
const enabled = nodeInfo.enabled ?? true;
|
|
762
763
|
const d = await NodeFactory.get(nodeInfo);
|
|
763
764
|
const m = DeviceFactory.getDeviceDetails(nodeInfo);
|
|
764
|
-
const cls = m
|
|
765
|
+
const cls = m.class ?? d;
|
|
765
766
|
nodeInfo.property = Array.isArray(nodeInfo.property) ? nodeInfo.property : [nodeInfo.property];
|
|
766
767
|
nodeInfo.state = nodeInfo.property.reduce((acc, p) => {
|
|
767
768
|
if (p && p?.id) {
|
|
@@ -773,7 +774,8 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
773
774
|
|
|
774
775
|
if (cls) {
|
|
775
776
|
try {
|
|
776
|
-
newDevice = new cls(this, nodeInfo)
|
|
777
|
+
newDevice = new cls(this, nodeInfo);
|
|
778
|
+
|
|
777
779
|
} catch (e) {
|
|
778
780
|
this.logger.error(`Error creating device ${nodeInfo.name} with type ${nodeInfo.type} and nodedef ${nodeInfo.nodeDefId}: ${e.message}`);
|
|
779
781
|
continue;
|
|
@@ -808,7 +810,12 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
808
810
|
// this.deviceList.push(newDevice);
|
|
809
811
|
} else {
|
|
810
812
|
}
|
|
811
|
-
this.nodeMap.set(newDevice.address, newDevice);
|
|
813
|
+
this.nodeMap.set(newDevice.address, CompositeDevice.isComposite(newDevice) ? newDevice.root : newDevice);
|
|
814
|
+
if(CompositeDevice.isComposite(newDevice))
|
|
815
|
+
{
|
|
816
|
+
if(this.deviceList.set)
|
|
817
|
+
this.deviceList.set(newDevice.address, newDevice);
|
|
818
|
+
}
|
|
812
819
|
} else {
|
|
813
820
|
this.logger.info(`Ignoring disabled device: ${nodeInfo.name}`);
|
|
814
821
|
}
|
|
@@ -816,7 +823,22 @@ export class ISY extends EventEmitter implements Disposable {
|
|
|
816
823
|
this.logger.error(`Error loading device node: ${e.message}`);
|
|
817
824
|
}
|
|
818
825
|
}
|
|
819
|
-
this.logger.info(`${this.nodeMap.size}
|
|
826
|
+
this.logger.info(`${this.nodeMap.size} nodes added.`);
|
|
827
|
+
for(const node of this.nodeMap.values()) {
|
|
828
|
+
if(node.parentAddress !== node.address) {
|
|
829
|
+
let parent = this.deviceList.get(node.parentAddress) as unknown as CompositeDevice<any,any>;
|
|
830
|
+
if(parent && CompositeDevice.isComposite(parent))
|
|
831
|
+
parent.addNode(node);
|
|
832
|
+
|
|
833
|
+
}
|
|
834
|
+
else
|
|
835
|
+
{
|
|
836
|
+
this.deviceList.set(node.address, node as unknown as ISYDevice<any, any, any, any>);
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
|
|
840
|
+
}
|
|
841
|
+
this.logger.info(`${this.deviceList.size} unique devices added.`);
|
|
820
842
|
} catch (e) {
|
|
821
843
|
throw new ISYInitializationError(e, 'readDevices');
|
|
822
844
|
}
|
package/src/ISYDevice.ts
CHANGED
|
@@ -5,14 +5,14 @@ import { ISYDeviceNode } from './Devices/ISYDeviceNode.js';
|
|
|
5
5
|
import type { ISYNode } from './ISYNode.js';
|
|
6
6
|
import type { ISYScene } from './ISYScene.js';
|
|
7
7
|
|
|
8
|
-
export interface ISYDevice<T extends Family, D
|
|
8
|
+
export interface ISYDevice<T extends Family, D, C, E> extends ISYDeviceInfo {
|
|
9
9
|
// #region Properties (22)
|
|
10
10
|
|
|
11
11
|
address: string;
|
|
12
12
|
category: Category;
|
|
13
|
-
commands:
|
|
13
|
+
commands: C;
|
|
14
14
|
deviceClass: any;
|
|
15
|
-
drivers:
|
|
15
|
+
drivers: D;
|
|
16
16
|
|
|
17
17
|
events: E;
|
|
18
18
|
enabled: boolean;
|
|
@@ -52,6 +52,7 @@ export function isDeviceClass<T extends Family, D extends ISYNode.DriverSignatur
|
|
|
52
52
|
return device.prototype instanceof ISYDeviceNode;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
|
|
55
56
|
export interface ISYDeviceInfo {
|
|
56
57
|
type: string;
|
|
57
58
|
deviceClass: any;
|
package/src/ISYNode.ts
CHANGED
|
@@ -4,18 +4,22 @@ import { Family } from './Definitions/Global/Families.js';
|
|
|
4
4
|
import { UnitOfMeasure } from './Definitions/Global/UOM.js';
|
|
5
5
|
import { ISY } from './ISY.js';
|
|
6
6
|
|
|
7
|
+
import type { Merge, UnionToIntersection } from '@matter/general';
|
|
7
8
|
import { CliConfigSetLevels } from 'winston/lib/winston/config/index.js';
|
|
8
9
|
import { Converter } from './Converters.js';
|
|
9
10
|
import type { Command } from './Definitions/Global/Commands.js';
|
|
10
11
|
import { Event } from './Definitions/Global/Events.js';
|
|
12
|
+
import type { CompositeDevice } from './Devices/CompositeDevice.js';
|
|
11
13
|
import type { Constructor } from './Devices/Constructor.js';
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
import { NodeType } from './ISYConstants.js';
|
|
17
|
+
import type { ISYScene } from './ISYScene.js';
|
|
12
18
|
import type { DriverState } from './Model/DriverState.js';
|
|
13
19
|
import { NodeInfo } from './Model/NodeInfo.js';
|
|
14
20
|
import type { NodeNotes } from './Model/NodeNotes.js';
|
|
15
21
|
import { type ObjectToUnion, type StringKeys } from './Utils.js';
|
|
16
|
-
import {
|
|
17
|
-
import type { ISYScene } from './ISYScene.js';
|
|
18
|
-
import type { Merge, UnionToIntersection } from '@matter/general';
|
|
22
|
+
import type { ISYDevice } from './ISYDevice.js';
|
|
19
23
|
|
|
20
24
|
//type DriverValues<DK extends string | number | symbol,V = any> = {[x in DK]?:V};
|
|
21
25
|
|
|
@@ -24,7 +28,7 @@ export class ISYNode<
|
|
|
24
28
|
D extends ISYNode.DriverSignatures = {},
|
|
25
29
|
C extends ISYNode.CommandSignatures = {},
|
|
26
30
|
E extends ISYNode.EventSignatures = { [x in keyof D]: Event.DriverToEvent<D[x]> & { driver: x } } & { [x in keyof C]: Event.CommandToEvent<C[x]> & { command: x } }
|
|
27
|
-
>
|
|
31
|
+
> {
|
|
28
32
|
// #region Properties (32)
|
|
29
33
|
|
|
30
34
|
static #displayNameFunction: Function;
|
|
@@ -157,18 +161,17 @@ export class ISYNode<
|
|
|
157
161
|
|
|
158
162
|
public applyStatus(prop: DriverState) {
|
|
159
163
|
try {
|
|
160
|
-
|
|
164
|
+
var d = this.drivers[prop.id];
|
|
161
165
|
|
|
162
|
-
|
|
163
|
-
|
|
166
|
+
if (d) {
|
|
167
|
+
d.apply(prop);
|
|
164
168
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
catch(e) {
|
|
169
|
+
this.logger(`Property ${d?.label ?? prop.id} (${prop.id}) refreshed to: ${d.value} (${prop.formatted}})`);
|
|
170
|
+
//d.state.value = this.convertFrom(prop.value, prop.uom, prop.id);
|
|
171
|
+
//d.state.formatted = prop.formatted;
|
|
172
|
+
//d.state.uom = prop.uom;
|
|
173
|
+
}
|
|
174
|
+
} catch (e) {
|
|
172
175
|
this.logger(e?.message ?? e, 'error');
|
|
173
176
|
}
|
|
174
177
|
}
|
|
@@ -270,9 +273,9 @@ export class ISYNode<
|
|
|
270
273
|
const e = event.control;
|
|
271
274
|
const dispName = this.commands[e]?.name;
|
|
272
275
|
if (dispName !== undefined && dispName !== null) {
|
|
273
|
-
this.logger(`Command ${dispName} (${e}) event
|
|
276
|
+
this.logger(`Command ${dispName} (${e}) event received.`);
|
|
274
277
|
} else {
|
|
275
|
-
this.logger(`Command ${e} event
|
|
278
|
+
this.logger(`Command ${e} event received.`);
|
|
276
279
|
}
|
|
277
280
|
this.handleControlTrigger(e);
|
|
278
281
|
return true;
|
|
@@ -282,11 +285,12 @@ export class ISYNode<
|
|
|
282
285
|
public handlePropertyChange(propertyName: StringKeys<D>, value: any, uom: UnitOfMeasure, prec?: number, formattedValue?: string): boolean {
|
|
283
286
|
this.lastChanged = new Date();
|
|
284
287
|
let driver = this.drivers[propertyName];
|
|
285
|
-
this.logger(`Driver ${propertyName} (${driver?.label} value update ${value} (${formattedValue}) uom: ${UnitOfMeasure[uom]} event received.`)
|
|
286
|
-
const oldValue = driver?.value;
|
|
288
|
+
/*this.logger(`Driver ${propertyName} (${driver?.label} value update ${value} (${formattedValue}) uom: ${UnitOfMeasure[uom]} event received.`);*/
|
|
289
|
+
const oldValue = driver?.state.value;
|
|
290
|
+
const oldValueRaw = driver?.state.rawValue;
|
|
287
291
|
if (driver?.patch(value, formattedValue, uom, prec)) {
|
|
288
|
-
this.logger(`Driver ${driver.label} updated from ${oldValue} to ${value} (${
|
|
289
|
-
this.emit('propertyChanged', propertyName, value, oldValue, formattedValue);
|
|
292
|
+
this.logger(`Driver ${driver.label} updated from ${oldValue} (${oldValueRaw}) to ${driver.state.value} (${driver.state.rawValue})`);
|
|
293
|
+
//this.emit('propertyChanged', propertyName, value, oldValue, formattedValue);
|
|
290
294
|
this.scenes?.forEach((element) => {
|
|
291
295
|
this.logger(`Recalulating ${element.deviceFriendlyName}`);
|
|
292
296
|
element.recalculateState();
|
|
@@ -359,23 +363,24 @@ export class ISYNode<
|
|
|
359
363
|
public async sendCommand(command: StringKeys<C>, value: string | number, parameters: Record<string | symbol, string | number | undefined>);
|
|
360
364
|
public async sendCommand(command: StringKeys<C>, value: string | number): Promise<any>;
|
|
361
365
|
public async sendCommand(command: StringKeys<C>, parameters: Record<string | symbol, string | number | undefined>): Promise<any>;
|
|
362
|
-
async sendCommand(
|
|
366
|
+
async sendCommand(
|
|
367
|
+
command: StringKeys<C>,
|
|
368
|
+
valueOrParameters?: string | number | Record<string | symbol, string | number | undefined>,
|
|
369
|
+
parameters?: Record<string | symbol, string | number | undefined>
|
|
370
|
+
): Promise<any> {
|
|
363
371
|
if (valueOrParameters === null || valueOrParameters === undefined) {
|
|
364
372
|
return this.isy.sendNodeCommand(this, command);
|
|
365
373
|
}
|
|
366
374
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
375
|
+
if (parameters === null || parameters === undefined) {
|
|
376
|
+
return this.isy.sendNodeCommand(this, command, valueOrParameters);
|
|
377
|
+
}
|
|
378
|
+
if (typeof valueOrParameters === 'object') {
|
|
379
|
+
return this.isy.sendNodeCommand(this, command, { ...valueOrParameters, ...parameters });
|
|
380
|
+
}
|
|
381
|
+
if (typeof valueOrParameters === 'string' || typeof valueOrParameters === 'number') {
|
|
382
|
+
return this.isy.sendNodeCommand(this, command, { default: valueOrParameters, ...parameters });
|
|
383
|
+
}
|
|
379
384
|
}
|
|
380
385
|
|
|
381
386
|
public async updateProperty(propertyName: string, value: any): Promise<any> {
|
|
@@ -539,12 +544,17 @@ export type EventsOf<T> = T extends ISYNode<any, any, any, infer E> ? E : never;
|
|
|
539
544
|
export namespace ISYNode {
|
|
540
545
|
export type FromSignatures<T> = T extends DriverSignatures ? Driver.ForAll<T> : never;
|
|
541
546
|
|
|
542
|
-
|
|
547
|
+
type InternalDriversOf<T> = T extends ISYNode<any, infer D, any, any> ? D : never;
|
|
548
|
+
|
|
549
|
+
export type DriversOf<T> =
|
|
550
|
+
T extends ISYNode<any, any, any, any> ? InternalDriversOf<T>
|
|
551
|
+
: T extends CompositeDevice<any, any> ? T['drivers']
|
|
552
|
+
: never;
|
|
543
553
|
export type CommandsOf<T> = T extends ISYNode<any, any, infer C, any> ? C : never;
|
|
544
554
|
export type EventsOf<T> = T extends ISYNode<any, any, any, infer E> ? E : never;
|
|
545
555
|
export type FamilyOf<T> = T extends ISYNode<infer F, any, any, any> ? F : never;
|
|
546
556
|
|
|
547
|
-
export type DriverTypesOf<T
|
|
557
|
+
export type DriverTypesOf<T> = ObjectToUnion<DriversOf<T>>;
|
|
548
558
|
|
|
549
559
|
export type CommandTypesOf<T extends ISYNode> = ObjectToUnion<CommandsOf<T>>;
|
|
550
560
|
|
|
@@ -552,9 +562,16 @@ export namespace ISYNode {
|
|
|
552
562
|
|
|
553
563
|
export type EventNamesOf<T extends ISYNode> = EventTypesOf<T> extends { name: infer U } ? U : never;
|
|
554
564
|
|
|
555
|
-
export type DriverNamesOf<T
|
|
565
|
+
export type DriverNamesOf<T> =
|
|
566
|
+
DriverTypesOf<T> extends { name: infer U } ? U
|
|
567
|
+
: DriversOf<T> extends { name: infer U } ? U
|
|
568
|
+
: never;
|
|
569
|
+
|
|
570
|
+
export type DriverKeysOf<T> = keyof DriversOf<T>;
|
|
571
|
+
|
|
572
|
+
export type CommandKeysOf<T> = keyof CommandsOf<T>;
|
|
556
573
|
|
|
557
|
-
export type CommandNamesOf<T extends ISYNode> =
|
|
574
|
+
export type CommandNamesOf<T extends ISYNode> = CommandsOf<T> extends { name: infer U } ? U : never;
|
|
558
575
|
export type List = NodeList;
|
|
559
576
|
|
|
560
577
|
export type DriverMap<T extends NodeList> = Flatten<{
|
|
@@ -584,7 +601,7 @@ export namespace ISYNode {
|
|
|
584
601
|
|
|
585
602
|
export const With = <K extends Family, D extends DriverSignatures, C extends CommandSignatures, T extends Constructor<ISYNode<K, any, any, any>>>(Base: T) => {
|
|
586
603
|
return class extends Base implements Omit<ISYNode<K, D, C>, 'events'> {
|
|
587
|
-
declare drivers: Driver.ForAll<
|
|
604
|
+
declare drivers: Driver.ForAll<D, false>;
|
|
588
605
|
declare commands: Command.ForAll<C>;
|
|
589
606
|
};
|
|
590
607
|
};
|
|
@@ -592,7 +609,7 @@ export namespace ISYNode {
|
|
|
592
609
|
export type WithDrivers<D extends DriverSignatures> =
|
|
593
610
|
D extends Driver.Signatures<infer U extends keyof D> ?
|
|
594
611
|
{
|
|
595
|
-
[K in D[U]['name']]:
|
|
612
|
+
[K in D[U] as K['name']]: K['value'];
|
|
596
613
|
}
|
|
597
614
|
: never;
|
|
598
615
|
|