isy-nodejs 1.0.2-alpha.3 → 1.0.2-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/CodeGeneration/CodeFactory.js +245 -0
- package/dist/esm/CodeGeneration/CodeFactory.js.map +1 -0
- package/dist/esm/CodeGeneration/NodeClassFactory.js +182 -129
- package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
- package/dist/esm/CodeGeneration/NodeFactory.js +245 -0
- package/dist/esm/CodeGeneration/NodeFactory.js.map +1 -0
- package/dist/esm/Converters.js +15 -1
- package/dist/esm/Converters.js.map +1 -1
- package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
- package/dist/esm/Definitions/Global/Events.js.map +1 -1
- package/dist/esm/Devices/ISYDevice.js +0 -33
- package/dist/esm/Devices/ISYDevice.js.map +1 -1
- package/dist/esm/Devices/ISYDeviceNode.js +2 -2
- package/dist/esm/Devices/ISYDeviceNode.js.map +1 -1
- package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +54 -0
- package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +54 -0
- package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +46 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +46 -0
- package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +75 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +78 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +80 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +74 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +40 -0
- package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/DoorLock.js +45 -0
- package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +47 -0
- package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +53 -0
- package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +93 -0
- package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +81 -0
- package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +39 -0
- package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +46 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +78 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +56 -0
- package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +39 -0
- package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844.js +64 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +50 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +64 -0
- package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +54 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +56 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +58 -0
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +44 -0
- package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +42 -0
- package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Siren.js +66 -0
- package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +35 -0
- package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/TempLinc.js +83 -0
- package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/Thermostat.js +83 -0
- package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/X10.js +49 -0
- package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -0
- package/dist/esm/Devices/Insteon/Generated/index.js +39 -0
- package/dist/esm/Devices/Insteon/Generated/index.js.map +1 -0
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +3 -4
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js +2 -2
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/KeypadButton.js +11 -11
- package/dist/esm/Devices/Insteon/KeypadButton.js.map +1 -1
- package/dist/esm/Devices/Insteon/index.js +16 -29
- package/dist/esm/Devices/Insteon/index.js.map +1 -1
- package/dist/esm/Devices/Lutron/Generated/LoadShed.js +45 -0
- package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -0
- package/dist/esm/Devices/NodeFactory.js +45 -8
- package/dist/esm/Devices/NodeFactory.js.map +1 -1
- package/dist/esm/Devices/Scene/index.js +2 -2
- package/dist/esm/Devices/Scene/index.js.map +1 -1
- package/dist/esm/Devices/UDI/Generated/Channel.js +42 -0
- package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +54 -0
- package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/Main.js +45 -0
- package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/PulseCounter.js +46 -0
- package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/Relay.js +45 -0
- package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -0
- package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +38 -0
- package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -0
- package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +57 -0
- package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -0
- package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +65 -0
- package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -0
- package/dist/esm/Devices/ZWave/Generated/index.js +3 -0
- package/dist/esm/Devices/ZWave/Generated/index.js.map +1 -0
- package/dist/esm/Devices/ZWave/index.js +1 -0
- package/dist/esm/Devices/ZWave/index.js.map +1 -1
- package/dist/esm/Devices/index.js +9 -3
- package/dist/esm/Devices/index.js.map +1 -1
- package/dist/esm/ISY.js +14 -9
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYDevice.js +7 -1
- package/dist/esm/ISYDevice.js.map +1 -1
- package/dist/esm/ISYNode.js +13 -4
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/ISYScene.js +13 -12
- package/dist/esm/ISYScene.js.map +1 -1
- package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +13 -0
- package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +3 -0
- package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
- package/dist/esm/Matter/Bridge/Server.js +65 -56
- package/dist/esm/Matter/Bridge/Server.js.map +1 -1
- package/dist/esm/Matter/Mappings/Insteon.js +28 -9
- package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
- package/dist/esm/Model/ClassDefinition.js +22 -3
- package/dist/esm/Model/ClassDefinition.js.map +1 -1
- package/dist/esm/Model/ClusterMap.js +45 -19
- package/dist/esm/Model/ClusterMap.js.map +1 -1
- package/dist/esm/Model/NodeInfo.js +1 -1
- package/dist/esm/Model/NodeInfo.js.map +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/types/CodeGeneration/CodeFactory.d.ts +75 -0
- package/dist/esm/types/CodeGeneration/CodeFactory.d.ts.map +1 -0
- package/dist/esm/types/CodeGeneration/EnumFactory.d.ts +1 -1
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +22 -3
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
- package/dist/esm/types/CodeGeneration/NodeFactory.d.ts +75 -0
- package/dist/esm/types/CodeGeneration/NodeFactory.d.ts.map +1 -0
- package/dist/esm/types/Converters.d.ts +9 -3
- package/dist/esm/types/Converters.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Events.d.ts +2 -2
- package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
- package/dist/esm/types/Devices/DeviceMap.d.ts +1 -1
- package/dist/esm/types/Devices/DeviceMap.d.ts.map +1 -1
- package/dist/esm/types/Devices/EndpointFor.d.ts +7 -5
- package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
- package/dist/esm/types/Devices/ISYDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/ISYDeviceNode.d.ts +5 -13
- package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +144 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +150 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +156 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +138 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +51 -0
- package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +52 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +70 -0
- package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +52 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +168 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +142 -0
- package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +71 -0
- package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +51 -0
- package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +64 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +150 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +94 -0
- package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +44 -0
- package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +98 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +98 -0
- package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +88 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +94 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +100 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +57 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +63 -0
- package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +52 -0
- package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +109 -0
- package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +37 -0
- package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +148 -0
- package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +148 -0
- package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +76 -0
- package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/Generated/index.d.ts +39 -0
- package/dist/esm/types/Devices/Insteon/Generated/index.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts +4 -10
- package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +22 -28
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +3 -3
- package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts +19 -19
- package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/index.d.ts +6 -42
- package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +64 -0
- package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -0
- package/dist/esm/types/Devices/NodeFactory.d.ts +18 -7
- package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
- package/dist/esm/types/Devices/Scene/index.d.ts +2 -1
- package/dist/esm/types/Devices/Scene/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +51 -0
- package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +72 -0
- package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +59 -0
- package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +58 -0
- package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +64 -0
- package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -0
- package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +44 -0
- package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +90 -0
- package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +124 -0
- package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/Generated/index.d.ts +3 -0
- package/dist/esm/types/Devices/ZWave/Generated/index.d.ts.map +1 -0
- package/dist/esm/types/Devices/ZWave/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/index.d.ts +7 -21
- package/dist/esm/types/Devices/index.d.ts.map +1 -1
- package/dist/esm/types/ISY.d.ts.map +1 -1
- package/dist/esm/types/ISYDevice.d.ts +19 -28
- package/dist/esm/types/ISYDevice.d.ts.map +1 -1
- package/dist/esm/types/ISYNode.d.ts +25 -8
- package/dist/esm/types/ISYNode.d.ts.map +1 -1
- package/dist/esm/types/ISYScene.d.ts +5 -6
- package/dist/esm/types/ISYScene.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +11 -0
- package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -0
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +1 -4
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +5 -4
- package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Bridge/Server.d.ts +1 -1
- package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
- package/dist/esm/types/Model/ClassDefinition.d.ts +6 -2
- package/dist/esm/types/Model/ClassDefinition.d.ts.map +1 -1
- package/dist/esm/types/Model/ClusterMap.d.ts +12 -21
- package/dist/esm/types/Model/ClusterMap.d.ts.map +1 -1
- package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
- package/dist/esm/types/Utils.d.ts +18 -0
- package/dist/esm/types/Utils.d.ts.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/CodeGeneration/CodeFactory.ts +341 -0
- package/src/CodeGeneration/NodeClassFactory.ts +362 -233
- package/src/Converters.ts +23 -3
- package/src/Definitions/Global/Drivers.ts +1 -0
- package/src/Definitions/Global/Events.ts +3 -3
- package/src/Devices/Brultech/Generated/Channel.ts +8 -6
- package/src/Devices/Brultech/Generated/Main.ts +9 -9
- package/src/Devices/DeviceMap.ts +1 -1
- package/src/Devices/ISYDevice.ts +8 -57
- package/src/Devices/ISYDeviceNode.ts +143 -166
- package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +13 -21
- package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +18 -29
- package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +18 -29
- package/src/Devices/Insteon/Generated/BinaryAlarm.ts +14 -17
- package/src/Devices/Insteon/Generated/BinaryControl.ts +14 -17
- package/src/Devices/Insteon/Generated/DimmerLamp.ts +25 -51
- package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +36 -64
- package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +31 -60
- package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +24 -47
- package/src/Devices/Insteon/Generated/DimmerSwitch.ts +13 -14
- package/src/Devices/Insteon/Generated/DoorLock.ts +11 -15
- package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +12 -11
- package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +12 -18
- package/src/Devices/Insteon/Generated/EzrainInput.ts +12 -11
- package/src/Devices/Insteon/Generated/EzrainOutput.ts +13 -21
- package/src/Devices/Insteon/Generated/FanLincMotor.ts +15 -27
- package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +19 -39
- package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +17 -33
- package/src/Devices/Insteon/Generated/ImeterSolo.ts +11 -15
- package/src/Devices/Insteon/Generated/IrLincTx.ts +10 -12
- package/src/Devices/Insteon/Generated/{KeypadButtonAdv.ts → KeypadButton.ts} +23 -26
- package/src/Devices/Insteon/Generated/KeypadDimmer.ts +30 -57
- package/src/Devices/Insteon/Generated/KeypadRelay.ts +30 -43
- package/src/Devices/Insteon/Generated/OnOffControl.ts +15 -12
- package/src/Devices/Insteon/Generated/Pir2844.ts +15 -20
- package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +16 -23
- package/src/Devices/Insteon/Generated/Pir2844c.ts +15 -20
- package/src/Devices/Insteon/Generated/RelayLamp.ts +29 -41
- package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +29 -42
- package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +24 -39
- package/src/Devices/Insteon/Generated/RelaySwitch.ts +14 -17
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +15 -20
- package/src/Devices/Insteon/Generated/RemoteLinc2.ts +12 -11
- package/src/Devices/Insteon/Generated/Siren.ts +18 -29
- package/src/Devices/Insteon/Generated/SirenAlert.ts +11 -8
- package/src/Devices/Insteon/Generated/TempLinc.ts +18 -36
- package/src/Devices/Insteon/Generated/Thermostat.ts +18 -36
- package/src/Devices/Insteon/Generated/X10.ts +13 -21
- package/src/Devices/Insteon/Generated/index.ts +38 -0
- package/src/Devices/Insteon/InsteonBaseDevice.ts +5 -4
- package/src/Devices/Insteon/InsteonFanDevice.ts +3 -4
- package/src/Devices/Insteon/InsteonRelayDevice.ts +1 -0
- package/src/Devices/Insteon/KeypadButton.ts +31 -31
- package/src/Devices/Insteon/index.ts +18 -26
- package/src/Devices/Lutron/Generated/LoadShed.ts +11 -15
- package/src/Devices/NCD/Generated/Relay.ts +12 -18
- package/src/Devices/NodeFactory.ts +67 -13
- package/src/Devices/Poly/Generated/MatterBridge.ts +84 -0
- package/src/Devices/Scene/Generated/Scene.ts +33 -65
- package/src/Devices/Scene/index.ts +2 -1
- package/src/Devices/UDI/Generated/Channel.ts +8 -6
- package/src/Devices/UDI/Generated/Em3MainChannel.ts +8 -6
- package/src/Devices/UDI/Generated/Main.ts +9 -9
- package/src/Devices/UDI/Generated/PulseCounter.ts +8 -6
- package/src/Devices/UDI/Generated/Relay.ts +11 -15
- package/src/Devices/UDI/Generated/TemperatureSensor.ts +8 -6
- package/src/Devices/ZWave/Generated/ColorSwitch.ts +16 -24
- package/src/Devices/ZWave/Generated/DimmerSwitch.ts +25 -49
- package/src/Devices/ZWave/Generated/index.ts +2 -0
- package/src/Devices/ZWave/index.ts +5 -1
- package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +12 -18
- package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +17 -33
- package/src/Devices/index.ts +17 -12
- package/src/ISY.ts +9 -3
- package/src/ISYDevice.ts +68 -57
- package/src/ISYNode.ts +32 -8
- package/src/ISYScene.ts +31 -28
- package/src/Matter/Behaviors/BehaviorRegistry.ts +26 -0
- package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +6 -0
- package/src/Matter/Bridge/Server.ts +39 -15
- package/src/Matter/Mappings/Insteon.ts +37 -20
- package/src/Model/ClassDefinition.ts +34 -4
- package/src/Model/ClusterMap.ts +73 -57
- package/src/Model/NodeInfo.ts +1 -1
- package/src/Utils.ts +38 -0
- package/tsconfig.json +7 -1
- package/src/Devices/Insteon/Generated/AlertModuleSirenAdv.ts +0 -123
- package/src/Devices/Insteon/Generated/BallastRelayLampSwitchAdv.ts +0 -123
- package/src/Devices/Insteon/Generated/BinaryAlarmAdv.ts +0 -91
- package/src/Devices/Insteon/Generated/BinaryControlAdv.ts +0 -91
- package/src/Devices/Insteon/Generated/DimmerLampSwitchAdv.ts +0 -207
- package/src/Devices/Insteon/Generated/DimmerLampSwitchLedAdv.ts +0 -215
- package/src/Devices/Insteon/Generated/DimmerMotorSwitchAdv.ts +0 -191
- package/src/Devices/Insteon/Generated/DimmerSwitchOnlyAdv.ts +0 -73
- package/src/Devices/Insteon/Generated/Ezio2x4InputAdv.ts +0 -75
- package/src/Devices/Insteon/Generated/EzrainInputAdv.ts +0 -75
- package/src/Devices/Insteon/Generated/KeypadDimmerAdv.ts +0 -207
- package/src/Devices/Insteon/Generated/KeypadRelayAdv.ts +0 -131
- package/src/Devices/Insteon/Generated/OnOffControlAdv.ts +0 -65
- package/src/Devices/Insteon/Generated/Pir2844Adv.ts +0 -139
- package/src/Devices/Insteon/Generated/Pir2844OnOffAdv.ts +0 -107
- package/src/Devices/Insteon/Generated/Pir2844cAdv.ts +0 -139
- package/src/Devices/Insteon/Generated/RelayLampOnlyAdv.ts +0 -123
- package/src/Devices/Insteon/Generated/RelayLampSwitchAdv.ts +0 -131
- package/src/Devices/Insteon/Generated/RelayLampSwitchLedAdv.ts +0 -139
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyAdv.ts +0 -81
- package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQueryAdv.ts +0 -89
- package/src/Devices/Insteon/Generated/RemoteLinc2Adv.ts +0 -75
- package/src/Devices/Insteon/Generated/SirenArm.ts +0 -55
|
@@ -72,12 +72,19 @@ function buildNodeClassDefinitions<T extends Family>(nodeDefs: NodeDef[], family
|
|
|
72
72
|
if (id.includes(id2)) {
|
|
73
73
|
node.implements.push(id2, ...node2.implements);
|
|
74
74
|
node.equivalentTo.push(id2);
|
|
75
|
+
node2.equivalents.push(id);
|
|
76
|
+
|
|
75
77
|
} else {
|
|
76
78
|
node2.implements.push(id, ...node.implements);
|
|
77
79
|
node2.equivalentTo.push(id);
|
|
80
|
+
node.equivalents.push(id2);
|
|
78
81
|
}
|
|
79
82
|
} else if (ext) {
|
|
80
83
|
node.implements.push(id2, ...node2.implements);
|
|
84
|
+
if(id.includes(id2))
|
|
85
|
+
{
|
|
86
|
+
node.extends.push(id2);
|
|
87
|
+
}
|
|
81
88
|
}
|
|
82
89
|
|
|
83
90
|
// if (Object.keys(d.).length == 0) {
|
|
@@ -113,10 +120,19 @@ function buildNodeClassDefinitions<T extends Family>(nodeDefs: NodeDef[], family
|
|
|
113
120
|
e = i;
|
|
114
121
|
}
|
|
115
122
|
}
|
|
116
|
-
|
|
123
|
+
|
|
117
124
|
}
|
|
118
125
|
map[node.id] = node;
|
|
119
126
|
}
|
|
127
|
+
for (const node of Object.values(map).filter((p) => p.implements.length > 0))
|
|
128
|
+
{
|
|
129
|
+
for (const i of node.implements)
|
|
130
|
+
{
|
|
131
|
+
let superNode = map[i];
|
|
132
|
+
if(superNode)
|
|
133
|
+
superNode.implementedBy?.push(node.id);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
120
136
|
return map;
|
|
121
137
|
}
|
|
122
138
|
|
|
@@ -127,11 +143,17 @@ export class NodeClassDefinition<T extends Family> {
|
|
|
127
143
|
public drivers: { [x in Driver.Type]?: DriverDefinition } = {};
|
|
128
144
|
public dynamic: boolean = false;
|
|
129
145
|
public equivalentTo: string[] = [];
|
|
146
|
+
|
|
147
|
+
public equivalents: string[] = [];
|
|
148
|
+
|
|
149
|
+
|
|
130
150
|
public events: { [x: string]: EventDefinition } = {};
|
|
131
|
-
public extends?: string;
|
|
151
|
+
public extends?: string[] = [];
|
|
132
152
|
public family: T;
|
|
133
153
|
public id: string;
|
|
134
154
|
public implements: string[] = [];
|
|
155
|
+
|
|
156
|
+
public implementedBy: string[] = [];
|
|
135
157
|
public label: string;
|
|
136
158
|
public nlsId: string;
|
|
137
159
|
|
|
@@ -262,7 +284,9 @@ export class NodeClassDefinition<T extends Family> {
|
|
|
262
284
|
dynamic: this.family in [Family.ZWave, Family.ZigBee],
|
|
263
285
|
implements: this.implements.length > 0 ? this.implements : undefined,
|
|
264
286
|
equivalentTo: this.equivalentTo.length > 0 ? this.equivalentTo : undefined,
|
|
265
|
-
extends: this.extends
|
|
287
|
+
extends: this.extends.length > 0 ? this.extends : undefined,
|
|
288
|
+
equivalents: this.equivalents.length > 0 ? this.equivalents : undefined,
|
|
289
|
+
implementedBy: this.implementedBy.length > 0 ? this.implementedBy : undefined
|
|
266
290
|
};
|
|
267
291
|
}
|
|
268
292
|
|
|
@@ -409,7 +433,7 @@ export abstract class NodeMemberDefinition<TId extends string> {
|
|
|
409
433
|
var d = {};
|
|
410
434
|
for (const rangeDef of toArray(e.range)) {
|
|
411
435
|
if ('subset' in rangeDef) {
|
|
412
|
-
d[rangeDef.uom]
|
|
436
|
+
d[rangeDef.uom]= { uom: rangeDef.uom, indexId: rangeDef.nls, ...this.#parseSubset(e) };
|
|
413
437
|
} else {
|
|
414
438
|
d[rangeDef.uom] = {
|
|
415
439
|
uom: rangeDef.uom,
|
|
@@ -422,8 +446,14 @@ export abstract class NodeMemberDefinition<TId extends string> {
|
|
|
422
446
|
returnType: rangeDef.nls ? EnumDefinition.get(this.classDef.family, rangeDef.nls, rangeDef.uom, this.classDef.id)?.name : undefined
|
|
423
447
|
};
|
|
424
448
|
}
|
|
449
|
+
if(rangeDef.uom === UnitOfMeasure.Index)
|
|
450
|
+
{
|
|
451
|
+
d[rangeDef.uom].enum = true;
|
|
452
|
+
}
|
|
453
|
+
|
|
425
454
|
}
|
|
426
455
|
this.dataType = d;
|
|
456
|
+
|
|
427
457
|
}
|
|
428
458
|
}
|
|
429
459
|
|
package/src/Model/ClusterMap.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { ClusterBehavior } from '@project-chip/matter.js/behavior/cluster';
|
|
2
1
|
import * as Clusters from '@project-chip/matter.js/cluster';
|
|
3
|
-
|
|
4
|
-
import { SupportedBehaviors } from '@project-chip/matter.js/endpoint/properties';
|
|
5
|
-
import type { MutableEndpoint } from '@project-chip/matter.js/endpoint/type';
|
|
2
|
+
|
|
6
3
|
import type { Converter } from '../Converters.js';
|
|
7
4
|
import { DriverType } from '../Definitions/Global/Drivers.js';
|
|
8
|
-
import { Devices } from '../Devices/index.js';
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
import { Devices, Insteon } from '../Devices/index.js';
|
|
6
|
+
|
|
7
|
+
import { ClusterBehavior, MutableEndpoint, SupportedBehaviors } from '@matter/main';
|
|
8
|
+
import type { OnOffLightDevice } from '@matter/main/devices';
|
|
9
|
+
import { BridgedDeviceBasicInformationBehavior } from '@matter/node/behaviors';
|
|
10
|
+
import type { DeviceTypeDefinition } from '@project-chip/matter.js/device';
|
|
11
|
+
import { Family } from '../Definitions/index.js';
|
|
12
|
+
import { NodeFactory } from '../Devices/NodeFactory.js';
|
|
11
13
|
import { CommandsOf, DriversOf, ISYNode } from '../ISYNode.js';
|
|
14
|
+
import { ISYBridgedDeviceBehavior } from '../Matter/Behaviors/ISYBridgedDeviceBehavior.js';
|
|
15
|
+
import { ISYOnOffBehavior } from '../Matter/Behaviors/Insteon/ISYOnOffBehavior.js';
|
|
16
|
+
import type { PickOfType, Remove } from '../Utils.js';
|
|
12
17
|
import { ClusterType } from './ClusterType.js';
|
|
13
|
-
import type { Family } from '../Definitions/index.js';
|
|
14
18
|
|
|
15
19
|
// #region Type aliases (16)
|
|
16
20
|
|
|
@@ -84,15 +88,12 @@ export type CommandMapping<B, D> =
|
|
|
84
88
|
// behavior?: typeof ClusterBehavior;
|
|
85
89
|
|
|
86
90
|
// }
|
|
87
|
-
export type DeviceToClusterMap<T extends ISYNode<Family, any, any, any>, D extends
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
: never;
|
|
94
|
-
export type EndpointMapping<A extends { behaviors: any }, D extends ISYNode<Family, any, any, any>> = {
|
|
95
|
-
[K in Capitalize<StringKeys<A['behaviors']>>]?: BehaviorMapping<A['behaviors'][Uncapitalize<K>], D>; //{
|
|
91
|
+
export type DeviceToClusterMap<T extends ISYNode<Family, any, any, any>, D extends MutableEndpoint> = {
|
|
92
|
+
deviceType: D;
|
|
93
|
+
mapping: EndpointMapping<D, T>;
|
|
94
|
+
};
|
|
95
|
+
export type EndpointMapping<A extends MutableEndpoint, D extends ISYNode<Family, any, any, any>> = {
|
|
96
|
+
[K in StringKeys<PickOfType<A['behaviors'], ClusterBehavior>> as Capitalize<K>]?: A['behaviors'][K] extends ClusterBehavior ? BehaviorMapping<A['behaviors'][K], D> : undefined; //{
|
|
96
97
|
/*attributes?: AttributeMapping<A['behaviors'][Uncapitalize<K>], D>;
|
|
97
98
|
commands?: CommandMapping<A['behaviors'][Uncapitalize<K>], D>;*/
|
|
98
99
|
//};
|
|
@@ -115,8 +116,9 @@ export type EndpointMapping1<A extends MutableEndpoint, K> = {
|
|
|
115
116
|
attributes?: SBAttributeMapping<A['behaviors'], K>;
|
|
116
117
|
commands?: SBCommandMapping<A['behaviors'], K>;
|
|
117
118
|
};
|
|
119
|
+
//@ts-ignore
|
|
118
120
|
export type FamilyToClusterMap<T extends Family.Insteon | Family.ZWave | Family.ZigBee> = { Family: T } & {
|
|
119
|
-
[Type in keyof Devices.Insteon]?: DeviceToClusterMap<InstanceType<Devices.Insteon[Type]>,
|
|
121
|
+
[Type in Extract<keyof Devices.Insteon, `${string}Node`> as Remove<Type, 'Node'>]?: DeviceToClusterMap<InstanceType<Devices.Insteon[Type]>, MutableEndpoint>;
|
|
120
122
|
};
|
|
121
123
|
export type SBAttributeMapping<SB extends SupportedBehaviors, D> = {
|
|
122
124
|
[K in keyof SB]: Partial<Record<any, DriversOf<D> | { driver: DriversOf<D>; converter?: string }>>;
|
|
@@ -139,32 +141,43 @@ export type parameterMapping = {
|
|
|
139
141
|
export class MappingRegistry {
|
|
140
142
|
// #region Properties (1)
|
|
141
143
|
|
|
142
|
-
public static map: Map<Family,Map<string, DeviceToClusterMap<
|
|
144
|
+
public static map: Map<Family, Map<string, DeviceToClusterMap<ISYNode, MutableEndpoint>>> = new Map();
|
|
145
|
+
|
|
146
|
+
public static cache: { [x: string]: DeviceToClusterMap<ISYNode, MutableEndpoint> } = {};
|
|
143
147
|
|
|
144
148
|
// #endregion Properties (1)
|
|
145
149
|
|
|
146
150
|
// #region Public Static Methods (3)
|
|
147
151
|
|
|
148
|
-
public static getMapping<T extends ISYNode<any,any,any,any>>(device:
|
|
149
|
-
|
|
150
|
-
{
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
152
|
+
public static getMapping<T extends ISYNode<any, any, any, any>>(device: T): DeviceToClusterMap<T, MutableEndpoint> {
|
|
153
|
+
let m = this.cache[device.address];
|
|
154
|
+
if (!m) {
|
|
155
|
+
if (MappingRegistry.map.has(device.family)) {
|
|
156
|
+
let g = MappingRegistry.map.get(device.family);
|
|
157
|
+
//let m: DeviceToClusterMap<T,MutableEndpoint>;
|
|
158
|
+
if (g.has(device.constructor.name)) {
|
|
159
|
+
m = g.get(device.constructor.name);
|
|
160
|
+
} else if (g.has(device.nodeDefId)) {
|
|
161
|
+
m = g.get(device.nodeDefId);
|
|
162
|
+
} else if (g.has(device.type)) {
|
|
163
|
+
m = g.get(device.type);
|
|
164
|
+
}
|
|
165
|
+
if (!m) {
|
|
166
|
+
for (var nodeDefId of NodeFactory.getImplements(device)) {
|
|
167
|
+
if (g.has(nodeDefId)) {
|
|
168
|
+
device.logger(`Mapping found to ${Family[device.family]}.${nodeDefId}`, 'info');
|
|
169
|
+
m = g.get(nodeDefId);
|
|
170
|
+
g.set(device.nodeDefId, m);
|
|
171
|
+
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (m !== null) this.cache[device.address] = m;
|
|
163
177
|
}
|
|
164
|
-
|
|
165
178
|
}
|
|
166
|
-
return null;
|
|
167
179
|
|
|
180
|
+
return m;
|
|
168
181
|
}
|
|
169
182
|
|
|
170
183
|
public static getMappingForBehavior<T extends ISYNode<any, any, any, any>, B extends ClusterBehavior>(device: T, behavior: B): BehaviorMapping<B, T> {
|
|
@@ -176,40 +189,43 @@ export class MappingRegistry {
|
|
|
176
189
|
}
|
|
177
190
|
}
|
|
178
191
|
//@ts-ignore
|
|
179
|
-
public static register(map: Partial<FamilyToClusterMap<any>> | {[x in Paths<typeof Devices>]: DeviceToClusterMap<any,any>}) {
|
|
180
|
-
if(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
if(!MappingRegistry.map.has(map.Family))
|
|
184
|
-
{
|
|
192
|
+
public static register(map: Partial<FamilyToClusterMap<any>> | { [x in Paths<typeof Devices>]: DeviceToClusterMap<any, any> }) {
|
|
193
|
+
if ('Family' in map) {
|
|
194
|
+
let regMap: Map<string, DeviceToClusterMap<any, any>>;
|
|
195
|
+
if (!MappingRegistry.map.has(map.Family)) {
|
|
185
196
|
MappingRegistry.map.set(map.Family, new Map());
|
|
186
197
|
}
|
|
198
|
+
|
|
187
199
|
regMap = MappingRegistry.map.get(map.Family);
|
|
188
200
|
for (var key in map) {
|
|
189
201
|
if (key !== 'Family') {
|
|
190
|
-
|
|
191
|
-
|
|
202
|
+
let m = map[key] as DeviceToClusterMap<ISYNode, MutableEndpoint>;
|
|
203
|
+
|
|
204
|
+
m = { deviceType: m.deviceType.with(BridgedDeviceBasicInformationBehavior, ISYBridgedDeviceBehavior), mapping: m.mapping };
|
|
205
|
+
regMap.set(key, m);
|
|
206
|
+
regMap.set(Insteon[key]?.name, m);
|
|
207
|
+
regMap.set(Insteon[key].nodeDefId, m);
|
|
208
|
+
|
|
209
|
+
//TODO: This is a hack to allow for the Insteon devices to be registered by name
|
|
192
210
|
}
|
|
193
211
|
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
{
|
|
197
|
-
let regMap : Map<string, DeviceToClusterMap<any, any>>;
|
|
212
|
+
} else {
|
|
213
|
+
let regMap: Map<string, DeviceToClusterMap<any, any>>;
|
|
198
214
|
for (var key in map) {
|
|
199
|
-
const keys = key.split(
|
|
215
|
+
const keys = key.split('.');
|
|
200
216
|
let x = Devices[keys[0]][keys[1]] as typeof ISYNode<any, any, any, any>;
|
|
201
|
-
if(!MappingRegistry.map.has(x.family))
|
|
202
|
-
{
|
|
217
|
+
if (!MappingRegistry.map.has(x.family)) {
|
|
203
218
|
MappingRegistry.map.set(x.family, new Map());
|
|
204
219
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
regMap = MappingRegistry.map.get(x.family);
|
|
220
|
+
//{family, key} = key.split(".")[0]
|
|
208
221
|
|
|
209
|
-
|
|
210
|
-
|
|
222
|
+
regMap = MappingRegistry.map.get(x.family);
|
|
223
|
+
let m = map[key] as DeviceToClusterMap<ISYNode, MutableEndpoint>;
|
|
224
|
+
m = { deviceType: m.deviceType.with(BridgedDeviceBasicInformationBehavior, ISYBridgedDeviceBehavior), mapping: m.mapping };
|
|
211
225
|
|
|
212
|
-
|
|
226
|
+
regMap.set(keys[1], m);
|
|
227
|
+
regMap.set(x.name, m);
|
|
228
|
+
}
|
|
213
229
|
}
|
|
214
230
|
}
|
|
215
231
|
|
package/src/Model/NodeInfo.ts
CHANGED
|
@@ -131,7 +131,7 @@ export function family<F extends Family>(nodeInfo: NodeInfo<any>): nodeInfo is N
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
export function isDynamic(nodeInfo: NodeInfo<any>): nodeInfo is DynamicNodeInfo {
|
|
134
|
-
return
|
|
134
|
+
return [Family.ZWave, Family.ZigBee].includes(nodeInfo.family);
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
export function isStatic(nodeInfo: NodeInfo<any>): nodeInfo is StaticNodeInfo {
|
package/src/Utils.ts
CHANGED
|
@@ -20,10 +20,48 @@ export type PickOfType<T, U> = { [K in keyof T]: T[K] extends U ? (any extends T
|
|
|
20
20
|
|
|
21
21
|
export type Paths<T> = T extends object ? { [K in keyof T]: `${Exclude<K, symbol>}${'' | `.${Paths<T[K]>}`}` }[keyof T] : never;
|
|
22
22
|
|
|
23
|
+
export type Prev = [never, 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
export type RelaxTypes<V> =
|
|
27
|
+
V extends number ? number
|
|
28
|
+
: V extends bigint ? bigint
|
|
29
|
+
: V extends object ?
|
|
30
|
+
V extends (...args: any[]) => any ?
|
|
31
|
+
V
|
|
32
|
+
: {
|
|
33
|
+
[K in keyof V]: RelaxTypes<V[K]>;
|
|
34
|
+
}
|
|
35
|
+
: V;
|
|
36
|
+
|
|
37
|
+
type p = Prev[10];
|
|
38
|
+
export type Join<K, P> =
|
|
39
|
+
K extends string | number ?
|
|
40
|
+
P extends string | number ?
|
|
41
|
+
`${K}${'' extends P ? '' : '.'}${P}`
|
|
42
|
+
: never
|
|
43
|
+
: never;
|
|
44
|
+
export type PathsWithLimit<T, D extends number = 10> =
|
|
45
|
+
[D] extends [never] ? never
|
|
46
|
+
: T extends object ? { [K in keyof T]-?: K extends string | number ? `${K}` | Join<K, PathsWithLimit<T[K], Prev[D]>> : never }[keyof T]
|
|
47
|
+
: '';
|
|
48
|
+
|
|
49
|
+
export type Leaves<T, D extends number = 10> =
|
|
50
|
+
[D] extends [never] ? never
|
|
51
|
+
: T extends object ? { [K in keyof T]-?: Join<K, Leaves<T[K], Prev[D]>> }[keyof T]
|
|
52
|
+
: '';
|
|
53
|
+
|
|
23
54
|
export function getEnumValueByEnumKey<E extends { [index: string]: number }, T extends keyof E>(enumType: E, enumKey: T): E[T] {
|
|
24
55
|
return enumType[enumKey];
|
|
25
56
|
}
|
|
26
57
|
|
|
58
|
+
export type Replace<K extends string, T extends string, U extends string> = K extends `${infer L}${T}${infer R}` ? `${L}${U}${R}` : K;
|
|
59
|
+
|
|
60
|
+
export type Remove<K extends string, T extends string> = K extends `${infer L}${T}${infer R}` ? `${L}${R}` : K;
|
|
61
|
+
|
|
62
|
+
export type ReplaceAll<K extends string, T extends string, U extends string> = K extends `${infer L}${T}${infer R}` ? `${L}${U}${ReplaceAll<R, T, U>}` : K;
|
|
63
|
+
|
|
64
|
+
|
|
27
65
|
export function getEnumKeyByEnumValue<E extends { [index: string]: number }, T extends E[keyof E]>(enumType: E, enumValue: E[T]): T {
|
|
28
66
|
return Object.keys(enumType).find((key) => enumType[key] === enumValue) as unknown as T;
|
|
29
67
|
}
|
package/tsconfig.json
CHANGED
|
@@ -27,6 +27,12 @@
|
|
|
27
27
|
"src/Definitions/Global/*.ts",
|
|
28
28
|
],
|
|
29
29
|
"exclude": [
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
"src/Devices/ZigBeeLegacy/Generated/*",
|
|
32
|
+
"src/Devices/Poly/Generated/*",
|
|
33
|
+
"src/Devices/Brultech/Generated/*",
|
|
34
|
+
|
|
35
|
+
"src/Devices/NCD/Generated/*",
|
|
36
|
+
"src/Devices/Scene/Generated/*",
|
|
31
37
|
]
|
|
32
38
|
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
|
|
2
|
-
|
|
3
|
-
import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
|
|
4
|
-
import { Family } from "../../../Definitions/Global/Families.js";
|
|
5
|
-
import type { NodeInfo } from "../../../Model/NodeInfo.js";
|
|
6
|
-
import type { ISY } from "../../../ISY.js";
|
|
7
|
-
import type { ISYNode } from "../../../ISYNode.js";
|
|
8
|
-
import { Base } from "../index.js";
|
|
9
|
-
import { ISYDeviceNode } from "../../ISYDeviceNode.js";
|
|
10
|
-
import { Driver } from "../../../Definitions/Global/Drivers.js";
|
|
11
|
-
import { Insteon } from "../../../Definitions/index.js";
|
|
12
|
-
import type { DriverState } from "../../../Model/DriverState.js";
|
|
13
|
-
import { NodeFactory } from "../../NodeFactory.js";
|
|
14
|
-
|
|
15
|
-
export const nodeDefId = "AlertModuleSiren_ADV";
|
|
16
|
-
|
|
17
|
-
type Commands = AlertModuleSirenAdv.Commands;
|
|
18
|
-
type Drivers = AlertModuleSirenAdv.Drivers;
|
|
19
|
-
|
|
20
|
-
export class AlertModuleSirenAdvNode extends Base<Drivers, Commands> implements AlertModuleSirenAdv.Interface {
|
|
21
|
-
public readonly commands = {
|
|
22
|
-
DON: this.on,
|
|
23
|
-
DOF: this.off,
|
|
24
|
-
DFOF: this.fastOff,
|
|
25
|
-
DFON: this.fastOn,
|
|
26
|
-
QUERY: this.query,
|
|
27
|
-
BEEP: this.beep,
|
|
28
|
-
WDU: this.writeChanges
|
|
29
|
-
};
|
|
30
|
-
static nodeDefId = "AlertModuleSiren_ADV";
|
|
31
|
-
declare readonly nodeDefId: "AlertModuleSiren_ADV";
|
|
32
|
-
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
33
|
-
super(isy, nodeInfo);
|
|
34
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
35
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
36
|
-
}
|
|
37
|
-
async on(onLevel?: number) {
|
|
38
|
-
return this.sendCommand("DON", { OL: onLevel });
|
|
39
|
-
}
|
|
40
|
-
async off() {
|
|
41
|
-
return this.sendCommand("DOF");
|
|
42
|
-
}
|
|
43
|
-
async fastOff() {
|
|
44
|
-
return this.sendCommand("DFOF");
|
|
45
|
-
}
|
|
46
|
-
async fastOn() {
|
|
47
|
-
return this.sendCommand("DFON");
|
|
48
|
-
}
|
|
49
|
-
async query() {
|
|
50
|
-
return this.sendCommand("QUERY");
|
|
51
|
-
}
|
|
52
|
-
async beep(value?: number) {
|
|
53
|
-
return this.sendCommand("BEEP", { value: value });
|
|
54
|
-
}
|
|
55
|
-
async writeChanges() {
|
|
56
|
-
return this.sendCommand("WDU");
|
|
57
|
-
}
|
|
58
|
-
public get status(): Insteon.OnLevelRelay {
|
|
59
|
-
return this.drivers.ST?.value;
|
|
60
|
-
}
|
|
61
|
-
public get responding(): Insteon.Error {
|
|
62
|
-
return this.drivers.ERR?.value;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
NodeFactory.register(AlertModuleSirenAdvNode);
|
|
67
|
-
|
|
68
|
-
export namespace AlertModuleSirenAdv {
|
|
69
|
-
export interface Interface extends Omit<InstanceType<typeof AlertModuleSirenAdvNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
70
|
-
nodeDefId: "AlertModuleSiren_ADV";
|
|
71
|
-
}
|
|
72
|
-
export function is(node: ISYNode<any, any, any, any>): node is AlertModuleSirenAdvNode {
|
|
73
|
-
return node.nodeDefId === nodeDefId;
|
|
74
|
-
}
|
|
75
|
-
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
76
|
-
return new AlertModuleSirenAdvNode(isy, nodeInfo);
|
|
77
|
-
}
|
|
78
|
-
export const Node = AlertModuleSirenAdvNode;
|
|
79
|
-
export type Commands = {
|
|
80
|
-
DON: ((OL?: number) => Promise<boolean>) & {
|
|
81
|
-
label: "On";
|
|
82
|
-
name: "on";
|
|
83
|
-
};
|
|
84
|
-
DOF: (() => Promise<boolean>) & {
|
|
85
|
-
label: "Off";
|
|
86
|
-
name: "off";
|
|
87
|
-
};
|
|
88
|
-
DFOF: (() => Promise<boolean>) & {
|
|
89
|
-
label: "Fast Off";
|
|
90
|
-
name: "fastOff";
|
|
91
|
-
};
|
|
92
|
-
DFON: (() => Promise<boolean>) & {
|
|
93
|
-
label: "Fast On";
|
|
94
|
-
name: "fastOn";
|
|
95
|
-
};
|
|
96
|
-
QUERY: (() => Promise<boolean>) & {
|
|
97
|
-
label: "Query";
|
|
98
|
-
name: "query";
|
|
99
|
-
};
|
|
100
|
-
BEEP: ((value?: number) => Promise<boolean>) & {
|
|
101
|
-
label: "Beep";
|
|
102
|
-
name: "beep";
|
|
103
|
-
};
|
|
104
|
-
WDU: (() => Promise<boolean>) & {
|
|
105
|
-
label: "Write Changes";
|
|
106
|
-
name: "writeChanges";
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
export type Drivers = {
|
|
110
|
-
ST: {
|
|
111
|
-
uom: UnitOfMeasure.Percent;
|
|
112
|
-
value: Insteon.OnLevelRelay;
|
|
113
|
-
label: "Status";
|
|
114
|
-
name: "status";
|
|
115
|
-
};
|
|
116
|
-
ERR: {
|
|
117
|
-
uom: UnitOfMeasure.Index;
|
|
118
|
-
value: Insteon.Error;
|
|
119
|
-
label: "Responding";
|
|
120
|
-
name: "responding";
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
|
|
2
|
-
|
|
3
|
-
import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
|
|
4
|
-
import { Family } from "../../../Definitions/Global/Families.js";
|
|
5
|
-
import type { NodeInfo } from "../../../Model/NodeInfo.js";
|
|
6
|
-
import type { ISY } from "../../../ISY.js";
|
|
7
|
-
import type { ISYNode } from "../../../ISYNode.js";
|
|
8
|
-
import { Base } from "../index.js";
|
|
9
|
-
import { ISYDeviceNode } from "../../ISYDeviceNode.js";
|
|
10
|
-
import { Driver } from "../../../Definitions/Global/Drivers.js";
|
|
11
|
-
import { Insteon } from "../../../Definitions/index.js";
|
|
12
|
-
import type { DriverState } from "../../../Model/DriverState.js";
|
|
13
|
-
import { NodeFactory } from "../../NodeFactory.js";
|
|
14
|
-
|
|
15
|
-
export const nodeDefId = "BallastRelayLampSwitch_ADV";
|
|
16
|
-
|
|
17
|
-
type Commands = BallastRelayLampSwitchAdv.Commands;
|
|
18
|
-
type Drivers = BallastRelayLampSwitchAdv.Drivers;
|
|
19
|
-
|
|
20
|
-
export class BallastRelayLampSwitchAdvNode extends Base<Drivers, Commands> implements BallastRelayLampSwitchAdv.Interface {
|
|
21
|
-
public readonly commands = {
|
|
22
|
-
DON: this.on,
|
|
23
|
-
DOF: this.off,
|
|
24
|
-
DFOF: this.fastOff,
|
|
25
|
-
DFON: this.fastOn,
|
|
26
|
-
QUERY: this.query,
|
|
27
|
-
BEEP: this.beep,
|
|
28
|
-
WDU: this.writeChanges
|
|
29
|
-
};
|
|
30
|
-
static nodeDefId = "BallastRelayLampSwitch_ADV";
|
|
31
|
-
declare readonly nodeDefId: "BallastRelayLampSwitch_ADV";
|
|
32
|
-
constructor (isy: ISY, nodeInfo: NodeInfo) {
|
|
33
|
-
super(isy, nodeInfo);
|
|
34
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
35
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property as DriverState, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
36
|
-
}
|
|
37
|
-
async on(value?: (0 | 100)) {
|
|
38
|
-
return this.sendCommand("DON", { value: value });
|
|
39
|
-
}
|
|
40
|
-
async off() {
|
|
41
|
-
return this.sendCommand("DOF");
|
|
42
|
-
}
|
|
43
|
-
async fastOff() {
|
|
44
|
-
return this.sendCommand("DFOF");
|
|
45
|
-
}
|
|
46
|
-
async fastOn() {
|
|
47
|
-
return this.sendCommand("DFON");
|
|
48
|
-
}
|
|
49
|
-
async query() {
|
|
50
|
-
return this.sendCommand("QUERY");
|
|
51
|
-
}
|
|
52
|
-
async beep(value?: number) {
|
|
53
|
-
return this.sendCommand("BEEP", { value: value });
|
|
54
|
-
}
|
|
55
|
-
async writeChanges() {
|
|
56
|
-
return this.sendCommand("WDU");
|
|
57
|
-
}
|
|
58
|
-
public get status(): Insteon.Sml {
|
|
59
|
-
return this.drivers.ST?.value;
|
|
60
|
-
}
|
|
61
|
-
public get responding(): Insteon.Error {
|
|
62
|
-
return this.drivers.ERR?.value;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
NodeFactory.register(BallastRelayLampSwitchAdvNode);
|
|
67
|
-
|
|
68
|
-
export namespace BallastRelayLampSwitchAdv {
|
|
69
|
-
export interface Interface extends Omit<InstanceType<typeof BallastRelayLampSwitchAdvNode>, keyof ISYDeviceNode<any, any, any, any>> {
|
|
70
|
-
nodeDefId: "BallastRelayLampSwitch_ADV";
|
|
71
|
-
}
|
|
72
|
-
export function is(node: ISYNode<any, any, any, any>): node is BallastRelayLampSwitchAdvNode {
|
|
73
|
-
return node.nodeDefId === nodeDefId;
|
|
74
|
-
}
|
|
75
|
-
export function create(isy: ISY, nodeInfo: NodeInfo) {
|
|
76
|
-
return new BallastRelayLampSwitchAdvNode(isy, nodeInfo);
|
|
77
|
-
}
|
|
78
|
-
export const Node = BallastRelayLampSwitchAdvNode;
|
|
79
|
-
export type Commands = {
|
|
80
|
-
DON: ((value?: (0 | 100)) => Promise<boolean>) & {
|
|
81
|
-
label: "On";
|
|
82
|
-
name: "on";
|
|
83
|
-
};
|
|
84
|
-
DOF: (() => Promise<boolean>) & {
|
|
85
|
-
label: "Off";
|
|
86
|
-
name: "off";
|
|
87
|
-
};
|
|
88
|
-
DFOF: (() => Promise<boolean>) & {
|
|
89
|
-
label: "Fast Off";
|
|
90
|
-
name: "fastOff";
|
|
91
|
-
};
|
|
92
|
-
DFON: (() => Promise<boolean>) & {
|
|
93
|
-
label: "Fast On";
|
|
94
|
-
name: "fastOn";
|
|
95
|
-
};
|
|
96
|
-
QUERY: (() => Promise<boolean>) & {
|
|
97
|
-
label: "Query";
|
|
98
|
-
name: "query";
|
|
99
|
-
};
|
|
100
|
-
BEEP: ((value?: number) => Promise<boolean>) & {
|
|
101
|
-
label: "Beep";
|
|
102
|
-
name: "beep";
|
|
103
|
-
};
|
|
104
|
-
WDU: (() => Promise<boolean>) & {
|
|
105
|
-
label: "Write Changes";
|
|
106
|
-
name: "writeChanges";
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
export type Drivers = {
|
|
110
|
-
ST: {
|
|
111
|
-
uom: UnitOfMeasure.Percent;
|
|
112
|
-
value: Insteon.Sml;
|
|
113
|
-
label: "Status";
|
|
114
|
-
name: "status";
|
|
115
|
-
};
|
|
116
|
-
ERR: {
|
|
117
|
-
uom: UnitOfMeasure.Index;
|
|
118
|
-
value: Insteon.Error;
|
|
119
|
-
label: "Responding";
|
|
120
|
-
name: "responding";
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
}
|