mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-25 20:06:08 +00:00
Merge branch 'main' into dev-v2.3
This commit is contained in:
@@ -111,12 +111,18 @@ PriceService* ps = NULL;
|
||||
Timezone* tz = NULL;
|
||||
|
||||
ConnectionHandler* ch = NULL;
|
||||
AmsWebServer ws(commonBuffer, &Debug, &hw);
|
||||
|
||||
#if defined(ESP32)
|
||||
__NOINIT_ATTR ResetDataContainer rdc;
|
||||
#else
|
||||
ResetDataContainer rdc;
|
||||
#endif
|
||||
AmsWebServer ws(commonBuffer, &Debug, &hw, &rdc);
|
||||
|
||||
bool mqttEnabled = false;
|
||||
AmsMqttHandler* mqttHandler = NULL;
|
||||
|
||||
#if defined(ESP32)
|
||||
#if defined(ESP32) && defined(ENERGY_SPEEDOMETER_PASS)
|
||||
JsonMqttHandler* energySpeedometer = NULL;
|
||||
MqttConfig energySpeedometerConfig = {
|
||||
"mqtt.sandtime.energy",
|
||||
@@ -556,7 +562,7 @@ void loop() {
|
||||
mqttHandler->disconnect();
|
||||
}
|
||||
|
||||
#if defined(ENERGY_SPEEDOMETER_PASS)
|
||||
#if defined(ESP32) && defined(ENERGY_SPEEDOMETER_PASS)
|
||||
if(sysConfig.energyspeedometer == 7) {
|
||||
if(!meterState.getMeterId().isEmpty()) {
|
||||
if(energySpeedometer == NULL) {
|
||||
@@ -813,7 +819,7 @@ void handleSystem(unsigned long now) {
|
||||
if(mqttHandler != NULL) {
|
||||
mqttHandler->publishSystem(&hw, ps, &ea);
|
||||
}
|
||||
#if defined(ENERGY_SPEEDOMETER_PASS)
|
||||
#if defined(ESP32) && defined(ENERGY_SPEEDOMETER_PASS)
|
||||
if(energySpeedometer != NULL) {
|
||||
energySpeedometer->publishSystem(&hw, ps, &ea);
|
||||
}
|
||||
@@ -1117,7 +1123,7 @@ void handleDataSuccess(AmsData* data) {
|
||||
delay(10);
|
||||
}
|
||||
}
|
||||
#if defined(ENERGY_SPEEDOMETER_PASS)
|
||||
#if defined(ESP32) && defined(ENERGY_SPEEDOMETER_PASS)
|
||||
if(energySpeedometer != NULL && energySpeedometer->publish(&meterState, &meterState, &ea, ps)) {
|
||||
delay(10);
|
||||
}
|
||||
|
||||
@@ -107,7 +107,8 @@ IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterCo
|
||||
if(listType >= 2 && memcmp(meterModel.c_str(), "MA304T3", 7) == 0) {
|
||||
l2voltage = sqrt(pow(l1voltage - l3voltage * cos(60 * (PI/180)), 2) + pow(l3voltage * sin(60 * (PI/180)),2));
|
||||
if(l2voltage > 0) {
|
||||
l2current = (((activeImportPower - activeExportPower) * sqrt(3)) - (l1voltage * l1current) - (l3voltage * l3current)) / l2voltage;
|
||||
l2current = ((activeImportPower - activeExportPower) - (l1voltage * l1current) - (l3voltage * l3current)) / l2voltage;
|
||||
l2currentEstimated = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -494,11 +495,11 @@ IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterCo
|
||||
if(meterConfig->distributionSystem == 1) {
|
||||
if(threePhase) {
|
||||
if(l2current == 0.0 && l1current > 0.0 && l3current > 0.0) {
|
||||
int32_t absPower = ((int32_t) activeImportPower) - ((int32_t) activeExportPower);
|
||||
l2current = ((absPower * sqrt(3)) - (l1voltage * l1current) - (l3voltage * l3current)) / l2voltage;
|
||||
l2current = ((activeImportPower - activeExportPower) - (l1voltage * l1current) - (l3voltage * l3current)) / l2voltage;
|
||||
if(activeExportPower == 0.0) {
|
||||
l2current = max((float) 0.0, l2current);
|
||||
}
|
||||
l2currentEstimated = true;
|
||||
}
|
||||
} else if(twoPhase && l1current > 0.0 && l2current > 0.0 && l3current > 0.0) {
|
||||
l2voltage = sqrt(pow(l1voltage - l3voltage * cos(60.0 * (PI/180.0)), 2) + pow(l3voltage * sin(60.0 * (PI/180.0)),2));
|
||||
|
||||
Reference in New Issue
Block a user