Přidání indexování čidel v /metrics
This commit is contained in:
@@ -175,35 +175,48 @@ void thermostatCheck() {
|
||||
}
|
||||
}
|
||||
|
||||
void readSensor() {
|
||||
uint8_t ds18Count = sensor.getDS18Count();
|
||||
void readSensors() {
|
||||
uint8_t ds18Count = sensor.getDeviceCount();
|
||||
float tempC[ds18Count];
|
||||
float temperature[ds18Count];
|
||||
DeviceAddress addr;
|
||||
String deviceAddress[ds18Count];
|
||||
int savedTemperatures = 0;
|
||||
avgTemperature = 0;
|
||||
|
||||
for (int i = 0; i < ds18Count; i++) {
|
||||
tempC[i] = sensor.getTempCByIndex(i);
|
||||
if (tempC[i] != DEVICE_DISCONNECTED_C) {
|
||||
temperature[i] = tempC[i] + correction[i];
|
||||
avgTemperature += temperature[i];
|
||||
for (uint8_t i = 0; i < ds18Count; i++) {
|
||||
sensor.getAddress(addr, i);
|
||||
deviceAddress[savedTemperatures] == "";
|
||||
for (uint8_t n = 0; n < 8; n++) {
|
||||
if (addr[n] < 16) {
|
||||
deviceAddress[savedTemperatures] += String(0, HEX);
|
||||
}
|
||||
deviceAddress[savedTemperatures] += String(addr[n], HEX);
|
||||
}
|
||||
|
||||
tempC[savedTemperatures] = sensor.getTempCByIndex(i);
|
||||
if (tempC[savedTemperatures] != DEVICE_DISCONNECTED_C) {
|
||||
if (savedTemperatures == 0) {
|
||||
avgTemperature = 0;
|
||||
}
|
||||
temperature[savedTemperatures] = tempC[savedTemperatures] + correction[i];
|
||||
avgTemperature += temperature[savedTemperatures];
|
||||
savedTemperatures++;
|
||||
}
|
||||
}
|
||||
|
||||
avgTemperature = avgTemperature / savedTemperatures;
|
||||
|
||||
metrics = getMetricsVar(ds18Count, temperature, tempC);
|
||||
|
||||
if (savedTemperatures != 0) {
|
||||
avgTemperature = avgTemperature / savedTemperatures;
|
||||
}
|
||||
setMetricsVar(ds18Count, temperature, tempC, deviceAddress);
|
||||
}
|
||||
|
||||
String getMetricsVar(uint8_t ds18Count, float temperature[], float tempC[]) {
|
||||
metrics = "temp{device=\"";
|
||||
void setMetricsVar(uint8_t ds18Count, float temperature[], float tempC[], String deviceAddress[]) {
|
||||
metrics = "";
|
||||
for (uint8_t i = 0; i < ds18Count; i++) {
|
||||
if (i != 0) {
|
||||
metrics += "\ntemp{device=\"";
|
||||
}
|
||||
metrics += "\ntemp{device=\"";
|
||||
metrics += i;
|
||||
metrics += "\",address=\"";
|
||||
metrics += deviceAddress[i];
|
||||
metrics += "\"} ";
|
||||
metrics += temperature[i];
|
||||
}
|
||||
@@ -221,15 +234,13 @@ String getMetricsVar(uint8_t ds18Count, float temperature[], float tempC[]) {
|
||||
metrics += "\noffset ";
|
||||
metrics += offset;
|
||||
}
|
||||
|
||||
return metrics;
|
||||
}
|
||||
|
||||
void startConversion() {
|
||||
// start temperature conversion (does not block)
|
||||
sensor.requestTemperatures();
|
||||
// schedule reading the actual temperature in 750 milliseconds
|
||||
tasker.setTimeout(readSensor, 750);
|
||||
tasker.setTimeout(readSensors, 750);
|
||||
}
|
||||
void ledBlink() {
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
|
||||
Reference in New Issue
Block a user