Documentation
    Preparing search index...

    Device abstract class.

    Hierarchy (View Summary)

    • Device<SmartHomePanelSerialNumber, ShpQuotaAll>
      • SmartHomePanel
    Index

    Constructors

    Properties

    restClient: RestClient
    sn: `SP10${string}`

    Methods

    • Enable channel status

      Parameters

      • __namedParameters: { channel: number; enable: 0 | 1 }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.enableChannelStatus({
      channel: 1,
      enable: 1,
      });
    • EPS mode configuration (eps: 0: off, 1: on)

      Parameters

      • enabled: 0 | 1

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.enableEpsMode(1);
    • Retrieves the properties of the device asynchronously.

      Returns Promise<
          objectOutputType<
              {
                  "areaInfo.area": ZodString;
                  "areaInfo.cmdSet": ZodNumber;
                  "areaInfo.id": ZodNumber;
                  "backupChaDiscCfg.cmdSet": ZodNumber;
                  "backupChaDiscCfg.discLower": ZodNumber;
                  "backupChaDiscCfg.forceChargeHigh": ZodNumber;
                  "backupChaDiscCfg.id": ZodNumber;
                  "backupLoadWatt.cmdSet": ZodNumber;
                  "backupLoadWatt.id": ZodNumber;
                  "backupLoadWatt.rtc": ZodString;
                  "backupLoadWatt.watth": ZodArray<ZodArray<ZodNumber, "many">, "many">;
                  "cfgSta.cmdSet": ZodNumber;
                  "cfgSta.id": ZodNumber;
                  "cfgSta.sta": ZodNumber;
                  "channelPower.cmdSet": ZodNumber;
                  "channelPower.id": ZodNumber;
                  "channelPower.infoList": ZodArray<
                      ZodObject<
                          { chWatt: ZodNumber; powType: ZodNumber },
                          "passthrough",
                          ZodTypeAny,
                          objectOutputType<
                              { chWatt: ZodNumber; powType: ZodNumber },
                              ZodTypeAny,
                              "passthrough",
                          >,
                          objectInputType<
                              { chWatt: ZodNumber; powType: ZodNumber },
                              ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                      "many",
                  >;
                  "channelPower.time.day": ZodNumber;
                  "channelPower.time.hour": ZodNumber;
                  "channelPower.time.min": ZodNumber;
                  "channelPower.time.month": ZodNumber;
                  "channelPower.time.sec": ZodNumber;
                  "channelPower.time.week": ZodNumber;
                  "channelPower.time.year": ZodNumber;
                  "chUseInfo.cmdSet": ZodNumber;
                  "chUseInfo.id": ZodNumber;
                  "chUseInfo.isEnable": ZodArray<ZodBoolean, "many">;
                  "emergencyStrategy.backupMode": ZodNumber;
                  "emergencyStrategy.chSta": ZodArray<
                      ZodObject<
                          {
                              isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                              priority: ZodNumber;
                          },
                          "passthrough",
                          ZodTypeAny,
                          objectOutputType<
                              {
                                  isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  priority: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                          objectInputType<
                              {
                                  isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  priority: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                      "many",
                  >;
                  "emergencyStrategy.cmdSet": ZodNumber;
                  "emergencyStrategy.id": ZodNumber;
                  "emergencyStrategy.isCfg": ZodNumber;
                  "emergencyStrategy.overloadMode": ZodNumber;
                  "epsModeInfo.cmdSet": ZodNumber;
                  "epsModeInfo.eps": ZodBoolean;
                  "epsModeInfo.id": ZodNumber;
                  "gridInfo.cmdSet": ZodNumber;
                  "gridInfo.gridFreq": ZodNumber;
                  "gridInfo.gridVol": ZodNumber;
                  "gridInfo.id": ZodNumber;
                  "heartbeat.backupBatPer": ZodNumber;
                  "heartbeat.backupChaTime": ZodNumber;
                  "heartbeat.backupCmdChCtrlInfos": ZodArray<
                      ZodObject<
                          {
                              ctrlMode: ZodNumber;
                              ctrlSta: ZodNumber;
                              powCh: ZodNumber;
                              priority: ZodNumber;
                          },
                          "passthrough",
                          ZodTypeAny,
                          objectOutputType<
                              {
                                  ctrlMode: ZodNumber;
                                  ctrlSta: ZodNumber;
                                  powCh: ZodNumber;
                                  priority: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                          objectInputType<
                              {
                                  ctrlMode: ZodNumber;
                                  ctrlSta: ZodNumber;
                                  powCh: ZodNumber;
                                  priority: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                      "many",
                  >;
                  "heartbeat.backupDayWatth": ZodNumber;
                  "heartbeat.backupFullCap": ZodNumber;
                  "heartbeat.cmdSet": ZodNumber;
                  "heartbeat.energyInfos": ZodArray<
                      ZodObject<
                          {
                              batteryPercentage: ZodNumber;
                              chargeTime: ZodNumber;
                              dischargeTime: ZodNumber;
                              emsBatTemp: ZodNumber;
                              emsChgFlag: ZodNumber;
                              fullCap: ZodNumber;
                              lcdInputWatts: ZodNumber;
                              mulPackNum: ZodNumber;
                              oilPackNum: ZodNumber;
                              outputPower: ZodNumber;
                              ratePower: ZodNumber;
                              stateBean: ZodObject<
                                  {
                                      isAcOpen: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isConnect: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isEnable: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isGridCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isMpptCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isPowerOutput: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                  },
                                  "passthrough",
                                  ZodTypeAny,
                                  objectOutputType<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                                  objectInputType<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                              >;
                              type: ZodNumber;
                          },
                          "passthrough",
                          ZodTypeAny,
                          objectOutputType<
                              {
                                  batteryPercentage: ZodNumber;
                                  chargeTime: ZodNumber;
                                  dischargeTime: ZodNumber;
                                  emsBatTemp: ZodNumber;
                                  emsChgFlag: ZodNumber;
                                  fullCap: ZodNumber;
                                  lcdInputWatts: ZodNumber;
                                  mulPackNum: ZodNumber;
                                  oilPackNum: ZodNumber;
                                  outputPower: ZodNumber;
                                  ratePower: ZodNumber;
                                  stateBean: ZodObject<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      "passthrough",
                                      ZodTypeAny,
                                      objectOutputType<
                                          {
                                              isAcOpen: ZodUnion<(...)>;
                                              isConnect: ZodUnion<(...)>;
                                              isEnable: ZodUnion<(...)>;
                                              isGridCharge: ZodUnion<(...)>;
                                              isMpptCharge: ZodUnion<(...)>;
                                              isPowerOutput: ZodUnion<(...)>;
                                          },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                      objectInputType<
                                          {
                                              isAcOpen: ZodUnion<(...)>;
                                              isConnect: ZodUnion<(...)>;
                                              isEnable: ZodUnion<(...)>;
                                              isGridCharge: ZodUnion<(...)>;
                                              isMpptCharge: ZodUnion<(...)>;
                                              isPowerOutput: ZodUnion<(...)>;
                                          },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                  >;
                                  type: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                          objectInputType<
                              {
                                  batteryPercentage: ZodNumber;
                                  chargeTime: ZodNumber;
                                  dischargeTime: ZodNumber;
                                  emsBatTemp: ZodNumber;
                                  emsChgFlag: ZodNumber;
                                  fullCap: ZodNumber;
                                  lcdInputWatts: ZodNumber;
                                  mulPackNum: ZodNumber;
                                  oilPackNum: ZodNumber;
                                  outputPower: ZodNumber;
                                  ratePower: ZodNumber;
                                  stateBean: ZodObject<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      "passthrough",
                                      ZodTypeAny,
                                      objectOutputType<
                                          {
                                              isAcOpen: ZodUnion<(...)>;
                                              isConnect: ZodUnion<(...)>;
                                              isEnable: ZodUnion<(...)>;
                                              isGridCharge: ZodUnion<(...)>;
                                              isMpptCharge: ZodUnion<(...)>;
                                              isPowerOutput: ZodUnion<(...)>;
                                          },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                      objectInputType<
                                          {
                                              isAcOpen: ZodUnion<(...)>;
                                              isConnect: ZodUnion<(...)>;
                                              isEnable: ZodUnion<(...)>;
                                              isGridCharge: ZodUnion<(...)>;
                                              isMpptCharge: ZodUnion<(...)>;
                                              isPowerOutput: ZodUnion<(...)>;
                                          },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                  >;
                                  type: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                      "many",
                  >;
                  "heartbeat.errorCodes": ZodArray<ZodNumber, "many">;
                  "heartbeat.gridDayWatth": ZodNumber;
                  "heartbeat.gridSta": ZodNumber;
                  "heartbeat.id": ZodNumber;
                  "heartbeat.loadCmdChCtrlInfos": ZodArray<
                      ZodObject<
                          {
                              ctrlMode: ZodNumber;
                              ctrlSta: ZodNumber;
                              powCh: ZodNumber;
                              priority: ZodNumber;
                          },
                          "passthrough",
                          ZodTypeAny,
                          objectOutputType<
                              {
                                  ctrlMode: ZodNumber;
                                  ctrlSta: ZodNumber;
                                  powCh: ZodNumber;
                                  priority: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                          objectInputType<
                              {
                                  ctrlMode: ZodNumber;
                                  ctrlSta: ZodNumber;
                                  powCh: ZodNumber;
                                  priority: ZodNumber;
                              },
                              ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                      "many",
                  >;
                  "heartbeat.time.day": ZodNumber;
                  "heartbeat.time.hour": ZodNumber;
                  "heartbeat.time.min": ZodNumber;
                  "heartbeat.time.month": ZodNumber;
                  "heartbeat.time.sec": ZodNumber;
                  "heartbeat.time.week": ZodNumber;
                  "heartbeat.time.year": ZodNumber;
                  "heartbeat.workTime": ZodNumber;
                  "loadChCurInfo.cmdSet": ZodNumber;
                  "loadChCurInfo.cur": ZodArray<ZodNumber, "many">;
                  "loadChCurInfo.id": ZodNumber;
                  loadChInfo: ZodObject<
                      {
                          info: ZodArray<
                              ZodObject<
                                  { chName: ZodString; iconNum: ZodNumber },
                                  "passthrough",
                                  ZodTypeAny,
                                  objectOutputType<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                                  objectInputType<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                              >,
                              "many",
                          >;
                      },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          {
                              info: ZodArray<
                                  ZodObject<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      "passthrough",
                                      ZodTypeAny,
                                      objectOutputType<
                                          { chName: ZodString; iconNum: ZodNumber },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                      objectInputType<
                                          { chName: ZodString; iconNum: ZodNumber },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                  >,
                                  "many",
                              >;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          {
                              info: ZodArray<
                                  ZodObject<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      "passthrough",
                                      ZodTypeAny,
                                      objectOutputType<
                                          { chName: ZodString; iconNum: ZodNumber },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                      objectInputType<
                                          { chName: ZodString; iconNum: ZodNumber },
                                          ZodTypeAny,
                                          "passthrough",
                                      >,
                                  >,
                                  "many",
                              >;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >;
                  "mainsLoadWatt.cmdSet": ZodNumber;
                  "mainsLoadWatt.id": ZodNumber;
                  "mainsLoadWatt.rtc": ZodString;
                  "mainsLoadWatt.watth": ZodArray<ZodArray<ZodNumber, "many">, "many">;
                  "selfCheck.chErrorSta": ZodArray<ZodNumber, "many">;
                  "selfCheck.cmdSet": ZodNumber;
                  "selfCheck.flag": ZodNumber;
                  "selfCheck.id": ZodNumber;
                  "selfCheck.phaseType": ZodArray<ZodNumber, "many">;
                  "selfCheck.result": ZodNumber;
                  "selfCheck.vIn": ZodArray<ZodNumber, "many">;
                  "selfCheck.vOut": ZodArray<ZodNumber, "many">;
                  "splitPhaseInfo.cfgList": ZodArray<
                      ZodObject<
                          { linkCh: ZodNumber; linkMark: ZodNumber },
                          "passthrough",
                          ZodTypeAny,
                          objectOutputType<
                              { linkCh: ZodNumber; linkMark: ZodNumber },
                              ZodTypeAny,
                              "passthrough",
                          >,
                          objectInputType<
                              { linkCh: ZodNumber; linkMark: ZodNumber },
                              ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                      "many",
                  >;
                  "splitPhaseInfo.cmdSet": ZodNumber;
                  "splitPhaseInfo.id": ZodNumber;
                  "topupLoadWatt.cmdSet": ZodNumber;
                  "topupLoadWatt.id": ZodNumber;
                  "topupLoadWatt.rtc": ZodString;
                  "topupLoadWatt.watth": ZodArray<ZodArray<ZodNumber, "many">, "many">;
              },
              ZodTypeAny,
              "passthrough",
          >,
      >

    • Parses the properties of the device.

      Parameters

      • data: any

      Returns objectOutputType<
          {
              "areaInfo.area": ZodString;
              "areaInfo.cmdSet": ZodNumber;
              "areaInfo.id": ZodNumber;
              "backupChaDiscCfg.cmdSet": ZodNumber;
              "backupChaDiscCfg.discLower": ZodNumber;
              "backupChaDiscCfg.forceChargeHigh": ZodNumber;
              "backupChaDiscCfg.id": ZodNumber;
              "backupLoadWatt.cmdSet": ZodNumber;
              "backupLoadWatt.id": ZodNumber;
              "backupLoadWatt.rtc": ZodString;
              "backupLoadWatt.watth": ZodArray<ZodArray<ZodNumber, "many">, "many">;
              "cfgSta.cmdSet": ZodNumber;
              "cfgSta.id": ZodNumber;
              "cfgSta.sta": ZodNumber;
              "channelPower.cmdSet": ZodNumber;
              "channelPower.id": ZodNumber;
              "channelPower.infoList": ZodArray<
                  ZodObject<
                      { chWatt: ZodNumber; powType: ZodNumber },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          { chWatt: ZodNumber; powType: ZodNumber },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          { chWatt: ZodNumber; powType: ZodNumber },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >,
                  "many",
              >;
              "channelPower.time.day": ZodNumber;
              "channelPower.time.hour": ZodNumber;
              "channelPower.time.min": ZodNumber;
              "channelPower.time.month": ZodNumber;
              "channelPower.time.sec": ZodNumber;
              "channelPower.time.week": ZodNumber;
              "channelPower.time.year": ZodNumber;
              "chUseInfo.cmdSet": ZodNumber;
              "chUseInfo.id": ZodNumber;
              "chUseInfo.isEnable": ZodArray<ZodBoolean, "many">;
              "emergencyStrategy.backupMode": ZodNumber;
              "emergencyStrategy.chSta": ZodArray<
                  ZodObject<
                      {
                          isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                          priority: ZodNumber;
                      },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          {
                              isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                              priority: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          {
                              isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                              priority: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >,
                  "many",
              >;
              "emergencyStrategy.cmdSet": ZodNumber;
              "emergencyStrategy.id": ZodNumber;
              "emergencyStrategy.isCfg": ZodNumber;
              "emergencyStrategy.overloadMode": ZodNumber;
              "epsModeInfo.cmdSet": ZodNumber;
              "epsModeInfo.eps": ZodBoolean;
              "epsModeInfo.id": ZodNumber;
              "gridInfo.cmdSet": ZodNumber;
              "gridInfo.gridFreq": ZodNumber;
              "gridInfo.gridVol": ZodNumber;
              "gridInfo.id": ZodNumber;
              "heartbeat.backupBatPer": ZodNumber;
              "heartbeat.backupChaTime": ZodNumber;
              "heartbeat.backupCmdChCtrlInfos": ZodArray<
                  ZodObject<
                      {
                          ctrlMode: ZodNumber;
                          ctrlSta: ZodNumber;
                          powCh: ZodNumber;
                          priority: ZodNumber;
                      },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          {
                              ctrlMode: ZodNumber;
                              ctrlSta: ZodNumber;
                              powCh: ZodNumber;
                              priority: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          {
                              ctrlMode: ZodNumber;
                              ctrlSta: ZodNumber;
                              powCh: ZodNumber;
                              priority: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >,
                  "many",
              >;
              "heartbeat.backupDayWatth": ZodNumber;
              "heartbeat.backupFullCap": ZodNumber;
              "heartbeat.cmdSet": ZodNumber;
              "heartbeat.energyInfos": ZodArray<
                  ZodObject<
                      {
                          batteryPercentage: ZodNumber;
                          chargeTime: ZodNumber;
                          dischargeTime: ZodNumber;
                          emsBatTemp: ZodNumber;
                          emsChgFlag: ZodNumber;
                          fullCap: ZodNumber;
                          lcdInputWatts: ZodNumber;
                          mulPackNum: ZodNumber;
                          oilPackNum: ZodNumber;
                          outputPower: ZodNumber;
                          ratePower: ZodNumber;
                          stateBean: ZodObject<
                              {
                                  isAcOpen: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  isConnect: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  isEnable: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  isGridCharge: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  isMpptCharge: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                                  isPowerOutput: ZodUnion<[ZodLiteral<0>, ZodLiteral<1>]>;
                              },
                              "passthrough",
                              ZodTypeAny,
                              objectOutputType<
                                  {
                                      isAcOpen: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isConnect: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isEnable: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isGridCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isMpptCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isPowerOutput: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                  },
                                  ZodTypeAny,
                                  "passthrough",
                              >,
                              objectInputType<
                                  {
                                      isAcOpen: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isConnect: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isEnable: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isGridCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isMpptCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isPowerOutput: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                  },
                                  ZodTypeAny,
                                  "passthrough",
                              >,
                          >;
                          type: ZodNumber;
                      },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          {
                              batteryPercentage: ZodNumber;
                              chargeTime: ZodNumber;
                              dischargeTime: ZodNumber;
                              emsBatTemp: ZodNumber;
                              emsChgFlag: ZodNumber;
                              fullCap: ZodNumber;
                              lcdInputWatts: ZodNumber;
                              mulPackNum: ZodNumber;
                              oilPackNum: ZodNumber;
                              outputPower: ZodNumber;
                              ratePower: ZodNumber;
                              stateBean: ZodObject<
                                  {
                                      isAcOpen: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isConnect: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isEnable: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isGridCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isMpptCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isPowerOutput: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                  },
                                  "passthrough",
                                  ZodTypeAny,
                                  objectOutputType<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                                  objectInputType<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                              >;
                              type: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          {
                              batteryPercentage: ZodNumber;
                              chargeTime: ZodNumber;
                              dischargeTime: ZodNumber;
                              emsBatTemp: ZodNumber;
                              emsChgFlag: ZodNumber;
                              fullCap: ZodNumber;
                              lcdInputWatts: ZodNumber;
                              mulPackNum: ZodNumber;
                              oilPackNum: ZodNumber;
                              outputPower: ZodNumber;
                              ratePower: ZodNumber;
                              stateBean: ZodObject<
                                  {
                                      isAcOpen: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isConnect: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isEnable: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isGridCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isMpptCharge: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                      isPowerOutput: ZodUnion<[ZodLiteral<(...)>, ZodLiteral<(...)>]>;
                                  },
                                  "passthrough",
                                  ZodTypeAny,
                                  objectOutputType<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                                  objectInputType<
                                      {
                                          isAcOpen: ZodUnion<[(...), (...)]>;
                                          isConnect: ZodUnion<[(...), (...)]>;
                                          isEnable: ZodUnion<[(...), (...)]>;
                                          isGridCharge: ZodUnion<[(...), (...)]>;
                                          isMpptCharge: ZodUnion<[(...), (...)]>;
                                          isPowerOutput: ZodUnion<[(...), (...)]>;
                                      },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                              >;
                              type: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >,
                  "many",
              >;
              "heartbeat.errorCodes": ZodArray<ZodNumber, "many">;
              "heartbeat.gridDayWatth": ZodNumber;
              "heartbeat.gridSta": ZodNumber;
              "heartbeat.id": ZodNumber;
              "heartbeat.loadCmdChCtrlInfos": ZodArray<
                  ZodObject<
                      {
                          ctrlMode: ZodNumber;
                          ctrlSta: ZodNumber;
                          powCh: ZodNumber;
                          priority: ZodNumber;
                      },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          {
                              ctrlMode: ZodNumber;
                              ctrlSta: ZodNumber;
                              powCh: ZodNumber;
                              priority: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          {
                              ctrlMode: ZodNumber;
                              ctrlSta: ZodNumber;
                              powCh: ZodNumber;
                              priority: ZodNumber;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >,
                  "many",
              >;
              "heartbeat.time.day": ZodNumber;
              "heartbeat.time.hour": ZodNumber;
              "heartbeat.time.min": ZodNumber;
              "heartbeat.time.month": ZodNumber;
              "heartbeat.time.sec": ZodNumber;
              "heartbeat.time.week": ZodNumber;
              "heartbeat.time.year": ZodNumber;
              "heartbeat.workTime": ZodNumber;
              "loadChCurInfo.cmdSet": ZodNumber;
              "loadChCurInfo.cur": ZodArray<ZodNumber, "many">;
              "loadChCurInfo.id": ZodNumber;
              loadChInfo: ZodObject<
                  {
                      info: ZodArray<
                          ZodObject<
                              { chName: ZodString; iconNum: ZodNumber },
                              "passthrough",
                              ZodTypeAny,
                              objectOutputType<
                                  { chName: ZodString; iconNum: ZodNumber },
                                  ZodTypeAny,
                                  "passthrough",
                              >,
                              objectInputType<
                                  { chName: ZodString; iconNum: ZodNumber },
                                  ZodTypeAny,
                                  "passthrough",
                              >,
                          >,
                          "many",
                      >;
                  },
                  "passthrough",
                  ZodTypeAny,
                  objectOutputType<
                      {
                          info: ZodArray<
                              ZodObject<
                                  { chName: ZodString; iconNum: ZodNumber },
                                  "passthrough",
                                  ZodTypeAny,
                                  objectOutputType<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                                  objectInputType<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                              >,
                              "many",
                          >;
                      },
                      ZodTypeAny,
                      "passthrough",
                  >,
                  objectInputType<
                      {
                          info: ZodArray<
                              ZodObject<
                                  { chName: ZodString; iconNum: ZodNumber },
                                  "passthrough",
                                  ZodTypeAny,
                                  objectOutputType<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                                  objectInputType<
                                      { chName: ZodString; iconNum: ZodNumber },
                                      ZodTypeAny,
                                      "passthrough",
                                  >,
                              >,
                              "many",
                          >;
                      },
                      ZodTypeAny,
                      "passthrough",
                  >,
              >;
              "mainsLoadWatt.cmdSet": ZodNumber;
              "mainsLoadWatt.id": ZodNumber;
              "mainsLoadWatt.rtc": ZodString;
              "mainsLoadWatt.watth": ZodArray<ZodArray<ZodNumber, "many">, "many">;
              "selfCheck.chErrorSta": ZodArray<ZodNumber, "many">;
              "selfCheck.cmdSet": ZodNumber;
              "selfCheck.flag": ZodNumber;
              "selfCheck.id": ZodNumber;
              "selfCheck.phaseType": ZodArray<ZodNumber, "many">;
              "selfCheck.result": ZodNumber;
              "selfCheck.vIn": ZodArray<ZodNumber, "many">;
              "selfCheck.vOut": ZodArray<ZodNumber, "many">;
              "splitPhaseInfo.cfgList": ZodArray<
                  ZodObject<
                      { linkCh: ZodNumber; linkMark: ZodNumber },
                      "passthrough",
                      ZodTypeAny,
                      objectOutputType<
                          { linkCh: ZodNumber; linkMark: ZodNumber },
                          ZodTypeAny,
                          "passthrough",
                      >,
                      objectInputType<
                          { linkCh: ZodNumber; linkMark: ZodNumber },
                          ZodTypeAny,
                          "passthrough",
                      >,
                  >,
                  "many",
              >;
              "splitPhaseInfo.cmdSet": ZodNumber;
              "splitPhaseInfo.id": ZodNumber;
              "topupLoadWatt.cmdSet": ZodNumber;
              "topupLoadWatt.id": ZodNumber;
              "topupLoadWatt.rtc": ZodString;
              "topupLoadWatt.watth": ZodArray<ZodArray<ZodNumber, "many">, "many">;
          },
          ZodTypeAny,
          "passthrough",
      >

    • Sends a command with the given payload.

      Parameters

      • payload: any
      • schema: ZodTypeAny

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

    • Set channel current configuration

      Parameters

      • __namedParameters: { channel: number; cur: 6 | 13 | 16 | 20 | 30 }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setChannelCurrentConfiguration({
      channel: 2,
      cur: 6,
      });
    • Set configuration status

      Parameters

      • cfgSta: number

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setConfigurationStatus(1);
    • Set emergency mode

      Parameters

      • __namedParameters: {
            backupMode: 0 | 1;
            chSta: { isEnable: 0 | 1; priority: number }[];
            isCfg: 0 | 1;
            overloadMode: 0 | 1;
        }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setEmergencyMode({
      isCfg: 1,
      backupMode: 1,
      overloadMode: 1,
      chSta: [
      { "priority": 1, "isEnable": 1 },
      { "priority": 1, "isEnable": 1 },
      { "priority": 2, "isEnable": 1 },
      { "priority": 3, "isEnable": 1 },
      { "priority": 4, "isEnable": 1 },
      { "priority": 5, "isEnable": 1 },
      { "priority": 6, "isEnable": 1 },
      { "priority": 7, "isEnable": 1 },
      { "priority": 8, "isEnable": 1 },
      { "priority": 9, "isEnable": 1 }
      ]
      });
    • Set grid power configuration

      Parameters

      • __namedParameters: { gridFreq: number; gridVol: number }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setGridPowerConfiguration({
      gridVol: 220,
      gridFreq: 50,
      });
    • Load channel control

      Parameters

      • __namedParameters: { ch: number; ctrlMode: number; sta: number }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setLoadChannelControl({ch:1, ctrlMode:1, sta:1});
    • Set load channel info

      Parameters

      • __namedParameters: { channel: number; channelName: string; iconInfo: number }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setLoadChannelInfo({
      channel: 1,
      channelName: "my-channel",
      iconInfo: 10,
      });
    • Set region info

      Parameters

      • area: string

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setRegionInfo("US,somewhere");
    • Update RTC time

      Parameters

      • __namedParameters: {
            day: number;
            hour: number;
            min: number;
            month: number;
            sec: number;
            week: number;
            year: number;
        }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setRtcTime({
      sec: 10,
      min: 10,
      hour: 10,
      day: 5,
      week: 6,
      month: 10,
      year: 2024,
      });
    • Set scheduled charging job

      Parameters

      • __namedParameters: {
            cfg: {
                comCfg: {
                    isCfg: 0 | 1;
                    isEnable: 0 | 1;
                    setTime: {
                        day: number;
                        hour: number;
                        min: number;
                        month: number;
                        sec: number;
                        week: number;
                        year: number;
                    };
                    timeRange: {
                        endTime: {
                            day: number;
                            hour: number;
                            min: number;
                            month: number;
                            sec: number;
                            week: number;
                            year: number;
                        };
                        isCfg: 0
                        | 1;
                        isEnable: 0 | 1;
                        mode1: {
                            fri: number;
                            mon: number;
                            sat: number;
                            sun: number;
                            thur: number;
                            tues: number;
                            wed: number;
                        };
                        startTime: {
                            day: number;
                            hour: number;
                            min: number;
                            month: number;
                            sec: number;
                            week: number;
                            year: number;
                        };
                        timeMode: number;
                    };
                    timeScale: number[];
                    type: number;
                };
                param: {
                    chChargeWatt: number;
                    chSta: number[];
                    hightBattery: number;
                    lowBattery: number;
                };
            };
            cfgIndex: number;
        }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setScheduledChargingJob({
      cfgIndex: 1,
      cfg: {
      "param": {
      "lowBattery": 95,
      "chChargeWatt": 2000,
      "chSta": [
      1,
      0
      ],
      "hightBattery": 100
      },
      "comCfg": {
      "timeScale": [
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      255,
      127
      ],
      "isCfg": 1,
      "type": 1,
      "timeRange": {
      "isCfg": 1,
      "startTime": {
      "sec": 0,
      "min": 0,
      "week": 4,
      "hour": 0,
      "month": 1,
      "year": 2023,
      "day": 11
      },
      "timeMode": 0,
      "endTime": {
      "sec": 59,
      "min": 59,
      "week": 7,
      "hour": 23,
      "month": 1,
      "year": 2023,
      "day": 22
      },
      "mode1": {
      "thur": 0,
      "sat": 0,
      "wed": 0,
      "tues": 0,
      "fri": 0,
      "sun": 0,
      "mon": 0
      },
      "isEnable": 1
      },
      "isEnable": 1,
      "setTime": {
      "sec": 35,
      "min": 53,
      "week": 4,
      "hour": 15,
      "month": 1,
      "year": 2023,
      "day": 11
      }
      }
      }
      });
    • Set scheduled discharging job

      Parameters

      • __namedParameters: {
            cfg: {
                chSta: number[];
                comCfg: {
                    isCfg: 0 | 1;
                    isEnable: 0 | 1;
                    setTime: {
                        day: number;
                        hour: number;
                        min: number;
                        month: number;
                        sec: number;
                        week: number;
                        year: number;
                    };
                    timeRange: {
                        endTime: {
                            day: number;
                            hour: number;
                            min: number;
                            month: number;
                            sec: number;
                            week: number;
                            year: number;
                        };
                        isCfg: 0
                        | 1;
                        isEnable: 0 | 1;
                        startTime: {
                            day: number;
                            hour: number;
                            min: number;
                            month: number;
                            sec: number;
                            week: number;
                            year: number;
                        };
                        timeMode: number;
                    };
                    timeScale: number[];
                    type: number;
                };
            };
            cfgIndex: number;
        }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setScheduledChargingJob({
      cfgIndex: 1,
      cfg: {
      "chSta": [
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1
      ],
      "comCfg": {
      "timeScale": [
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
      ],
      "isCfg": 1,
      "type": 2,
      "timeRange": {
      "isCfg": 1,
      "timeMode": 0,
      "startTime": {
      "sec": 0,
      "min": 0,
      "week": 2,
      "hour": 0,
      "month": 10,
      "year": 2022,
      "day": 24
      },
      "endTime": {
      "sec": 59,
      "min": 59,
      "week": 2,
      "hour": 23,
      "month": 10,
      "year": 2022,
      "day": 25
      },
      "isEnable": 1
      },
      "isEnable": 1,
      "setTime": {
      "sec": 61,
      "min": 9,
      "week": 7,
      "hour": 16,
      "month": 11,
      "year": 2022,
      "day": 15
      }
      }
      }
      });
    • Set split phase info config

      Parameters

      • cfgList: { linkCh: number; linkMark: number }[]

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setSplitPhaseInfoConfig([
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      {linkCh: 0, linkMark: 0},
      ]);
    • Standby channel control

      Parameters

      • __namedParameters: { ch: number; ctrlMode: number; sta: number }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setStandbyChannelControl({ch:1, ctrlMode:1, sta:1});
    • Set standby charging and discharging parameters

      Parameters

      • __namedParameters: { discLower: number; forceChargeHigh: number }

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setStandByChargingDischargingParameters({
      discLower: 10,
      forceChargeHigh: 20,
      });
    • Start self check

      Parameters

      • selfCheckType: number

      Returns Promise<
          | {
              code: "0";
              eagleEyeTraceId: string;
              message: "Success";
              tid: string;
          }
          | { code: string; eagleEyeTraceId: string; message: string; tid: string },
      >

        const sn = "SP10*****";
      const client = new RestClient({
      accessKey: "my-access-key",
      secretKey: "my-secret-key",
      host: "https://api-e.ecoflow.com",
      });

      const device = client.getDevice(sn);
      await device.setStartSelfCheck(1);