ESPhome mit vielen !includes mal inkl. MQTT pusblishing mal ohne

Musste mal wieder ein paar ESPs an’s aktuelle ESPhome anpassen und hatte mich wie schon öfters drüber geärgert das ich zwar viel mit !includes arbeite um Dinge die ich für mehrere ESPs benötige nicht doppel oder 10-fach coden muss. Also packages, sensoren, binary_sensoren und ähnliches.

Also mein HauptYAML ist eigentlich sehr kurz und besteht ausser dem header sozusagen fast nur aus includes, in der Regel dann kein 100 Zeilen, wird ja sonst unübersichtlich, und vor allem unangenehm bei breaking changes wenn man an dutzend yamls für jeden ESP die identische Änderung vollziehen muss.

Was mich da bisher immer ein wenig geärgert hatte war die Tatsache das ich von jedem dieser Includes immer 2 Stück brauchte, eins das auch Richtung MQTT Broker Topics verteilt also ne Zeile state_topic: xxxx enthalten musste und eins ohne. Je nachem ob ein ESP halt auch was zum Broker schicken soll oder nicht.
Denn natürlich compiliert sowas nicht mit einem vorhandenen state_topic wenn man keinen mqtt: definiert hat.

Jetzt die Lösung, man braucht eigentlich nur ein mqtt.yaml und z.B. ein fakemqtt.yaml, also eins in dem alle relevanten Daten für den Broker drinstehen und halt ein fakemqtt.yaml in dem man nur

mqtt:
  broker: 127.0.0.1
  reboot_timeout: 0s
  discovery: false
  discovery_prefix: deaktiviert

einträgt.
somit kann der Rest aller !includes immer inkl. state_topic aufgebaut werden und je nachdem ob man an der folgenden Stelle das Eine oder Andere auswählt gibts dann halt ein publishing auf den Broker oder die Dinge landen im Nirvana. Also wie so ne Art Switch zwichen mit oder ohne MQTT publishing.

packages:
  mqtt: !include
    file: package/mqtt.yaml
  # file: package/fakemqtt.yaml

Vielleicht hat ja jemand auch ne noch einfachere Lösung, bisher ist mir selbst leider keine gescheitere eingefallen.