Compare commits

..

No commits in common. "patrix" and "master" have entirely different histories.

4 changed files with 0 additions and 50 deletions

View File

@ -20,11 +20,6 @@ public:
private:
void loop();
static void patrixSend(const std::shared_ptr<InverterAbstract>& inv);
static double patrixGetField(const std::shared_ptr<InverterAbstract>& inv, const ChannelType_t type, const ChannelNum_t channel, const FieldId_t fieldId);
void publishField(std::shared_ptr<InverterAbstract> inv, const ChannelType_t type, const ChannelNum_t channel, const FieldId_t fieldId);
Task _loopTask;

View File

@ -8,8 +8,6 @@ public:
MqttHandleInverterTotalClass();
void init(Scheduler& scheduler);
static void patrixSend();
private:
void loop();

View File

@ -107,44 +107,12 @@ void MqttHandleInverterClass::loop()
}
}
}
patrixSend(inv);
}
yield();
}
}
void MqttHandleInverterClass::patrixSend(const std::shared_ptr<InverterAbstract>& inv) {
const auto totalKWh = patrixGetField(inv, TYPE_INV, CH0, FLD_YT);
const auto totalW = patrixGetField(inv, TYPE_AC, CH0, FLD_PAC);
const auto string0KWh = patrixGetField(inv, TYPE_DC, CH0, FLD_YT);
const auto string0W = patrixGetField(inv, TYPE_DC, CH0, FLD_PDC);
const auto string1KWh = patrixGetField(inv, TYPE_DC, CH1, FLD_YT);
const auto string1W = patrixGetField(inv, TYPE_DC, CH1, FLD_PDC);
char buffer[300];
snprintf(buffer, sizeof buffer, R"({"inverter": "%s", "timestamp": %ld, "totalKWh": %s, "totalW": %s, "string0KWh": %s, "string0W": %s, "string1KWh": %s, "string1W": %s})",
inv->serialString().c_str(),
std::time(nullptr),
isnan(totalKWh) ? "null" : String(totalKWh).c_str(),
isnan(totalW) ? "null" : String(totalW).c_str(),
isnan(string0KWh) ? "null" : String(string0KWh).c_str(),
isnan(string0W) ? "null" : String(string0W).c_str(),
isnan(string1KWh) ? "null" : String(string1KWh).c_str(),
isnan(string1W) ? "null" : String(string1W).c_str()
);
MqttSettings.publish("patrix/json2", buffer);
}
double MqttHandleInverterClass::patrixGetField(const std::shared_ptr<InverterAbstract>& inv, const ChannelType_t type, const ChannelNum_t channel, const FieldId_t fieldId) {
if (inv->Statistics()->getAssignmentByChannelField(type, channel, fieldId) == nullptr) {
return NAN;
}
return inv->Statistics()->getChannelFieldValue(type, channel, fieldId);
}
void MqttHandleInverterClass::publishField(std::shared_ptr<InverterAbstract> inv, const ChannelType_t type, const ChannelNum_t channel, const FieldId_t fieldId)
{
const String topic = getTopic(inv, type, channel, fieldId);

View File

@ -32,7 +32,6 @@ void MqttHandleInverterTotalClass::loop()
return;
}
patrixSend();
MqttSettings.publish("ac/power", String(Datastore.getTotalAcPowerEnabled(), Datastore.getTotalAcPowerDigits()));
MqttSettings.publish("ac/yieldtotal", String(Datastore.getTotalAcYieldTotalEnabled(), Datastore.getTotalAcYieldTotalDigits()));
MqttSettings.publish("ac/yieldday", String(Datastore.getTotalAcYieldDayEnabled(), Datastore.getTotalAcYieldDayDigits()));
@ -41,13 +40,3 @@ void MqttHandleInverterTotalClass::loop()
MqttSettings.publish("dc/irradiation", String(Datastore.getTotalDcIrradiation(), 3));
MqttSettings.publish("dc/is_valid", String(Datastore.getIsAllEnabledReachable()));
}
void MqttHandleInverterTotalClass::patrixSend() {
const auto power = Datastore.getTotalAcPowerEnabled();
const auto energy = Datastore.getTotalAcYieldTotalEnabled();
if (!isnan(power) && !isnan(energy)) {
char buffer[200];
snprintf(buffer, sizeof buffer, R"({"timestamp": %ld, "energyProducedKWh": %f, "powerW": %f})", std::time(nullptr), energy, power);
MqttSettings.publish("patrix/json", buffer);
}
}