HASS Discovery - Create BLE devices automatically to gather entities (#826)
Create automatically devices into Home Assistant through MQTT auto discovery Before, only entities were created automaticaly and they were not linked to a device.
This commit is contained in:
1 parent
a83f725bad
commit
0c01ded583
6 files changed
+200
-109
No files matched your search
+61
-60
@@ -185,7 +185,7 @@ void strupp(char* beg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ifdef ZmqttDiscovery
|
# ifdef ZmqttDiscovery
|
||||||
void MiFloraDiscovery(char* mac) {
|
void MiFloraDiscovery(char* mac, char* sensorModel) {
|
||||||
# define MiFloraparametersCount 4
|
# define MiFloraparametersCount 4
|
||||||
Log.trace(F("MiFloraDiscovery" CR));
|
Log.trace(F("MiFloraDiscovery" CR));
|
||||||
char* MiFlorasensor[MiFloraparametersCount][8] = {
|
char* MiFlorasensor[MiFloraparametersCount][8] = {
|
||||||
@@ -196,10 +196,10 @@ void MiFloraDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, MiFlorasensor, MiFloraparametersCount);
|
createDiscoveryFromList(mac, MiFlorasensor, MiFloraparametersCount, "Mi-Flora", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VegTrugDiscovery(char* mac) {
|
void VegTrugDiscovery(char* mac, char* sensorModel) {
|
||||||
# define VegTrugparametersCount 4
|
# define VegTrugparametersCount 4
|
||||||
Log.trace(F("VegTrugDiscovery" CR));
|
Log.trace(F("VegTrugDiscovery" CR));
|
||||||
char* VegTrugsensor[VegTrugparametersCount][8] = {
|
char* VegTrugsensor[VegTrugparametersCount][8] = {
|
||||||
@@ -210,10 +210,10 @@ void VegTrugDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, VegTrugsensor, VegTrugparametersCount);
|
createDiscoveryFromList(mac, VegTrugsensor, VegTrugparametersCount, "VegTrug", "VEGTRUG", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiJiaDiscovery(char* mac) {
|
void MiJiaDiscovery(char* mac, char* sensorModel) {
|
||||||
# define MiJiaparametersCount 3
|
# define MiJiaparametersCount 3
|
||||||
Log.trace(F("MiJiaDiscovery" CR));
|
Log.trace(F("MiJiaDiscovery" CR));
|
||||||
char* MiJiasensor[MiJiaparametersCount][8] = {
|
char* MiJiasensor[MiJiaparametersCount][8] = {
|
||||||
@@ -223,10 +223,10 @@ void MiJiaDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, MiJiasensor, MiJiaparametersCount);
|
createDiscoveryFromList(mac, MiJiasensor, MiJiaparametersCount, "MiJia", "", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormalDiscovery(char* mac) {
|
void FormalDiscovery(char* mac, char* sensorModel) {
|
||||||
# define FormalparametersCount 4
|
# define FormalparametersCount 4
|
||||||
Log.trace(F("FormalDiscovery" CR));
|
Log.trace(F("FormalDiscovery" CR));
|
||||||
char* Formalsensor[FormalparametersCount][8] = {
|
char* Formalsensor[FormalparametersCount][8] = {
|
||||||
@@ -237,10 +237,10 @@ void FormalDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, Formalsensor, FormalparametersCount);
|
createDiscoveryFromList(mac, Formalsensor, FormalparametersCount, "Formal", "", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LYWSD02Discovery(char* mac) {
|
void LYWSD02Discovery(char* mac, char* sensorModel) {
|
||||||
# define LYWSD02parametersCount 3
|
# define LYWSD02parametersCount 3
|
||||||
Log.trace(F("LYWSD02Discovery" CR));
|
Log.trace(F("LYWSD02Discovery" CR));
|
||||||
char* LYWSD02sensor[LYWSD02parametersCount][8] = {
|
char* LYWSD02sensor[LYWSD02parametersCount][8] = {
|
||||||
@@ -250,10 +250,10 @@ void LYWSD02Discovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, LYWSD02sensor, LYWSD02parametersCount);
|
createDiscoveryFromList(mac, LYWSD02sensor, LYWSD02parametersCount, "LYWSD02", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLEARGRASSTRHDiscovery(char* mac) {
|
void CLEARGRASSTRHDiscovery(char* mac, char* sensorModel) {
|
||||||
# define CLEARGRASSTRHparametersCount 3
|
# define CLEARGRASSTRHparametersCount 3
|
||||||
Log.trace(F("CLEARGRASSTRHDiscovery" CR));
|
Log.trace(F("CLEARGRASSTRHDiscovery" CR));
|
||||||
char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = {
|
char* CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = {
|
||||||
@@ -263,10 +263,10 @@ void CLEARGRASSTRHDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, CLEARGRASSTRHsensor, CLEARGRASSTRHparametersCount);
|
createDiscoveryFromList(mac, CLEARGRASSTRHsensor, CLEARGRASSTRHparametersCount, "CLEARGRASSTRH", "ClearGrass", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLEARGRASSCGD1Discovery(char* mac) {
|
void CLEARGRASSCGD1Discovery(char* mac, char* sensorModel) {
|
||||||
# define CLEARGRASSCGD1parametersCount 3
|
# define CLEARGRASSCGD1parametersCount 3
|
||||||
Log.trace(F("CLEARGRASSCGD1Discovery" CR));
|
Log.trace(F("CLEARGRASSCGD1Discovery" CR));
|
||||||
char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = {
|
char* CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = {
|
||||||
@@ -276,10 +276,10 @@ void CLEARGRASSCGD1Discovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, CLEARGRASSCGD1sensor, CLEARGRASSCGD1parametersCount);
|
createDiscoveryFromList(mac, CLEARGRASSCGD1sensor, CLEARGRASSCGD1parametersCount, "CLEARGRASSCGD1", "ClearGrass", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLEARGRASSTRHKPADiscovery(char* mac) {
|
void CLEARGRASSTRHKPADiscovery(char* mac, char* sensorModel) {
|
||||||
# define CLEARGRASSTRHKPAparametersCount 3
|
# define CLEARGRASSTRHKPAparametersCount 3
|
||||||
Log.trace(F("CLEARGRASSTRHKPADiscovery" CR));
|
Log.trace(F("CLEARGRASSTRHKPADiscovery" CR));
|
||||||
char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = {
|
char* CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = {
|
||||||
@@ -289,10 +289,11 @@ void CLEARGRASSTRHKPADiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, CLEARGRASSTRHKPAsensor, CLEARGRASSTRHKPAparametersCount);
|
Log.trace(F("CLEARGRASSTRHKPADiscovery %s" CR), sensorModel);
|
||||||
|
createDiscoveryFromList(mac, CLEARGRASSTRHKPAsensor, CLEARGRASSTRHKPAparametersCount, "CLEARGRASSTRHKPA", "ClearGrass", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiScaleDiscovery(char* mac) {
|
void MiScaleDiscovery(char* mac, char* sensorModel) {
|
||||||
# define MiScaleparametersCount 1
|
# define MiScaleparametersCount 1
|
||||||
Log.trace(F("MiScaleDiscovery" CR));
|
Log.trace(F("MiScaleDiscovery" CR));
|
||||||
char* MiScalesensor[MiScaleparametersCount][8] = {
|
char* MiScalesensor[MiScaleparametersCount][8] = {
|
||||||
@@ -300,10 +301,10 @@ void MiScaleDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, MiScalesensor, MiScaleparametersCount);
|
createDiscoveryFromList(mac, MiScalesensor, MiScaleparametersCount, "MiScale", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiLampDiscovery(char* mac) {
|
void MiLampDiscovery(char* mac, char* sensorModel) {
|
||||||
# define MiLampparametersCount 1
|
# define MiLampparametersCount 1
|
||||||
Log.trace(F("MiLampDiscovery" CR));
|
Log.trace(F("MiLampDiscovery" CR));
|
||||||
char* MiLampsensor[MiLampparametersCount][8] = {
|
char* MiLampsensor[MiLampparametersCount][8] = {
|
||||||
@@ -311,10 +312,10 @@ void MiLampDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, MiLampsensor, MiLampparametersCount);
|
createDiscoveryFromList(mac, MiLampsensor, MiLampparametersCount, "MiLamp", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiBandDiscovery(char* mac) {
|
void MiBandDiscovery(char* mac, char* sensorModel) {
|
||||||
# define MiBandparametersCount 1
|
# define MiBandparametersCount 1
|
||||||
Log.trace(F("MiBandDiscovery" CR));
|
Log.trace(F("MiBandDiscovery" CR));
|
||||||
char* MiBandsensor[MiBandparametersCount][8] = {
|
char* MiBandsensor[MiBandparametersCount][8] = {
|
||||||
@@ -322,10 +323,10 @@ void MiBandDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, MiBandsensor, MiBandparametersCount);
|
createDiscoveryFromList(mac, MiBandsensor, MiBandparametersCount, "MiBand", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InkBirdDiscovery(char* mac) {
|
void InkBirdDiscovery(char* mac, char* sensorModel) {
|
||||||
# define InkBirdparametersCount 3
|
# define InkBirdparametersCount 3
|
||||||
Log.trace(F("InkBirdDiscovery" CR));
|
Log.trace(F("InkBirdDiscovery" CR));
|
||||||
char* InkBirdsensor[InkBirdparametersCount][8] = {
|
char* InkBirdsensor[InkBirdparametersCount][8] = {
|
||||||
@@ -335,10 +336,10 @@ void InkBirdDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, InkBirdsensor, InkBirdparametersCount);
|
createDiscoveryFromList(mac, InkBirdsensor, InkBirdparametersCount, "", "InkBird", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LYWSD03MMCDiscovery(char* mac) {
|
void LYWSD03MMCDiscovery(char* mac, char* sensorModel) {
|
||||||
# define LYWSD03MMCparametersCount 4
|
# define LYWSD03MMCparametersCount 4
|
||||||
Log.trace(F("LYWSD03MMCDiscovery" CR));
|
Log.trace(F("LYWSD03MMCDiscovery" CR));
|
||||||
char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][8] = {
|
char* LYWSD03MMCsensor[LYWSD03MMCparametersCount][8] = {
|
||||||
@@ -349,10 +350,10 @@ void LYWSD03MMCDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, LYWSD03MMCsensor, LYWSD03MMCparametersCount);
|
createDiscoveryFromList(mac, LYWSD03MMCsensor, LYWSD03MMCparametersCount, "LYWSD03MMC", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MHO_C401Discovery(char* mac) {
|
void MHO_C401Discovery(char* mac, char* sensorModel) {
|
||||||
# define MHO_C401parametersCount 4
|
# 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] = {
|
||||||
@@ -363,10 +364,10 @@ void MHO_C401Discovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, MHO_C401sensor, MHO_C401parametersCount);
|
createDiscoveryFromList(mac, MHO_C401sensor, MHO_C401parametersCount, "MHO_C401", "Xiaomi", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void INodeEMDiscovery(char* mac) {
|
void INodeEMDiscovery(char* mac, char* sensorModel) {
|
||||||
# define INodeEMparametersCount 3
|
# define INodeEMparametersCount 3
|
||||||
Log.trace(F("INodeEMDiscovery" CR));
|
Log.trace(F("INodeEMDiscovery" CR));
|
||||||
char* INodeEMsensor[INodeEMparametersCount][8] = {
|
char* INodeEMsensor[INodeEMparametersCount][8] = {
|
||||||
@@ -376,25 +377,25 @@ void INodeEMDiscovery(char* mac) {
|
|||||||
//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
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscoveryFromList(mac, INodeEMsensor, INodeEMparametersCount);
|
createDiscoveryFromList(mac, INodeEMsensor, INodeEMparametersCount, "INode-Energy-Meter", "INode", sensorModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
# else
|
# else
|
||||||
void MiFloraDiscovery(char* mac) {}
|
void MiFloraDiscovery(char* mac, char* sensorModel) {}
|
||||||
void VegTrugDiscovery(char* mac) {}
|
void VegTrugDiscovery(char* mac, char* sensorModel) {}
|
||||||
void MiJiaDiscovery(char* mac) {}
|
void MiJiaDiscovery(char* mac, char* sensorModel) {}
|
||||||
void FormalDiscovery(char* mac) {}
|
void FormalDiscovery(char* mac, char* sensorModel) {}
|
||||||
void LYWSD02Discovery(char* mac) {}
|
void LYWSD02Discovery(char* mac, char* sensorModel) {}
|
||||||
void CLEARGRASSTRHDiscovery(char* mac) {}
|
void CLEARGRASSTRHDiscovery(char* mac, char* sensorModel) {}
|
||||||
void CLEARGRASSCGD1Discovery(char* mac) {}
|
void CLEARGRASSCGD1Discovery(char* mac, char* sensorModel) {}
|
||||||
void CLEARGRASSTRHKPADiscovery(char* mac) {}
|
void CLEARGRASSTRHKPADiscovery(char* mac, char* sensorModel) {}
|
||||||
void MiScaleDiscovery(char* mac) {}
|
void MiScaleDiscovery(char* mac, char* sensorModel) {}
|
||||||
void MiLampDiscovery(char* mac) {}
|
void MiLampDiscovery(char* mac, char* sensorModel) {}
|
||||||
void MiBandDiscovery(char* mac) {}
|
void MiBandDiscovery(char* mac, char* sensorModel) {}
|
||||||
void InkBirdDiscovery(char* mac) {}
|
void InkBirdDiscovery(char* mac, char* sensorModel) {}
|
||||||
void LYWSD03MMCDiscovery(char* mac) {}
|
void LYWSD03MMCDiscovery(char* mac, char* sensorModel) {}
|
||||||
void MHO_C401Discovery(char* mac) {}
|
void MHO_C401Discovery(char* mac, char* sensorModel) {}
|
||||||
void INodeEMDiscovery(char* mac) {}
|
void INodeEMDiscovery(char* mac, char* sensorModel) {}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ESP32
|
# ifdef ESP32
|
||||||
@@ -834,22 +835,22 @@ void launchDiscovery() {
|
|||||||
String macWOdots = String(p->macAdr);
|
String macWOdots = String(p->macAdr);
|
||||||
macWOdots.replace(":", "");
|
macWOdots.replace(":", "");
|
||||||
Log.trace(F("Launching discovery of %s" CR), p->macAdr);
|
Log.trace(F("Launching discovery of %s" CR), p->macAdr);
|
||||||
if (p->sensorModel == HHCCJCY01HHCC) MiFloraDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == HHCCJCY01HHCC) MiFloraDiscovery((char*)macWOdots.c_str(), "HHCCJCY01HHCC");
|
||||||
if (p->sensorModel == VEGTRUG) VegTrugDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == VEGTRUG) VegTrugDiscovery((char*)macWOdots.c_str(), "VEGTRUG");
|
||||||
if (p->sensorModel == LYWSDCGQ) MiJiaDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == LYWSDCGQ) MiJiaDiscovery((char*)macWOdots.c_str(), "LYWSDCGQ");
|
||||||
if (p->sensorModel == JQJCY01YM) FormalDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == JQJCY01YM) FormalDiscovery((char*)macWOdots.c_str(), "JQJCY01YM");
|
||||||
if (p->sensorModel == LYWSD02) LYWSD02Discovery((char*)macWOdots.c_str());
|
if (p->sensorModel == LYWSD02) LYWSD02Discovery((char*)macWOdots.c_str(), "LYWSD02");
|
||||||
if (p->sensorModel == CGG1) CLEARGRASSTRHDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == CGG1) CLEARGRASSTRHDiscovery((char*)macWOdots.c_str(), "CGG1");
|
||||||
if (p->sensorModel == CGP1W) CLEARGRASSTRHKPADiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == CGP1W) CLEARGRASSTRHKPADiscovery((char*)macWOdots.c_str(), "CGP1W");
|
||||||
if (p->sensorModel == MUE4094RT) MiLampDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == MUE4094RT) MiLampDiscovery((char*)macWOdots.c_str(), "MUE4094RT");
|
||||||
if (p->sensorModel == CGD1) CLEARGRASSCGD1Discovery((char*)macWOdots.c_str());
|
if (p->sensorModel == CGD1) CLEARGRASSCGD1Discovery((char*)macWOdots.c_str(), "CGD1");
|
||||||
if (p->sensorModel == MIBAND) MiBandDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == MIBAND) MiBandDiscovery((char*)macWOdots.c_str(), "MIBAND");
|
||||||
if ((p->sensorModel == XMTZC04HM) ||
|
if ((p->sensorModel == XMTZC04HM) ||
|
||||||
(p->sensorModel == XMTZC05HM)) MiScaleDiscovery((char*)macWOdots.c_str());
|
(p->sensorModel == XMTZC05HM)) MiScaleDiscovery((char*)macWOdots.c_str(), "XMTZC0xHM");
|
||||||
if (p->sensorModel == INKBIRD) InkBirdDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == INKBIRD) InkBirdDiscovery((char*)macWOdots.c_str(), "INKBIRD");
|
||||||
if (p->sensorModel == LYWSD03MMC || p->sensorModel == LYWSD03MMC_ATC) LYWSD03MMCDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == LYWSD03MMC || p->sensorModel == LYWSD03MMC_ATC) LYWSD03MMCDiscovery((char*)macWOdots.c_str(), "LYWSD03MMC");
|
||||||
if (p->sensorModel == MHO_C401) MHO_C401Discovery((char*)macWOdots.c_str());
|
if (p->sensorModel == MHO_C401) MHO_C401Discovery((char*)macWOdots.c_str(), "MHO_C401");
|
||||||
if (p->sensorModel == INODE_EM) INodeEMDiscovery((char*)macWOdots.c_str());
|
if (p->sensorModel == INODE_EM) INodeEMDiscovery((char*)macWOdots.c_str(), "INODE_EM");
|
||||||
createOrUpdateDevice(p->macAdr, device_flags_isDisc, p->sensorModel);
|
createOrUpdateDevice(p->macAdr, device_flags_isDisc, p->sensorModel);
|
||||||
} else {
|
} else {
|
||||||
Log.trace(F("Device already discovered or UNKNOWN_MODEL" CR));
|
Log.trace(F("Device already discovered or UNKNOWN_MODEL" CR));
|
||||||
|
|||||||
+2
-1
@@ -50,7 +50,8 @@ void RFtoMQTTdiscovery(SIGNAL_SIZE_UL_ULL MQTTvalue) { //on the fly switch creat
|
|||||||
subjectRFtoMQTT, switchRF[1], (char*)getUniqueId(switchRF[1], switchRF[2]).c_str(),
|
subjectRFtoMQTT, switchRF[1], (char*)getUniqueId(switchRF[1], switchRF[2]).c_str(),
|
||||||
will_Topic, switchRF[3], switchRF[4],
|
will_Topic, switchRF[3], switchRF[4],
|
||||||
switchRF[5], switchRF[6], switchRF[7],
|
switchRF[5], switchRF[6], switchRF[7],
|
||||||
0, "", "", true, subjectMQTTtoRF);
|
0, "", "", true, subjectMQTTtoRF,
|
||||||
|
"", "", "", "");
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|||||||
@@ -111,7 +111,8 @@ void RF2toMQTTdiscovery(JsonObject& data) {
|
|||||||
createDiscovery(switchRF[0], "", switchRF[1],
|
createDiscovery(switchRF[0], "", switchRF[1],
|
||||||
(char*)getUniqueId(switchRF[1], "").c_str(), will_Topic,
|
(char*)getUniqueId(switchRF[1], "").c_str(), will_Topic,
|
||||||
switchRF[3], switchRF[4], switchRF[5], switchRF[6],
|
switchRF[3], switchRF[4], switchRF[5], switchRF[6],
|
||||||
switchRF[7], 0, "", "", true, subjectMQTTtoRF2);
|
switchRF[7], 0, "", "", true, subjectMQTTtoRF2,
|
||||||
|
"", "", "", "");
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|||||||
+129
-44
@@ -48,7 +48,8 @@ String getUniqueId(String name, String sufix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ifdef ZgatewayBT
|
# ifdef ZgatewayBT
|
||||||
void createDiscoveryFromList(char* mac, char* sensorList[][8], int sensorCount) {
|
void createDiscoveryFromList(char* mac, char* sensorList[][8], int sensorCount,
|
||||||
|
char* device_name, char* device_manufacturer, char* device_model) {
|
||||||
for (int i = 0; i < sensorCount; i++) {
|
for (int i = 0; i < sensorCount; i++) {
|
||||||
Log.trace(F("CreateDiscoverySensor %s" CR), sensorList[i][1]);
|
Log.trace(F("CreateDiscoverySensor %s" CR), sensorList[i][1]);
|
||||||
String discovery_topic = String(subjectBTtoMQTT) + "/" + String(mac);
|
String discovery_topic = String(subjectBTtoMQTT) + "/" + String(mac);
|
||||||
@@ -57,7 +58,8 @@ void createDiscoveryFromList(char* mac, char* sensorList[][8], int sensorCount)
|
|||||||
(char*)discovery_topic.c_str(), sensorList[i][1], (char*)unique_id.c_str(),
|
(char*)discovery_topic.c_str(), sensorList[i][1], (char*)unique_id.c_str(),
|
||||||
will_Topic, sensorList[i][3], sensorList[i][4],
|
will_Topic, sensorList[i][3], sensorList[i][4],
|
||||||
sensorList[i][5], sensorList[i][6], sensorList[i][7],
|
sensorList[i][5], sensorList[i][6], sensorList[i][7],
|
||||||
0, "", "", false, "");
|
0, "", "", false, "",
|
||||||
|
device_name, device_manufacturer, device_model, mac);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
@@ -67,7 +69,8 @@ void createDiscovery(char* sensor_type,
|
|||||||
char* availability_topic, char* device_class, char* value_template,
|
char* availability_topic, char* device_class, char* value_template,
|
||||||
char* payload_on, char* payload_off, char* unit_of_meas,
|
char* payload_on, char* payload_off, char* unit_of_meas,
|
||||||
int off_delay,
|
int off_delay,
|
||||||
char* payload_available, char* payload_not_avalaible, bool child_device, char* cmd_topic) {
|
char* payload_available, char* payload_not_avalaible, bool gateway_entity, char* cmd_topic,
|
||||||
|
char* device_name, char* device_manufacturer, char* device_model, char* device_mac) {
|
||||||
const int JSON_MSG_CALC_BUFFER = JSON_OBJECT_SIZE(14) + JSON_OBJECT_SIZE(5) + JSON_ARRAY_SIZE(1);
|
const int JSON_MSG_CALC_BUFFER = JSON_OBJECT_SIZE(14) + JSON_OBJECT_SIZE(5) + JSON_ARRAY_SIZE(1);
|
||||||
StaticJsonBuffer<JSON_MSG_CALC_BUFFER> jsonBuffer;
|
StaticJsonBuffer<JSON_MSG_CALC_BUFFER> jsonBuffer;
|
||||||
JsonObject& sensor = jsonBuffer.createObject();
|
JsonObject& sensor = jsonBuffer.createObject();
|
||||||
@@ -82,7 +85,7 @@ void createDiscovery(char* sensor_type,
|
|||||||
char state_topic[mqtt_topic_max_size];
|
char state_topic[mqtt_topic_max_size];
|
||||||
// If not an entity belonging to the gateway we put wild card for the location and gateway name
|
// If not an entity belonging to the gateway we put wild card for the location and gateway name
|
||||||
// allowing to have the entity detected by several gateways and a consistent discovery topic among the gateways
|
// allowing to have the entity detected by several gateways and a consistent discovery topic among the gateways
|
||||||
child_device ? strcpy(state_topic, mqtt_topic) : strcpy(state_topic, "+/+");
|
gateway_entity ? strcpy(state_topic, mqtt_topic) : strcpy(state_topic, "+/+");
|
||||||
strcat(state_topic, st_topic);
|
strcat(state_topic, st_topic);
|
||||||
sensor.set("stat_t", state_topic);
|
sensor.set("stat_t", state_topic);
|
||||||
}
|
}
|
||||||
@@ -113,7 +116,7 @@ void createDiscovery(char* sensor_type,
|
|||||||
sensor.set("cmd_t", command_topic); //command_topic
|
sensor.set("cmd_t", command_topic); //command_topic
|
||||||
}
|
}
|
||||||
|
|
||||||
if (child_device) {
|
if (gateway_entity) {
|
||||||
StaticJsonBuffer<JSON_MSG_BUFFER> jsonDeviceBuffer;
|
StaticJsonBuffer<JSON_MSG_BUFFER> jsonDeviceBuffer;
|
||||||
JsonObject& device = jsonDeviceBuffer.createObject();
|
JsonObject& device = jsonDeviceBuffer.createObject();
|
||||||
char JSONmessageBuffer[JSON_MSG_BUFFER];
|
char JSONmessageBuffer[JSON_MSG_BUFFER];
|
||||||
@@ -125,7 +128,32 @@ void createDiscovery(char* sensor_type,
|
|||||||
device.set("sw_version", OMG_VERSION);
|
device.set("sw_version", OMG_VERSION);
|
||||||
JsonArray& identifiers = device.createNestedArray("identifiers");
|
JsonArray& identifiers = device.createNestedArray("identifiers");
|
||||||
identifiers.add(getMacAddress());
|
identifiers.add(getMacAddress());
|
||||||
sensor.set("device", device); //device sensor is connected to
|
sensor.set("device", device); //device representing the board
|
||||||
|
} else {
|
||||||
|
char deviceid[13];
|
||||||
|
memcpy(deviceid, &unique_id[0], 12);
|
||||||
|
deviceid[12] = '\0';
|
||||||
|
StaticJsonBuffer<JSON_MSG_BUFFER> jsonDeviceBuffer;
|
||||||
|
JsonObject& device = jsonDeviceBuffer.createObject();
|
||||||
|
if (device_mac != "") {
|
||||||
|
JsonArray& connections = device.createNestedArray("connections");
|
||||||
|
JsonArray& connection_mac = connections.createNestedArray();
|
||||||
|
connection_mac.add("mac");
|
||||||
|
connection_mac.add(device_mac);
|
||||||
|
}
|
||||||
|
JsonArray& identifiers = device.createNestedArray("identifiers");
|
||||||
|
identifiers.add(deviceid);
|
||||||
|
if (device_manufacturer[0]) {
|
||||||
|
device.set("manufacturer", device_manufacturer);
|
||||||
|
}
|
||||||
|
if (device_model[0]) {
|
||||||
|
device.set("model", device_model);
|
||||||
|
}
|
||||||
|
if (device_name[0]) {
|
||||||
|
device.set("name", device_name);
|
||||||
|
}
|
||||||
|
device.set("via_device", gateway_name); //device name of the board
|
||||||
|
sensor.set("device", device); //device representing the actual sensor/switch device
|
||||||
}
|
}
|
||||||
String topic = String(discovery_Topic) + "/" + String(sensor_type) + "/" + String(unique_id) + "/config";
|
String topic = String(discovery_Topic) + "/" + String(sensor_type) + "/" + String(unique_id) + "/config";
|
||||||
pub_custom_topic((char*)topic.c_str(), sensor, true);
|
pub_custom_topic((char*)topic.c_str(), sensor, true);
|
||||||
@@ -138,14 +166,16 @@ void pubMqttDiscovery() {
|
|||||||
will_Topic, "connectivity", "", //set availability_topic,device_class,value_template,
|
will_Topic, "connectivity", "", //set availability_topic,device_class,value_template,
|
||||||
Gateway_AnnouncementMsg, will_Message, "", //set,payload_on,payload_off,unit_of_meas,
|
Gateway_AnnouncementMsg, will_Message, "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
Gateway_AnnouncementMsg, will_Message, true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
Gateway_AnnouncementMsg, will_Message, true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Uptime", (char*)getUniqueId("uptime", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Uptime", (char*)getUniqueId("uptime", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "{{ value_json.uptime }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.uptime }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "s", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "s", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
|
|
||||||
# if defined(ESP8266) || defined(ESP32)
|
# if defined(ESP8266) || defined(ESP32)
|
||||||
@@ -154,14 +184,16 @@ void pubMqttDiscovery() {
|
|||||||
"", "", "{{ value_json.freemem }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.freemem }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "B", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "B", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: IP", (char*)getUniqueId("ip", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: IP", (char*)getUniqueId("ip", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "{{ value_json.ip }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.ip }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
# ifndef ESP32_ETHERNET
|
# ifndef ESP32_ETHERNET
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
@@ -169,7 +201,8 @@ void pubMqttDiscovery() {
|
|||||||
"", "", "{{ value_json.rssi }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.rssi }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "dB", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "dB", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
@@ -179,7 +212,8 @@ void pubMqttDiscovery() {
|
|||||||
"", "", "{{ value_json.lowpowermode }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.lowpowermode }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
# if defined(ZboardM5STICKC) || defined(ZboardM5STICKCP)
|
# if defined(ZboardM5STICKC) || defined(ZboardM5STICKCP)
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
@@ -187,28 +221,32 @@ void pubMqttDiscovery() {
|
|||||||
"", "", "{{ value_json.m5batvoltage }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.m5batvoltage }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "V", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "V", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Bat current", (char*)getUniqueId("m5batcurrent", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Bat current", (char*)getUniqueId("m5batcurrent", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "{{ value_json.m5batcurrent }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.m5batcurrent }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "A", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "A", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Vin voltage", (char*)getUniqueId("m5vinvoltage", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Vin voltage", (char*)getUniqueId("m5vinvoltage", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "{{ value_json.m5vinvoltage }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.m5vinvoltage }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "V", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "V", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Vin current", (char*)getUniqueId("m5vincurrent", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Vin current", (char*)getUniqueId("m5vincurrent", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "{{ value_json.m5vincurrent }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.m5vincurrent }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "A", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "A", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
# endif
|
# endif
|
||||||
# ifdef ZboardM5STACK
|
# ifdef ZboardM5STACK
|
||||||
@@ -217,21 +255,24 @@ void pubMqttDiscovery() {
|
|||||||
"", "", "{{ value_json.m5battlevel }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.m5battlevel }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("binary_sensor", //set Type
|
createDiscovery("binary_sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Is Charging", (char*)getUniqueId("m5ischarging", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Is Charging", (char*)getUniqueId("m5ischarging", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "{{ value_json.m5ischarging }}", "", //set availability_topic,device_class,value_template,
|
"", "{{ value_json.m5ischarging }}", "", //set availability_topic,device_class,value_template,
|
||||||
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("binary_sensor", //set Type
|
createDiscovery("binary_sensor", //set Type
|
||||||
subjectSYStoMQTT, "SYS: Is Charge Full", (char*)getUniqueId("m5ischargefull", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "SYS: Is Charge Full", (char*)getUniqueId("m5ischargefull", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "{{ value_json.m5ischargefull }}", "", //set availability_topic,device_class,value_template,
|
"", "{{ value_json.m5ischargefull }}", "", //set availability_topic,device_class,value_template,
|
||||||
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "%", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
@@ -240,14 +281,16 @@ void pubMqttDiscovery() {
|
|||||||
will_Topic, "", "", //set availability_topic,device_class,value_template,
|
will_Topic, "", "", //set availability_topic,device_class,value_template,
|
||||||
"{\"cmd\":\"restart\"}", "", "", //set,payload_on,payload_off,unit_of_meas,
|
"{\"cmd\":\"restart\"}", "", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("switch", //set Type
|
createDiscovery("switch", //set Type
|
||||||
will_Topic, "SYS: Erase credentials", (char*)getUniqueId("erase", "").c_str(), //set state_topic,name,uniqueId
|
will_Topic, "SYS: Erase credentials", (char*)getUniqueId("erase", "").c_str(), //set state_topic,name,uniqueId
|
||||||
will_Topic, "", "", //set availability_topic,device_class,value_template,
|
will_Topic, "", "", //set availability_topic,device_class,value_template,
|
||||||
"{\"cmd\":\"erase\"}", "", "", //set,payload_on,payload_off,unit_of_meas,
|
"{\"cmd\":\"erase\"}", "", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
|
|
||||||
# ifdef ZsensorBME280
|
# ifdef ZsensorBME280
|
||||||
@@ -269,7 +312,9 @@ void pubMqttDiscovery() {
|
|||||||
BMETOPIC, BMEsensor[i][1], (char*)getUniqueId(BMEsensor[i][1], BMEsensor[i][2]).c_str(),
|
BMETOPIC, BMEsensor[i][1], (char*)getUniqueId(BMEsensor[i][1], BMEsensor[i][2]).c_str(),
|
||||||
will_Topic, BMEsensor[i][3], BMEsensor[i][4],
|
will_Topic, BMEsensor[i][3], BMEsensor[i][4],
|
||||||
BMEsensor[i][5], BMEsensor[i][6], BMEsensor[i][7],
|
BMEsensor[i][5], BMEsensor[i][6], BMEsensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -289,7 +334,9 @@ void pubMqttDiscovery() {
|
|||||||
HTUTOPIC, HTUsensor[i][1], (char*)getUniqueId(HTUsensor[i][1], HTUsensor[i][2]).c_str(),
|
HTUTOPIC, HTUsensor[i][1], (char*)getUniqueId(HTUsensor[i][1], HTUsensor[i][2]).c_str(),
|
||||||
will_Topic, HTUsensor[i][3], HTUsensor[i][4],
|
will_Topic, HTUsensor[i][3], HTUsensor[i][4],
|
||||||
HTUsensor[i][5], HTUsensor[i][6], HTUsensor[i][7],
|
HTUsensor[i][5], HTUsensor[i][6], HTUsensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -308,7 +355,9 @@ void pubMqttDiscovery() {
|
|||||||
AHTTOPIC, AHTsensor[i][1], (char*)getUniqueId(AHTsensor[i][1], AHTsensor[i][2]).c_str(),
|
AHTTOPIC, AHTsensor[i][1], (char*)getUniqueId(AHTsensor[i][1], AHTsensor[i][2]).c_str(),
|
||||||
will_Topic, AHTsensor[i][3], AHTsensor[i][4],
|
will_Topic, AHTsensor[i][3], AHTsensor[i][4],
|
||||||
AHTsensor[i][5], AHTsensor[i][6], AHTsensor[i][7],
|
AHTsensor[i][5], AHTsensor[i][6], AHTsensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -328,7 +377,9 @@ void pubMqttDiscovery() {
|
|||||||
DHTTOPIC, DHTsensor[i][1], (char*)getUniqueId(DHTsensor[i][1], DHTsensor[i][2]).c_str(),
|
DHTTOPIC, DHTsensor[i][1], (char*)getUniqueId(DHTsensor[i][1], DHTsensor[i][2]).c_str(),
|
||||||
will_Topic, DHTsensor[i][3], DHTsensor[i][4],
|
will_Topic, DHTsensor[i][3], DHTsensor[i][4],
|
||||||
DHTsensor[i][5], DHTsensor[i][6], DHTsensor[i][7],
|
DHTsensor[i][5], DHTsensor[i][6], DHTsensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -343,7 +394,9 @@ void pubMqttDiscovery() {
|
|||||||
ADCTOPIC, ADCsensor[1], (char*)getUniqueId(ADCsensor[1], ADCsensor[2]).c_str(),
|
ADCTOPIC, ADCsensor[1], (char*)getUniqueId(ADCsensor[1], ADCsensor[2]).c_str(),
|
||||||
will_Topic, ADCsensor[3], ADCsensor[4],
|
will_Topic, ADCsensor[3], ADCsensor[4],
|
||||||
ADCsensor[5], ADCsensor[6], ADCsensor[7],
|
ADCsensor[5], ADCsensor[6], ADCsensor[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZsensorBH1750
|
# ifdef ZsensorBH1750
|
||||||
@@ -363,7 +416,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectBH1750toMQTT, BH1750sensor[i][1], (char*)getUniqueId(BH1750sensor[i][1], BH1750sensor[i][2]).c_str(),
|
subjectBH1750toMQTT, BH1750sensor[i][1], (char*)getUniqueId(BH1750sensor[i][1], BH1750sensor[i][2]).c_str(),
|
||||||
will_Topic, BH1750sensor[i][3], BH1750sensor[i][4],
|
will_Topic, BH1750sensor[i][3], BH1750sensor[i][4],
|
||||||
BH1750sensor[i][5], BH1750sensor[i][6], BH1750sensor[i][7],
|
BH1750sensor[i][5], BH1750sensor[i][6], BH1750sensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -384,7 +439,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectTSL12561toMQTT, TSL2561sensor[i][1], (char*)getUniqueId(TSL2561sensor[i][1], TSL2561sensor[i][2]).c_str(),
|
subjectTSL12561toMQTT, TSL2561sensor[i][1], (char*)getUniqueId(TSL2561sensor[i][1], TSL2561sensor[i][2]).c_str(),
|
||||||
will_Topic, TSL2561sensor[i][3], TSL2561sensor[i][4],
|
will_Topic, TSL2561sensor[i][3], TSL2561sensor[i][4],
|
||||||
TSL2561sensor[i][5], TSL2561sensor[i][6], TSL2561sensor[i][7],
|
TSL2561sensor[i][5], TSL2561sensor[i][6], TSL2561sensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -399,7 +456,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectHCSR501toMQTT, HCSR501sensor[1], (char*)getUniqueId(HCSR501sensor[1], HCSR501sensor[2]).c_str(),
|
subjectHCSR501toMQTT, HCSR501sensor[1], (char*)getUniqueId(HCSR501sensor[1], HCSR501sensor[2]).c_str(),
|
||||||
will_Topic, HCSR501sensor[3], HCSR501sensor[4],
|
will_Topic, HCSR501sensor[3], HCSR501sensor[4],
|
||||||
HCSR501sensor[5], HCSR501sensor[6], HCSR501sensor[7],
|
HCSR501sensor[5], HCSR501sensor[6], HCSR501sensor[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZsensorGPIOInput
|
# ifdef ZsensorGPIOInput
|
||||||
@@ -413,7 +472,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectGPIOInputtoMQTT, GPIOInputsensor[1], (char*)getUniqueId(GPIOInputsensor[1], GPIOInputsensor[2]).c_str(),
|
subjectGPIOInputtoMQTT, GPIOInputsensor[1], (char*)getUniqueId(GPIOInputsensor[1], GPIOInputsensor[2]).c_str(),
|
||||||
will_Topic, GPIOInputsensor[3], GPIOInputsensor[4],
|
will_Topic, GPIOInputsensor[3], GPIOInputsensor[4],
|
||||||
GPIOInputsensor[5], GPIOInputsensor[6], GPIOInputsensor[7],
|
GPIOInputsensor[5], GPIOInputsensor[6], GPIOInputsensor[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZsensorINA226
|
# ifdef ZsensorINA226
|
||||||
@@ -433,7 +494,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectINA226toMQTT, INA226sensor[i][1], (char*)getUniqueId(INA226sensor[i][1], INA226sensor[i][2]).c_str(),
|
subjectINA226toMQTT, INA226sensor[i][1], (char*)getUniqueId(INA226sensor[i][1], INA226sensor[i][2]).c_str(),
|
||||||
will_Topic, INA226sensor[i][3], INA226sensor[i][4],
|
will_Topic, INA226sensor[i][3], INA226sensor[i][4],
|
||||||
INA226sensor[i][5], INA226sensor[i][6], INA226sensor[i][7],
|
INA226sensor[i][5], INA226sensor[i][6], INA226sensor[i][7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -453,7 +516,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectGTWONOFFtoMQTT, actuatorONOFF[1], (char*)getUniqueId(actuatorONOFF[1], actuatorONOFF[2]).c_str(),
|
subjectGTWONOFFtoMQTT, actuatorONOFF[1], (char*)getUniqueId(actuatorONOFF[1], actuatorONOFF[2]).c_str(),
|
||||||
will_Topic, actuatorONOFF[3], actuatorONOFF[4],
|
will_Topic, actuatorONOFF[3], actuatorONOFF[4],
|
||||||
actuatorONOFF[5], actuatorONOFF[6], actuatorONOFF[7],
|
actuatorONOFF[5], actuatorONOFF[6], actuatorONOFF[7],
|
||||||
0, "", "", true, subjectMQTTtoONOFF);
|
0, "", "", true, subjectMQTTtoONOFF,
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayRF
|
# ifdef ZgatewayRF
|
||||||
@@ -468,7 +533,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectRFtoMQTT, gatewayRF[1], (char*)getUniqueId(gatewayRF[1], gatewayRF[2]).c_str(),
|
subjectRFtoMQTT, gatewayRF[1], (char*)getUniqueId(gatewayRF[1], gatewayRF[2]).c_str(),
|
||||||
will_Topic, gatewayRF[3], gatewayRF[4],
|
will_Topic, gatewayRF[3], gatewayRF[4],
|
||||||
gatewayRF[5], gatewayRF[6], gatewayRF[7],
|
gatewayRF[5], gatewayRF[6], gatewayRF[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayRF2
|
# ifdef ZgatewayRF2
|
||||||
@@ -483,7 +550,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectRF2toMQTT, gatewayRF2[1], (char*)getUniqueId(gatewayRF2[1], gatewayRF2[2]).c_str(),
|
subjectRF2toMQTT, gatewayRF2[1], (char*)getUniqueId(gatewayRF2[1], gatewayRF2[2]).c_str(),
|
||||||
will_Topic, gatewayRF2[3], gatewayRF2[4],
|
will_Topic, gatewayRF2[3], gatewayRF2[4],
|
||||||
gatewayRF2[5], gatewayRF2[6], gatewayRF2[7],
|
gatewayRF2[5], gatewayRF2[6], gatewayRF2[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayRFM69
|
# ifdef ZgatewayRFM69
|
||||||
@@ -498,7 +567,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectRFM69toMQTT, gatewayRFM69[1], (char*)getUniqueId(gatewayRFM69[1], gatewayRFM69[2]).c_str(),
|
subjectRFM69toMQTT, gatewayRFM69[1], (char*)getUniqueId(gatewayRFM69[1], gatewayRFM69[2]).c_str(),
|
||||||
will_Topic, gatewayRFM69[3], gatewayRFM69[4],
|
will_Topic, gatewayRFM69[3], gatewayRFM69[4],
|
||||||
gatewayRFM69[5], gatewayRFM69[6], gatewayRFM69[7],
|
gatewayRFM69[5], gatewayRFM69[6], gatewayRFM69[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayLORA
|
# ifdef ZgatewayLORA
|
||||||
@@ -513,7 +584,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectLORAtoMQTT, gatewayLORA[1], (char*)getUniqueId(gatewayLORA[1], gatewayLORA[2]).c_str(),
|
subjectLORAtoMQTT, gatewayLORA[1], (char*)getUniqueId(gatewayLORA[1], gatewayLORA[2]).c_str(),
|
||||||
will_Topic, gatewayLORA[3], gatewayLORA[4],
|
will_Topic, gatewayLORA[3], gatewayLORA[4],
|
||||||
gatewayLORA[5], gatewayLORA[6], gatewayLORA[7],
|
gatewayLORA[5], gatewayLORA[6], gatewayLORA[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewaySRFB
|
# ifdef ZgatewaySRFB
|
||||||
@@ -528,7 +601,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectSRFBtoMQTT, gatewaySRFB[1], (char*)getUniqueId(gatewaySRFB[1], gatewaySRFB[2]).c_str(),
|
subjectSRFBtoMQTT, gatewaySRFB[1], (char*)getUniqueId(gatewaySRFB[1], gatewaySRFB[2]).c_str(),
|
||||||
will_Topic, gatewaySRFB[3], gatewaySRFB[4],
|
will_Topic, gatewaySRFB[3], gatewaySRFB[4],
|
||||||
gatewaySRFB[5], gatewaySRFB[6], gatewaySRFB[7],
|
gatewaySRFB[5], gatewaySRFB[6], gatewaySRFB[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayPilight
|
# ifdef ZgatewayPilight
|
||||||
@@ -543,7 +618,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectPilighttoMQTT, gatewayPilight[1], (char*)getUniqueId(gatewayPilight[1], gatewayPilight[2]).c_str(),
|
subjectPilighttoMQTT, gatewayPilight[1], (char*)getUniqueId(gatewayPilight[1], gatewayPilight[2]).c_str(),
|
||||||
will_Topic, gatewayPilight[3], gatewayPilight[4],
|
will_Topic, gatewayPilight[3], gatewayPilight[4],
|
||||||
gatewayPilight[5], gatewayPilight[6], gatewayPilight[7],
|
gatewayPilight[5], gatewayPilight[6], gatewayPilight[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayIR
|
# ifdef ZgatewayIR
|
||||||
@@ -558,7 +635,9 @@ void pubMqttDiscovery() {
|
|||||||
subjectIRtoMQTT, gatewayIR[1], (char*)getUniqueId(gatewayIR[1], gatewayIR[2]).c_str(),
|
subjectIRtoMQTT, gatewayIR[1], (char*)getUniqueId(gatewayIR[1], gatewayIR[2]).c_str(),
|
||||||
will_Topic, gatewayIR[3], gatewayIR[4],
|
will_Topic, gatewayIR[3], gatewayIR[4],
|
||||||
gatewayIR[5], gatewayIR[6], gatewayIR[7],
|
gatewayIR[5], gatewayIR[6], gatewayIR[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef Zgateway2G
|
# ifdef Zgateway2G
|
||||||
@@ -573,7 +652,9 @@ void pubMqttDiscovery() {
|
|||||||
subject2GtoMQTT, gateway2G[1], (char*)getUniqueId(gateway2G[1], gateway2G[2]).c_str(),
|
subject2GtoMQTT, gateway2G[1], (char*)getUniqueId(gateway2G[1], gateway2G[2]).c_str(),
|
||||||
will_Topic, gateway2G[3], gateway2G[4],
|
will_Topic, gateway2G[3], gateway2G[4],
|
||||||
gateway2G[5], gateway2G[6], gateway2G[7],
|
gateway2G[5], gateway2G[6], gateway2G[7],
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
|
);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef ZgatewayBT
|
# ifdef ZgatewayBT
|
||||||
@@ -582,28 +663,32 @@ void pubMqttDiscovery() {
|
|||||||
"", "", "{{ value_json.interval }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.interval }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "ms", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "ms", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("sensor", //set Type
|
createDiscovery("sensor", //set Type
|
||||||
subjectSYStoMQTT, "BT: Connnect every X scan(s)", (char*)getUniqueId("scanbcnct", "").c_str(), //set state_topic,name,uniqueId
|
subjectSYStoMQTT, "BT: Connnect every X scan(s)", (char*)getUniqueId("scanbcnct", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "{{ value_json.scanbcnct }}", //set availability_topic,device_class,value_template,
|
"", "", "{{ value_json.scanbcnct }}", //set availability_topic,device_class,value_template,
|
||||||
"", "", "", //set,payload_on,payload_off,unit_of_meas,
|
"", "", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
"", "", true, "" //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
"", "", true, "", //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("switch", //set Type
|
createDiscovery("switch", //set Type
|
||||||
will_Topic, "BT: Force scan", (char*)getUniqueId("force_scan", "").c_str(), //set state_topic,name,uniqueId
|
will_Topic, "BT: Force scan", (char*)getUniqueId("force_scan", "").c_str(), //set state_topic,name,uniqueId
|
||||||
will_Topic, "", "", //set availability_topic,device_class,value_template,
|
will_Topic, "", "", //set availability_topic,device_class,value_template,
|
||||||
"{\"interval\":0}", "", "", //set,payload_on,payload_off,unit_of_meas,
|
"{\"interval\":0}", "", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
createDiscovery("switch", //set Type
|
createDiscovery("switch", //set Type
|
||||||
"", "BT: Publish only sensors", (char*)getUniqueId("only_sensors", "").c_str(), //set state_topic,name,uniqueId
|
"", "BT: Publish only sensors", (char*)getUniqueId("only_sensors", "").c_str(), //set state_topic,name,uniqueId
|
||||||
"", "", "", //set availability_topic,device_class,value_template,
|
"", "", "", //set availability_topic,device_class,value_template,
|
||||||
"{\"onlysensors\":true}", "{\"onlysensors\":false}", "", //set,payload_on,payload_off,unit_of_meas,
|
"{\"onlysensors\":true}", "{\"onlysensors\":false}", "", //set,payload_on,payload_off,unit_of_meas,
|
||||||
0, //set off_delay
|
0, //set off_delay
|
||||||
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset //set,payload_avalaible,payload_not avalaible ,is a child device, command topic
|
Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoBTset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic
|
||||||
|
"", "", "", "" // device name, device manufacturer, device model, device mac
|
||||||
);
|
);
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,8 @@ void pubOneWire_HADiscovery() {
|
|||||||
"temperature",
|
"temperature",
|
||||||
jsonTempc,
|
jsonTempc,
|
||||||
"", "", "°C",
|
"", "", "°C",
|
||||||
0, "", "", true, "");
|
0, "", "", true, "",
|
||||||
|
"", "", "", "");
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,13 +29,15 @@
|
|||||||
|
|
||||||
extern String getUniqueId(String name, String sufix);
|
extern String getUniqueId(String name, String sufix);
|
||||||
extern void pubMqttDiscovery();
|
extern void pubMqttDiscovery();
|
||||||
extern void createDiscoveryFromList(char* mac, char* sensorList[][8], int sensorCount);
|
extern void createDiscoveryFromList(char* mac, char* sensorList[][8], int sensorCount,
|
||||||
|
char* device_name, char* device_manufacturer, char* device_model);
|
||||||
extern void createDiscovery(char* sensor_type,
|
extern void createDiscovery(char* sensor_type,
|
||||||
char* state_topic, char* s_name, char* unique_id,
|
char* state_topic, char* s_name, char* unique_id,
|
||||||
char* availability_topic, char* device_class, char* value_template,
|
char* availability_topic, char* device_class, char* value_template,
|
||||||
char* payload_on, char* payload_off, char* unit_of_meas,
|
char* payload_on, char* payload_off, char* unit_of_meas,
|
||||||
int off_delay,
|
int off_delay,
|
||||||
char* payload_available, char* payload_not_avalaible, bool child_device, char* command_topic);
|
char* payload_available, char* payload_not_avalaible, bool gateway_entity, char* command_topic,
|
||||||
|
char* device_name, char* device_manufacturer, char* device_model, char* device_mac);
|
||||||
|
|
||||||
#define discovery_Topic "homeassistant"
|
#define discovery_Topic "homeassistant"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user