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
package/src/ISYDevice.ts
CHANGED
|
@@ -1,67 +1,78 @@
|
|
|
1
1
|
import type { Command } from './Definitions/Global/Commands.js';
|
|
2
2
|
import type { Driver } from './Definitions/Global/Drivers.js';
|
|
3
3
|
import type { UnitOfMeasure } from './Definitions/Global/UOM.js';
|
|
4
|
-
import type { Family } from './Definitions/index.js';
|
|
4
|
+
import type { Category, Family } from './Definitions/index.js';
|
|
5
|
+
import { ISYDeviceNode } from './Devices/ISYDeviceNode.js';
|
|
5
6
|
import type { ISY } from './ISY.js';
|
|
6
7
|
import type { ISYNode } from './ISYNode.js';
|
|
7
8
|
import type { ISYScene } from './ISYScene.js';
|
|
8
9
|
import type { DriverState } from './Model/DriverState.js';
|
|
9
10
|
import type { StringKeys } from './Utils.js';
|
|
10
11
|
|
|
11
|
-
export interface ISYDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
12
|
+
export interface ISYDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures> extends ISYDeviceInfo {
|
|
13
|
+
// #region Properties (22)
|
|
14
|
+
|
|
15
|
+
address: string;
|
|
16
|
+
category: Category;
|
|
17
|
+
commands: Command.ForAll<C>;
|
|
18
|
+
deviceClass: any;
|
|
19
|
+
drivers: Driver.ForAll<D>;
|
|
20
|
+
|
|
21
|
+
events: E;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
family: T;
|
|
24
|
+
hidden: boolean;
|
|
25
|
+
isDimmable: boolean;
|
|
26
|
+
label: string;
|
|
27
|
+
model: string;
|
|
28
|
+
modelNumber: string;
|
|
29
|
+
name: any;
|
|
30
|
+
parentAddress: any;
|
|
31
|
+
productName: string;
|
|
32
|
+
scenes: ISYScene[];
|
|
33
|
+
subCategory: number;
|
|
34
|
+
type: any;
|
|
35
|
+
typeCode: string;
|
|
36
|
+
version: string;
|
|
37
|
+
|
|
38
|
+
vendorName: string;
|
|
39
|
+
|
|
40
|
+
// #endregion Properties (22)
|
|
41
|
+
|
|
42
|
+
// #region Public Methods (18)
|
|
43
|
+
|
|
44
|
+
// #endregion Public Methods (18)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function isDevice<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures>(
|
|
48
|
+
device: ISYNode<T, D, C, E>
|
|
49
|
+
): device is ISYDevice<T, D, C, E> & ISYNode<T, D, C, E> {
|
|
50
|
+
return device instanceof ISYDeviceNode;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function isDeviceClass<T extends Family, D extends ISYNode.DriverSignatures, C extends ISYNode.CommandSignatures, E extends ISYNode.EventSignatures>(
|
|
54
|
+
device: typeof ISYNode<T, D, C, E>
|
|
55
|
+
): device is (new (...args) => ISYDevice<T, D, C, E>) & typeof ISYNode<T, D, C, E> {
|
|
56
|
+
return device.prototype instanceof ISYDeviceNode;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface ISYDeviceInfo {
|
|
60
|
+
type: string;
|
|
61
|
+
deviceClass: any;
|
|
62
|
+
|
|
63
|
+
productName: string;
|
|
64
|
+
|
|
65
|
+
productId: string | number;
|
|
66
|
+
|
|
67
|
+
modelName: string;
|
|
68
|
+
|
|
69
|
+
modelNumber: string;
|
|
70
|
+
|
|
71
|
+
version: string;
|
|
72
|
+
|
|
73
|
+
category: Category;
|
|
74
|
+
|
|
75
|
+
subCategory: number;
|
|
76
|
+
|
|
77
|
+
manufacturer: string;
|
|
67
78
|
}
|
package/src/ISYNode.ts
CHANGED
|
@@ -13,10 +13,10 @@ import type { Constructor } from './Devices/Constructor.js';
|
|
|
13
13
|
import type { DriverState } from './Model/DriverState.js';
|
|
14
14
|
import { NodeInfo } from './Model/NodeInfo.js';
|
|
15
15
|
import type { NodeNotes } from './Model/NodeNotes.js';
|
|
16
|
-
import { type StringKeys } from './Utils.js';
|
|
16
|
+
import { type ObjectToUnion, type StringKeys } from './Utils.js';
|
|
17
17
|
import { NodeType } from './ISYConstants.js';
|
|
18
18
|
import type { ISYScene } from './ISYScene.js';
|
|
19
|
-
import type { UnionToIntersection } from '@matter/general';
|
|
19
|
+
import type { Merge, UnionToIntersection } from '@matter/general';
|
|
20
20
|
|
|
21
21
|
//type DriverValues<DK extends string | number | symbol,V = any> = {[x in DK]?:V};
|
|
22
22
|
|
|
@@ -41,6 +41,8 @@ export class ISYNode<
|
|
|
41
41
|
public static family: Family;
|
|
42
42
|
public static nodeDefId = 'Unknown';
|
|
43
43
|
|
|
44
|
+
public static implements: string[] = [];
|
|
45
|
+
|
|
44
46
|
public baseName: any;
|
|
45
47
|
public commands: Command.ForAll<C>;
|
|
46
48
|
//public readonly formatted: DriverValues<keyof D,string> = {};
|
|
@@ -50,7 +52,7 @@ export class ISYNode<
|
|
|
50
52
|
public drivers: Driver.ForAll<D> = {} as Driver.ForAll<D>;
|
|
51
53
|
public enabled: boolean;
|
|
52
54
|
//TODO: add signature for non-command/non-driver events
|
|
53
|
-
public events: Event.FunctionSigFor<E, Event.NodeEventEmitter<this
|
|
55
|
+
public events: Merge<Event.NodeEventEmitter<this>,Event.FunctionSigFor<E, Event.NodeEventEmitter<this>>>;
|
|
54
56
|
//Event.FunctionSigFor<Event.ForAll<E,typeof this>> & Omit<EventEmitter,'on'>
|
|
55
57
|
/*{
|
|
56
58
|
[x in E]: x extends keyof D ? {name:`${D[x]["name"]}Changed`, driver: x, value: D[x]["value"], formatted: string, uom: UnitOfMeasure}
|
|
@@ -125,6 +127,7 @@ export class ISYNode<
|
|
|
125
127
|
}
|
|
126
128
|
this.events = Event.createEmitter(this);
|
|
127
129
|
|
|
130
|
+
|
|
128
131
|
//this.logger(this.nodeDefId);
|
|
129
132
|
this.lastChanged = new Date();
|
|
130
133
|
}
|
|
@@ -222,7 +225,13 @@ export class ISYNode<
|
|
|
222
225
|
|
|
223
226
|
public async getNotes(): Promise<NodeNotes> {
|
|
224
227
|
try {
|
|
225
|
-
const result = await this.isy.sendRequest(`nodes/${this.address}/notes`, {
|
|
228
|
+
const result = await this.isy.sendRequest(`nodes/${this.address}/notes`, {
|
|
229
|
+
trailingSlash: false,
|
|
230
|
+
errorLogLevel: 'debug',
|
|
231
|
+
validateStatus(status) {
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
});
|
|
226
235
|
if (result !== null && result !== undefined) {
|
|
227
236
|
return result.NodeProperties;
|
|
228
237
|
} else {
|
|
@@ -235,7 +244,7 @@ export class ISYNode<
|
|
|
235
244
|
|
|
236
245
|
public handleControlTrigger(controlName: keyof E & keyof C): boolean {
|
|
237
246
|
//this.lastChanged = new Date();
|
|
238
|
-
this.events.emit(
|
|
247
|
+
//this.events.emit(`${this.commands[controlName].name}`, controlName);
|
|
239
248
|
return true;
|
|
240
249
|
}
|
|
241
250
|
|
|
@@ -343,9 +352,13 @@ export class ISYNode<
|
|
|
343
352
|
that.logger(e);
|
|
344
353
|
}
|
|
345
354
|
}
|
|
346
|
-
|
|
347
|
-
public async sendCommand(command: StringKeys<C>, parameters
|
|
348
|
-
|
|
355
|
+
public async sendCommand(command: StringKeys<C>): Promise<any>;
|
|
356
|
+
public async sendCommand(command: StringKeys<C>, value: string | number, parameters: Record<string | symbol, string | number | undefined>);
|
|
357
|
+
public async sendCommand(command: StringKeys<C>, parameters: Record<string | symbol, string | number | undefined> | string | number): Promise<any>;
|
|
358
|
+
async sendCommand(command: StringKeys<C>, value?: string | number, parameters?: Record<string | symbol, string | number | undefined> | string | number): Promise<any> {
|
|
359
|
+
if (value !== undefined && typeof parameters === 'object') {
|
|
360
|
+
return this.isy.sendNodeCommand(this, command, { default: value, ...parameters });
|
|
361
|
+
}
|
|
349
362
|
return this.isy.sendNodeCommand(this, command, parameters);
|
|
350
363
|
}
|
|
351
364
|
|
|
@@ -515,6 +528,17 @@ export namespace ISYNode {
|
|
|
515
528
|
export type EventsOf<T> = T extends ISYNode<any, any, any, infer E> ? E : never;
|
|
516
529
|
export type FamilyOf<T> = T extends ISYNode<infer F, any, any, any> ? F : never;
|
|
517
530
|
|
|
531
|
+
export type DriverTypesOf<T extends ISYNode> = ObjectToUnion<DriversOf<T>>;
|
|
532
|
+
|
|
533
|
+
export type CommandTypesOf<T extends ISYNode> = ObjectToUnion<CommandsOf<T>>;
|
|
534
|
+
|
|
535
|
+
export type EventTypesOf<T extends ISYNode> = ObjectToUnion<EventsOf<T>>;
|
|
536
|
+
|
|
537
|
+
export type EventNamesOf<T extends ISYNode> = EventTypesOf<T> extends { name: infer U } ? U : never;
|
|
538
|
+
|
|
539
|
+
export type DriverNamesOf<T extends ISYNode> = DriverTypesOf<T> extends { name: infer U } ? U : never;
|
|
540
|
+
|
|
541
|
+
export type CommandNamesOf<T extends ISYNode> = CommandTypesOf<T> extends { name: infer U } ? U : never;
|
|
518
542
|
export type List = NodeList;
|
|
519
543
|
|
|
520
544
|
export type DriverMap<T extends NodeList> = Flatten<{
|
package/src/ISYScene.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Command } from './Definitions/Global/Commands.js';
|
|
2
|
+
import type { Driver } from './Definitions/Global/Drivers.js';
|
|
2
3
|
import { Family } from './Definitions/Global/Families.js';
|
|
4
|
+
import {Insteon} from './Devices/index.js';
|
|
5
|
+
import type { ISY } from './ISY.js';
|
|
3
6
|
import { Commands, LinkType } from './ISYConstants.js';
|
|
7
|
+
import { ISYDevice } from './ISYDevice.js';
|
|
4
8
|
import { ISYNode } from './ISYNode.js';
|
|
5
|
-
import { ISYDevice } from './ISYDevice.js';
|
|
6
|
-
import type { ISY } from './ISY.js';
|
|
7
|
-
import type { Driver } from './Definitions/Global/Drivers.js';
|
|
8
|
-
import type { Command } from './Definitions/Global/Commands.js';
|
|
9
9
|
import type { NodeInfo, StaticNodeInfo } from './Model/NodeInfo.js';
|
|
10
10
|
|
|
11
|
-
interface SceneInfo extends StaticNodeInfo
|
|
12
|
-
{
|
|
11
|
+
interface SceneInfo extends StaticNodeInfo {
|
|
13
12
|
members?: {
|
|
14
13
|
link: any;
|
|
15
14
|
};
|
|
16
15
|
flag?: any;
|
|
17
|
-
nodeDefId?:
|
|
16
|
+
nodeDefId?: 'InsteonDimmer';
|
|
18
17
|
address: string;
|
|
19
18
|
name: string;
|
|
20
19
|
family?: Family;
|
|
@@ -23,13 +22,12 @@ interface SceneInfo extends StaticNodeInfo
|
|
|
23
22
|
startDelay: number;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Command.Signatures<'DON' | 'DOF'>> {
|
|
27
|
-
|
|
25
|
+
export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>, Command.Signatures<'DON' | 'DOF'>> {
|
|
28
26
|
public connectionType: string;
|
|
29
27
|
public batteryOperated: boolean;
|
|
30
28
|
public deviceType: any;
|
|
31
29
|
public deviceFriendlyName: string;
|
|
32
|
-
public members:
|
|
30
|
+
public members: ISYNode<any, any, any,any>[];
|
|
33
31
|
public typeCode: string;
|
|
34
32
|
constructor(isy: ISY, scene: SceneInfo) {
|
|
35
33
|
super(isy, scene as NodeInfo);
|
|
@@ -47,11 +45,15 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
47
45
|
// childDevices.push(node._);
|
|
48
46
|
// childDevices.push(object)
|
|
49
47
|
const s = node._;
|
|
50
|
-
const d = isy.
|
|
48
|
+
const d = isy.getNode(s);
|
|
51
49
|
|
|
52
|
-
if (d !== null && d !== undefined) {
|
|
50
|
+
if (d !== null && d !== undefined) {
|
|
51
|
+
//d.addLink(this);
|
|
52
|
+
}
|
|
53
53
|
|
|
54
|
-
if (d instanceof Insteon.
|
|
54
|
+
if (d instanceof Insteon.DimmerLamp.Node && node.type !== LinkType.Controller) {
|
|
55
|
+
this.isDimmable = true;
|
|
56
|
+
}
|
|
55
57
|
this.members.push(d);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
@@ -62,11 +64,14 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
62
64
|
// childDevices.push(node._);
|
|
63
65
|
// childDevices.push(object)
|
|
64
66
|
const s = scene.members.link._;
|
|
65
|
-
const d = isy.
|
|
66
|
-
if (d) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
const d = isy.getNode(s);
|
|
68
|
+
if (d) {
|
|
69
|
+
//d.addLink(this);
|
|
70
|
+
// tslint:disable-next-line: triple-equals
|
|
71
|
+
if ((d.isDimmable && node.type != LinkType.Controller) || this.isDimmable) {
|
|
72
|
+
this.isDimmable = true;
|
|
73
|
+
}
|
|
74
|
+
this.members.push(d);
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
}
|
|
@@ -76,11 +81,12 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
76
81
|
// Get the current light state
|
|
77
82
|
get isOn() {
|
|
78
83
|
for (const device of this.members) {
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
let d = device as unknown as ISYNode;
|
|
85
|
+
/*if (Insteon.RelayLamp.isImplementedBy(d)) {
|
|
86
|
+
if (d.status > 0) {
|
|
81
87
|
return true;
|
|
82
88
|
}
|
|
83
|
-
}
|
|
89
|
+
}*/
|
|
84
90
|
}
|
|
85
91
|
return false;
|
|
86
92
|
}
|
|
@@ -89,10 +95,10 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
89
95
|
let lightDeviceCount = 0;
|
|
90
96
|
let blevel = 0;
|
|
91
97
|
for (const device of this.members) {
|
|
92
|
-
if (device instanceof Insteon.
|
|
98
|
+
if (device instanceof Insteon.DimmerSwitch.Node) {
|
|
93
99
|
lightDeviceCount++;
|
|
94
100
|
//blevel += device.brightnessLevel;
|
|
95
|
-
} else if (device instanceof Insteon.
|
|
101
|
+
} else if (device instanceof Insteon.RelayLampSwitch.Node) {
|
|
96
102
|
lightDeviceCount++;
|
|
97
103
|
blevel += device.drivers.ST ? 100 : 0;
|
|
98
104
|
}
|
|
@@ -114,7 +120,6 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
114
120
|
|
|
115
121
|
if (this.isDimmable) {
|
|
116
122
|
this.emit('propertyChanged', 'brightnesslevel', this.brightnessLevel, this.brightnessLevel, this.brightnessLevel + '%');
|
|
117
|
-
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
125
|
public async updateIsOn(lightState: boolean) {
|
|
@@ -125,7 +130,7 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
125
130
|
}
|
|
126
131
|
public getAreAllLightsInSpecifiedState(state) {
|
|
127
132
|
for (const device of this.members) {
|
|
128
|
-
if (device instanceof Insteon.
|
|
133
|
+
if (device instanceof Insteon.RelayLampSwitch.Node) {
|
|
129
134
|
if (device.drivers.ST !== state) {
|
|
130
135
|
return false;
|
|
131
136
|
}
|
|
@@ -133,6 +138,4 @@ export class ISYScene extends ISYNode<Family.Scene, Driver.Signatures<'ST'>,Comm
|
|
|
133
138
|
}
|
|
134
139
|
return true;
|
|
135
140
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
141
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ClusterBehavior, type Behavior } from '@matter/node';
|
|
2
|
+
import type { RelaxTypes } from '../../Utils.js';
|
|
3
|
+
import type { Constructor } from '../../Devices/Constructor.js';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export namespace BehaviorRegistry
|
|
8
|
+
{
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const registry: {[x:string]: Constructor<ClusterBehavior>} = {};
|
|
12
|
+
|
|
13
|
+
type ClusterBehaviorType = RelaxTypes<Omit<typeof ClusterBehavior, "withInterface" | "unimplemented">>;
|
|
14
|
+
|
|
15
|
+
export function register<T extends Behavior.Type>(behavior: {cluster: {name: string}} & Constructor<ClusterBehavior>): void
|
|
16
|
+
{
|
|
17
|
+
registry[behavior.cluster.name.toLowerCase()] = behavior;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function get(cluster: string): Constructor<ClusterBehavior>
|
|
21
|
+
{
|
|
22
|
+
return registry[cluster.toLowerCase()];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
}
|
|
@@ -12,6 +12,8 @@ import { MappingRegistry } from '../../../Model/ClusterMap.js';
|
|
|
12
12
|
import { ClusterForBehavior, ISYClusterBehavior, type PropertyChange } from '../ISYClusterBehavior.js';
|
|
13
13
|
|
|
14
14
|
import { Converter } from '../../../Converters.js';
|
|
15
|
+
import { BehaviorRegistry } from '../BehaviorRegistry.js';
|
|
16
|
+
import type { ClusterBehavior } from '@matter/node';
|
|
15
17
|
|
|
16
18
|
export class ISYOnOffBehavior extends ISYClusterBehavior(OnOffLightRequirements.OnOffServer, InsteonRelayDevice) {
|
|
17
19
|
override async initialize(_options?: {}) {
|
|
@@ -38,6 +40,8 @@ export class ISYOnOffBehavior extends ISYClusterBehavior(OnOffLightRequirements.
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
|
|
43
|
+
BehaviorRegistry.register(ISYOnOffBehavior);
|
|
44
|
+
|
|
41
45
|
export class ISYDimmableBehavior extends ISYClusterBehavior(DimmableLightRequirements.LevelControlServer, InsteonDimmableDevice) {
|
|
42
46
|
override async initialize(_options?: {}) {
|
|
43
47
|
await super.initialize(_options);
|
|
@@ -57,3 +61,5 @@ export class ISYDimmableBehavior extends ISYClusterBehavior(DimmableLightRequire
|
|
|
57
61
|
|
|
58
62
|
}
|
|
59
63
|
}
|
|
64
|
+
|
|
65
|
+
BehaviorRegistry.register(ISYDimmableBehavior);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Endpoint, EndpointServer, Environment, ServerNode, StorageService, Time, VendorId } from '@matter/main';
|
|
1
|
+
import { Endpoint, EndpointServer, Environment, MutableEndpoint, ServerNode, StorageService, Time, VendorId, type SupportedBehaviors } from '@matter/main';
|
|
2
2
|
import { StorageBackendDisk } from '@project-chip/matter-node.js/storage';
|
|
3
|
-
import { BridgedDeviceBasicInformationServer } from '@project-chip/matter.js/behaviors/bridged-device-basic-information';
|
|
3
|
+
import { BridgedDeviceBasicInformationServer, type BridgedDeviceBasicInformationBehavior } from '@project-chip/matter.js/behaviors/bridged-device-basic-information';
|
|
4
4
|
import { logEndpoint } from '@matter/main/protocol';
|
|
5
5
|
import { DimmableLightDevice, OnOffLightDevice } from '@matter/main/devices';
|
|
6
6
|
import { AggregatorEndpoint } from '@matter/main/endpoints/aggregator';
|
|
@@ -17,9 +17,14 @@ import { ISYBridgedDeviceBehavior } from '../Behaviors/ISYBridgedDeviceBehavior.
|
|
|
17
17
|
import { ISYDimmableBehavior, ISYOnOffBehavior } from '../Behaviors/Insteon/ISYOnOffBehavior.js';
|
|
18
18
|
import '../Mappings/Insteon.js';
|
|
19
19
|
import type { ISYNode } from '../../ISYNode.js';
|
|
20
|
-
import type
|
|
20
|
+
import { MappingRegistry, type DeviceToClusterMap } from '../../Model/ClusterMap.js';
|
|
21
21
|
import { Options } from '../../Definitions/ZWave/index.js';
|
|
22
22
|
import { InsteonBaseDevice } from '../../Devices/Insteon/InsteonBaseDevice.js';
|
|
23
|
+
import { DimmerLamp } from '../../Devices/Insteon/Generated/DimmerLamp.js';
|
|
24
|
+
import { Family } from '../../Definitions/index.js';
|
|
25
|
+
import { RelayLamp } from '../../Devices/Insteon/index.js';
|
|
26
|
+
import type { DeviceTypeDefinition } from '@project-chip/matter.js/device';
|
|
27
|
+
import type { BridgedISYNodeInformationServer } from '../../Devices/EndpointFor.js';
|
|
23
28
|
|
|
24
29
|
|
|
25
30
|
// #region Interfaces (1)
|
|
@@ -70,6 +75,10 @@ export interface DeviceOptions {
|
|
|
70
75
|
|
|
71
76
|
// #region Functions (3)
|
|
72
77
|
|
|
78
|
+
let t : MutableEndpoint;
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
73
82
|
export function create(isy?: ISY, config?: Config): Promise<ServerNode> {
|
|
74
83
|
return createMatterServer(isy, config);
|
|
75
84
|
}
|
|
@@ -187,7 +196,7 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
187
196
|
}
|
|
188
197
|
});
|
|
189
198
|
|
|
190
|
-
logger.info(`Bridge
|
|
199
|
+
logger.info(`Bridge server added`);
|
|
191
200
|
|
|
192
201
|
/**
|
|
193
202
|
* Matter Nodes are a composition of endpoints. Create and add a single multiple endpoint to the node to make it a
|
|
@@ -203,10 +212,12 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
203
212
|
|
|
204
213
|
await server.add(aggregator);
|
|
205
214
|
|
|
206
|
-
logger.info(`Bridge
|
|
207
|
-
|
|
215
|
+
logger.info(`Bridge aggregator added`);
|
|
216
|
+
let endpoints = 0;
|
|
208
217
|
for (const node of isy.nodeMap.values()) {
|
|
209
218
|
let device = node as ISYDeviceNode<any, any, any>;
|
|
219
|
+
try
|
|
220
|
+
{
|
|
210
221
|
let deviceOptions = getDeviceOptions(node, config.DeviceOptions);
|
|
211
222
|
if(deviceOptions?.label)
|
|
212
223
|
{
|
|
@@ -220,16 +231,21 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
220
231
|
//const name = `OnOff ${isASocket ? "Socket" : "Light"} ${i}`;
|
|
221
232
|
|
|
222
233
|
//@ts-ignore
|
|
223
|
-
|
|
234
|
+
//of (DimmableLightDevice.with(BridgedDeviceBasicInformationServer, ISYBridgedDeviceBehavior, ISYOnOffBehavior, ISYDimmableBehavior)) | typeof (OnOffLightDevice.with(BridgedDeviceBasicInformationServer, ISYBridgedDeviceBehavior, ISYOnOffBehavior));*/
|
|
235
|
+
let deviceType = MappingRegistry.getMapping(device)?.deviceType;
|
|
236
|
+
|
|
237
|
+
|
|
224
238
|
|
|
225
|
-
|
|
226
|
-
|
|
239
|
+
let baseBehavior = deviceType;
|
|
240
|
+
if (DimmerLamp.isImplementedBy(device)) {
|
|
241
|
+
|
|
242
|
+
baseBehavior = deviceType?.with(ISYOnOffBehavior, ISYDimmableBehavior);
|
|
227
243
|
// if(device instanceof InsteonSwitchDevice)
|
|
228
244
|
// {
|
|
229
245
|
// baseBehavior = DimmerSwitchDevice.with(BridgedDeviceBasicInformationServer);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
baseBehavior =
|
|
246
|
+
}
|
|
247
|
+
else if (RelayLamp.isImplementedBy(device)) {
|
|
248
|
+
baseBehavior = deviceType?.with(ISYOnOffBehavior);
|
|
233
249
|
// if(device instanceof InsteonSwitchDevice)
|
|
234
250
|
// {
|
|
235
251
|
// baseBehavior = OnOffLightSwitchDevice.with(BridgedDeviceBasicInformationServer);
|
|
@@ -237,6 +253,8 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
237
253
|
}
|
|
238
254
|
|
|
239
255
|
if (baseBehavior !== undefined) {
|
|
256
|
+
|
|
257
|
+
logger.info(`Device ${device.label} (${device.address}) with NodeDefId = ${device.nodeDefId} mapped to ${deviceType.name}`);
|
|
240
258
|
//@ts-ignore
|
|
241
259
|
const endpoint = new Endpoint(baseBehavior, {
|
|
242
260
|
id: serialNumber,
|
|
@@ -246,7 +264,7 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
246
264
|
|
|
247
265
|
bridgedDeviceBasicInformation: {
|
|
248
266
|
nodeLabel: device.label.rightWithToken(32),
|
|
249
|
-
vendorName: device instanceof
|
|
267
|
+
vendorName: device instanceof ISYDeviceNode ? device.manufacturer : isy.vendorName,
|
|
250
268
|
vendorId: VendorId(config.vendorId),
|
|
251
269
|
productName: device.productName.leftWithToken(32),
|
|
252
270
|
productLabel: device.model.leftWithToken(64),
|
|
@@ -263,10 +281,15 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
263
281
|
});
|
|
264
282
|
|
|
265
283
|
await aggregator.add(endpoint);
|
|
266
|
-
logger.info(`Endpoint
|
|
284
|
+
logger.info(`Endpoint added ${JSON.stringify(endpoint.id)} for ${device.label} (${device.address})`);
|
|
285
|
+
endpoints++;
|
|
267
286
|
//endpoints.push({0:endpoint,1:device});
|
|
268
287
|
}
|
|
269
288
|
//endpoint.lifecycle.ready.on(()=> device.initialize(endpoint as any));
|
|
289
|
+
}}
|
|
290
|
+
catch(e)
|
|
291
|
+
{
|
|
292
|
+
logger.error(`Error adding endpoint for ${device.label} (${device.address}): ${e.message}`);
|
|
270
293
|
}
|
|
271
294
|
|
|
272
295
|
/**
|
|
@@ -275,8 +298,9 @@ export async function createMatterServer(isy?: ISY, config?: Config): Promise<Se
|
|
|
275
298
|
* If the code in these change handlers fail then the change is also rolled back and not executed and an error is
|
|
276
299
|
* reported back to the controller.
|
|
277
300
|
*/
|
|
278
|
-
}
|
|
279
301
|
|
|
302
|
+
}
|
|
303
|
+
logger.info(`${endpoints} endpoints added to bridge.`);
|
|
280
304
|
/**
|
|
281
305
|
* In order to start the node and announce it into the network we use the run method which resolves when the node goes
|
|
282
306
|
* offline again because we do not need anything more here. See the Full example for other starting options.
|
|
@@ -1,46 +1,65 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { Family, type t } from '../../Definitions/Global/Families.js';
|
|
6
|
-
import { Insteon } from '../../Devices/Insteon/index.js';
|
|
7
|
-
import { Devices } from '../../Devices/index.js';
|
|
8
|
-
import { MappingRegistry, type DeviceToClusterMap, type EndpointMapping, type FamilyToClusterMap } from '../../Model/ClusterMap.js';
|
|
2
|
+
import { Family } from '../../Definitions/Global/Families.js';
|
|
3
|
+
import * as Insteon from '../../Devices/Insteon/index.js';
|
|
4
|
+
import { MappingRegistry, type EndpointMapping, type FamilyToClusterMap } from '../../Model/ClusterMap.js';
|
|
9
5
|
|
|
10
6
|
//import InsteonMap from "./Insteon.json";
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
import type { InsteonRelaySwitchDevice } from '../../Devices/Insteon/InsteonRelaySwitchDevice.js';
|
|
7
|
+
|
|
8
|
+
import { OnOffLightDevice, DimmableLightDevice } from '@matter/node/devices';
|
|
14
9
|
|
|
15
10
|
const map: FamilyToClusterMap<Family.Insteon> = {
|
|
16
11
|
Family: Family.Insteon,
|
|
17
|
-
|
|
12
|
+
|
|
13
|
+
RelayLamp: {
|
|
18
14
|
deviceType: OnOffLightDevice,
|
|
19
15
|
mapping: {
|
|
20
16
|
OnOff: {
|
|
21
17
|
attributes: {
|
|
22
|
-
onOff: 'ST'
|
|
18
|
+
onOff: { driver: 'ST', converter: 'LevelFrom0To255.Boolean' }
|
|
23
19
|
},
|
|
24
20
|
commands: { on: 'DON' }
|
|
25
21
|
}
|
|
26
|
-
|
|
22
|
+
|
|
23
|
+
}
|
|
27
24
|
},
|
|
28
|
-
|
|
25
|
+
RelayLampSwitch: {
|
|
29
26
|
deviceType: OnOffLightDevice,
|
|
30
27
|
mapping: {
|
|
31
28
|
OnOff: {
|
|
32
29
|
attributes: {
|
|
33
|
-
onOff: 'ST'
|
|
30
|
+
onOff: { driver: 'ST', converter: 'LevelFrom0To255.Boolean' }
|
|
34
31
|
},
|
|
35
32
|
commands: { on: 'DON' }
|
|
36
33
|
}
|
|
37
34
|
}
|
|
35
|
+
,},
|
|
36
|
+
DimmerLamp: {
|
|
37
|
+
deviceType: DimmableLightDevice,
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
mapping: {
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
OnOff: {
|
|
42
|
+
attributes: {
|
|
43
|
+
onOff: { driver: 'ST', converter: 'LevelFrom0To255.Boolean' }
|
|
44
|
+
},
|
|
45
|
+
commands: { on: 'DON' }
|
|
46
|
+
},
|
|
47
|
+
LevelControl: {
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
attributes: {
|
|
50
|
+
currentLevel: { driver: 'ST', converter: 'LevelFrom0To255.LightingLevel' },
|
|
51
|
+
startUpCurrentLevel: { driver: 'OL', converter: 'LevelFrom0To255.LightingLevel' },
|
|
52
|
+
onLevel: { driver: 'OL', converter: 'LevelFrom0To255.LightingLevel' }
|
|
53
|
+
},
|
|
54
|
+
commands: { setLevel: { command: 'DON' } }
|
|
55
|
+
}
|
|
56
|
+
} as EndpointMapping<DimmableLightDevice, Insteon.DimmerLampNode>
|
|
38
57
|
},
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
DimmerLampSwitch: {
|
|
41
59
|
deviceType: DimmableLightDevice,
|
|
42
60
|
// @ts-ignore
|
|
43
61
|
mapping: {
|
|
62
|
+
|
|
44
63
|
// @ts-ignore
|
|
45
64
|
OnOff: {
|
|
46
65
|
attributes: {
|
|
@@ -57,11 +76,9 @@ const map: FamilyToClusterMap<Family.Insteon> = {
|
|
|
57
76
|
},
|
|
58
77
|
commands: { setLevel: { command: 'DON' } }
|
|
59
78
|
}
|
|
60
|
-
} as EndpointMapping<DimmableLightDevice, Insteon.
|
|
79
|
+
} as EndpointMapping<DimmableLightDevice, Insteon.DimmerLampNode>
|
|
61
80
|
}
|
|
62
81
|
};
|
|
63
82
|
|
|
64
|
-
map.KeypadDimmer = map.Dimmer;
|
|
65
|
-
map.DimmerSwitch = map.Dimmer;
|
|
66
83
|
|
|
67
84
|
MappingRegistry.register(map);
|