dummylabs / thewatchman

Home Assistant custom integration to keep track of missing entities and actions in your config files
MIT License
475 stars 20 forks source link

Exclude description sections of automations.yaml (entities noted in comment sections) #71

Open bcutter opened 1 year ago

bcutter commented 1 year ago

Problem: Currently Watchman also finds and lists entities which are used in the comment sections of automations. This triggers false positives - and makes (based on the intensity of individual documentation/commenting) using this basically absolutely great integration a bit useless. 😞

Feature Request: Ignore all entites from the description: sections of automations.yaml

Example:

+--------------------------------------------------------------+-----------------+--------------------------------------------------------------+
| Entity ID                                                    | State           | Location                                                     |
+--------------------------------------------------------------+-----------------+--------------------------------------------------------------+
| group.anwesenheit_zuhause                                    | missing         | automations.yaml:1575,3896,4151,8725                         |

Actual automations.yaml snippet:

- id: 'XXXXXXXXXXXXXX'
  alias: Automation
  description: '...
    ...
    - Von "group.anwesenheit_zuhause" (state: home|not_home) auf "zone.home" (numeric_state:
    0|!0) umgestellt
    ...'

This should remove false positives massively. Looking at some (former) issues and reports, plenty of those findings for others too.

Manually setting those entities on the ignore list is only workaround - if at all.

bcutter commented 1 year ago

Plus (more improvement to reduce false positives):

Hiekkaharju commented 1 year ago

This part is pretty much same as https://github.com/dummylabs/thewatchman/issues/56

bcutter commented 1 year ago

You're right. So ignore that additional post for now and let's focus on the original one.

At the same time both share the same target - getting rid of unnecessary false positives.

bcutter commented 1 year ago

Meanwhile I discovered that the integration alreay ignores certain entities, usually when there's a # close or directly before the entity, e. g. this is a text and this is a #sensor.entity.

Unfortunately, that's not enough for the basic issue, as comment sections spread over a certain amount of text. But maybe this "comment section detection" can be extended to also address and solve this issue.

DataBitz commented 1 year ago

This also affects automation blueprints which are not deployed.

input: power_sensor_1_entity: name: Power Sensor 1 description: This is the main power sensor that will be used to measure load (e.g. sensor.main_meter_power) selector: entity: filter:

image

dummylabs commented 7 hours ago

In version 0.6.4 single-line description: and example: fields will be excluded from parsing. As far as I can see, multiline descriptions are not prohibited in YAML configuration, but they are not encouraged by the Home Assistant UI. For example, in the automations editor, they are collapsed into a single line when displayed or updated via the UI.

Supporting multiline descriptions in parsing requires significant changes, we might address this later.

bcutter commented 4 hours ago

I really like the recent work you are putting in this integration.

Looking forward to see the improvement running 0.6.4. Any estimations when it will be released?

dummylabs commented 34 minutes ago

Thanks for the kind words! It's almost ready, just polishing minor details and running some real-world tests before publishing. There were a lot of changes and refactoring under the hood, so I expect there may be some bugs not covered by the unit tests. Hopefully, this will make future development easier.