Skip to content
Open
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
24 changes: 12 additions & 12 deletions TheengsGateway/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,18 @@ def main() -> None:
sys.exit("MQTT host is not specified")

# Remove possible discovery filter remnants not required after the RMAC introduction
if "GAEN" in configuration["discovery_filter"]:
configuration["discovery_filter"].remove("GAEN")
if "MS-CDP" in configuration["discovery_filter"]:
configuration["discovery_filter"].remove("MS-CDP")
if "APPLE_CONT" in configuration["discovery_filter"]:
configuration["discovery_filter"].remove("APPLE_CONT")
if "APPLE_CONTAT" in configuration["discovery_filter"]:
configuration["discovery_filter"].remove("APPLE_CONTAT")
if "APPLEDEVICE" in configuration["discovery_filter"]:
configuration["discovery_filter"].remove("APPLEDEVICE")
if "APPLEWATCH" in configuration["discovery_filter"]:
configuration["discovery_filter"].remove("APPLEWATCH")
if "GAEN" in configuration["discovery_filter"]["model_id"]:
configuration["discovery_filter"]["model_id"].remove("GAEN")
if "MS-CDP" in configuration["discovery_filter"]["model_id"]:
configuration["discovery_filter"]["model_id"].remove("MS-CDP")
if "APPLE_CONT" in configuration["discovery_filter"]["model_id"]:
configuration["discovery_filter"]["model_id"].remove("APPLE_CONT")
if "APPLE_CONTAT" in configuration["discovery_filter"]["model_id"]:
configuration["discovery_filter"]["model_id"].remove("APPLE_CONTAT")
if "APPLEDEVICE" in configuration["discovery_filter"]["model_id"]:
configuration["discovery_filter"]["model_id"].remove("APPLEDEVICE")
if "APPLEWATCH" in configuration["discovery_filter"]["model_id"]:
configuration["discovery_filter"]["model_id"].remove("APPLEWATCH")

write_configuration(configuration, config_path)
run(configuration, config_path)
11 changes: 8 additions & 3 deletions TheengsGateway/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,14 @@
"general_presence": 0,
"discovery_topic": "homeassistant",
"discovery_device_name": "TheengsGateway",
"discovery_filter": [
"IBEACON",
],
"discovery_filter": {
"brand": [],
"id": [],
"model": [],
"model_id": [
"IBEACON"
]
},
"adapter": "",
"scanning_mode": "active",
"time_sync": [],
Expand Down
5 changes: 4 additions & 1 deletion TheengsGateway/discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,10 @@ def publish_device_info(self, pub_device) -> None: # noqa: ANN001
device_data = json.dumps(pub_device_copy)
if (
pub_device_uuid in self.discovered_entities
or pub_device["model_id"] in self.configuration["discovery_filter"]
or pub_device["model_id"] in self.configuration["discovery_filter"]["model_id"]
or pub_device["model"] in self.configuration["discovery_filter"]["model"]
or pub_device["id"] in self.configuration["discovery_filter"]["id"]
or pub_device["brand"] in self.configuration["discovery_filter"]["brand"]
):
logger.debug("Already discovered or filtered: %s", pub_device_uuid)
self.publish(
Expand Down
4 changes: 2 additions & 2 deletions docs/use/use.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ docker run --rm \
-e DISCOVERY=true \
-e DISCOVERY_TOPIC=homeassistant \
-e DISCOVERY_DEVICE_NAME=TheengsGateway \
-e DISCOVERY_FILTER="[IBEACON,GAEN,MS-CDP,APPLE_CONT,APPLE_CONTAT]" \
-e DISCOVERY_FILTER="[\"model_id\":[IBEACON,GAEN,MS-CDP,APPLE_CONT,APPLE_CONTAT],\"id\":[],\"brand\":[],\"model\":[]]" \
-e SCANNING_MODE=active \
-e ADAPTER=hci0 \
-e IDENTITIES="{\"CC:AA:CC:DD:CC:CC\": \"keykeykeykeykeykey==\"}" \
Expand Down Expand Up @@ -253,7 +253,7 @@ If enabled (default), decoded devices publish their configuration to Home Assist
- You can enable/disable this with the `-D` or `--discovery` command line argument with a value of 1 (enable) or 0 (disable).
- You can set the discovery topic with the `-Dt` or `--discovery_topic` command line argument.
- You can set the discovery name with the `-Dn` or `--discovery_device_name` command line argument.
- You can filter devices from discovery with the `-Df` or `--discovery_filter` argument which takes a list of device model ID to filter.
- You can filter devices from discovery with the `-Df` or `--discovery_filter` argument which takes a list of device model ID's, ID's, brands, and models to filter.

<!-- vale Google.Acronyms = NO -->

Expand Down