diff --git a/main/ZsensorDS1820.ino b/main/ZsensorDS1820.ino index 896c8c2..61c78ff 100644 --- a/main/ZsensorDS1820.ino +++ b/main/ZsensorDS1820.ino @@ -128,11 +128,11 @@ void MeasureDS1820Temp() { // trigger temperature conversion some time before actually // calling getTempC() to make reading temperatures non-blocking - if (!triggeredConversion && (millis() > (timeDS1820 + (DS1820_INTERVAL_SEC * 1000) - DS1820_CONV_TIME))) { + if (!triggeredConversion && ((millis() - timeDS1820) > (DS1820_INTERVAL_SEC * 1000UL - DS1820_CONV_TIME))) { Log.trace(F("DS1820: Trigger temperature conversion..." CR)); ds1820.requestTemperatures(); triggeredConversion = true; - } else if (triggeredConversion && (millis() > (timeDS1820 + (DS1820_INTERVAL_SEC * 1000)))) { + } else if (triggeredConversion && ((millis() - timeDS1820) > DS1820_INTERVAL_SEC * 1000UL)) { timeDS1820 = millis(); triggeredConversion = false; @@ -148,8 +148,8 @@ void MeasureDS1820Temp() { if (current_temp[i] == -127) { Log.error(F("DS1820: Device %s currently disconnected!" CR), (char*)ds1820_addr[i].c_str()); } else if (DS1820_ALWAYS || current_temp[i] != persisted_temp[i]) { - DS1820data["tempc"] = (float)DallasTemperature::toFahrenheit(current_temp[i]); - DS1820data["tempf"] = (float)current_temp[i]; + DS1820data["tempf"] = (float)DallasTemperature::toFahrenheit(current_temp[i]); + DS1820data["tempc"] = (float)current_temp[i]; if (DS1820_DETAILS) { DS1820data["type"] = ds1820_type[i]; diff --git a/main/config_DS1820.h b/main/config_DS1820.h index 52d6ba2..399c55c 100644 --- a/main/config_DS1820.h +++ b/main/config_DS1820.h @@ -34,10 +34,10 @@ extern void pubOneWire_HADiscovery(); #define OW_TOPIC "/OneWiretoMQTT/ds1820" #define OW_MAX_SENSORS 8 // query max. sensors on 1-wire bus #define DS1820_ALWAYS true // if false only published current temperature if has changed from previous reading -#define DS1820_INTERVAL_SEC 60 // time between DS1820 readings (seconds) +#define DS1820_INTERVAL_SEC 60UL // time between DS1820 readings (seconds) #define DS1820_RESOLUTION 10 // conversion times: 9 bit (93.75 ms), 10 bit (187.5 ms), 11 bit (375 ms), 12 bit (750 ms) #define DS1820_DETAILS true // publish extented info for each sensor (resolution, address, type) -#define DS1820_CONV_TIME 2000 // trigger conversion before requesting temperature readings (ms) +#define DS1820_CONV_TIME 2000UL // trigger conversion before requesting temperature readings (ms) /*-------------------PIN DEFINITIONS----------------------*/ #ifndef DS1820_OWBUS_GPIO