diff --git a/docs/use/sensors.md b/docs/use/sensors.md index 474bda5..68a01f5 100644 --- a/docs/use/sensors.md +++ b/docs/use/sensors.md @@ -5,11 +5,14 @@ Subscribe to all the messages with mosquitto or open your MQTT client software: ### ADC The value is between 0 and 1024 and is tranmitted via Mqtt when it changes. -`home/OpenMQTTGateway/DHTtoMQTT {"value":543}` +`home/OpenMQTTGateway/ADCtoMQTT {"value":543}` ### DHT You will receive every TimeBetweenReadingDHT (set into config_DHT.h) the DHT measurement (30s per default). +`home/OpenMQTTGateway/DHTtoMQTT {"tempc":21,"tempf":69.8,"hum":51}` + +Legacy (removed after release 0.9.5) `home/OpenMQTTGateway/DHTtoMQTT {"temp":21,"hum":51}` If you want to don't resend value when it is the same you can set dht_always = false in config_DHT.h @@ -32,6 +35,9 @@ If you don't want to resend values that haven't changed you can set AHTx0_always You will receive the DS18x20 sensor readings every DS1820_INTERVAL_SEC (set into config_DS1820.h) (60s by default). Each sensor will be published under the following topic using each sensors' address. +`home/OpenMQTTGateway/CLIMAtoMQTT/ds1820/0x0000000000000000 {"tempc":27.8, "tempf":82.04, "type":"DS18B20","res":"12bit\n","addr":"0x28616411907650bc"}` + +Legacy (removed after release 0.9.5) `home/OpenMQTTGateway/CLIMAtoMQTT/ds1820/0x0000000000000000 {"temp":27.8,"unit":"C","type":"DS18B20","res":"12bit\n","addr":"0x28616411907650bc"}` The units for temperature readings are sent in Celcius by default can be changed to ferenheight by setting DS1820_FAHRENHEIT = true in in config_DS1820.h diff --git a/main/ZgatewayBT.ino b/main/ZgatewayBT.ino index e0b861f..6553456 100644 --- a/main/ZgatewayBT.ino +++ b/main/ZgatewayBT.ino @@ -135,11 +135,13 @@ void strupp(char* beg) { # ifdef ZmqttDiscovery void MiFloraDiscovery(char* mac) { -# define MiFloraparametersCount 4 +# define MiFloraparametersCount 6 Log.trace(F("MiFloraDiscovery" CR)); char* MiFlorasensor[MiFloraparametersCount][8] = { {"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lx"}, - {"sensor", "MiFlora-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "MiFlora-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "MiFlora-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "MiFlora-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "MiFlora-fer", mac, "", jsonFer, "", "", "µS/cm"}, {"sensor", "MiFlora-moi", mac, "", jsonMoi, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement @@ -150,11 +152,13 @@ void MiFloraDiscovery(char* mac) { } void VegTrugDiscovery(char* mac) { -# define VegTrugparametersCount 4 +# define VegTrugparametersCount 6 Log.trace(F("VegTrugDiscovery" CR)); char* VegTrugsensor[VegTrugparametersCount][8] = { {"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lx"}, - {"sensor", "VegTrug-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "VegTrug-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "VegTrug-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "VegTrug-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "VegTrug-fer", mac, "", jsonFer, "", "", "µS/cm"}, {"sensor", "VegTrug-moi", mac, "", jsonMoi, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement @@ -165,11 +169,13 @@ void VegTrugDiscovery(char* mac) { } void MiJiaDiscovery(char* mac) { -# define MiJiaparametersCount 3 +# define MiJiaparametersCount 5 Log.trace(F("MiJiaDiscovery" CR)); char* MiJiasensor[MiJiaparametersCount][8] = { {"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%"}, - {"sensor", "MiJia-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "MiJia-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "MiJia-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "MiJia-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -179,11 +185,13 @@ void MiJiaDiscovery(char* mac) { } void LYWSD02Discovery(char* mac) { -# define LYWSD02parametersCount 3 +# define LYWSD02parametersCount 5 Log.trace(F("LYWSD02Discovery" CR)); char* LYWSD02sensor[LYWSD02parametersCount][8] = { {"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V"}, - {"sensor", "LYWSD02-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "LYWSD02-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "LYWSD02-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "LYWSD02-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -193,11 +201,13 @@ void LYWSD02Discovery(char* mac) { } void CLEARGRASSTRHDiscovery(char* mac) { -# define CLEARGRASSTRHparametersCount 3 +# define CLEARGRASSTRHparametersCount 5 Log.trace(F("CLEARGRASSTRHDiscovery" CR)); char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = { {"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V"}, - {"sensor", "CLEARGRASSTRH-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "CLEARGRASSTRH-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "CLEARGRASSTRH-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "CLEARGRASSTRH-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -207,11 +217,13 @@ void CLEARGRASSTRHDiscovery(char* mac) { } void CLEARGRASSCGD1Discovery(char* mac) { -# define CLEARGRASSCGD1parametersCount 3 +# define CLEARGRASSCGD1parametersCount 5 Log.trace(F("CLEARGRASSCGD1Discovery" CR)); char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = { {"sensor", "CLEARGRASSCGD1-batt", mac, "battery", jsonBatt, "", "", "V"}, - {"sensor", "CLEARGRASSCGD1-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "CLEARGRASSCGD1-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "CLEARGRASSCGD1-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "CLEARGRASSCGD1-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -221,11 +233,13 @@ void CLEARGRASSCGD1Discovery(char* mac) { } void CLEARGRASSTRHKPADiscovery(char* mac) { -# define CLEARGRASSTRHKPAparametersCount 3 +# define CLEARGRASSTRHKPAparametersCount 5 Log.trace(F("CLEARGRASSTRHKPADiscovery" CR)); char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = { {"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa"}, - {"sensor", "CLEARGRASSTRHKPA-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "CLEARGRASSTRHKPA-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "CLEARGRASSTRHKPA-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "CLEARGRASSTRHKPA-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -271,11 +285,13 @@ void MiBandDiscovery(char* mac) { } void InkBirdDiscovery(char* mac) { -# define InkBirdparametersCount 3 +# define InkBirdparametersCount 5 Log.trace(F("InkBirdDiscovery" CR)); char* InkBirdsensor[InkBirdparametersCount][8] = { {"sensor", "InkBird-batt", mac, "battery", jsonBatt, "", "", "%"}, - {"sensor", "InkBird-tem", mac, "temperature", jsonTemp, "", "", "°C"}, + {"sensor", "InkBird-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release + {"sensor", "InkBird-tempc", mac, "temperature", jsonTempc, "", "", "C"}, + {"sensor", "InkBird-tempf", mac, "temperature", jsonTempf, "", "", "F"}, {"sensor", "InkBird-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -845,7 +861,9 @@ JsonObject& process_sensors(int offset, JsonObject& BLEdata) { BLEdata.set("fer", (double)value); break; case '4': - BLEdata.set("tem", (double)value / 10); + BLEdata.set("tem", (double)value / 10); // remove for 0.9.6 release + BLEdata.set("tempc", (double)value / 10); + BLEdata.set("tempf", (double)convertTemp_CtoF(value) / 10); break; case '6': BLEdata.set("hum", (double)value / 10); @@ -860,10 +878,12 @@ JsonObject& process_sensors(int offset, JsonObject& BLEdata) { BLEdata.set("batt", (double)value); break; case 'd': - // humidity - value = value_from_service_data(servicedata, 28 + offset, 4); - BLEdata.set("tem", (double)value / 10); // temperature + value = value_from_service_data(servicedata, 28 + offset, 4); + BLEdata.set("tem", (double)value / 10); // remove for 0.9.6 release + BLEdata.set("tempc", (double)value / 10); + BLEdata.set("tempf", (double)convertTemp_CtoF(value) / 10); + // humidity value = value_from_service_data(servicedata, 32 + offset, 4); BLEdata.set("hum", (double)value / 10); break; @@ -906,7 +926,9 @@ JsonObject& process_inkbird(JsonObject& BLEdata) { double battery = value_from_service_data(manufacturerdata, 14, 2); //Set Json values - BLEdata.set("tem", (double)temperature); + BLEdata.set("tem", (double)temperature); // remove for 0.9.6 release + BLEdata.set("tempc", (double)temperature); + BLEdata.set("tempf", (double)convertTemp_CtoF(temperature)); BLEdata.set("hum", (double)humidity); BLEdata.set("batt", (double)battery); @@ -940,10 +962,12 @@ JsonObject& process_cleargrass(JsonObject& BLEdata, boolean air) { const char* servicedata = BLEdata["servicedata"].as(); double value = 9999; - // humidity - value = value_from_service_data(servicedata, 20, 4); - BLEdata.set("tem", (double)value / 10); // temperature + value = value_from_service_data(servicedata, 20, 4); + BLEdata.set("tem", (double)value / 10); // remove for 0.9.6 release + BLEdata.set("tempc", (double)value / 10); + BLEdata.set("tempf", (double)convertTemp_CtoF(value) / 10); + // humidity value = value_from_service_data(servicedata, 24, 4); BLEdata.set("hum", (double)value / 10); if (air) { diff --git a/main/ZgatewayWeatherStation.ino b/main/ZgatewayWeatherStation.ino index 77f02a3..1d7aa87 100644 --- a/main/ZgatewayWeatherStation.ino +++ b/main/ZgatewayWeatherStation.ino @@ -105,7 +105,9 @@ void sendTemperatureData(byte id, float temperature, int humidity, byte battery_ StaticJsonBuffer jsonBuffer; JsonObject& RFdata = jsonBuffer.createObject(); RFdata.set("sensor", id); - RFdata.set("temperature", temperature); + RFdata.set("temperature", temperature); // remove for 0.9.6 release + RFdata.set("tempc", temperature); + RFdata.set("tempf", wsdr.convertCtoF(temperature)); RFdata.set("humidity", humidity); RFdata.set("battery", bitRead(battery_status, 0) == 0 ? "OK" : "Low"); pub(subjectRFtoMQTT, RFdata); diff --git a/main/ZmqttDiscovery.ino b/main/ZmqttDiscovery.ino index eec1cb2..3d40154 100644 --- a/main/ZmqttDiscovery.ino +++ b/main/ZmqttDiscovery.ino @@ -145,8 +145,8 @@ void pubMqttDiscovery() { # define BMEparametersCount 6 Log.trace(F("bme280Discovery" CR)); char* BMEsensor[BMEparametersCount][8] = { - {"sensor", "tempc", "bme", "temperature", jsonTemp, "", "", "°C"}, - {"sensor", "tempf", "bme", "temperature", jsonTempf, "", "", "°F"}, + {"sensor", "tempc", "bme", "temperature", jsonTempc, "", "", "C"}, + {"sensor", "tempf", "bme", "temperature", jsonTempf, "", "", "F"}, {"sensor", "pa", "bme", "", jsonPa, "", "", "hPa"}, {"sensor", "hum", "bme", "humidity", jsonHum, "", "", "%"}, {"sensor", "altim", "bme", "", jsonAltim, "", "", "m"}, @@ -169,8 +169,8 @@ void pubMqttDiscovery() { # define HTUparametersCount 3 Log.trace(F("htu21Discovery" CR)); char* HTUsensor[HTUparametersCount][8] = { - {"sensor", "tempc", "htu", "temperature", jsonTemp, "", "", "°C"}, - {"sensor", "tempf", "htu", "temperature", jsonTempf, "", "", "°F"}, + {"sensor", "tempc", "htu", "temperature", jsonTempc, "", "", "C"}, + {"sensor", "tempf", "htu", "temperature", jsonTempf, "", "", "F"}, {"sensor", "hum", "htu", "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -190,8 +190,8 @@ void pubMqttDiscovery() { # define AHTparametersCount 3 Log.trace(F("AHTx0Discovery" CR)); char* AHTsensor[AHTparametersCount][8] = { - {"sensor", "tempc", "aht", "temperature", jsonTemp, "", "", "°C"}, - {"sensor", "tempf", "aht", "temperature", jsonTempf, "", "", "°F"}, + {"sensor", "tempc", "aht", "temperature", jsonTempc, "", "", "C"}, + {"sensor", "tempf", "aht", "temperature", jsonTempf, "", "", "F"}, {"sensor", "hum", "aht", "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -207,11 +207,14 @@ void pubMqttDiscovery() { # endif # ifdef ZsensorDHT -# define DHTparametersCount 2 +# define DHTparametersCount 3 Log.trace(F("DHTDiscovery" CR)); char* DHTsensor[DHTparametersCount][8] = { - {"sensor", "tempc", "dht", "temperature", jsonTemp, "", "", "°C"}, - {"sensor", "hum", "dht", "humidity", jsonHum, "", "", "%"}}; + {"sensor", "tempc", "dht", "temperature", jsonTempc, "", "", "C"}, + {"sensor", "tempf", "dht", "temperature", jsonTempf, "", "", "F"}, + {"sensor", "hum", "dht", "humidity", jsonHum, "", "", "%"} + //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement + }; for (int i = 0; i < DHTparametersCount; i++) { Log.trace(F("CreateDiscoverySensor" CR)); diff --git a/main/ZsensorAHTx0.ino b/main/ZsensorAHTx0.ino index e19e76d..473688d 100644 --- a/main/ZsensorAHTx0.ino +++ b/main/ZsensorAHTx0.ino @@ -90,7 +90,7 @@ void MeasureAHTTempHum() { JsonObject& AHTx0data = jsonBuffer.createObject(); // Generate Temperature in degrees C if (ahtTempC.temperature != persisted_aht_tempc || AHTx0_always) { - float ahtTempF = (ahtTempC.temperature * 1.8) + 32; + float ahtTempF = convertTemp_CtoF(ahtTempC.temperature); AHTx0data.set("tempc", (float)ahtTempC.temperature); AHTx0data.set("tempf", (float)ahtTempF); } else { diff --git a/main/ZsensorDHT.ino b/main/ZsensorDHT.ino index b10d10a..00d6ba1 100644 --- a/main/ZsensorDHT.ino +++ b/main/ZsensorDHT.ino @@ -63,7 +63,9 @@ void MeasureTempAndHum() { Log.trace(F("Same hum don't send it" CR)); } if (t != persistedt || dht_always) { - DHTdata.set("temp", (float)t); + DHTdata.set("temp", (float)t); // remove for 0.9.6 release + DHTdata.set("tempc", (float)t); + DHTdata.set("tempf", dht.convertCtoF(t)); } else { Log.trace(F("Same temp don't send it" CR)); } diff --git a/main/ZsensorDS1820.ino b/main/ZsensorDS1820.ino index cb1aa74..7da8274 100644 --- a/main/ZsensorDS1820.ino +++ b/main/ZsensorDS1820.ino @@ -102,27 +102,24 @@ void pubOneWire_HADiscovery() { # ifdef ZmqttDiscovery Log.notice(F("CreateDiscoverySensor - Found %d" CR), ds1820_count); for (int index = 0; index < ds1820_count; index++) { -# if DS1820_FAHRENHEIT createDiscovery("sensor", (char*)(String(OW_TOPIC) + "/" + ds1820_addr[index]).c_str(), - (char*)String("DS12B20_" + String(index + 1)).c_str(), - (char*)ds1820_addr[index].c_str(), + (char*)("DS12B20_" + String(index + 1) + "_f").c_str(), + (char*)(ds1820_addr[index] + "_f").c_str(), will_Topic, "temperature", jsonTempf, - "", "", "°F", + "", "", "F", 0, "", "", true, ""); -# else createDiscovery("sensor", (char*)(String(OW_TOPIC) + "/" + ds1820_addr[index]).c_str(), - (char*)String("DS12B20_" + String(index + 1)).c_str(), - (char*)ds1820_addr[index].c_str(), + (char*)("DS12B20_" + String(index + 1) + "_c").c_str(), + (char*)(ds1820_addr[index] + "_c").c_str(), will_Topic, "temperature", - jsonTemp, - "", "", "°C", + jsonTempc, + "", "", "C", 0, "", "", true, ""); -# endif } # endif } @@ -155,6 +152,7 @@ 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]) { + // remove for 0.9.6 release -- BEGIN (Additional BREAKING CHANGE - Unit will be removed) if (DS1820_FAHRENHEIT) { Log.notice(F("DS1820: Temperature %s %d F" CR), (char*)ds1820_addr[i].c_str(), @@ -170,6 +168,11 @@ void MeasureDS1820Temp() { DS1820data.set("temp", (float)current_temp[i]); DS1820data.set("unit", "C"); } + // remove for 0.9.6 release -- END + + DS1820data.set("tempc", (float)DallasTemperature::toFahrenheit(current_temp[i])); + DS1820data.set("tempf", (float)current_temp[i]); + if (DS1820_DETAILS) { DS1820data.set("type", ds1820_type[i]); DS1820data.set("res", ds1820_resolution[i] + String("bit" CR)); diff --git a/main/config_DS1820.h b/main/config_DS1820.h index 07b66e8..d94d504 100644 --- a/main/config_DS1820.h +++ b/main/config_DS1820.h @@ -36,9 +36,9 @@ extern void pubOneWire_HADiscovery(); #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_RESOLUTION 10 // conversion times: 9 bit (93.75 ms), 10 bit (187.5 ms), 11 bit (375 ms), 12 bit (750 ms) -#ifndef DS1820_FAHRENHEIT -# define DS1820_FAHRENHEIT false // defaults to Celcius -#endif +#ifndef DS1820_FAHRENHEIT // remove for 0.9.6 release +# define DS1820_FAHRENHEIT false // defaults to Celcius // remove for 0.9.6 release +#endif // remove for 0.9.6 release #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) /*-------------------PIN DEFINITIONS----------------------*/ diff --git a/main/config_mqttDiscovery.h b/main/config_mqttDiscovery.h index 4e59bb6..9d77d7d 100644 --- a/main/config_mqttDiscovery.h +++ b/main/config_mqttDiscovery.h @@ -52,12 +52,13 @@ extern void createDiscovery(char* sensor_type, # define jsonFer "{{ value_json.fer }}" # define jsonMoi "{{ value_json.moi }}" # define jsonHum "{{ value_json.hum }}" -# define jsonTemp "{{ value_json.tem }}" +# define jsonTemp "{{ value_json.tem }}" // remove for 0.9.6 release # define jsonStep "{{ value_json.steps }}" # define jsonWeight "{{ value_json.weight }}" # define jsonPresence "{{ value_json.presence }}" # define jsonAltim "{{ value_json.altim }}" # define jsonAltif "{{ value_json.altift }}" +# define jsonTempc "{{ value_json.tempc }}" # define jsonTempf "{{ value_json.tempf }}" # define jsonMsg "{{ value_json.message }}" # define jsonVal "{{ value_json.value }}" @@ -77,12 +78,13 @@ extern void createDiscovery(char* sensor_type, # define jsonFer "{{ value_json.fer | is_defined }}" # define jsonMoi "{{ value_json.moi | is_defined }}" # define jsonHum "{{ value_json.hum | is_defined }}" -# define jsonTemp "{{ value_json.tem | is_defined }}" +# define jsonTemp "{{ value_json.tem | is_defined }}" // remove for 0.9.6 release # define jsonStep "{{ value_json.steps | is_defined }}" # define jsonWeight "{{ value_json.weight | is_defined }}" # define jsonPresence "{{ value_json.presence | is_defined }}" # define jsonAltim "{{ value_json.altim | is_defined }}" # define jsonAltif "{{ value_json.altift | is_defined }}" +# define jsonTempc "{{ value_json.tempc | is_defined }}" # define jsonTempf "{{ value_json.tempf | is_defined }}" # define jsonMsg "{{ value_json.message | is_defined }}" # define jsonVal "{{ value_json.value | is_defined }}" diff --git a/main/main.ino b/main/main.ino index 43ac909..256f830 100644 --- a/main/main.ino +++ b/main/main.ino @@ -168,6 +168,9 @@ WiFiClient eClient; EthernetClient eClient; #endif +#define convertTemp_CtoF(c) ((c * 1.8) + 32) +#define convertTemp_FtoC(f) ((f - 32) * 5 / 9) + // client link to pubsub mqtt PubSubClient client(eClient);