update temperature unit to work in HA (#768)

* update temperature unit to work in HA
* use only one temperature sensor for HA
This commit is contained in:
orrpan authored and GitHub committed 2020-10-04 14:56:34 -05:00
1 parent 7cd1e9a1ab
commit 03ab7f7d0e
3 files changed
+31 -63

No files matched your search

+22 -41
View File
@@ -183,13 +183,11 @@ void strupp(char* beg) {
# ifdef ZmqttDiscovery # ifdef ZmqttDiscovery
void MiFloraDiscovery(char* mac) { void MiFloraDiscovery(char* mac) {
# define MiFloraparametersCount 6 # define MiFloraparametersCount 4
Log.trace(F("MiFloraDiscovery" CR)); Log.trace(F("MiFloraDiscovery" CR));
char* MiFlorasensor[MiFloraparametersCount][8] = { char* MiFlorasensor[MiFloraparametersCount][8] = {
{"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lx"}, {"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lx"},
{"sensor", "MiFlora-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "MiFlora-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "MiFlora-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "MiFlora-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "MiFlora-fer", mac, "", jsonFer, "", "", "µS/cm"}, {"sensor", "MiFlora-fer", mac, "", jsonFer, "", "", "µS/cm"},
{"sensor", "MiFlora-moi", mac, "", jsonMoi, "", "", "%"} {"sensor", "MiFlora-moi", mac, "", jsonMoi, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void VegTrugDiscovery(char* mac) {
# define VegTrugparametersCount 6 # define VegTrugparametersCount 4
Log.trace(F("VegTrugDiscovery" CR)); Log.trace(F("VegTrugDiscovery" CR));
char* VegTrugsensor[VegTrugparametersCount][8] = { char* VegTrugsensor[VegTrugparametersCount][8] = {
{"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lx"}, {"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lx"},
{"sensor", "VegTrug-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "VegTrug-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "VegTrug-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "VegTrug-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "VegTrug-fer", mac, "", jsonFer, "", "", "µS/cm"}, {"sensor", "VegTrug-fer", mac, "", jsonFer, "", "", "µS/cm"},
{"sensor", "VegTrug-moi", mac, "", jsonMoi, "", "", "%"} {"sensor", "VegTrug-moi", mac, "", jsonMoi, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void MiJiaDiscovery(char* mac) {
# define MiJiaparametersCount 5 # define MiJiaparametersCount 3
Log.trace(F("MiJiaDiscovery" CR)); Log.trace(F("MiJiaDiscovery" CR));
char* MiJiasensor[MiJiaparametersCount][8] = { char* MiJiasensor[MiJiaparametersCount][8] = {
{"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "MiJia-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "MiJia-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "MiJia-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "MiJia-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void FormalDiscovery(char* mac) {
# define FormalparametersCount 5 # define FormalparametersCount 4
Log.trace(F("FormalDiscovery" CR)); Log.trace(F("FormalDiscovery" CR));
char* Formalsensor[FormalparametersCount][8] = { char* Formalsensor[FormalparametersCount][8] = {
{"sensor", "Formal-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "Formal-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "Formal-tempc", mac, "temperature", jsonTempc, "", "", "C"}, {"sensor", "Formal-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "Formal-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "Formal-hum", mac, "humidity", jsonHum, "", "", "%"}, {"sensor", "Formal-hum", mac, "humidity", jsonHum, "", "", "%"},
{"sensor", "Formal-for", mac, "formaldehyde", jsonFor, "", "", "%"} {"sensor", "Formal-for", mac, "formaldehyde", jsonFor, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void LYWSD02Discovery(char* mac) {
# define LYWSD02parametersCount 5 # define LYWSD02parametersCount 3
Log.trace(F("LYWSD02Discovery" CR)); Log.trace(F("LYWSD02Discovery" CR));
char* LYWSD02sensor[LYWSD02parametersCount][8] = { char* LYWSD02sensor[LYWSD02parametersCount][8] = {
{"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V"}, {"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "LYWSD02-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "LYWSD02-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "LYWSD02-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "LYWSD02-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void CLEARGRASSTRHDiscovery(char* mac) {
# define CLEARGRASSTRHparametersCount 5 # define CLEARGRASSTRHparametersCount 3
Log.trace(F("CLEARGRASSTRHDiscovery" CR)); Log.trace(F("CLEARGRASSTRHDiscovery" CR));
char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = { char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = {
{"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V"}, {"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "CLEARGRASSTRH-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "CLEARGRASSTRH-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSTRH-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "CLEARGRASSTRH-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void CLEARGRASSCGD1Discovery(char* mac) {
# define CLEARGRASSCGD1parametersCount 5 # define CLEARGRASSCGD1parametersCount 3
Log.trace(F("CLEARGRASSCGD1Discovery" CR)); Log.trace(F("CLEARGRASSCGD1Discovery" CR));
char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = { char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = {
{"sensor", "CLEARGRASSCGD1-batt", mac, "battery", jsonBatt, "", "", "V"}, {"sensor", "CLEARGRASSCGD1-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "CLEARGRASSCGD1-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "CLEARGRASSCGD1-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSCGD1-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "CLEARGRASSCGD1-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void CLEARGRASSTRHKPADiscovery(char* mac) {
# define CLEARGRASSTRHKPAparametersCount 5 # define CLEARGRASSTRHKPAparametersCount 3
Log.trace(F("CLEARGRASSTRHKPADiscovery" CR)); Log.trace(F("CLEARGRASSTRHKPADiscovery" CR));
char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = { char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = {
{"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa"}, {"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa"},
{"sensor", "CLEARGRASSTRHKPA-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "CLEARGRASSTRHKPA-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSTRHKPA-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "CLEARGRASSTRHKPA-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void InkBirdDiscovery(char* mac) {
# define InkBirdparametersCount 5 # define InkBirdparametersCount 3
Log.trace(F("InkBirdDiscovery" CR)); Log.trace(F("InkBirdDiscovery" CR));
char* InkBirdsensor[InkBirdparametersCount][8] = { char* InkBirdsensor[InkBirdparametersCount][8] = {
{"sensor", "InkBird-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "InkBird-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "InkBird-tem", mac, "temperature", jsonTempc, "", "", "C"}, // remove for 0.9.6 release {"sensor", "InkBird-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "InkBird-tempc", mac, "temperature", jsonTempc, "", "", "C"},
{"sensor", "InkBird-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "InkBird-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "InkBird-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void LYWSD03MMCDiscovery(char* mac) {
# define LYWSD03MMCparametersCount 5 # define LYWSD03MMCparametersCount 4
Log.trace(F("LYWSD03MMCDiscovery" CR)); Log.trace(F("LYWSD03MMCDiscovery" CR));
char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][8] = { char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][8] = {
{"sensor", "LYWSD03MMC-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "LYWSD03MMC-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "LYWSD03MMC-volt", mac, "", jsonVolt, "", "", "V"}, {"sensor", "LYWSD03MMC-volt", mac, "", jsonVolt, "", "", "V"},
{"sensor", "LYWSD03MMC-tempc", mac, "temperature", jsonTempc, "", "", "C"}, {"sensor", "LYWSD03MMC-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "LYWSD03MMC-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "LYWSD03MMC-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "LYWSD03MMC-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //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) { void MHO_C401Discovery(char* mac) {
# define MHO_C401parametersCount 5 # define MHO_C401parametersCount 4
Log.trace(F("MHO_C401Discovery" CR)); Log.trace(F("MHO_C401Discovery" CR));
char* MHO_C401sensor[MHO_C401parametersCount][8] = { char* MHO_C401sensor[MHO_C401parametersCount][8] = {
{"sensor", "MHO_C401-batt", mac, "battery", jsonBatt, "", "", "%"}, {"sensor", "MHO_C401-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "MHO_C401-volt", mac, "", jsonVolt, "", "", "V"}, {"sensor", "MHO_C401-volt", mac, "", jsonVolt, "", "", "V"},
{"sensor", "MHO_C401-tempc", mac, "temperature", jsonTempc, "", "", "C"}, {"sensor", "MHO_C401-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "MHO_C401-tempf", mac, "temperature", jsonTempf, "", "", "F"},
{"sensor", "MHO_C401-hum", mac, "humidity", jsonHum, "", "", "%"} {"sensor", "MHO_C401-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
}; };
+8 -12
View File
@@ -142,11 +142,10 @@ void pubMqttDiscovery() {
); );
# ifdef ZsensorBME280 # ifdef ZsensorBME280
# define BMEparametersCount 6 # define BMEparametersCount 5
Log.trace(F("bme280Discovery" CR)); Log.trace(F("bme280Discovery" CR));
char* BMEsensor[BMEparametersCount][8] = { char* BMEsensor[BMEparametersCount][8] = {
{"sensor", "tempc", "bme", "temperature", jsonTempc, "", "", "C"}, {"sensor", "temp", "bme", "temperature", jsonTempc, "", "", "°C"},
{"sensor", "tempf", "bme", "temperature", jsonTempf, "", "", "F"},
{"sensor", "pa", "bme", "", jsonPa, "", "", "hPa"}, {"sensor", "pa", "bme", "", jsonPa, "", "", "hPa"},
{"sensor", "hum", "bme", "humidity", jsonHum, "", "", "%"}, {"sensor", "hum", "bme", "humidity", jsonHum, "", "", "%"},
{"sensor", "altim", "bme", "", jsonAltim, "", "", "m"}, {"sensor", "altim", "bme", "", jsonAltim, "", "", "m"},
@@ -166,11 +165,10 @@ void pubMqttDiscovery() {
# endif # endif
# ifdef ZsensorHTU21 # ifdef ZsensorHTU21
# define HTUparametersCount 3 # define HTUparametersCount 2
Log.trace(F("htu21Discovery" CR)); Log.trace(F("htu21Discovery" CR));
char* HTUsensor[HTUparametersCount][8] = { char* HTUsensor[HTUparametersCount][8] = {
{"sensor", "tempc", "htu", "temperature", jsonTempc, "", "", "C"}, {"sensor", "temp", "htu", "temperature", jsonTempc, "", "", "°C"},
{"sensor", "tempf", "htu", "temperature", jsonTempf, "", "", "F"},
{"sensor", "hum", "htu", "humidity", jsonHum, "", "", "%"} {"sensor", "hum", "htu", "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
}; };
@@ -187,11 +185,10 @@ void pubMqttDiscovery() {
# endif # endif
# ifdef ZsensorAHTx0 # ifdef ZsensorAHTx0
# define AHTparametersCount 3 # define AHTparametersCount 2
Log.trace(F("AHTx0Discovery" CR)); Log.trace(F("AHTx0Discovery" CR));
char* AHTsensor[AHTparametersCount][8] = { char* AHTsensor[AHTparametersCount][8] = {
{"sensor", "tempc", "aht", "temperature", jsonTempc, "", "", "C"}, {"sensor", "temp", "aht", "temperature", jsonTempc, "", "", "°C"},
{"sensor", "tempf", "aht", "temperature", jsonTempf, "", "", "F"},
{"sensor", "hum", "aht", "humidity", jsonHum, "", "", "%"} {"sensor", "hum", "aht", "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
}; };
@@ -207,11 +204,10 @@ void pubMqttDiscovery() {
# endif # endif
# ifdef ZsensorDHT # ifdef ZsensorDHT
# define DHTparametersCount 3 # define DHTparametersCount 2
Log.trace(F("DHTDiscovery" CR)); Log.trace(F("DHTDiscovery" CR));
char* DHTsensor[DHTparametersCount][8] = { char* DHTsensor[DHTparametersCount][8] = {
{"sensor", "tempc", "dht", "temperature", jsonTempc, "", "", "C"}, {"sensor", "temp", "dht", "temperature", jsonTempc, "", "", "°C"},
{"sensor", "tempf", "dht", "temperature", jsonTempf, "", "", "F"},
{"sensor", "hum", "dht", "humidity", jsonHum, "", "", "%"} {"sensor", "hum", "dht", "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement //component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
}; };
+1 -10
View File
@@ -102,15 +102,6 @@ void pubOneWire_HADiscovery() {
# ifdef ZmqttDiscovery # ifdef ZmqttDiscovery
Log.notice(F("CreateDiscoverySensor - Found %d" CR), ds1820_count); Log.notice(F("CreateDiscoverySensor - Found %d" CR), ds1820_count);
for (int index = 0; index < ds1820_count; index++) { 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", createDiscovery("sensor",
(char*)(String(OW_TOPIC) + "/" + ds1820_addr[index]).c_str(), (char*)(String(OW_TOPIC) + "/" + ds1820_addr[index]).c_str(),
(char*)("DS12B20_" + String(index + 1) + "_c").c_str(), (char*)("DS12B20_" + String(index + 1) + "_c").c_str(),
@@ -118,7 +109,7 @@ void pubOneWire_HADiscovery() {
will_Topic, will_Topic,
"temperature", "temperature",
jsonTempc, jsonTempc,
"", "", "C", "", "", "°C",
0, "", "", true, ""); 0, "", "", true, "");
} }
# endif # endif