Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add inuse binary sensor for DT24 #1553

Merged
merged 1 commit into from
Mar 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions main/ZgatewayBT.ino
Original file line number Diff line number Diff line change
Expand Up @@ -459,15 +459,16 @@ void strupp(char* beg) {

# ifdef ZmqttDiscovery
void DT24Discovery(const char* mac, const char* sensorModel_id) {
# define DT24parametersCount 6
# define DT24parametersCount 7
Log.trace(F("DT24Discovery" CR));
const char* DT24sensor[DT24parametersCount][9] = {
{"sensor", "volt", mac, "voltage", jsonVolt, "", "", "V", stateClassMeasurement},
{"sensor", "amp", mac, "current", jsonCurrent, "", "", "A", stateClassMeasurement},
{"sensor", "watt", mac, "power", jsonPower, "", "", "W", stateClassMeasurement},
{"sensor", "watt-hour", mac, "power", jsonEnergy, "", "", "kWh", stateClassMeasurement},
{"sensor", "price", mac, "", jsonMsg, "", "", "", stateClassNone},
{"sensor", "temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement}
{"sensor", "temp", mac, "temperature", jsonTempc, "", "", "°C", stateClassMeasurement},
{"binary_sensor", "inUse", mac, "power", jsonInuse, "", "", ""}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};

Expand Down
2 changes: 1 addition & 1 deletion main/ZmqttDiscovery.ino
Original file line number Diff line number Diff line change
Expand Up @@ -881,7 +881,7 @@ void pubMqttDiscovery() {
{"sensor", "volt", "RN8209", "voltage", jsonVolt, "", "", "V"},
{"sensor", "current", "RN8209", "current", jsonCurrent, "", "", "A"},
{"sensor", "power", "RN8209", "power", jsonPower, "", "", "W"},
{"binary_sensor", "inUse", "RN8209", "power", jsonInuse, "", "", ""}
{"binary_sensor", "inUse", "RN8209", "power", jsonInuseRN8209, "", "", ""}
//component type,name,availability topic,device class,value template,payload on, payload off, unit of measurement
};

Expand Down
146 changes: 74 additions & 72 deletions main/config_mqttDiscovery.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,79 +136,81 @@ void announceDeviceTrigger(bool use_gateway_info,
#endif

#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 jsonFor "{{ value_json.for }}"
# define jsonMoi "{{ value_json.moi }}"
# define jsonHum "{{ value_json.hum }}"
# 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 jsonTempc "{{ value_json.tempc }}"
# define jsonTempc2 "{{ value_json.tempc2 }}"
# define jsonTempc3 "{{ value_json.tempc3 }}"
# define jsonTempc4 "{{ value_json.tempc4 }}"
# 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 jsonEnergy "{{ value_json.energy }}"
# 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 }}"
# define jsonAddress "{{ value_json.address }}"
# define jsonOpen "{{ value_json.open }}"
# define jsonTime "{{ value_json.time }}"
# define jsonCount "{{ value_json.count }}"
# define jsonAlarm "{{ value_json.alarm }}"
# define jsonInuse "{{ value_json.power | float > 0 }}"
# define jsonVoltBM2 "{{% if value_json.model_id == \"BM2\" -%} {{value_json.volt}} {%- endif %}}"
# define jsonBatt "{{ value_json.batt }}"
# define jsonLux "{{ value_json.lux }}"
# define jsonPres "{{ value_json.pres }}"
# define jsonFer "{{ value_json.fer }}"
# define jsonFor "{{ value_json.for }}"
# define jsonMoi "{{ value_json.moi }}"
# define jsonHum "{{ value_json.hum }}"
# 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 jsonTempc "{{ value_json.tempc }}"
# define jsonTempc2 "{{ value_json.tempc2 }}"
# define jsonTempc3 "{{ value_json.tempc3 }}"
# define jsonTempc4 "{{ value_json.tempc4 }}"
# 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 jsonEnergy "{{ value_json.energy }}"
# 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 }}"
# define jsonAddress "{{ value_json.address }}"
# define jsonOpen "{{ value_json.open }}"
# define jsonTime "{{ value_json.time }}"
# define jsonCount "{{ value_json.count }}"
# define jsonAlarm "{{ value_json.alarm }}"
# define jsonInuse "{{ value_json.power | float > 0 }}"
# define jsonInuseRN8209 "{{ value_json.power | float > 0.02 }}"
# define jsonVoltBM2 "{{% if value_json.model_id == \"BM2\" -%} {{value_json.volt}} {%- endif %}}"
#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 jsonInuse "{{ value_json.power | is_defined | float > 0 }}"
# define jsonVoltBM2 "{{% if value_json.model_id == \"BM2\" and value_json.volt is defined -%} {{value_json.volt}} {%- endif %}}"
# 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 jsonInuse "{{ value_json.power | is_defined | float > 0 }}"
# define jsonInuseRN8209 "{{ value_json.power | is_defined | float > 0.02 }}"
# define jsonVoltBM2 "{{% if value_json.model_id == \"BM2\" and value_json.volt is defined -%} {{value_json.volt}} {%- endif %}}"
#endif

#define stateClassNone ""
Expand Down