Support Home Assistant Long-term Statistics #1087 (#1088)

This commit is contained in:
Alessandro Staniscia authored and GitHub committed 2021-10-14 18:46:13 -05:00
1 parent 9a8606bd29
commit e14a78e9c0
7 files changed
+286 -182

No files matched your search

+97 -97
View File
@@ -291,12 +291,12 @@ void strupp(char* beg) {
void MiFloraDiscovery(const char* mac, const char* sensorModel) {
# define MiFloraparametersCount 5
Log.trace(F("MiFloraDiscovery" CR));
const char* MiFlorasensor[MiFloraparametersCount][8] = {
{"sensor", "MiFlora-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lx"},
{"sensor", "MiFlora-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "MiFlora-fer", mac, "", jsonFer, "", "", "µS/cm"},
{"sensor", "MiFlora-moi", mac, "", jsonMoi, "", "", "%"}
const char* MiFlorasensor[MiFloraparametersCount][9] = {
{"sensor", "MiFlora-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lx", stateClassMeasurement},
{"sensor", "MiFlora-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "MiFlora-fer", mac, "", jsonFer, "", "", "µS/cm", stateClassMeasurement},
{"sensor", "MiFlora-moi", mac, "", jsonMoi, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -306,11 +306,11 @@ void MiFloraDiscovery(const char* mac, const char* sensorModel) {
void VegTrugDiscovery(const char* mac, const char* sensorModel) {
# define VegTrugparametersCount 4
Log.trace(F("VegTrugDiscovery" CR));
const char* VegTrugsensor[VegTrugparametersCount][8] = {
{"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lx"},
{"sensor", "VegTrug-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "VegTrug-fer", mac, "", jsonFer, "", "", "µS/cm"},
{"sensor", "VegTrug-moi", mac, "", jsonMoi, "", "", "%"}
const char* VegTrugsensor[VegTrugparametersCount][9] = {
{"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lx", stateClassMeasurement},
{"sensor", "VegTrug-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "VegTrug-fer", mac, "", jsonFer, "", "", "µS/cm", stateClassMeasurement},
{"sensor", "VegTrug-moi", mac, "", jsonMoi, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -320,10 +320,10 @@ void VegTrugDiscovery(const char* mac, const char* sensorModel) {
void MiJiaDiscovery(const char* mac, const char* sensorModel) {
# define MiJiaparametersCount 3
Log.trace(F("MiJiaDiscovery" CR));
const char* MiJiasensor[MiJiaparametersCount][8] = {
{"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "MiJia-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* MiJiasensor[MiJiaparametersCount][9] = {
{"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "MiJia-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -333,11 +333,11 @@ void MiJiaDiscovery(const char* mac, const char* sensorModel) {
void FormalDiscovery(const char* mac, const char* sensorModel) {
# define FormalparametersCount 4
Log.trace(F("FormalDiscovery" CR));
const char* Formalsensor[FormalparametersCount][8] = {
{"sensor", "Formal-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "Formal-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "Formal-hum", mac, "humidity", jsonHum, "", "", "%"},
{"sensor", "Formal-for", mac, "", jsonFor, "", "", "%"}
const char* Formalsensor[FormalparametersCount][9] = {
{"sensor", "Formal-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "Formal-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "Formal-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement},
{"sensor", "Formal-for", mac, "", jsonFor, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -347,10 +347,10 @@ void FormalDiscovery(const char* mac, const char* sensorModel) {
void LYWSD02Discovery(const char* mac, const char* sensorModel) {
# define LYWSD02parametersCount 3
Log.trace(F("LYWSD02Discovery" CR));
const char* LYWSD02sensor[LYWSD02parametersCount][8] = {
{"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "LYWSD02-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* LYWSD02sensor[LYWSD02parametersCount][9] = {
{"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V", stateClassMeasurement},
{"sensor", "LYWSD02-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -360,10 +360,10 @@ void LYWSD02Discovery(const char* mac, const char* sensorModel) {
void CLEARGRASSTRHDiscovery(const char* mac, const char* sensorModel) {
# define CLEARGRASSTRHparametersCount 3
Log.trace(F("CLEARGRASSTRHDiscovery" CR));
const char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = {
{"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "CLEARGRASSTRH-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][9] = {
{"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V", stateClassMeasurement},
{"sensor", "CLEARGRASSTRH-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -373,9 +373,9 @@ void CLEARGRASSTRHDiscovery(const char* mac, const char* sensorModel) {
void CLEARGRASSCGD1Discovery(const char* mac, const char* sensorModel) {
# define CLEARGRASSCGD1parametersCount 2
Log.trace(F("CLEARGRASSCGD1Discovery" CR));
const char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = {
{"sensor", "CLEARGRASSCGD1-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][9] = {
{"sensor", "CLEARGRASSCGD1-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -385,9 +385,9 @@ void CLEARGRASSCGD1Discovery(const char* mac, const char* sensorModel) {
void CLEARGRASSCGDK2Discovery(const char* mac, const char* sensorModel) {
# define CLEARGRASSCGDK2parametersCount 2
Log.trace(F("CLEARGRASSCGDK2Discovery" CR));
const char* CLEARGRASSCGDK2sensor[CLEARGRASSCGDK2parametersCount][8] = {
{"sensor", "CLEARGRASSCGDK2-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSCGDK2-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* CLEARGRASSCGDK2sensor[CLEARGRASSCGDK2parametersCount][9] = {
{"sensor", "CLEARGRASSCGDK2-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "CLEARGRASSCGDK2-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -397,9 +397,9 @@ void CLEARGRASSCGDK2Discovery(const char* mac, const char* sensorModel) {
void CLEARGRASSCGPR1Discovery(const char* mac, const char* sensorModel) {
# define CLEARGRASSCGPR1parametersCount 2
Log.trace(F("CLEARGRASSCGPR1Discovery" CR));
const char* CLEARGRASSCGPR1sensor[CLEARGRASSCGPR1parametersCount][8] = {
{"sensor", "CLEARGRASSCGPR1-pres", mac, "", jsonPres, "", "", ""},
{"sensor", "CLEARGRASSCGPR1-lux", mac, "illuminance", jsonLux, "", "", "lx"}
const char* CLEARGRASSCGPR1sensor[CLEARGRASSCGPR1parametersCount][9] = {
{"sensor", "CLEARGRASSCGPR1-pres", mac, "", jsonPres, "", "", "", stateClassMeasurement},
{"sensor", "CLEARGRASSCGPR1-lux", mac, "illuminance", jsonLux, "", "", "lx", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -409,8 +409,8 @@ void CLEARGRASSCGPR1Discovery(const char* mac, const char* sensorModel) {
void CLEARGRASSCGH1Discovery(const char* mac, const char* sensorModel) {
# define CLEARGRASSCGH1parametersCount 1
Log.trace(F("CLEARGRASSCGH1Discovery" CR));
const char* CLEARGRASSCGH1sensor[CLEARGRASSCGH1parametersCount][8] = {
{"binary_sensor", "CLEARGRASSCGH1-open", mac, "door", jsonOpen, "True", "False", ""},
const char* CLEARGRASSCGH1sensor[CLEARGRASSCGH1parametersCount][9] = {
{"binary_sensor", "CLEARGRASSCGH1-open", mac, "door", jsonOpen, "True", "False", "", stateClassNone},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -420,10 +420,10 @@ void CLEARGRASSCGH1Discovery(const char* mac, const char* sensorModel) {
void CLEARGRASSTRHKPADiscovery(const char* mac, const char* sensorModel) {
# define CLEARGRASSTRHKPAparametersCount 3
Log.trace(F("CLEARGRASSTRHKPADiscovery" CR));
const char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = {
{"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa"},
{"sensor", "CLEARGRASSTRHKPA-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][9] = {
{"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa", stateClassMeasurement},
{"sensor", "CLEARGRASSTRHKPA-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -434,8 +434,8 @@ void CLEARGRASSTRHKPADiscovery(const char* mac, const char* sensorModel) {
void MiScaleDiscovery(const char* mac, const char* sensorModel) {
# define MiScaleparametersCount 1
Log.trace(F("MiScaleDiscovery" CR));
const char* MiScalesensor[MiScaleparametersCount][8] = {
{"sensor", "MiScale-weight", mac, "", jsonWeight, "", "", "kg"},
const char* MiScalesensor[MiScaleparametersCount][9] = {
{"sensor", "MiScale-weight", mac, "", jsonWeight, "", "", "kg", stateClassMeasurement},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -445,8 +445,8 @@ void MiScaleDiscovery(const char* mac, const char* sensorModel) {
void MiLampDiscovery(const char* mac, const char* sensorModel) {
# define MiLampparametersCount 1
Log.trace(F("MiLampDiscovery" CR));
const char* MiLampsensor[MiLampparametersCount][8] = {
{"sensor", "MiLamp-presence", mac, "", jsonPresence, "", "", "d"},
const char* MiLampsensor[MiLampparametersCount][9] = {
{"sensor", "MiLamp-presence", mac, "", jsonPresence, "", "", "d", stateClassNone},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -456,8 +456,8 @@ void MiLampDiscovery(const char* mac, const char* sensorModel) {
void MiBandDiscovery(const char* mac, const char* sensorModel) {
# define MiBandparametersCount 1
Log.trace(F("MiBandDiscovery" CR));
const char* MiBandsensor[MiBandparametersCount][8] = {
{"sensor", "MiBand-steps", mac, "", jsonStep, "", "", "nb"},
const char* MiBandsensor[MiBandparametersCount][9] = {
{"sensor", "MiBand-steps", mac, "", jsonStep, "", "", "nb", stateClassNone},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -467,10 +467,10 @@ void MiBandDiscovery(const char* mac, const char* sensorModel) {
void InkBirdTH1Discovery(const char* mac, const char* sensorModel) {
# define InkBirdTH1parametersCount 3
Log.trace(F("InkBirdTH1Discovery" CR));
const char* InkBirdTH1sensor[InkBirdTH1parametersCount][8] = {
{"sensor", "InkBirdTH1-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "InkBirdTH1-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "InkBirdTH1-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* InkBirdTH1sensor[InkBirdTH1parametersCount][9] = {
{"sensor", "InkBirdTH1-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "InkBirdTH1-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "InkBirdTH1-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -480,9 +480,9 @@ void InkBirdTH1Discovery(const char* mac, const char* sensorModel) {
void InkBirdTH2Discovery(const char* mac, const char* sensorModel) {
# define InkBirdTH2parametersCount 2
Log.trace(F("InkBirdTH2Discovery" CR));
const char* InkBirdTH2sensor[InkBirdTH2parametersCount][8] = {
{"sensor", "InkBirdTH2-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "InkBirdTH2-temp", mac, "temperature", jsonTempc, "", "", "°C"},
const char* InkBirdTH2sensor[InkBirdTH2parametersCount][9] = {
{"sensor", "InkBirdTH2-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "InkBirdTH2-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -492,11 +492,11 @@ void InkBirdTH2Discovery(const char* mac, const char* sensorModel) {
void InkBird4XSDiscovery(const char* mac, const char* sensorModel) {
# define InkBird4XSparametersCount 4
Log.trace(F("InkBird4XSDiscovery" CR));
const char* InkBird4XSsensor[InkBird4XSparametersCount][8] = {
{"sensor", "InkBird4XS-temp1", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "InkBird4XS-temp2", mac, "temperature", jsonTempc2, "", "", "°C"},
{"sensor", "InkBird4XS-temp3", mac, "temperature", jsonTempc3, "", "", "°C"},
{"sensor", "InkBird4XS-temp4", mac, "temperature", jsonTempc4, "", "", "°C"},
const char* InkBird4XSsensor[InkBird4XSparametersCount][9] = {
{"sensor", "InkBird4XS-temp1", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "InkBird4XS-temp2", mac, "temperature", jsonTempc2, "", "", "°C", stateClassMeasurement},
{"sensor", "InkBird4XS-temp3", mac, "temperature", jsonTempc3, "", "", "°C", stateClassMeasurement},
{"sensor", "InkBird4XS-temp4", mac, "temperature", jsonTempc4, "", "", "°C", stateClassMeasurement},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -506,11 +506,11 @@ void InkBird4XSDiscovery(const char* mac, const char* sensorModel) {
void LYWSD03MMCDiscovery(const char* mac, const char* sensorModel) {
# define LYWSD03MMCparametersCount 4
Log.trace(F("LYWSD03MMCDiscovery" CR));
const char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][8] = {
{"sensor", "LYWSD03MMC-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "LYWSD03MMC-volt", mac, "", jsonVolt, "", "", "V"},
{"sensor", "LYWSD03MMC-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "LYWSD03MMC-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][9] = {
{"sensor", "LYWSD03MMC-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "LYWSD03MMC-volt", mac, "", jsonVolt, "", "", "V", stateClassMeasurement},
{"sensor", "LYWSD03MMC-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "LYWSD03MMC-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -520,11 +520,11 @@ void LYWSD03MMCDiscovery(const char* mac, const char* sensorModel) {
void MHO_C401Discovery(const char* mac, const char* sensorModel) {
# define MHO_C401parametersCount 4
Log.trace(F("MHO_C401Discovery" CR));
const char* MHO_C401sensor[MHO_C401parametersCount][8] = {
{"sensor", "MHO_C401-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "MHO_C401-volt", mac, "", jsonVolt, "", "", "V"},
{"sensor", "MHO_C401-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "MHO_C401-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* MHO_C401sensor[MHO_C401parametersCount][9] = {
{"sensor", "MHO_C401-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "MHO_C401-volt", mac, "", jsonVolt, "", "", "V", stateClassMeasurement},
{"sensor", "MHO_C401-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "MHO_C401-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -534,10 +534,10 @@ void MHO_C401Discovery(const char* mac, const char* sensorModel) {
void INodeEMDiscovery(const char* mac, const char* sensorModel) {
# define INodeEMparametersCount 3
Log.trace(F("INodeEMDiscovery" CR));
const char* INodeEMsensor[INodeEMparametersCount][8] = {
{"sensor", "iNodeEM-power", mac, "power", jsonPower, "", "", "W"},
{"sensor", "iNodeEM-energy", mac, "", jsonEnergy, "", "", "kWh"},
{"sensor", "iNodeEM-batt", mac, "battery", jsonBatt, "", "", "%"}
const char* INodeEMsensor[INodeEMparametersCount][9] = {
{"sensor", "iNodeEM-power", mac, "power", jsonPower, "", "", "W", stateClassMeasurement},
{"sensor", "iNodeEM-energy", mac, "", jsonEnergy, "", "", "kWh", stateClassMeasurement},
{"sensor", "iNodeEM-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -547,10 +547,10 @@ void INodeEMDiscovery(const char* mac, const char* sensorModel) {
void WS02Discovery(const char* mac, const char* sensorModel) {
# define WS02parametersCount 3
Log.trace(F("WS02Discovery" CR));
const char* WS02sensor[WS02parametersCount][8] = {
{"sensor", "WS02-volt", mac, "", jsonVolt, "", "", "V"},
{"sensor", "WS02-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "WS02-hum", mac, "humidity", jsonHum, "", "", "%"}
const char* WS02sensor[WS02parametersCount][9] = {
{"sensor", "WS02-volt", mac, "", jsonVolt, "", "", "V", stateClassMeasurement},
{"sensor", "WS02-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "WS02-hum", mac, "humidity", jsonHum, "", "", "%", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -560,13 +560,13 @@ void WS02Discovery(const char* mac, const char* sensorModel) {
void DT24Discovery(const char* mac, const char* sensorModel) {
# define DT24parametersCount 6
Log.trace(F("DT24Discovery" CR));
const char* DT24sensor[DT24parametersCount][8] = {
{"sensor", "DT24-volt", mac, "power", jsonVolt, "", "", "V"},
{"sensor", "DT24-amp", mac, "power", jsonCurrent, "", "", "A"},
{"sensor", "DT24-watt", mac, "power", jsonPower, "", "", "W"},
{"sensor", "DT24-watt-hour", mac, "power", jsonEnergy, "", "", "kWh"},
{"sensor", "DT24-price", mac, "", jsonMsg, "", "", ""},
{"sensor", "DT24-temp", mac, "temperature", jsonTempc, "", "", "°C"}
const char* DT24sensor[DT24parametersCount][9] = {
{"sensor", "DT24-volt", mac, "power", jsonVolt, "", "", "V", stateClassMeasurement},
{"sensor", "DT24-amp", mac, "power", jsonCurrent, "", "", "A", stateClassMeasurement},
{"sensor", "DT24-watt", mac, "power", jsonPower, "", "", "W", stateClassMeasurement},
{"sensor", "DT24-watt-hour", mac, "power", jsonEnergy, "", "", "kWh", stateClassMeasurement},
{"sensor", "DT24-price", mac, "", jsonMsg, "", "", "", stateClassNone},
{"sensor", "DT24-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -576,11 +576,11 @@ void DT24Discovery(const char* mac, const char* sensorModel) {
void EddystoneTLMDiscovery(const char* mac, const char* sensorModel) {
# define EddystoneTLMparametersCount 4
Log.trace(F("EddystoneTLMDiscovery" CR));
const char* EddystoneTLMsensor[EddystoneTLMparametersCount][8] = {
{"sensor", "EddystoneTLM-volt", mac, "", jsonVolt, "", "", "V"},
{"sensor", "EddystoneTLM-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "EddystoneTLM-count", mac, "", jsonCount, "", "", ""},
{"sensor", "EddystoneTLM-time", mac, "", jsonTime, "", "", ""}
const char* EddystoneTLMsensor[EddystoneTLMparametersCount][9] = {
{"sensor", "EddystoneTLM-volt", mac, "", jsonVolt, "", "", "V", stateClassMeasurement},
{"sensor", "EddystoneTLM-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "EddystoneTLM-count", mac, "", jsonCount, "", "", "", stateClassTotal},
{"sensor", "EddystoneTLM-time", mac, "", jsonTime, "", "", "", stateClassNone}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -590,12 +590,12 @@ void EddystoneTLMDiscovery(const char* mac, const char* sensorModel) {
void TPMSDiscovery(const char* mac, const char* sensorModel) {
# define TPMSparametersCount 5
Log.trace(F("TPMSDiscovery" CR));
const char* TPMSsensor[TPMSparametersCount][8] = {
{"sensor", "TPMS-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "TPMS-temp", mac, "temperature", jsonTempc, "", "", "°C"},
{"sensor", "TPMS-pres", mac, "pressure", jsonPres, "", "", "kPa"},
{"sensor", "TPMS-count", mac, "", jsonCount, "", "", ""},
{"sensor", "TPMS-alarm", mac, "", jsonAlarm, "", "", ""}
const char* TPMSsensor[TPMSparametersCount][9] = {
{"sensor", "TPMS-batt", mac, "battery", jsonBatt, "", "", "%", stateClassMeasurement},
{"sensor", "TPMS-temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"sensor", "TPMS-pres", mac, "pressure", jsonPres, "", "", "kPa", stateClassMeasurement},
{"sensor", "TPMS-count", mac, "", jsonCount, "", "", "", stateClassTotal},
{"sensor", "TPMS-alarm", mac, "", jsonAlarm, "", "", "", stateClassNone}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
+2 -1
View File
@@ -51,7 +51,8 @@ void RFtoMQTTdiscovery(SIGNAL_SIZE_UL_ULL MQTTvalue) { //on the fly switch creat
will_Topic, switchRF[3], switchRF[4],
switchRF[5], switchRF[6], switchRF[7],
0, "", "", true, subjectMQTTtoRF,
"", "", "", "", false);
"", "", "", "", false,
stateClassNone);
}
# endif
+2 -1
View File
@@ -111,7 +111,8 @@ void RF2toMQTTdiscovery(JsonObject& data) {
(char*)getUniqueId(switchRF[1], "").c_str(), will_Topic,
switchRF[3], switchRF[4], switchRF[5], switchRF[6],
switchRF[7], 0, "", "", true, subjectMQTTtoRF2,
"", "", "", "", false);
"", "", "", "", false,
stateClassNone);
}
# endif
+142 -46
View File
@@ -48,29 +48,81 @@ String getUniqueId(String name, String sufix) {
}
# ifdef ZgatewayBT
void createDiscoveryFromList(const char* mac, const char* sensorList[][8], int sensorCount,
const char* device_name, const char* device_manufacturer, const char* device_model) {
/**
* Create a discover messages form a list of attribute
*
* @param mac the mac adres
* @param sensorList[][0] = component type
* @param sensorList[][1] = name
* @param sensorList[][2] = availability topic
* @param sensorList[][3] = device class
* @param sensorList[][4] = value template
* @param sensorList[][5] = payload on
* @param sensorList[][6] = payload off
* @param sensorList[][7] = unit of measurement
* @param sensorList[][8] = unit of measurement
* @param sensorCount number of sensor
* @param device_name name of sensors
* @param device_manufacturer name of manufacturer
* @param device_model the model
* */
void createDiscoveryFromList(const char* mac,
const char* sensorList[][9],
int sensorCount,
const char* device_name,
const char* device_manufacturer,
const char* device_model) {
for (int i = 0; i < sensorCount; i++) {
Log.trace(F("CreateDiscoverySensor %s" CR), sensorList[i][1]);
String discovery_topic = String(subjectBTtoMQTT) + "/" + String(mac);
String unique_id = String(mac) + "-" + sensorList[i][1];
createDiscovery(sensorList[i][0],
discovery_topic.c_str(), sensorList[i][1], unique_id.c_str(),
will_Topic, sensorList[i][3], sensorList[i][4],
sensorList[i][5], sensorList[i][6], sensorList[i][7],
0, "", "", false, "",
device_name, device_manufacturer, device_model, mac, false);
device_name, device_manufacturer, device_model, mac, false,
sensorList[i][8] //The state class
);
}
}
# endif
/**
* Generate message and publish it on an mqtt discovery exploiter @see https://www.home-assistant.io/docs/mqtt/discovery/
*
* @param sensor_type the Type
* @param st_topic set state topic,
* @param s_name set name,
* @param unique_id set niqueId
* @param availability_topic set availability_topic,
* @param device_class set device_class,
* @param value_template set value_template,
* @param payload_on set payload_on,
* @param payload_off set payload_off,
* @param unit_of_meas set unit_of_meas,
* @param off_delay set off_delay
* @param payload_available set payload_avalaible,
* @param payload_not_avalaible set payload_not_avalaible
* @param gateway_entity set is a gateway entity,
* @param cmd_topic set command topic
* @param device_name set device name,
* @param device_manufacturer set device manufacturer,
* @param device_model set device model,
* @param device_mac set device mac,
* @param retainCmd set retain
* @param state_class set state class
*
* */
void createDiscovery(const char* sensor_type,
const char* st_topic, const char* s_name, const char* unique_id,
const char* availability_topic, const char* device_class, const char* value_template,
const char* payload_on, const char* payload_off, const char* unit_of_meas,
int off_delay,
const char* payload_available, const char* payload_not_avalaible, bool gateway_entity, const char* cmd_topic,
const char* device_name, const char* device_manufacturer, const char* device_model, const char* device_mac, bool retainCmd) {
const char* device_name, const char* device_manufacturer, const char* device_model, const char* device_mac, bool retainCmd,
const char* state_class) {
const int JSON_MSG_CALC_BUFFER = JSON_OBJECT_SIZE(14) + JSON_OBJECT_SIZE(5) + JSON_ARRAY_SIZE(1);
StaticJsonDocument<JSON_MSG_CALC_BUFFER> jsonBuffer;
JsonObject sensor = jsonBuffer.to<JsonObject>();
@@ -115,6 +167,8 @@ void createDiscovery(const char* sensor_type,
sensor["pl_avail"] = payload_available; // payload_on
if (payload_not_avalaible[0])
sensor["pl_not_avail"] = payload_not_avalaible; //payload_off
if (state_class[0])
sensor["state_class"] = state_class; //add the state class on the sensors ( https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes )
if (cmd_topic[0]) {
char command_topic[mqtt_topic_max_size];
@@ -175,7 +229,8 @@ void pubMqttDiscovery() {
Gateway_AnnouncementMsg, will_Message, "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "SYS: Uptime", (char*)getUniqueId("uptime", "").c_str(), //set state_topic,name,uniqueId
@@ -183,7 +238,8 @@ void pubMqttDiscovery() {
"", "", "s", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# if defined(ESP8266) || defined(ESP32)
@@ -193,7 +249,8 @@ void pubMqttDiscovery() {
"", "", "B", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "SYS: IP", (char*)getUniqueId("ip", "").c_str(), //set state_topic,name,uniqueId
@@ -201,7 +258,8 @@ void pubMqttDiscovery() {
"", "", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# ifndef ESP32_ETHERNET
createDiscovery("sensor", //set Type
@@ -210,7 +268,8 @@ void pubMqttDiscovery() {
"", "", "dB", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
# endif
@@ -221,7 +280,8 @@ void pubMqttDiscovery() {
"", "", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac
"", "", "", "", false, // device name, device manufacturer, device model, device mac
stateClassNone //State Class
);
# if defined(ZboardM5STICKC) || defined(ZboardM5STICKCP)
createDiscovery("sensor", //set Type
@@ -230,7 +290,8 @@ void pubMqttDiscovery() {
"", "", "V", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "SYS: Bat current", (char*)getUniqueId("m5batcurrent", "").c_str(), //set state_topic,name,uniqueId
@@ -238,7 +299,8 @@ void pubMqttDiscovery() {
"", "", "A", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "SYS: Vin voltage", (char*)getUniqueId("m5vinvoltage", "").c_str(), //set state_topic,name,uniqueId
@@ -246,7 +308,8 @@ void pubMqttDiscovery() {
"", "", "V", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "SYS: Vin current", (char*)getUniqueId("m5vincurrent", "").c_str(), //set state_topic,name,uniqueId
@@ -254,7 +317,8 @@ void pubMqttDiscovery() {
"", "", "A", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
# ifdef ZboardM5STACK
@@ -264,7 +328,8 @@ void pubMqttDiscovery() {
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("binary_sensor", //set Type
subjectSYStoMQTT, "SYS: Is Charging", (char*)getUniqueId("m5ischarging", "").c_str(), //set state_topic,name,uniqueId
@@ -272,7 +337,8 @@ void pubMqttDiscovery() {
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("binary_sensor", //set Type
subjectSYStoMQTT, "SYS: Is Charge Full", (char*)getUniqueId("m5ischargefull", "").c_str(), //set state_topic,name,uniqueId
@@ -280,7 +346,8 @@ void pubMqttDiscovery() {
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
# endif
@@ -290,7 +357,8 @@ void pubMqttDiscovery() {
"{\"cmd\":\"restart\"}", "", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("switch", //set Type
will_Topic, "SYS: Erase credentials", (char*)getUniqueId("erase", "").c_str(), //set state_topic,name,uniqueId
@@ -298,7 +366,8 @@ void pubMqttDiscovery() {
"{\"cmd\":\"erase\"}", "", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("switch", //set Type
"", "SYS: Auto discovery", (char*)getUniqueId("discovery", "").c_str(), //set state_topic,name,uniqueId
@@ -306,7 +375,8 @@ void pubMqttDiscovery() {
"{\"discovery\":true}", "{\"discovery\":false}", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", true // device name, device manufacturer, device model, device mac, retain
"", "", "", "", true, // device name, device manufacturer, device model, device mac, retain,
stateClassNone //State Class
);
# ifdef ZsensorBME280
@@ -329,7 +399,8 @@ void pubMqttDiscovery() {
will_Topic, BMEsensor[i][3], BMEsensor[i][4],
BMEsensor[i][5], BMEsensor[i][6], BMEsensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -351,7 +422,8 @@ void pubMqttDiscovery() {
will_Topic, HTUsensor[i][3], HTUsensor[i][4],
HTUsensor[i][5], HTUsensor[i][6], HTUsensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -372,7 +444,8 @@ void pubMqttDiscovery() {
will_Topic, AHTsensor[i][3], AHTsensor[i][4],
AHTsensor[i][5], AHTsensor[i][6], AHTsensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -394,7 +467,8 @@ void pubMqttDiscovery() {
will_Topic, DHTsensor[i][3], DHTsensor[i][4],
DHTsensor[i][5], DHTsensor[i][6], DHTsensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -411,7 +485,8 @@ void pubMqttDiscovery() {
will_Topic, ADCsensor[3], ADCsensor[4],
ADCsensor[5], ADCsensor[6], ADCsensor[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -433,7 +508,8 @@ void pubMqttDiscovery() {
will_Topic, BH1750sensor[i][3], BH1750sensor[i][4],
BH1750sensor[i][5], BH1750sensor[i][6], BH1750sensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -456,7 +532,8 @@ void pubMqttDiscovery() {
will_Topic, TSL2561sensor[i][3], TSL2561sensor[i][4],
TSL2561sensor[i][5], TSL2561sensor[i][6], TSL2561sensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -473,7 +550,8 @@ void pubMqttDiscovery() {
will_Topic, HCSR501sensor[3], HCSR501sensor[4],
HCSR501sensor[5], HCSR501sensor[6], HCSR501sensor[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -489,7 +567,8 @@ void pubMqttDiscovery() {
will_Topic, GPIOInputsensor[3], GPIOInputsensor[4],
GPIOInputsensor[5], GPIOInputsensor[6], GPIOInputsensor[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -511,7 +590,8 @@ void pubMqttDiscovery() {
will_Topic, INA226sensor[i][3], INA226sensor[i][4],
INA226sensor[i][5], INA226sensor[i][6], INA226sensor[i][7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
}
# endif
@@ -533,7 +613,8 @@ void pubMqttDiscovery() {
will_Topic, actuatorONOFF[3], actuatorONOFF[4],
actuatorONOFF[5], actuatorONOFF[6], actuatorONOFF[7],
0, "", "", true, subjectMQTTtoONOFF,
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -550,7 +631,8 @@ void pubMqttDiscovery() {
will_Topic, gatewayRF[3], gatewayRF[4],
gatewayRF[5], gatewayRF[6], gatewayRF[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -567,7 +649,8 @@ void pubMqttDiscovery() {
will_Topic, gatewayRF2[3], gatewayRF2[4],
gatewayRF2[5], gatewayRF2[6], gatewayRF2[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -584,7 +667,8 @@ void pubMqttDiscovery() {
will_Topic, gatewayRFM69[3], gatewayRFM69[4],
gatewayRFM69[5], gatewayRFM69[6], gatewayRFM69[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -601,7 +685,8 @@ void pubMqttDiscovery() {
will_Topic, gatewayLORA[3], gatewayLORA[4],
gatewayLORA[5], gatewayLORA[6], gatewayLORA[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -618,7 +703,8 @@ void pubMqttDiscovery() {
will_Topic, gatewaySRFB[3], gatewaySRFB[4],
gatewaySRFB[5], gatewaySRFB[6], gatewaySRFB[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -635,7 +721,8 @@ void pubMqttDiscovery() {
will_Topic, gatewayPilight[3], gatewayPilight[4],
gatewayPilight[5], gatewayPilight[6], gatewayPilight[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -652,7 +739,8 @@ void pubMqttDiscovery() {
will_Topic, gatewayIR[3], gatewayIR[4],
gatewayIR[5], gatewayIR[6], gatewayIR[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -669,7 +757,8 @@ void pubMqttDiscovery() {
will_Topic, gateway2G[3], gateway2G[4],
gateway2G[5], gateway2G[6], gateway2G[7],
0, "", "", true, "",
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
@@ -680,7 +769,8 @@ void pubMqttDiscovery() {
"", "", "ms", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain,
stateClassNone //State Class
);
createDiscovery("sensor", //set Type
subjectSYStoMQTT, "BT: Connnect every X scan(s)", (char*)getUniqueId("scanbcnct", "").c_str(), //set state_topic,name,uniqueId
@@ -688,7 +778,8 @@ void pubMqttDiscovery() {
"", "", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("switch", //set Type
will_Topic, "BT: Force scan", (char*)getUniqueId("force_scan", "").c_str(), //set state_topic,name,uniqueId
@@ -696,7 +787,8 @@ void pubMqttDiscovery() {
"{\"interval\":0}", "", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", false // device name, device manufacturer, device model, device mac, retain
"", "", "", "", false, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("switch", //set Type
"", "BT: Publish only sensors", (char*)getUniqueId("only_sensors", "").c_str(), //set state_topic,name,uniqueId
@@ -704,7 +796,8 @@ void pubMqttDiscovery() {
"{\"onlysensors\":true}", "{\"onlysensors\":false}", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", true // device name, device manufacturer, device model, device mac, retain
"", "", "", "", true, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("switch", //set Type
"", "BT: Publish HASS presence", (char*)getUniqueId("hasspresence", "").c_str(), //set state_topic,name,uniqueId
@@ -712,7 +805,8 @@ void pubMqttDiscovery() {
"{\"hasspresence\":true}", "{\"hasspresence\":false}", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", true // device name, device manufacturer, device model, device mac, retain
"", "", "", "", true, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# ifdef ESP32
createDiscovery("switch", //set Type
@@ -721,7 +815,8 @@ void pubMqttDiscovery() {
"{\"lowpowermode\":2}", "{\"lowpowermode\":0}", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
"", "", true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible,is a gateway entity, command topic
"", "", "", "", true // device name, device manufacturer, device model, device mac, retain
"", "", "", "", true, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
createDiscovery("switch", //set Type
"", "BT: Connect to devices", (char*)getUniqueId("bleconnect", "").c_str(), //set state_topic,name,uniqueId
@@ -729,7 +824,8 @@ void pubMqttDiscovery() {
"{\"bleconnect\":true}", "{\"bleconnect\":false}", "", //set,payload_on,payload_off,unit_of_meas,
0, //set off_delay
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
"", "", "", "", true // device name, device manufacturer, device model, device mac, retain
"", "", "", "", true, // device name, device manufacturer, device model, device mac, retain
stateClassNone //State Class
);
# endif
# endif
+3 -1
View File
@@ -113,7 +113,9 @@ void pubOneWire_HADiscovery() {
jsonTempc,
"", "", "°C",
0, "", "", true, "",
"", "", "", "", false);
"", "", "", "", false,
stateClassMeasurement // state class
);
}
}
# endif
+40 -35
View File
@@ -37,7 +37,8 @@ extern void createDiscovery(const char* sensor_type,
const char* payload_on, const char* payload_off, const char* unit_of_meas,
int off_delay,
const char* payload_available, const char* payload_not_avalaible, bool gateway_entity, const char* command_topic,
const char* device_name, const char* device_manufacturer, const char* device_model, const char* device_mac, bool retainCmd);
const char* device_name, const char* device_manufacturer, const char* device_model, const char* device_mac, bool retainCmd,
const char* state_class);
#define discovery_Topic "homeassistant"
@@ -83,40 +84,44 @@ extern void createDiscovery(const char* sensor_type,
# define jsonCount "{{ value_json.count }}"
# define jsonAlarm "{{ value_json.alarm }}"
#else // Home assistant autodiscovery value key definition
# define jsonBatt "{{ value_json.batt | is_defined }}"
# define jsonLux "{{ value_json.lux | is_defined }}"
# define jsonPres "{{ value_json.pres | is_defined }}"
# define jsonFer "{{ value_json.fer | is_defined }}"
# define jsonFor "{{ value_json.for | is_defined }}"
# define jsonMoi "{{ value_json.moi | is_defined }}"
# define jsonHum "{{ value_json.hum | is_defined }}"
# 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 jsonTempc2 "{{ value_json.tempc2 | is_defined }}"
# define jsonTempc3 "{{ value_json.tempc3 | is_defined }}"
# define jsonTempc4 "{{ value_json.tempc4 | is_defined }}"
# define jsonTempf "{{ value_json.tempf | is_defined }}"
# define jsonMsg "{{ value_json.message | is_defined }}"
# define jsonVal "{{ value_json.value | is_defined }}"
# define jsonVolt "{{ value_json.volt | is_defined }}"
# define jsonCurrent "{{ value_json.current | is_defined }}"
# define jsonPower "{{ value_json.power | is_defined }}"
# define jsonEnergy "{{ value_json.energy | is_defined }}"
# define jsonGpio "{{ value_json.gpio | is_defined }}"
# define jsonFtcd "{{ value_json.ftcd | is_defined }}"
# define jsonWm2 "{{ value_json.wattsm2 | is_defined }}"
# define jsonAdc "{{ value_json.adc | is_defined }}"
# define jsonPa "{{ float(value_json.pa) * 0.01 | is_defined }}"
# define jsonId "{{ value_json.id | is_defined }}"
# define jsonAddress "{{ value_json.address | is_defined }}"
# define jsonOpen "{{ value_json.open | is_defined }}"
# define jsonTime "{{ value_json.time | is_defined }}"
# define jsonCount "{{ value_json.count | is_defined }}"
# define jsonAlarm "{{ value_json.alarm | is_defined }}"
# define jsonBatt "{{ value_json.batt | is_defined }}"
# define jsonLux "{{ value_json.lux | is_defined }}"
# define jsonPres "{{ value_json.pres | is_defined }}"
# define jsonFer "{{ value_json.fer | is_defined }}"
# define jsonFor "{{ value_json.for | is_defined }}"
# define jsonMoi "{{ value_json.moi | is_defined }}"
# define jsonHum "{{ value_json.hum | is_defined }}"
# 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 jsonTempc2 "{{ value_json.tempc2 | is_defined }}"
# define jsonTempc3 "{{ value_json.tempc3 | is_defined }}"
# define jsonTempc4 "{{ value_json.tempc4 | is_defined }}"
# define jsonTempf "{{ value_json.tempf | is_defined }}"
# define jsonMsg "{{ value_json.message | is_defined }}"
# define jsonVal "{{ value_json.value | is_defined }}"
# define jsonVolt "{{ value_json.volt | is_defined }}"
# define jsonCurrent "{{ value_json.current | is_defined }}"
# define jsonPower "{{ value_json.power | is_defined }}"
# define jsonEnergy "{{ value_json.energy | is_defined }}"
# define jsonGpio "{{ value_json.gpio | is_defined }}"
# define jsonFtcd "{{ value_json.ftcd | is_defined }}"
# define jsonWm2 "{{ value_json.wattsm2 | is_defined }}"
# define jsonAdc "{{ value_json.adc | is_defined }}"
# define jsonPa "{{ float(value_json.pa) * 0.01 | is_defined }}"
# define jsonId "{{ value_json.id | is_defined }}"
# define jsonAddress "{{ value_json.address | is_defined }}"
# define jsonOpen "{{ value_json.open | is_defined }}"
# define jsonTime "{{ value_json.time | is_defined }}"
# define jsonCount "{{ value_json.count | is_defined }}"
# define jsonAlarm "{{ value_json.alarm | is_defined }}"
# define stateClassNone ""
# define stateClassMeasurement "measurement"
# define stateClassTotal "total"
# define stateClassTotalIncreasing "total_increasing"
#endif
#endif
-1
View File
@@ -29,7 +29,6 @@
# include <esp_ota_ops.h> // get running partition
# include <esp_partition.h>
// To do extern "C" uint32_t _SPIFFS_start;
// To do extern "C" uint32_t _SPIFFS_end;