Add sanity check for !include and !secret to Config checker

Let me start with a story of woe. I moved all my passwords to a secrets.yaml file, as everyone should. However being new to using YAML and I inadvertently inserted “! secret secret_password_name” and “! secret secret_url_address” in several places.

The bug being the space between “!” and “secret”. This passes the various yaml configuration syntax tests. However, it causes all sorts of chaos as HA was using the string “! secret …” as a password instead of the actual password string. Some devices thought their API URL was “! secret base_url”. This really F’d things up and was a big headache to debug.

One clue was I saw one of my devices repeatedly trying to resolve the hostname “secret” via DNS every 10 seconds for days on end. Baffling at the time, but obvious now in hindsight.

One little warning would have save me days of pain.

I’m willing to help write some code and tests if someone can point me in the right files I need to look at.