mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-04-29 13:22:59 +00:00
Some cleanup
This commit is contained in:
@@ -283,7 +283,6 @@ bool wifiConnected = false;
|
|||||||
unsigned long lastTemperatureRead = 0;
|
unsigned long lastTemperatureRead = 0;
|
||||||
float temperatures[32];
|
float temperatures[32];
|
||||||
|
|
||||||
unsigned long lastRead = 0;
|
|
||||||
unsigned long lastSuccessfulRead = 0;
|
unsigned long lastSuccessfulRead = 0;
|
||||||
|
|
||||||
unsigned long lastErrorBlink = 0;
|
unsigned long lastErrorBlink = 0;
|
||||||
@@ -332,6 +331,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(now - lastTemperatureRead > 15000) {
|
if(now - lastTemperatureRead > 15000) {
|
||||||
|
unsigned long start = millis();
|
||||||
hw.updateTemperatures();
|
hw.updateTemperatures();
|
||||||
lastTemperatureRead = now;
|
lastTemperatureRead = now;
|
||||||
|
|
||||||
@@ -368,6 +368,7 @@ void loop() {
|
|||||||
mqtt.publish(config.getMqttPublishTopic(), msg.c_str());
|
mqtt.publish(config.getMqttPublishTopic(), msg.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
debugD("Used %d ms to update temperature", millis()-start);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only do normal stuff if we're not booted as AP
|
// Only do normal stuff if we're not booted as AP
|
||||||
@@ -442,12 +443,8 @@ void loop() {
|
|||||||
setupHanPort(config.getHanPin(), config.getMeterType());
|
setupHanPort(config.getHanPin(), config.getMeterType());
|
||||||
config.ackMeterChanged();
|
config.ackMeterChanged();
|
||||||
}
|
}
|
||||||
|
delay(1);
|
||||||
if(now - lastRead > 100) {
|
readHanPort();
|
||||||
yield();
|
|
||||||
readHanPort();
|
|
||||||
lastRead = now;
|
|
||||||
}
|
|
||||||
ws.loop();
|
ws.loop();
|
||||||
delay(1); // Needed for auto modem sleep
|
delay(1); // Needed for auto modem sleep
|
||||||
}
|
}
|
||||||
@@ -599,11 +596,6 @@ int currentMeterType = 0;
|
|||||||
AmsData lastMqttData;
|
AmsData lastMqttData;
|
||||||
void readHanPort() {
|
void readHanPort() {
|
||||||
if (hanReader.read()) {
|
if (hanReader.read()) {
|
||||||
// Empty serial buffer. For some reason this seems to make a difference. Some garbage on the wire after package?
|
|
||||||
while(hanSerial->available()) {
|
|
||||||
hanSerial->read();
|
|
||||||
}
|
|
||||||
|
|
||||||
lastSuccessfulRead = millis();
|
lastSuccessfulRead = millis();
|
||||||
|
|
||||||
if(config.getMeterType() > 0) {
|
if(config.getMeterType() > 0) {
|
||||||
@@ -840,41 +832,33 @@ void readHanPort() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Auto detect meter if not set
|
// Auto detect meter if not set
|
||||||
for(int i = 1; i <= 4; i++) {
|
for(int i = 1; i <= 3; i++) {
|
||||||
String list;
|
String list;
|
||||||
switch(i) {
|
switch(i) {
|
||||||
case METER_TYPE_KAIFA:
|
case 1:
|
||||||
list = hanReader.getString((int) Kaifa_List1Phase::ListVersionIdentifier);
|
list = hanReader.getString((int) Kaifa_List1Phase::ListVersionIdentifier);
|
||||||
break;
|
break;
|
||||||
case METER_TYPE_AIDON:
|
case 2:
|
||||||
list = hanReader.getString((int) Aidon_List1Phase::ListVersionIdentifier);
|
list = hanReader.getString((int) Aidon_List1Phase::ListVersionIdentifier);
|
||||||
break;
|
break;
|
||||||
case METER_TYPE_KAMSTRUP:
|
case 3:
|
||||||
list = hanReader.getString((int) Kamstrup_List1Phase::ListVersionIdentifier);
|
list = hanReader.getString((int) Kamstrup_List1Phase::ListVersionIdentifier);
|
||||||
break;
|
break;
|
||||||
case METER_TYPE_OMNIPOWER:
|
|
||||||
list = hanReader.getString((int) Omnipower_DLMS::ListVersionIdentifier);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if(!list.isEmpty()) {
|
if(!list.isEmpty()) {
|
||||||
list.toLowerCase();
|
list.toLowerCase();
|
||||||
if(list.startsWith("kfm")) {
|
if(list.startsWith("kfm")) {
|
||||||
config.setMeterType(METER_TYPE_KAIFA);
|
config.setMeterType(1);
|
||||||
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Kaifa meter");
|
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Kaifa meter");
|
||||||
|
break;
|
||||||
} else if(list.startsWith("aidon")) {
|
} else if(list.startsWith("aidon")) {
|
||||||
config.setMeterType(METER_TYPE_AIDON);
|
config.setMeterType(2);
|
||||||
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Aidon meter");
|
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Aidon meter");
|
||||||
|
break;
|
||||||
} else if(list.startsWith("kamstrup")) {
|
} else if(list.startsWith("kamstrup")) {
|
||||||
switch(i) {
|
config.setMeterType(3);
|
||||||
case METER_TYPE_KAMSTRUP:
|
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Kamstrup meter");
|
||||||
config.setMeterType(METER_TYPE_KAMSTRUP);
|
break;
|
||||||
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Kamstrup meter");
|
|
||||||
break;
|
|
||||||
case METER_TYPE_OMNIPOWER:
|
|
||||||
config.setMeterType(METER_TYPE_OMNIPOWER);
|
|
||||||
if(Debug.isActive(RemoteDebug::INFO)) debugI("Detected Kamstrup meter");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -890,6 +874,7 @@ void readHanPort() {
|
|||||||
if(++currentMeterType == 4) currentMeterType = 1;
|
if(++currentMeterType == 4) currentMeterType = 1;
|
||||||
setupHanPort(config.getHanPin(), currentMeterType);
|
setupHanPort(config.getHanPin(), currentMeterType);
|
||||||
}
|
}
|
||||||
|
delay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long wifiTimeout = WIFI_CONNECTION_TIMEOUT;
|
unsigned long wifiTimeout = WIFI_CONNECTION_TIMEOUT;
|
||||||
|
|||||||
Reference in New Issue
Block a user