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