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
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "isy-nodejs",
|
|
3
3
|
"description": "Node.js wrapper for ISY interface including websockets for change notifications. Fork of isy-js by Rod Toll. Designed to be used in a node.js application.",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.9-alpha.1",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Pradeep Mouli"
|
|
8
8
|
},
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public"
|
|
76
76
|
},
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "9521cb43ec9bffaa16e91234351abd5981c2037e"
|
|
78
78
|
}
|
|
@@ -290,19 +290,27 @@ export class CodeFactory {
|
|
|
290
290
|
return ts.factory.createLiteralTypeNode(this.createStringLiteral(literal));
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
|
|
294
|
-
|
|
293
|
+
createLiteral(value: string | number): ts.LiteralExpression {
|
|
294
|
+
if (typeof value === 'number') {
|
|
295
|
+
return this.createNumericLiteral(value as number);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return this.createStringLiteral(value);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
createNumericLiteral(value: number, flags?: ts.TokenFlags): ts.NumericLiteral {
|
|
302
|
+
return ts.factory.createNumericLiteral(value.toString(), flags);
|
|
295
303
|
}
|
|
296
304
|
|
|
297
305
|
createStringLiteral(text: string): ts.StringLiteral {
|
|
298
|
-
return ts.factory.createStringLiteral(text);
|
|
306
|
+
return ts.factory.createStringLiteral(text, true);
|
|
299
307
|
}
|
|
300
308
|
|
|
301
309
|
createKeywordTypeNode(kind: ts.KeywordTypeSyntaxKind): ts.KeywordTypeNode {
|
|
302
310
|
return ts.factory.createKeywordTypeNode(kind);
|
|
303
311
|
}
|
|
304
312
|
|
|
305
|
-
createTypePredicateNode(parameterName: ts.Identifier, type: ts.TypeNode): ts.TypePredicateNode {
|
|
313
|
+
createTypePredicateNode(parameterName: ts.Identifier | string, type: ts.TypeNode): ts.TypePredicateNode {
|
|
306
314
|
return ts.factory.createTypePredicateNode(undefined, parameterName, type);
|
|
307
315
|
}
|
|
308
316
|
|
|
@@ -310,15 +318,15 @@ export class CodeFactory {
|
|
|
310
318
|
return ts.factory.createBinaryExpression(left, operator, right);
|
|
311
319
|
}
|
|
312
320
|
|
|
313
|
-
createPropertyAccessExpression(expression: ts.Expression, name: string): ts.PropertyAccessExpression {
|
|
314
|
-
return ts.factory.createPropertyAccessExpression(expression,
|
|
321
|
+
createPropertyAccessExpression(expression: ts.Expression, name: string | ts.MemberName): ts.PropertyAccessExpression {
|
|
322
|
+
return ts.factory.createPropertyAccessExpression(expression, name);
|
|
315
323
|
}
|
|
316
324
|
|
|
317
|
-
createHeritageClause(token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword, types: ts.ExpressionWithTypeArguments[]): ts.HeritageClause {
|
|
325
|
+
createHeritageClause(token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword, ...types: ts.ExpressionWithTypeArguments[]): ts.HeritageClause {
|
|
318
326
|
return ts.factory.createHeritageClause(token, types);
|
|
319
327
|
}
|
|
320
328
|
|
|
321
|
-
createExpressionWithTypeArguments(expression: ts.Expression, typeArguments
|
|
329
|
+
createExpressionWithTypeArguments(expression: ts.Expression, ...typeArguments: ts.TypeNode[]): ts.ExpressionWithTypeArguments {
|
|
322
330
|
return ts.factory.createExpressionWithTypeArguments(expression, typeArguments);
|
|
323
331
|
}
|
|
324
332
|
createBlock(multiLine: boolean, ...statements: ts.Statement[]): ts.Block;
|
|
@@ -76,7 +76,7 @@ export class NodeClassFactory extends CodeFactory {
|
|
|
76
76
|
|
|
77
77
|
public createNodeClass<T extends Family>(nodeClassDef: NodeClassDefinition<T>) {
|
|
78
78
|
let path = `${NodeClassFactory.basePath}/${Family[nodeClassDef.family]}/Generated/${nodeClassDef.name}.ts`;
|
|
79
|
-
let sf = ts.createSourceFile(path, '', ts.ScriptTarget.
|
|
79
|
+
let sf = ts.createSourceFile(path, '', ts.ScriptTarget.ES2024, true, ts.ScriptKind.TS);
|
|
80
80
|
//@ts-expect-error
|
|
81
81
|
|
|
82
82
|
sf.statements = [
|
|
@@ -163,7 +163,7 @@ export class NodeClassFactory extends CodeFactory {
|
|
|
163
163
|
),
|
|
164
164
|
|
|
165
165
|
factory.createClassDeclaration(
|
|
166
|
-
[
|
|
166
|
+
[],
|
|
167
167
|
factory.createIdentifier(`${nodeClassDef.name}Node`),
|
|
168
168
|
undefined,
|
|
169
169
|
[
|
|
@@ -303,7 +303,7 @@ export class NodeClassFactory extends CodeFactory {
|
|
|
303
303
|
])
|
|
304
304
|
],
|
|
305
305
|
[
|
|
306
|
-
factory.createPropertySignature(
|
|
306
|
+
/*factory.createPropertySignature(
|
|
307
307
|
undefined,
|
|
308
308
|
factory.createIdentifier('nodeDefId'),
|
|
309
309
|
undefined,
|
|
@@ -314,7 +314,7 @@ export class NodeClassFactory extends CodeFactory {
|
|
|
314
314
|
)
|
|
315
315
|
)
|
|
316
316
|
: NodeClassFactory.instance.createLiteralTypeNode(nodeClassDef.id)
|
|
317
|
-
)
|
|
317
|
+
)*/
|
|
318
318
|
]
|
|
319
319
|
),
|
|
320
320
|
|
|
@@ -472,7 +472,8 @@ export class NodeClassFactory extends CodeFactory {
|
|
|
472
472
|
newLineCharacter: '\n',
|
|
473
473
|
trimTrailingWhitespace: true,
|
|
474
474
|
ensureNewLineAtEndOfFile: true,
|
|
475
|
-
indentStyle: ts.IndentStyle.Smart
|
|
475
|
+
indentStyle: ts.IndentStyle.Smart,
|
|
476
|
+
|
|
476
477
|
});
|
|
477
478
|
let currentKind = ts.SyntaxKind.Unknown;
|
|
478
479
|
for (const s of f.getStatements()) {
|
|
@@ -652,10 +653,7 @@ export class NodeClassFactory extends CodeFactory {
|
|
|
652
653
|
factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Driver'), factory.createIdentifier('create')), undefined, [
|
|
653
654
|
factory.createStringLiteral(def.id),
|
|
654
655
|
factory.createThis(),
|
|
655
|
-
factory.
|
|
656
|
-
factory.createPropertyAccessExpression(factory.createIdentifier('nodeInfo'), factory.createIdentifier('property')),
|
|
657
|
-
factory.createTypeReferenceNode(factory.createIdentifier('DriverState'), undefined)
|
|
658
|
-
),
|
|
656
|
+
factory.createElementAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier('nodeInfo'), factory.createIdentifier('state')), this.createStringLiteral(def.id)),
|
|
659
657
|
factory.createObjectLiteralExpression(
|
|
660
658
|
[
|
|
661
659
|
factory.createPropertyAssignment(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Converter } from '../../Converters.js';
|
|
2
2
|
import type { ISYNode } from '../../ISYNode.js';
|
|
3
3
|
import type { Driver } from './Drivers.js';
|
|
4
|
-
import
|
|
4
|
+
import { UnitOfMeasure } from './UOM.js';
|
|
5
5
|
|
|
6
6
|
/*export class Command<T extends string> extends Function {
|
|
7
7
|
|
|
@@ -15,10 +15,10 @@ import type { UnitOfMeasure } from './UOM.js';
|
|
|
15
15
|
}*/
|
|
16
16
|
|
|
17
17
|
export interface Parameter<P, T> {
|
|
18
|
-
id
|
|
19
|
-
name
|
|
18
|
+
id?: P;
|
|
19
|
+
name?: string;
|
|
20
20
|
|
|
21
|
-
label
|
|
21
|
+
label?: string;
|
|
22
22
|
value?: T;
|
|
23
23
|
uom: UnitOfMeasure;
|
|
24
24
|
serverUom?: UnitOfMeasure;
|
|
@@ -82,14 +82,14 @@ export namespace Command {
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
function getCommandFunctionSignature<P extends { [x: string]: Parameter<string, any> } | Parameter<string, any> | null> (command: string, node: ISYNode<any,any,any,any>,parameters?: P): Function {
|
|
85
|
-
if (parameters
|
|
86
|
-
return
|
|
85
|
+
if (!parameters) {
|
|
86
|
+
return () => {
|
|
87
87
|
return node.sendCommand(command);
|
|
88
88
|
};
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
else if (isParameterCollection(parameters)) {
|
|
92
|
-
let cmd =
|
|
92
|
+
let cmd : any = (params: { [x in keyof P]: typeof parameters[x]['value'] }) => {
|
|
93
93
|
for (let key in params) {
|
|
94
94
|
let p = parameters[key];
|
|
95
95
|
if (p.converter) {
|
|
@@ -97,23 +97,25 @@ export namespace Command {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
return node.sendCommand(command, params);
|
|
100
|
-
}
|
|
100
|
+
};
|
|
101
|
+
Object.defineProperty(cmd, 'parameters', {});
|
|
101
102
|
for (let key in parameters) {
|
|
102
103
|
let p = parameters[key];
|
|
103
|
-
|
|
104
|
+
|
|
104
105
|
let srvUom = node.drivers[p.driver]?.serverUom;
|
|
105
|
-
if (
|
|
106
|
-
|
|
107
|
-
if
|
|
106
|
+
if (srvUom)
|
|
107
|
+
{
|
|
108
|
+
if(srvUom !== p.uom) {
|
|
108
109
|
cmd.parameters[key].converter = Converter.get(p.uom, srvUom).to;
|
|
109
110
|
cmd.parameters[key].serverUom = srvUom;
|
|
110
111
|
}
|
|
111
112
|
}
|
|
113
|
+
|
|
112
114
|
}
|
|
113
115
|
return cmd;
|
|
114
116
|
}
|
|
115
117
|
else if(parameters.name) {
|
|
116
|
-
let cmd = function (value
|
|
118
|
+
let cmd = function (value): Promise<boolean> {
|
|
117
119
|
if(parameters.converter) {
|
|
118
120
|
value = parameters.converter(value);
|
|
119
121
|
}
|
|
@@ -145,6 +147,7 @@ export namespace Command {
|
|
|
145
147
|
return cmd;
|
|
146
148
|
}
|
|
147
149
|
|
|
150
|
+
|
|
148
151
|
type Commands = {
|
|
149
152
|
BEEP: ((value: number) => Promise<boolean>) & { label: 'Beep'; name: 'beep' };
|
|
150
153
|
BL: ((value: number) => Promise<boolean>) & { label: 'Backlight'; name: 'backlight' };
|
|
@@ -264,9 +264,9 @@ export interface Driver<
|
|
|
264
264
|
U extends UnitOfMeasure,
|
|
265
265
|
T = number,
|
|
266
266
|
SU extends UnitOfMeasure = U,
|
|
267
|
-
ST =
|
|
268
|
-
N =
|
|
269
|
-
L =
|
|
267
|
+
ST = T,
|
|
268
|
+
N = D,
|
|
269
|
+
L = N
|
|
270
270
|
> {
|
|
271
271
|
// #region Properties (8)
|
|
272
272
|
|
|
@@ -284,7 +284,9 @@ export interface Driver<
|
|
|
284
284
|
pendingValue: T;
|
|
285
285
|
rawValue?: ST;
|
|
286
286
|
};
|
|
287
|
-
|
|
287
|
+
|
|
288
|
+
initialized: boolean;
|
|
289
|
+
uom: U;
|
|
288
290
|
|
|
289
291
|
// #endregion Properties (8)
|
|
290
292
|
|
|
@@ -302,8 +304,9 @@ export interface StatelessDriver<
|
|
|
302
304
|
U extends UnitOfMeasure,
|
|
303
305
|
T = number,
|
|
304
306
|
SU extends UnitOfMeasure = U,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
+
ST = T,
|
|
308
|
+
N = D,
|
|
309
|
+
L = N
|
|
307
310
|
> {
|
|
308
311
|
// #region Properties (9)
|
|
309
312
|
|
|
@@ -319,6 +322,7 @@ export interface StatelessDriver<
|
|
|
319
322
|
value: T;
|
|
320
323
|
formattedValue?: any;
|
|
321
324
|
pendingValue: T;
|
|
325
|
+
rawValue?: ST;
|
|
322
326
|
};
|
|
323
327
|
stateless: true;
|
|
324
328
|
uom: U;
|
|
@@ -339,10 +343,10 @@ export type DriverTypeLiteral = EnumLiteral<DriverType>;
|
|
|
339
343
|
|
|
340
344
|
export type EnumWithLiteral<D extends string | bigint | number | boolean> = D | EnumLiteral<D>;
|
|
341
345
|
export namespace Driver {
|
|
342
|
-
export type Signature<U extends UnitOfMeasure = UnitOfMeasure, V = any, SU = U, N = string, L = N> = { uom: U; value: V; name: N; label: L
|
|
346
|
+
export type Signature<U extends UnitOfMeasure = UnitOfMeasure, V = any, SU extends UnitOfMeasure = U, N = string, L = N> = { uom: U; value: V; name: N; label: L };
|
|
343
347
|
|
|
344
348
|
export type Signatures<D> = UnionToIntersection<
|
|
345
|
-
D extends string ? { [K in D]: Signature<UnitOfMeasure, any, UnitOfMeasure,
|
|
349
|
+
D extends string ? { [K in D]: Signature<UnitOfMeasure, any, UnitOfMeasure, K, K> }
|
|
346
350
|
: D extends { [K in keyof D]: Signature } ? D
|
|
347
351
|
: never
|
|
348
352
|
>;
|
|
@@ -366,21 +370,22 @@ export namespace Driver {
|
|
|
366
370
|
};
|
|
367
371
|
};
|
|
368
372
|
|
|
369
|
-
|
|
370
|
-
export type For<D extends string, T, S extends boolean = false> = T extends Signature<infer U, infer V, infer SU, infer N, infer L> ? StatelessOrStateful<D, U, V, N, L, S> : never;
|
|
373
|
+
export type For<D extends string, T, S extends boolean = false> = T extends Signature<infer U, infer V, infer SU, infer N, infer L> ? StatelessOrStateful<D, U, V, SU, V, N, L, S> : never;
|
|
371
374
|
|
|
372
375
|
export type ForAll<T, S extends boolean = false> = {
|
|
373
376
|
[K in StringKeys<T>]: T[K] extends Signature<UnitOfMeasure, any, UnitOfMeasure, string, string> ? For<K, T[K], S> : never;
|
|
374
377
|
};
|
|
375
378
|
|
|
376
|
-
type
|
|
379
|
+
export type SignaturesOf<D> = D extends ForAll<infer R> ? R : never;
|
|
380
|
+
|
|
381
|
+
type test2 = SignaturesOf<ForAll<Drivers>>;
|
|
377
382
|
|
|
378
383
|
export type Type = DriverType;
|
|
379
384
|
export type Literal = EnumLiteral<DriverType>;
|
|
380
385
|
export type LiteralWithExtensions = Literal | `${string}.${Literal}`;
|
|
381
386
|
export type LiteralWithType = EnumWithLiteral<DriverType>;
|
|
382
|
-
type StatelessOrStateful<D extends string, U extends UnitOfMeasure, T = number, N =
|
|
383
|
-
S extends true ? StatelessDriver<D, U, T,
|
|
387
|
+
type StatelessOrStateful<D extends string, U extends UnitOfMeasure, T = number, SU extends UnitOfMeasure = U, ST = T, N = D, L = N, S extends boolean = false> =
|
|
388
|
+
S extends true ? StatelessDriver<D, U, T, SU, ST, N, L> : Driver<D, U, T, SU, ST, N, L>;
|
|
384
389
|
|
|
385
390
|
export function create<D extends Literal, U extends UnitOfMeasure, T = number, N extends string = string, L extends string = string, S extends boolean = false>(
|
|
386
391
|
driver: EnumWithLiteral<D>,
|
|
@@ -390,7 +395,7 @@ export namespace Driver {
|
|
|
390
395
|
driverSignature?: { uom: U; label: L; name: N },
|
|
391
396
|
stateless?: S,
|
|
392
397
|
converter?: Converter<any, T>
|
|
393
|
-
): StatelessOrStateful<D, U, T, N, L, S> {
|
|
398
|
+
): StatelessOrStateful<D, U, T, UnitOfMeasure, any, N, L, S> {
|
|
394
399
|
const query = async () => {
|
|
395
400
|
return await node.readProperty(driver as D);
|
|
396
401
|
};
|
|
@@ -404,19 +409,20 @@ export namespace Driver {
|
|
|
404
409
|
state: {
|
|
405
410
|
initial: true,
|
|
406
411
|
value: initState?.value, //TODO include converter
|
|
407
|
-
formattedValue: initState
|
|
412
|
+
formattedValue: initState?.formatted,
|
|
408
413
|
pendingValue: null
|
|
409
414
|
},
|
|
410
415
|
query,
|
|
411
416
|
get value() {
|
|
412
417
|
return query().then((p) => p.value) as Promise<T>;
|
|
413
418
|
},
|
|
414
|
-
name: initState
|
|
419
|
+
name: initState?.name ?? driverSignature.name ?? driverSignature.label ?? driver,
|
|
415
420
|
label: driverSignature.label ?? driver
|
|
416
|
-
} as
|
|
421
|
+
} as StatelessOrStateful<D, U, T, UnitOfMeasure, any, N, L, typeof stateless>;
|
|
417
422
|
}
|
|
418
423
|
var c = {
|
|
419
424
|
id: driver as D,
|
|
425
|
+
initialized: initState ? true : false,
|
|
420
426
|
uom: driverSignature?.uom as U,
|
|
421
427
|
serverUom: initState?.uom != driverSignature?.uom ? initState?.uom : undefined,
|
|
422
428
|
state: {
|
|
@@ -425,35 +431,45 @@ export namespace Driver {
|
|
|
425
431
|
initState ?
|
|
426
432
|
converter ? converter.from(initState.value)
|
|
427
433
|
: driverSignature?.uom && initState?.uom != driverSignature?.uom ? Converter.convert(initState.uom, driverSignature.uom, initState.value)
|
|
428
|
-
|
|
434
|
+
: initState.value
|
|
435
|
+
: null,
|
|
429
436
|
rawValue: initState ? initState.value : null,
|
|
430
437
|
formattedValue: initState ? initState.formatted : null,
|
|
431
438
|
pendingValue: null
|
|
432
439
|
},
|
|
433
440
|
async query() {
|
|
434
441
|
let s = await query();
|
|
435
|
-
this.state.value =
|
|
442
|
+
this.state.value =
|
|
443
|
+
converter ? converter.from(s.value)
|
|
444
|
+
: this.uom !== s.uom ? Converter.convert(s.value, s.uom, this.uom)
|
|
445
|
+
: s.value;
|
|
436
446
|
this.state.formattedValue = s.formatted;
|
|
437
447
|
this.state.rawValue = s.value;
|
|
438
448
|
return s;
|
|
439
449
|
},
|
|
440
|
-
apply(state: DriverState, notify =
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
450
|
+
apply(state: DriverState, notify = true) {
|
|
451
|
+
if (state.id == this.id) {
|
|
452
|
+
|
|
453
|
+
let previousValue = this.state.rawValue;
|
|
454
|
+
this.state.rawValue = state.value;
|
|
455
|
+
if (previousValue === this.state.rawValue) {
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
if (state.uom != this.uom) {
|
|
459
|
+
this.serverUom == state.uom;
|
|
460
|
+
this.state.value = converter ? converter.from(this.state.rawValue) : Converter.convert(state.uom, this.uom, this.state.rawValue);
|
|
461
|
+
} else if (converter) {
|
|
462
|
+
this.state.value = converter.from(state.value);
|
|
463
|
+
} else {
|
|
464
|
+
this.state.value = state.value;
|
|
465
|
+
}
|
|
466
|
+
this.state.formattedValue = state.formatted;
|
|
467
|
+
if (notify) node.events.emit(`${this.name}Changed`, driver as D, this.state.value, previousValue, this.state.formattedValue);
|
|
468
|
+
if (!this.initialized) {
|
|
469
|
+
this.initialized = true;
|
|
470
|
+
}
|
|
471
|
+
return true;
|
|
453
472
|
}
|
|
454
|
-
this.state.formattedValue = state.formatted;
|
|
455
|
-
if (notify) node.events.emit(`${this.name}Changed`, driver as D, this.state.value, previousValue, this.state.formattedValue);
|
|
456
|
-
return true;
|
|
457
473
|
},
|
|
458
474
|
patch(value: T, formattedValue: string, uom: UnitOfMeasure, prec: number, notify = true) {
|
|
459
475
|
let previousValue = this.state.rawValue;
|
|
@@ -471,6 +487,10 @@ export namespace Driver {
|
|
|
471
487
|
return false;
|
|
472
488
|
}
|
|
473
489
|
if (notify) node.events.emit(`${this.name}Changed`, driver as D, this.state.value, previousValue, formattedValue);
|
|
490
|
+
if (!this.initialized) {
|
|
491
|
+
|
|
492
|
+
this.initialized = true;
|
|
493
|
+
}
|
|
474
494
|
return true;
|
|
475
495
|
},
|
|
476
496
|
get value() {
|
|
@@ -487,7 +507,7 @@ export namespace Driver {
|
|
|
487
507
|
// }
|
|
488
508
|
|
|
489
509
|
//});
|
|
490
|
-
return c as
|
|
510
|
+
return c as StatelessOrStateful<D, U, T, UnitOfMeasure, any, N, L, typeof stateless>;
|
|
491
511
|
}
|
|
492
512
|
}
|
|
493
513
|
|
|
@@ -20,7 +20,7 @@ export namespace Event {
|
|
|
20
20
|
|
|
21
21
|
export type Signatures = { [x: string]: Signature };
|
|
22
22
|
|
|
23
|
-
export type DriverToEvent<D extends Driver.Signature> = { name: `${D['name']}Changed
|
|
23
|
+
export type DriverToEvent<D extends Driver.Signature> = { name: `${D['name']}Changed` | `${D['name']}Initialized`, value: D['value']; uom: D['uom'] };
|
|
24
24
|
|
|
25
25
|
export type CommandToEvent<C extends Command.Signature> = { name: `${C['name']}Triggered` };
|
|
26
26
|
|
|
@@ -30,8 +30,8 @@ export namespace Event {
|
|
|
30
30
|
: S extends { name: string; command: string } ? { on(eventName: S['name'], listener: (command: S['command']) => void): N }
|
|
31
31
|
: { on(eventName: S['name'], listener: (...args: any[]) => void): N };
|
|
32
32
|
|
|
33
|
-
export type ForAll<E extends
|
|
34
|
-
[x in E]: x extends keyof D ? { name: `${D[x]['name']}Changed`; driver: x; value: D[x]['value']; uom: UnitOfMeasure }
|
|
33
|
+
export type ForAll<E extends ISYNode.EventSignatures, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures> = {
|
|
34
|
+
[x in keyof E | keyof D]: x extends keyof D ? { name: `${D[x]['name']}Changed`; driver: x; value: D[x]['value']; uom: UnitOfMeasure }
|
|
35
35
|
: x extends keyof C ? { name: `${C[x]['name']}Triggered`; command: x }
|
|
36
36
|
: { name: x };
|
|
37
37
|
};
|
|
@@ -44,7 +44,7 @@ export namespace Event {
|
|
|
44
44
|
|
|
45
45
|
export type FunctionSigFor<E extends Signatures, N> = UnionToIntersection<HandlerSignature<ObjectToUnion<E>, N>>;
|
|
46
46
|
|
|
47
|
-
type test1 = ForAll<'ST', Driver.Signatures<{ ST: { name: 'Status'; label: 'Status'; uom: UnitOfMeasure; value: boolean; formatted: string } } | 'RR'>, any>;
|
|
47
|
+
type test1 = ForAll<{'ST'}, Driver.Signatures<{ ST: { name: 'Status'; label: 'Status'; uom: UnitOfMeasure; value: boolean; formatted: string } } | 'RR'>, any>;
|
|
48
48
|
type test = FunctionSigFor<test1, test1> & Omit<EventEmitter, 'on'>;
|
|
49
49
|
|
|
50
50
|
export class NodeEventEmitter<N extends ISYNode<any, any, any, any>> extends EventEmitter {
|
|
@@ -2,3 +2,12 @@ export enum Boolean {
|
|
|
2
2
|
False = 0,
|
|
3
3
|
True = 255
|
|
4
4
|
}
|
|
5
|
+
|
|
6
|
+
export namespace Boolean {
|
|
7
|
+
export function toBoolean(value: Boolean): boolean {
|
|
8
|
+
return value === Boolean.True;
|
|
9
|
+
}
|
|
10
|
+
export function fromBoolean(value: boolean): Boolean {
|
|
11
|
+
return value ? Boolean.True : Boolean.False;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -2,3 +2,12 @@ export enum Error {
|
|
|
2
2
|
True = 0,
|
|
3
3
|
False = 1
|
|
4
4
|
}
|
|
5
|
+
|
|
6
|
+
export namespace Error {
|
|
7
|
+
export function toBoolean(value: Error): boolean {
|
|
8
|
+
return value === Error.True;
|
|
9
|
+
}
|
|
10
|
+
export function fromBoolean(value: boolean): Error {
|
|
11
|
+
return value ? Error.True : Error.False;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,4 +1,32 @@
|
|
|
1
|
+
import exp from 'constants';
|
|
2
|
+
|
|
1
3
|
export enum Lock {
|
|
2
4
|
Unlocked = 0,
|
|
3
5
|
Locked = 100
|
|
4
6
|
}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export namespace Lock {
|
|
10
|
+
export function toString(value: number): string {
|
|
11
|
+
switch (value) {
|
|
12
|
+
case Lock.Unlocked: return "Unlocked";
|
|
13
|
+
case Lock.Locked: return "Locked";
|
|
14
|
+
default: return value.toString();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function toEnum(value: string): number {
|
|
18
|
+
switch (value) {
|
|
19
|
+
case "Unlocked": return Lock.Unlocked;
|
|
20
|
+
case "Locked": return Lock.Locked;
|
|
21
|
+
default: return parseInt(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function toBoolean(value: Lock): boolean {
|
|
26
|
+
return value === Lock.Locked;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function fromBoolean(value: boolean): Lock {
|
|
30
|
+
return value ? Lock.Locked : Lock.Unlocked;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -2,3 +2,14 @@ export enum OnLevelRelay {
|
|
|
2
2
|
Off = 0,
|
|
3
3
|
On = 100
|
|
4
4
|
}
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export namespace OnLevelRelay {
|
|
8
|
+
export function toBoolean(value: OnLevelRelay): boolean {
|
|
9
|
+
return value === OnLevelRelay.On;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function fromBoolean(value: boolean): OnLevelRelay {
|
|
13
|
+
return value ? OnLevelRelay.On : OnLevelRelay.Off;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -17,16 +17,16 @@ const nodeDefId = "BTChannel";
|
|
|
17
17
|
type Commands = Channel.Commands;
|
|
18
18
|
type Drivers = Channel.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class ChannelNode extends Base<Drivers, Commands> implements Channel.Interface {
|
|
21
21
|
public override readonly commands = {};
|
|
22
22
|
static override nodeDefId = "BTChannel";
|
|
23
|
-
static override implements = [
|
|
24
|
-
declare readonly nodeDefId:
|
|
23
|
+
static override implements = ['BTChannel'];
|
|
24
|
+
declare readonly nodeDefId: 'BTChannel';
|
|
25
25
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
26
26
|
super(isy, nodeInfo);
|
|
27
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
28
|
-
this.drivers.TPW = Driver.create("TPW", this, nodeInfo.
|
|
29
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
27
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Watt, label: "Status", name: "status" });
|
|
28
|
+
this.drivers.TPW = Driver.create("TPW", this, nodeInfo.state['TPW'], { uom: UnitOfMeasure.KilowattsPerHour, label: "Total Energy", name: "totalEnergy" });
|
|
29
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
30
30
|
}
|
|
31
31
|
public get status(): number {
|
|
32
32
|
return this.drivers.ST?.value;
|
|
@@ -43,13 +43,12 @@ NodeFactory.register(ChannelNode);
|
|
|
43
43
|
|
|
44
44
|
export namespace Channel {
|
|
45
45
|
export interface Interface extends Omit<InstanceType<typeof ChannelNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
46
|
-
nodeDefId: "BTChannel";
|
|
47
46
|
}
|
|
48
47
|
export function is(node: ISYNode<any, any, any, any>): node is ChannelNode {
|
|
49
|
-
return [
|
|
48
|
+
return ['BTChannel'].includes(node.nodeDefId);
|
|
50
49
|
}
|
|
51
50
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ChannelNode {
|
|
52
|
-
return [
|
|
51
|
+
return ['BTChannel', "BTMain"].includes(node.nodeDefId);
|
|
53
52
|
}
|
|
54
53
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
55
54
|
return new ChannelNode(isy, nodeInfo);
|
|
@@ -17,21 +17,21 @@ const nodeDefId = "BTMain";
|
|
|
17
17
|
type Commands = Main.Commands;
|
|
18
18
|
type Drivers = Main.Drivers;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class MainNode extends Base<Drivers, Commands> implements Main.Interface {
|
|
21
21
|
public override readonly commands = {
|
|
22
22
|
QUERY: this.query
|
|
23
23
|
};
|
|
24
24
|
static override nodeDefId = "BTMain";
|
|
25
|
-
static override implements = [
|
|
26
|
-
declare readonly nodeDefId:
|
|
25
|
+
static override implements = ['BTMain'];
|
|
26
|
+
declare readonly nodeDefId: 'BTMain';
|
|
27
27
|
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
28
28
|
super(isy, nodeInfo);
|
|
29
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.
|
|
30
|
-
this.drivers.TPW = Driver.create("TPW", this, nodeInfo.
|
|
31
|
-
this.drivers.CV = Driver.create("CV", this, nodeInfo.
|
|
32
|
-
this.drivers.CC = Driver.create("CC", this, nodeInfo.
|
|
33
|
-
this.drivers.PPW = Driver.create("PPW", this, nodeInfo.
|
|
34
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.
|
|
29
|
+
this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Watt, label: "Status", name: "status" });
|
|
30
|
+
this.drivers.TPW = Driver.create("TPW", this, nodeInfo.state['TPW'], { uom: UnitOfMeasure.KilowattsPerHour, label: "Total Energy", name: "totalEnergy" });
|
|
31
|
+
this.drivers.CV = Driver.create("CV", this, nodeInfo.state['CV'], { uom: UnitOfMeasure.Volt, label: "Current Voltage", name: "currentVoltage" });
|
|
32
|
+
this.drivers.CC = Driver.create("CC", this, nodeInfo.state['CC'], { uom: UnitOfMeasure.Ampere, label: "Current Current", name: "currentCurrent" });
|
|
33
|
+
this.drivers.PPW = Driver.create("PPW", this, nodeInfo.state['PPW'], { uom: UnitOfMeasure.Watt, label: "Polarized Power", name: "polarizedPower" });
|
|
34
|
+
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
35
35
|
}
|
|
36
36
|
async query() { return this.sendCommand("QUERY"); }
|
|
37
37
|
public get status(): number {
|
|
@@ -58,13 +58,12 @@ NodeFactory.register(MainNode);
|
|
|
58
58
|
|
|
59
59
|
export namespace Main {
|
|
60
60
|
export interface Interface extends Omit<InstanceType<typeof MainNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
61
|
-
nodeDefId: "BTMain";
|
|
62
61
|
}
|
|
63
62
|
export function is(node: ISYNode<any, any, any, any>): node is MainNode {
|
|
64
|
-
return [
|
|
63
|
+
return ['BTMain'].includes(node.nodeDefId);
|
|
65
64
|
}
|
|
66
65
|
export function isImplementedBy(node: ISYNode<any, any, any, any>): node is MainNode {
|
|
67
|
-
return [
|
|
66
|
+
return ['BTMain'].includes(node.nodeDefId);
|
|
68
67
|
}
|
|
69
68
|
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
70
69
|
return new MainNode(isy, nodeInfo);
|