diff --git a/src/devices/index.ts b/src/devices/index.ts index 68a2fa10..e48b9818 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -5,6 +5,7 @@ export * from './shelly-plus-1-pm'; export * from './shelly-plus-2-pm'; export * from './shelly-plus-ht'; export * from './shelly-plus-i4'; +export * from './shelly-plus-i4dc'; export * from './shelly-plus-plug-us'; export * from './shelly-pro-1'; export * from './shelly-pro-1-pm'; diff --git a/src/devices/shelly-plus-i4dc.ts b/src/devices/shelly-plus-i4dc.ts new file mode 100644 index 00000000..b31de6c4 --- /dev/null +++ b/src/devices/shelly-plus-i4dc.ts @@ -0,0 +1,47 @@ +import { component, Device } from './base'; +import { + BluetoothLowEnergy, + Cloud, + Input, + Mqtt, + OutboundWebSocket, + Script, + WiFi, +} from '../components'; + +export class ShellyPlusI4DC extends Device { + static readonly model: string = 'SNSN-0D24X'; + static readonly modelName: string = 'Shelly Plus I4DC'; + + @component + readonly wifi = new WiFi(this); + + @component + readonly bluetoothLowEnergy = new BluetoothLowEnergy(this); + + @component + readonly cloud = new Cloud(this); + + @component + readonly mqtt = new Mqtt(this); + + @component + readonly outboundWebSocket = new OutboundWebSocket(this); + + @component + readonly input0 = new Input(this, 0); + + @component + readonly input1 = new Input(this, 1); + + @component + readonly input2 = new Input(this, 2); + + @component + readonly input3 = new Input(this, 3); + + @component + readonly script = new Script(this); +} + +Device.registerClass(ShellyPlusI4DC);