Create function to set ActivePower on inverter level

This commit is contained in:
Thomas Basler 2022-09-13 20:18:21 +02:00
parent 73e2aaf8fe
commit 2376da1722
3 changed files with 16 additions and 0 deletions

View File

@ -1,5 +1,6 @@
#include "HM_Abstract.h" #include "HM_Abstract.h"
#include "HoymilesRadio.h" #include "HoymilesRadio.h"
#include "commands/ActivePowerControlCommand.h"
#include "commands/AlarmDataCommand.h" #include "commands/AlarmDataCommand.h"
#include "commands/DevInfoAllCommand.h" #include "commands/DevInfoAllCommand.h"
#include "commands/DevInfoSampleCommand.h" #include "commands/DevInfoSampleCommand.h"
@ -86,5 +87,17 @@ bool HM_Abstract::sendSystemConfigParaRequest(HoymilesRadio* radio)
cmd->setTime(now); cmd->setTime(now);
cmd->setTargetAddress(serial()); cmd->setTargetAddress(serial());
return true;
}
bool HM_Abstract::sendActivePowerControlRequest(HoymilesRadio* radio, float limit, PowerLimitControlType type)
{
ActivePowerControlCommand* cmd = radio->enqueCommand<ActivePowerControlCommand>();
cmd->setActivePowerLimit(limit, type);
cmd->setTargetAddress(serial());
// request updated limits
sendSystemConfigParaRequest(radio);
return true; return true;
} }

View File

@ -9,6 +9,7 @@ public:
bool sendAlarmLogRequest(HoymilesRadio* radio); bool sendAlarmLogRequest(HoymilesRadio* radio);
bool sendDevInfoRequest(HoymilesRadio* radio); bool sendDevInfoRequest(HoymilesRadio* radio);
bool sendSystemConfigParaRequest(HoymilesRadio* radio); bool sendSystemConfigParaRequest(HoymilesRadio* radio);
bool sendActivePowerControlRequest(HoymilesRadio* radio, float limit, PowerLimitControlType type);
private: private:
uint8_t _lastAlarmLogCnt = 0; uint8_t _lastAlarmLogCnt = 0;

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "../commands/ActivePowerControlCommand.h"
#include "../parser/AlarmLogParser.h" #include "../parser/AlarmLogParser.h"
#include "../parser/DevInfoParser.h" #include "../parser/DevInfoParser.h"
#include "../parser/StatisticsParser.h" #include "../parser/StatisticsParser.h"
@ -42,6 +43,7 @@ public:
virtual bool sendAlarmLogRequest(HoymilesRadio* radio) = 0; virtual bool sendAlarmLogRequest(HoymilesRadio* radio) = 0;
virtual bool sendDevInfoRequest(HoymilesRadio* radio) = 0; virtual bool sendDevInfoRequest(HoymilesRadio* radio) = 0;
virtual bool sendSystemConfigParaRequest(HoymilesRadio* radio) = 0; virtual bool sendSystemConfigParaRequest(HoymilesRadio* radio) = 0;
virtual bool sendActivePowerControlRequest(HoymilesRadio* radio, float limit, PowerLimitControlType type) = 0;
AlarmLogParser* EventLog(); AlarmLogParser* EventLog();
DevInfoParser* DevInfo(); DevInfoParser* DevInfo();