A few things having done some digging myself.
Port 6093 seems to have someth…ing to do with upgrading firmware, perhaps the reason it leaves offline mode is because it is preparing to receive an update?
There are a few method that have peeked my interest:
- `BleCommand.setMainsParam` and `DirectDeviceCommand.setDcInputMode` I am really hoping that this will allow control over charging from the mains (e.g. on/off), but it seems to be used to set the voltage and fequency so I am guessing that wont be the case.
- `BleCommand.setEspMode` this appears to send a boolean value, perhaps turn on the ability to debug or flash the ESP module?
- `BleCommand.sendBmsDataCommand`, `DirectTcpManager.getBmsDataBytes` and `DirectTcpManager.getBmsSDataBytes` it would be really nice if the BMS exposes information about each cell in the power station
There are a few methods around MQTT which suggests that it could be configured to push information to an MQTT server, maybe this is how they are getting the graphs in the mobile app for charge and discharge? Unless it is a typo for MPPT
### com.ecoflow.common.command.BleCommand
The first param `str` in all of these methods appears to be the address of the device.
- public void getCpuId(String str, int i)
- public void getSn(String str, int i)
- public void getWifiListCommand(String str, int i)
- public void setHostCommand(String str, String str2, int i)
- public void setHostCommand(String str, String str2)
- public void getName(String str, int i)
- public void setNameCommand(String str, String str2, int i)
- public void setBCNameCommand(String str, String str2)
- public void getWifiInfo(String str)
- public void getIsDormancyCommand(String str)
- public void sendPdCommand(String str)
- public void sendEmsDataCommand(String str)
- public void sendBmsDataCommand(String str)
- public void sendInvDataCommand(String str)
- public void sendMpptDataCommand(String str)
- public void getCarChargerInputCommand(String str)
- public void sendNotifyCommand(String str)
- public void sendMinDsgSocCommand(String str, int i)
- public void sendUpsCommand(String str, int i, int i2, int i3)
- public void sendScWattsCommand(String str, int i)
- public void sendAcCommand(String str, int i, int i2)
- public void sendXBootCommand(String str, int i)
- public void sendDcCommand(String str, int i, int i2, int i3)
- public void sendSystemStandCommand(String str, int i)
- public void sendLcdCommand(String str, int i, int i2, int i3)
- public void sendBuzzerCommand(String str, int i)
- public void sendLcdCommand(String str, int i)
- public void sendResetCommand(String str)
- public void sendCloseCommand(String str, int i)
- public void sendCarChargerInputCommand(String str, int i)
- public void sendAcOutFreqCommand(String str, int i)
- public void sendPassword(String str, String str2)
- public void getPassword(String str)
- public void sendSilenceCharge(String str, boolean z, int i, int i2)
- public void sendAcStandbyMinCommand(String str, int i)
- public void sendOpenOilCommand(String str, int i, int i2, int i3)
- public void sendCloseOilCommand(String str, int i, int i2, int i3)
- public void mj100Reset(String str)
- public void mj100DcOut(String str, int i)
- public void mj100AcOutEnabled(String str, int i)
- public void mj100AcOutXBoost(String str, int i)
- public void mj100AcOutOutFreq(String str, int i)
- public void mj100SetHvType(String str, int i)
- public void mj100GetHvType(String str)
- public void mj100SetStandBy(String str, int i)
- public void mj100SmartProtection(String str, int i)
- public void setMqttServer(String str, String str2, int i)
- public void setMqttServerConfig(String str, String str2, String str3)
- public void setMqttInfo(String str)
- public void replayChannelPowerAck(String str, byte[] bArr, int i)
- public void replyAck(String str, int i, int i2, int i3)
- public void replyTimerTaskAck(String str, int i)
- public void replyLogAck(String str, byte[] bArr, LogModItem logModItem)
- public void replyHearBeat(String str, byte b, byte b2)
- public void sendCFGPowerModeCommand(String str, byte[] bArr)
- public void setAreaInfo(String str, String str2)
- public void setMainsParam(String str, int i, int i2)
- public void setEspMode(String str, boolean z)
- public void setChannelCurrent(String str, int i, int i2)
- public void setCfgSta(String str, int i)
- public void setSplitPhase(String str, byte[] bArr)
- public void setChannelEnableState(String str, int i, boolean z)
- public void setChannelName(String str, int i, int i2, byte[] bArr)
- public void getChannelInfo(String str)
- public void setDischargeTime(String str, ByteBuffer byteBuffer)
- public void setChargeTime(String str, ByteBuffer byteBuffer)
- public void sendCHModeCommand(String str, int i, int i2, int i3)
- public void setRestart(String str)
- public void updateTime(String str, Date date)
- public void setPowerStation(String str, int i, int i2, int i3)
- public void setMH200DeviceName(String str, String str2)
### com.ecoflow.common.command.CommandUtil
- public static int getSynchronousCmdSet(int i)
- public static int getSynchronousDst(int i)
- public static int getWifiListCmdId(int i)
- public static int setHostCmdId(int i)
- public static int setStaCmdId(int i)
- public static byte[] CommandToByteArray(byte[] bArr, int i, int i2, int i3, int i4)
- public static byte[] getAcPayLoad(int i, int i2)
- public static int getAcDst(int i)
- public static int getCmdSet(int i)
- public static int getAcCmdId(int i)
- public static int getDcDst(int i, int i2)
- public static int getDcCmdSet(int i, int i2)
- public static int getDcCmdId(int i, int i2)
- public static byte[] getLcdSettingTime(int i, int i2, int i3)
- public static int getDcInputModeDst(int i, int i2)
- public static int getDcInputModeCmdSet(int i, int i2)
- public static int setDcInputModeId(int i, int i2)
- public static int getDcInputModeId(int i, int i2)
- public static int getUpsDst(int i, int i2)
- public static int getUpsCmdSet(int i, int i2)
- public static int getUpsCmdId(int i, int i2)
- public static int getCpuIdDst(int i)
- public static int getSnDst(int i)
- public static int getNameCmdSet(int i)
- public static int getNameCmdId(int i)
### com.ecoflow.common.command.DirectDeviceCommand
- public void getSnCommand()
- public void setSnCommand(String str)
- public void getCpuId()
- public void sendSystemStandCommand(int i)
- public void sendAcCommand(int i, int i2)
- public void sendXBootCommand(int i)
- public void sendAcOutFreqCommand(int i)
- public void sendUsbCommand(int i)
- public void sendBuzzerCommand(int i)
- public void sendResetCommand()
- public void sendCloseCommand(int i)
- public void sendGetPdInfo()
- public void sendLedCommand(int i)
- public void sendDcCommand(int i, int i2, int i3)
- public void sendLcdCommand(int i, int i2, int i3)
- public void sendLcdCommand(int i)
- public void sendAmbientModelCommand(int i)
- public void setAmbientLightBrightnessCommand(int i)
- public void setAnimationLightModeCommand(int i)
- public void setAmbientLightColorCommand(int i)
- public void setDcInputMode(int i, int i2, int i3)
- public void getDcInputMode(int i, int i2)
- public void sendUpsCommand(int i, int i2, int i3)
- public void sendMinDsgSocCommand(int i, int i2, int i3)
- public void sendCarChargerInputCommand(int i, int i2, int i3)
- public void getCarChargerInputCommand(int i, int i2)
- public void sendOpenOilCommand(int i, int i2, int i3)
- public void sendCloseOilCommand(int i, int i2, int i3)
- public void sendWattCommand(int i)
- public void sendScWattsCommand(int i)
- public void sendFanCommand(int i)
- public void getFanCommand()
- public void sendChgPauseCommand(int i)
- public void sendAcStandbyMinCommand(int i)
- public void sendSilenceCharge(boolean z, int i, int i2)
- public void sendGetProduceInfo(int i)
### com.ecoflow.common.helper.DirectTcpManager
- public void startConnect()
- public void initSp()
- public void startHeartBeat()
- public void getSnData()
- private void getMr500SnData()
- public byte[] getLcdTimeData()
- private void getMr500CpuId()
- public byte[] getOilDataBytes()
- public void notifyWillSetSta()
- public byte[] getPdDataBytes()
- public byte[] getEmsDataBytes()
- public byte[] getBmsDataBytes()
- public byte[] getBmsSDataBytes()
- public byte[] getInvDataBytes()
- public byte[] getMpptDataBytes()
- public void sendData(byte[] bArr)
- public DirectDeviceCommand getDirectDeviceCommand()
- public void setUserDisconnect(boolean z)