Example code - DallasTemperatureSensor.ino
-
below is copied from the example sketch.
#define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No void loop() { // Fetch and round temperature to one decimal float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.; // Only send data if temperature has changed and no error #if COMPARE_TEMP == 1 if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) { #else if (temperature != -127.00 && temperature != 85.00) { #endif // Send in the new temperature gw.send(msg.setSensor(i).set(temperature,1)); // Save new temperatures for next compare lastTemperature[i]=temperature; } } gw.sleep(SLEEP_TIME); }If I have
COMPARE_TEMP = 1it will check if the new value is new and then send it to GW, if not new it will not send to GW.I want data even if the temperature is same so I have
COMPARE_TEMP = 0.With my choose it will not test if the temperature is -127.00 or 85.00, this is something I want to do all the time even if I compare or not.
-
As tlpeter mentioned, the MySensors 2.0 example checks for -127 and 85 even if COMPARE_TEMP is not set to 1. See https://github.com/mysensors/MySensorsArduinoExamples/blob/e31eb10311be071d376d55d0e23133b611a565ef/examples/DallasTemperatureSensor/DallasTemperatureSensor.ino#L96
-
I am sorry, I have low knowledge of the # sign.
I have read about it and @tlpeter is right.
Can you confirm that my knowledge is correct.
#if COMPARE_TEMP == 1 if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) { #else if (temperature != -127.00 && temperature != 85.00) { #endifif I have COMPARE_TEMP = 1, this will be compiled
if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {otherwise this will be compiled
if (temperature != -127.00 && temperature != 85.00) {Sorry once again :no_mouth:
-
I am sorry, I have low knowledge of the # sign.
I have read about it and @tlpeter is right.
Can you confirm that my knowledge is correct.
#if COMPARE_TEMP == 1 if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) { #else if (temperature != -127.00 && temperature != 85.00) { #endifif I have COMPARE_TEMP = 1, this will be compiled
if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {otherwise this will be compiled
if (temperature != -127.00 && temperature != 85.00) {Sorry once again :no_mouth:
-
@mfalkvidd
:dancer: