Implement OpenHAB autodiscovery (#612)

This commit is contained in:
Florian authored and GitHub committed 2020-05-12 15:05:37 -05:00
1 parent a82bbe684a
commit 489ce99659
5 files changed
+127 -66

No files matched your search

+26 -26
View File
@@ -149,10 +149,10 @@ void MiFloraDiscovery(char *mac)
#define MiFloraparametersCount 4
Log.trace(F("MiFloraDiscovery" CR));
char *MiFlorasensor[MiFloraparametersCount][8] = {
{"sensor", "MiFlora-lux", mac, "illuminance", "{{ value_json.lux | is_defined }}", "", "", "lu"},
{"sensor", "MiFlora-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "MiFlora-fer", mac, "", "{{ value_json.fer | is_defined }}", "", "", "µS/cm"},
{"sensor", "MiFlora-moi", mac, "", "{{ value_json.moi | is_defined }}", "", "", "%"}
{"sensor", "MiFlora-lux", mac, "illuminance", jsonLux, "", "", "lu"},
{"sensor", "MiFlora-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "MiFlora-fer", mac, "", jsonFer, "", "", "µS/cm"},
{"sensor", "MiFlora-moi", mac, "", jsonMoi, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -165,10 +165,10 @@ void VegTrugDiscovery(char *mac)
#define VegTrugparametersCount 4
Log.trace(F("VegTrugDiscovery" CR));
char *VegTrugsensor[VegTrugparametersCount][8] = {
{"sensor", "VegTrug-lux", mac, "illuminance", "{{ value_json.lux | is_defined }}", "", "", "lu"},
{"sensor", "VegTrug-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "VegTrug-fer", mac, "", "{{ value_json.fer | is_defined }}", "", "", "µS/cm"},
{"sensor", "VegTrug-moi", mac, "", "{{ value_json.moi | is_defined }}", "", "", "%"}
{"sensor", "VegTrug-lux", mac, "illuminance", jsonLux, "", "", "lu"},
{"sensor", "VegTrug-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "VegTrug-fer", mac, "", jsonFer, "", "", "µS/cm"},
{"sensor", "VegTrug-moi", mac, "", jsonMoi, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -181,9 +181,9 @@ void MiJiaDiscovery(char *mac)
#define MiJiaparametersCount 3
Log.trace(F("MiJiaDiscovery" CR));
char *MiJiasensor[MiJiaparametersCount][8] = {
{"sensor", "MiJia-batt", mac, "battery", "{{ value_json.batt | is_defined }}", "", "", "%"},
{"sensor", "MiJia-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "MiJia-hum", mac, "humidity", "{{ value_json.hum | is_defined }}", "", "", "%"}
{"sensor", "MiJia-batt", mac, "battery", jsonBatt, "", "", "%"},
{"sensor", "MiJia-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "MiJia-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -196,9 +196,9 @@ void LYWSD02Discovery(char *mac)
#define LYWSD02parametersCount 3
Log.trace(F("LYWSD02Discovery" CR));
char *LYWSD02sensor[LYWSD02parametersCount][8] = {
{"sensor", "LYWSD02-batt", mac, "battery", "{{ value_json.batt | is_defined }}", "", "", "V"},
{"sensor", "LYWSD02-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "LYWSD02-hum", mac, "humidity", "{{ value_json.hum | is_defined }}", "", "", "%"}
{"sensor", "LYWSD02-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "LYWSD02-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "LYWSD02-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -211,9 +211,9 @@ void CLEARGRASSTRHDiscovery(char *mac)
#define CLEARGRASSTRHparametersCount 3
Log.trace(F("CLEARGRASSTRHDiscovery" CR));
char *CLEARGRASSTRHsensor[CLEARGRASSTRHparametersCount][8] = {
{"sensor", "CLEARGRASSTRH-batt", mac, "battery", "{{ value_json.batt | is_defined }}", "", "", "V"},
{"sensor", "CLEARGRASSTRH-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "CLEARGRASSTRH-hum", mac, "humidity", "{{ value_json.hum | is_defined }}", "", "", "%"}
{"sensor", "CLEARGRASSTRH-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "CLEARGRASSTRH-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "CLEARGRASSTRH-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -226,9 +226,9 @@ void CLEARGRASSCGD1Discovery(char *mac)
#define CLEARGRASSCGD1parametersCount 3
Log.trace(F("CLEARGRASSCGD1Discovery" CR));
char *CLEARGRASSCGD1sensor[CLEARGRASSCGD1parametersCount][8] = {
{"sensor", "CLEARGRASSCGD1-batt", mac, "battery", "{{ value_json.batt | is_defined }}", "", "", "V"},
{"sensor", "CLEARGRASSCGD1-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", "{{ value_json.hum | is_defined }}", "", "", "%"}
{"sensor", "CLEARGRASSCGD1-batt", mac, "battery", jsonBatt, "", "", "V"},
{"sensor", "CLEARGRASSCGD1-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "CLEARGRASSCGD1-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -241,9 +241,9 @@ void CLEARGRASSTRHKPADiscovery(char *mac)
#define CLEARGRASSTRHKPAparametersCount 3
Log.trace(F("CLEARGRASSTRHKPADiscovery" CR));
char *CLEARGRASSTRHKPAsensor[CLEARGRASSTRHKPAparametersCount][8] = {
{"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", "{{ value_json.pres | is_defined }}", "", "", "kPa"},
{"sensor", "CLEARGRASSTRHKPA-tem", mac, "temperature", "{{ value_json.tem | is_defined }}", "", "", "°C"},
{"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", "{{ value_json.hum | is_defined }}", "", "", "%"}
{"sensor", "CLEARGRASSTRHKPA-pres", mac, "pressure", jsonPres, "", "", "kPa"},
{"sensor", "CLEARGRASSTRHKPA-tem", mac, "temperature", jsonTemp, "", "", "°C"},
{"sensor", "CLEARGRASSTRHKPA-hum", mac, "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -256,7 +256,7 @@ void MiScaleDiscovery(char *mac)
#define MiScaleparametersCount 1
Log.trace(F("MiScaleDiscovery" CR));
char *MiScalesensor[MiScaleparametersCount][8] = {
{"sensor", "MiScale-weight", mac, "", "{{ value_json.weight | is_defined }}", "", "", "kg"},
{"sensor", "MiScale-weight", mac, "", jsonWeight, "", "", "kg"},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -269,7 +269,7 @@ void MiLampDiscovery(char *mac)
#define MiLampparametersCount 1
Log.trace(F("MiLampDiscovery" CR));
char *MiLampsensor[MiLampparametersCount][8] = {
{"sensor", "MiLamp-presence", mac, "", "{{ value_json.presence}}", "", "", "d"},
{"sensor", "MiLamp-presence", mac, "", jsonPresence, "", "", "d"},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -282,7 +282,7 @@ void MiBandDiscovery(char *mac)
#define MiBandparametersCount 1
Log.trace(F("MiBandDiscovery" CR));
char *MiBandsensor[MiBandparametersCount][8] = {
{"sensor", "MiBand-steps", mac, "", "{{ value_json.steps | is_defined }}", "", "", "nb"},
{"sensor", "MiBand-steps", mac, "", jsonStep, "", "", "nb"},
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
+32 -40
View File
@@ -109,14 +109,6 @@ void createDiscovery(char *sensor_type,
sensor.set("cmd_t", command_topic); //command_topic
}
/*if (strcmp(s_name, Gateway_Name) == 0){
JsonArray &json_attributes = sensor.createNestedArray("json_attributes");
json_attributes.add("uptime");
json_attributes.add("freemem");
json_attributes.add("rssi");
json_attributes.add("SSID");
}*/
if (child_device)
{
StaticJsonBuffer<JSON_MSG_BUFFER> jsonDeviceBuffer;
@@ -161,12 +153,12 @@ void pubMqttDiscovery()
#define BMEparametersCount 6
Log.trace(F("bme280Discovery" CR));
char *BMEsensor[BMEparametersCount][8] = {
{"sensor", "tempc", "bme", "temperature", "{{ value_json.tempc }}", "", "", "°C"},
{"sensor", "tempf", "bme", "temperature", "{{ value_json.tempf }}", "", "", "°F"},
{"sensor", "pa", "bme", "", "{{ float(value_json.pa) * 0.01 }}", "", "", "hPa"},
{"sensor", "hum", "bme", "humidity", "{{ value_json.hum }}", "", "", "%"},
{"sensor", "altim", "bme", "", "{{ value_json.altim }}", "", "", "m"},
{"sensor", "altift", "bme", "", "{{ value_json.altift }}", "", "", "ft"}
{"sensor", "tempc", "bme", "temperature", jsonTemp, "", "", "°C"},
{"sensor", "tempf", "bme", "temperature", jsonTempf, "", "", "°F"},
{"sensor", "pa", "bme", "", jsonPa, "", "", "hPa"},
{"sensor", "hum", "bme", "humidity", jsonHum, "", "", "%"},
{"sensor", "altim", "bme", "", jsonAltim, "", "", "m"},
{"sensor", "altift", "bme", "", jsonAltif, "", "", "ft"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -186,9 +178,9 @@ void pubMqttDiscovery()
#define HTUparametersCount 3
Log.trace(F("htu21Discovery" CR));
char *HTUsensor[HTUparametersCount][8] = {
{"sensor", "tempc", "htu", "temperature", "{{ value_json.tempc }}", "", "", "°C"},
{"sensor", "tempf", "htu", "temperature", "{{ value_json.tempf }}", "", "", "°F"},
{"sensor", "hum", "htu", "humidity", "{{ value_json.hum }}", "", "", "%"}
{"sensor", "tempc", "htu", "temperature", jsonTemp, "", "", "°C"},
{"sensor", "tempf", "htu", "temperature", jsonTempf, "", "", "°F"},
{"sensor", "hum", "htu", "humidity", jsonHum, "", "", "%"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -208,8 +200,8 @@ void pubMqttDiscovery()
#define DHTparametersCount 2
Log.trace(F("DHTDiscovery" CR));
char *DHTsensor[DHTparametersCount][8] = {
{"sensor", "tempc", "dht", "temperature", "{{ value_json.temp }}", "", "", "°C"},
{"sensor", "hum", "dht", "humidity", "{{ value_json.hum }}", "", "", "%"}};
{"sensor", "tempc", "dht", "temperature", jsonTemp, "", "", "°C"},
{"sensor", "hum", "dht", "humidity", jsonHum, "", "", "%"}};
for (int i = 0; i < DHTparametersCount; i++)
{
@@ -225,7 +217,7 @@ void pubMqttDiscovery()
#ifdef ZsensorADC
Log.trace(F("ADCDiscovery" CR));
char *ADCsensor[8] = {"sensor", "adc", "", "", "{{ value_json.adc }}", "", "", ""};
char *ADCsensor[8] = {"sensor", "adc", "", "", jsonAdc, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -241,9 +233,9 @@ void pubMqttDiscovery()
#define BH1750parametersCount 3
Log.trace(F("BH1750Discovery" CR));
char *BH1750sensor[BH1750parametersCount][8] = {
{"sensor", "lux", "BH1750", "illuminance", "{{ value_json.lux }}", "", "", "lu"},
{"sensor", "ftCd", "BH1750", "", "{{ value_json.ftCd }}", "", "", ""},
{"sensor", "wattsm2", "BH1750", "", "{{ value_json.wattsm2 }}", "", "", "wm²"}
{"sensor", "lux", "BH1750", "illuminance", jsonLux, "", "", "lu"},
{"sensor", "ftCd", "BH1750", "", jsonFtcd, "", "", ""},
{"sensor", "wattsm2", "BH1750", "", jsonWm2, "", "", "wm²"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -263,9 +255,9 @@ void pubMqttDiscovery()
#define TSL2561parametersCount 3
Log.trace(F("TSL2561Discovery" CR));
char *TSL2561sensor[TSL2561parametersCount][8] = {
{"sensor", "lux", "TSL2561", "illuminance", "{{ value_json.lux }}", "", "", "lu"},
{"sensor", "ftcd", "TSL2561", "", "{{ value_json.ftcd }}", "", "", ""},
{"sensor", "wattsm2", "TSL2561", "", "{{ value_json.wattsm2 }}", "", "", "wm²"}
{"sensor", "lux", "TSL2561", "illuminance", jsonLux, "", "", "lu"},
{"sensor", "ftcd", "TSL2561", "", jsonFtcd, "", "", ""},
{"sensor", "wattsm2", "TSL2561", "", jsonWm2, "", "", "wm²"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -283,7 +275,7 @@ void pubMqttDiscovery()
#ifdef ZsensorHCSR501
Log.trace(F("HCSR501Discovery" CR));
char *HCSR501sensor[8] = {"binary_sensor", "hcsr501", "", "", "{{value_json.hcsr501}}", "true", "false", ""};
char *HCSR501sensor[8] = {"binary_sensor", "hcsr501", "", "", jsonPresence, "true", "false", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -297,7 +289,7 @@ void pubMqttDiscovery()
#ifdef ZsensorGPIOInput
Log.trace(F("GPIOInputDiscovery" CR));
char *GPIOInputsensor[8] = {"binary_sensor", "GPIOInput", "", "", "{{value_json.gpio}}", "HIGH", "LOW", ""};
char *GPIOInputsensor[8] = {"binary_sensor", "GPIOInput", "", "", jsonGpio, "HIGH", "LOW", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -313,9 +305,9 @@ void pubMqttDiscovery()
#define INA226parametersCount 3
Log.trace(F("INA226Discovery" CR));
char *INA226sensor[INA226parametersCount][8] = {
{"sensor", "volt", "INA226", "", "{{ value_json.volt }}", "", "", "V"},
{"sensor", "current", "INA226", "", "{{ value_json.current }}", "", "", "A"},
{"sensor", "power", "INA226", "", "{{ value_json.power }}", "", "", "W"}
{"sensor", "volt", "INA226", "", jsonVolt, "", "", "V"},
{"sensor", "current", "INA226", "", jsonCurrent, "", "", "A"},
{"sensor", "power", "INA226", "", jsonPower, "", "", "W"}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};
@@ -348,7 +340,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayRF
// Sensor to display RF received value
Log.trace(F("gatewayRFDiscovery" CR));
char *gatewayRF[8] = {"sensor", "gatewayRF", "", "", "{{ value_json.value }}", "", "", ""};
char *gatewayRF[8] = {"sensor", "gatewayRF", "", "", jsonVal, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -363,7 +355,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayRF2
// Sensor to display RF received value
Log.trace(F("gatewayRF2Discovery" CR));
char *gatewayRF2[8] = {"sensor", "gatewayRF2", "", "", "{{ value_json.value }}", "", "", ""};
char *gatewayRF2[8] = {"sensor", "gatewayRF2", "", "", jsonVal, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -378,7 +370,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayRFM69
// Sensor to display RF received value
Log.trace(F("gatewayRFM69Discovery" CR));
char *gatewayRFM69[8] = {"sensor", "gatewayRFM69", "", "", "{{ value_json.value }}", "", "", ""};
char *gatewayRFM69[8] = {"sensor", "gatewayRFM69", "", "", jsonVal, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -393,7 +385,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayLORA
// Sensor to display RF received value
Log.trace(F("gatewayLORADiscovery" CR));
char *gatewayLORA[8] = {"sensor", "gatewayLORA", "", "", "{{ value_json.message }}", "", "", ""};
char *gatewayLORA[8] = {"sensor", "gatewayLORA", "", "", jsonMsg, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -408,7 +400,7 @@ void pubMqttDiscovery()
#ifdef ZgatewaySRFB
// Sensor to display RF received value
Log.trace(F("gatewaySRFBDiscovery" CR));
char *gatewaySRFB[8] = {"sensor", "gatewaySRFB", "", "", "{{ value_json.value }}", "", "", ""};
char *gatewaySRFB[8] = {"sensor", "gatewaySRFB", "", "", jsonVal, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -423,7 +415,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayPilight
// Sensor to display RF received value
Log.trace(F("gatewayPilightDiscovery" CR));
char *gatewayPilight[8] = {"sensor", "gatewayPilight", "", "", "{{ value_json.message }}", "", "", ""};
char *gatewayPilight[8] = {"sensor", "gatewayPilight", "", "", jsonMsg, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -438,7 +430,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayIR
// Sensor to display IR received value
Log.trace(F("gatewayIRDiscovery" CR));
char *gatewayIR[8] = {"sensor", "gatewayIR", "", "", "{{ value_json.value }}", "", "", ""};
char *gatewayIR[8] = {"sensor", "gatewayIR", "", "", jsonVal, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -453,7 +445,7 @@ void pubMqttDiscovery()
#ifdef Zgateway2G
// Sensor to display 2G received value
Log.trace(F("gateway2GDiscovery" CR));
char *gateway2G[8] = {"sensor", "gateway2G", "", "", "{{ value_json.message }}", "", "", ""};
char *gateway2G[8] = {"sensor", "gateway2G", "", "", jsonMsg, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
@@ -468,7 +460,7 @@ void pubMqttDiscovery()
#ifdef ZgatewayBT
// Sensor to display BT received value
Log.trace(F("gatewayBTDiscovery" CR));
char *gatewayBT[8] = {"sensor", "gatewayBT", "", "", "{{ value_json.id }}", "", "", ""};
char *gatewayBT[8] = {"sensor", "gatewayBT", "", "", jsonId, "", "", ""};
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
Log.trace(F("CreateDiscoverySensor" CR));
+56
View File
@@ -41,4 +41,60 @@ extern void createDiscovery(char * sensor_type,
#define DEVICEMANUFACTURER "OMG_community"
/*-------------- Auto discovery macros-----------------*/
// Set the line below to true so as to have autodiscovery working with OpenHAB
#define OpenHABDiscovery false
#if OpenHABDiscovery // OpenHAB autodiscovery value key definition (is defined command is not supported by OpenHAB)
#define jsonBatt "{{ value_json.batt }}"
#define jsonLux "{{ value_json.lux }}"
#define jsonPres "{{ value_json.pres }}"
#define jsonFer "{{ value_json.fer }}"
#define jsonMoi "{{ value_json.moi }}"
#define jsonHum "{{ value_json.hum }}"
#define jsonTemp "{{ value_json.tem }}"
#define jsonStep "{{ value_json.steps }}"
#define jsonWeight "{{ value_json.weight }}"
#define jsonPresence "{{ value_json.presence }}"
#define jsonAltim "{{ value_json.altim }}"
#define jsonAltif "{{ value_json.altift }}"
#define jsonTempf "{{ value_json.tempf }}"
#define jsonMsg "{{ value_json.message }}"
#define jsonVal "{{ value_json.value }}"
#define jsonVolt "{{ value_json.volt }}"
#define jsonCurrent "{{ value_json.current }}"
#define jsonPower "{{ value_json.power }}"
#define jsonGpio "{{ value_json.gpio }}"
#define jsonFtcd "{{ value_json.ftcd }}"
#define jsonWm2 "{{ value_json.wattsm2 }}"
#define jsonAdc "{{ value_json.adc }}"
#define jsonPa "{{ float(value_json.pa) * 0.01 }}"
#define jsonId "{{ value_json.id }}"
#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 jsonMoi "{{ value_json.moi | is_defined }}"
#define jsonHum "{{ value_json.hum | is_defined }}"
#define jsonTemp "{{ value_json.tem | 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 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 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 }}"
#endif
#endif