[RF] Improve Home Assistant auto discoverability (#2057)
* add '-DvalueAsATopic=true' to RF based environments add '-DvalueAsATopic=true' to RF based environments. Required to support changes in zgatewayRF.ino for Home Assistant discoverability * Modify gatewayRF to improve Home Assistant auto discoverability Pass "recieved" as the type argument and switchRF[0] as the subtype argument to announceDeviceTrigger() which will cause recieved codes to be picked up by home assistant as triggers, i.e. When setting up automations in Home Assistant, selecting a `device` trigger and an OMG device will allow the user to select a code picked up during the autoDiscover window as the trigger for the automation, for example "1394004" recieved. In order to support this, the `'-DvalueAsATopic=true'` argument must be added to all environments using the RF Library Also change getUniqueId() call to remove leading '-' which will prevent MQTT topics having '--' in them --------- Co-authored-by: James Carey <james.carey@uws.ac.uk>
This commit is contained in:
1 parent
ac1ad10240
commit
f5bca0054e
2 files changed
+7
-2
No files matched your search
@@ -277,6 +277,7 @@ build_flags =
|
||||
${com-esp32.build_flags}
|
||||
'-DZgatewayRF="RF"'
|
||||
'-DGateway_Name="OMG_ESP32_RF"'
|
||||
'-DvalueAsATopic=true'
|
||||
custom_description = RF gateway using RCSwitch library
|
||||
|
||||
[env:esp32dev-pilight]
|
||||
@@ -1436,6 +1437,7 @@ build_flags =
|
||||
${com-esp.build_flags}
|
||||
'-DZgatewayRF="RF"'
|
||||
'-DGateway_Name="OMG_ESP8266_RF"'
|
||||
'-DvalueAsATopic=true'
|
||||
board_build.flash_mode = dout
|
||||
custom_description = The historic RF gateway using RCSwitch library
|
||||
|
||||
@@ -1453,6 +1455,7 @@ build_flags =
|
||||
'-DZgatewayRF="RF"'
|
||||
'-DZradioCC1101="CC1101"'
|
||||
'-DGateway_Name="OMG_ESP8266_RF-CC1101"'
|
||||
'-DvalueAsATopic=true'
|
||||
board_build.flash_mode = dout
|
||||
custom_description = RF gateway using RCSwitch library with CC1101
|
||||
|
||||
|
||||
+4
-2
@@ -95,12 +95,14 @@ void RFtoMQTTdiscovery(uint64_t MQTTvalue) {
|
||||
String discovery_topic = String(subjectRFtoMQTT);
|
||||
# endif
|
||||
|
||||
String theUniqueId = getUniqueId("-" + String(switchRF[0]), "-" + String(switchRF[1]));
|
||||
String theUniqueId = getUniqueId(String(switchRF[0]), "-" + String(switchRF[1]));
|
||||
String subType = String(switchRF[0]);
|
||||
|
||||
announceDeviceTrigger(
|
||||
false,
|
||||
(char*)discovery_topic.c_str(),
|
||||
"", "",
|
||||
"received",
|
||||
(char*)subType.c_str(),
|
||||
(char*)theUniqueId.c_str(),
|
||||
"", "", "", "");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user