From 03ab7f7d0ed30479de392978eeb59bb366b05962 Mon Sep 17 00:00:00 2001 From: orrpan Date: Sun, 4 Oct 2020 21:56:34 +0200 Subject: [PATCH] update temperature unit to work in HA (#768) * update temperature unit to work in HA * use only one temperature sensor for HA --- main/ZgatewayBT.ino | 63 ++++++++++++++--------------------------- main/ZmqttDiscovery.ino | 20 ++++++------- main/ZsensorDS1820.ino | 11 +------ 3 files changed, 31 insertions(+), 63 deletions(-) diff --git a/main/ZgatewayBT.ino b/main/ZgatewayBT.ino index bd3d5b4..28be566 100644 --- a/main/ZgatewayBT.ino +++ b/main/ZgatewayBT.ino @@ -183,13 +183,11 @@ void strupp(char* beg) { # ifdef ZmqttDiscovery void MiFloraDiscovery(char* mac) { -# define MiFloraparametersCount 6 +# define MiFloraparametersCount 4 Log.trace(F("MiFloraDiscovery" CR)); char* MiFlorasensor[MiFloraparametersCount][8] = { {"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lx"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"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 @@ -199,13 +197,11 @@ void MiFloraDiscovery(char* mac) { } void VegTrugDiscovery(char* mac) { -# define VegTrugparametersCount 6 +# define VegTrugparametersCount 4 Log.trace(F("VegTrugDiscovery" CR)); char* VegTrugsensor[VegTrugparametersCount][8] = { {"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lx"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"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 @@ -215,13 +211,11 @@ void VegTrugDiscovery(char* mac) { } void MiJiaDiscovery(char* mac) { -# define MiJiaparametersCount 5 +# define MiJiaparametersCount 3 Log.trace(F("MiJiaDiscovery" CR)); char* MiJiasensor[MiJiaparametersCount][8] = { {"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -230,12 +224,11 @@ void MiJiaDiscovery(char* mac) { } void FormalDiscovery(char* mac) { -# define FormalparametersCount 5 +# define FormalparametersCount 4 Log.trace(F("FormalDiscovery" CR)); char* Formalsensor[FormalparametersCount][8] = { {"sensor", "Formal-batt", mac, "battery", jsonBatt, "", "", "%"}, - {"sensor", "Formal-tempc", mac, "temperature", jsonTempc, "", "", "C"}, - {"sensor", "Formal-tempf", mac, "temperature", jsonTempf, "", "", "F"}, + {"sensor", "Formal-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "Formal-hum", mac, "humidity", jsonHum, "", "", "%"}, {"sensor", "Formal-for", mac, "formaldehyde", jsonFor, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement @@ -245,13 +238,11 @@ void FormalDiscovery(char* mac) { } void LYWSD02Discovery(char* mac) { -# define LYWSD02parametersCount 5 +# define LYWSD02parametersCount 3 Log.trace(F("LYWSD02Discovery" CR)); char* LYWSD02sensor[LYWSD02parametersCount][8] = { {"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -260,13 +251,11 @@ void LYWSD02Discovery(char* mac) { } void CLEARGRASSTRHDiscovery(char* mac) { -# define CLEARGRASSTRHparametersCount 5 +# define CLEARGRASSTRHparametersCount 3 Log.trace(F("CLEARGRASSTRHDiscovery" CR)); char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = { {"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -275,13 +264,11 @@ void CLEARGRASSTRHDiscovery(char* mac) { } void CLEARGRASSCGD1Discovery(char* mac) { -# define CLEARGRASSCGD1parametersCount 5 +# define CLEARGRASSCGD1parametersCount 3 Log.trace(F("CLEARGRASSCGD1Discovery" CR)); char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = { {"sensor", "CLEARGRASSCGD1-batt", mac, "battery", jsonBatt, "", "", "V"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -290,13 +277,11 @@ void CLEARGRASSCGD1Discovery(char* mac) { } void CLEARGRASSTRHKPADiscovery(char* mac) { -# define CLEARGRASSTRHKPAparametersCount 5 +# define CLEARGRASSTRHKPAparametersCount 3 Log.trace(F("CLEARGRASSTRHKPADiscovery" CR)); char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = { {"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -338,13 +323,11 @@ void MiBandDiscovery(char* mac) { } void InkBirdDiscovery(char* mac) { -# define InkBirdparametersCount 5 +# define InkBirdparametersCount 3 Log.trace(F("InkBirdDiscovery" CR)); char* InkBirdsensor[InkBirdparametersCount][8] = { {"sensor", "InkBird-batt", mac, "battery", jsonBatt, "", "", "%"}, - {"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-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "InkBird-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -353,13 +336,12 @@ void InkBirdDiscovery(char* mac) { } void LYWSD03MMCDiscovery(char* mac) { -# define LYWSD03MMCparametersCount 5 +# define LYWSD03MMCparametersCount 4 Log.trace(F("LYWSD03MMCDiscovery" CR)); char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][8] = { {"sensor", "LYWSD03MMC-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "LYWSD03MMC-volt", mac, "", jsonVolt, "", "", "V"}, - {"sensor", "LYWSD03MMC-tempc", mac, "temperature", jsonTempc, "", "", "C"}, - {"sensor", "LYWSD03MMC-tempf", mac, "temperature", jsonTempf, "", "", "F"}, + {"sensor", "LYWSD03MMC-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "LYWSD03MMC-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -368,13 +350,12 @@ void LYWSD03MMCDiscovery(char* mac) { } void MHO_C401Discovery(char* mac) { -# define MHO_C401parametersCount 5 +# define MHO_C401parametersCount 4 Log.trace(F("MHO_C401Discovery" CR)); char* MHO_C401sensor[MHO_C401parametersCount][8] = { {"sensor", "MHO_C401-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "MHO_C401-volt", mac, "", jsonVolt, "", "", "V"}, - {"sensor", "MHO_C401-tempc", mac, "temperature", jsonTempc, "", "", "C"}, - {"sensor", "MHO_C401-tempf", mac, "temperature", jsonTempf, "", "", "F"}, + {"sensor", "MHO_C401-temp", mac, "temperature", jsonTempc, "", "", "°C"}, {"sensor", "MHO_C401-hum", mac, "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; diff --git a/main/ZmqttDiscovery.ino b/main/ZmqttDiscovery.ino index 3d40154..f18fa18 100644 --- a/main/ZmqttDiscovery.ino +++ b/main/ZmqttDiscovery.ino @@ -142,11 +142,10 @@ void pubMqttDiscovery() { ); # ifdef ZsensorBME280 -# define BMEparametersCount 6 +# define BMEparametersCount 5 Log.trace(F("bme280Discovery" CR)); char* BMEsensor[BMEparametersCount][8] = { - {"sensor", "tempc", "bme", "temperature", jsonTempc, "", "", "C"}, - {"sensor", "tempf", "bme", "temperature", jsonTempf, "", "", "F"}, + {"sensor", "temp", "bme", "temperature", jsonTempc, "", "", "°C"}, {"sensor", "pa", "bme", "", jsonPa, "", "", "hPa"}, {"sensor", "hum", "bme", "humidity", jsonHum, "", "", "%"}, {"sensor", "altim", "bme", "", jsonAltim, "", "", "m"}, @@ -166,11 +165,10 @@ void pubMqttDiscovery() { # endif # ifdef ZsensorHTU21 -# define HTUparametersCount 3 +# define HTUparametersCount 2 Log.trace(F("htu21Discovery" CR)); char* HTUsensor[HTUparametersCount][8] = { - {"sensor", "tempc", "htu", "temperature", jsonTempc, "", "", "C"}, - {"sensor", "tempf", "htu", "temperature", jsonTempf, "", "", "F"}, + {"sensor", "temp", "htu", "temperature", jsonTempc, "", "", "°C"}, {"sensor", "hum", "htu", "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -187,11 +185,10 @@ void pubMqttDiscovery() { # endif # ifdef ZsensorAHTx0 -# define AHTparametersCount 3 +# define AHTparametersCount 2 Log.trace(F("AHTx0Discovery" CR)); char* AHTsensor[AHTparametersCount][8] = { - {"sensor", "tempc", "aht", "temperature", jsonTempc, "", "", "C"}, - {"sensor", "tempf", "aht", "temperature", jsonTempf, "", "", "F"}, + {"sensor", "temp", "aht", "temperature", jsonTempc, "", "", "°C"}, {"sensor", "hum", "aht", "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; @@ -207,11 +204,10 @@ void pubMqttDiscovery() { # endif # ifdef ZsensorDHT -# define DHTparametersCount 3 +# define DHTparametersCount 2 Log.trace(F("DHTDiscovery" CR)); char* DHTsensor[DHTparametersCount][8] = { - {"sensor", "tempc", "dht", "temperature", jsonTempc, "", "", "C"}, - {"sensor", "tempf", "dht", "temperature", jsonTempf, "", "", "F"}, + {"sensor", "temp", "dht", "temperature", jsonTempc, "", "", "°C"}, {"sensor", "hum", "dht", "humidity", jsonHum, "", "", "%"} //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement }; diff --git a/main/ZsensorDS1820.ino b/main/ZsensorDS1820.ino index 7da8274..d0c55b6 100644 --- a/main/ZsensorDS1820.ino +++ b/main/ZsensorDS1820.ino @@ -102,15 +102,6 @@ void pubOneWire_HADiscovery() { # ifdef ZmqttDiscovery Log.notice(F("CreateDiscoverySensor - Found %d" CR), ds1820_count); for (int index = 0; index < ds1820_count; index++) { - createDiscovery("sensor", - (char*)(String(OW_TOPIC) + "/" + 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", - 0, "", "", true, ""); createDiscovery("sensor", (char*)(String(OW_TOPIC) + "/" + ds1820_addr[index]).c_str(), (char*)("DS12B20_" + String(index + 1) + "_c").c_str(), @@ -118,7 +109,7 @@ void pubOneWire_HADiscovery() { will_Topic, "temperature", jsonTempc, - "", "", "C", + "", "", "°C", 0, "", "", true, ""); } # endif