Home Assistant: Geräte werden nach Änderung der IP-Adresse nicht mehr gefunden

 Da sich meine Heiminstallation immer weiter entwickelt, kommt es gelegentlich auch vor, dass ich IP-Adressen ändern muss.

Insbesondere habe ich jetzt fast alle ESPHome-Devices und andere IoT-Geräte in ein eigenes VLAN umgezogen und dann per Firewallregeln den Zugriff ins Internet abgeschaltet, sowie auch die Kommunikation von und zu den IoT-Geräten im Hausnetzwerk auf das notwendige Minimum eingeschränkt.

Da in Home Assistant viel über mDNS läuft, kommt es insbesondere beim Ansatz von VLANs mit unterschiedlichen Nummernbereichen zu Problemen, da Home Assistant dann die Geräte nicht immer finden. Perspektivisch möchte ich da mit Avahi auf meiner pfSense-Firewall experimentieren, aber zuerst brauchte ich eine Lösung, mit der ich auch die umgezogenen Geräte wieder aus Home Assistant uneingeschränkt ansprechen kann.

Problem

Nach der Änderung der IP-Adresse bzw. dem zus. Umzug in ein anderes VLAN kam es immer wieder vor, dass das Gerät in der Home Assistant Geräteliste als nicht verfügbar angezeigt wurde.

Ursache

Ursache ist in der Regel, die Datei /core/config/.storage/core.config_entries. Da der Ordner .storage versteckt ist, wird dieser in der Regel auch nicht im File Editor oder beim Zugriff über OpenSSH direkt angezeigt. 

Achtung! Bei der Datei core.config_entries handelt es sich um eine interne Datei von Home Assistant die normalerweise durch die GUI selbst gepflegt wird. Daher vor Änderung immer eine Sicherung anlegen!

In der Datei wird das Gerät mit der alten IP-Adresse (192.168.50.22) geführt und daher nicht mehr von Home Assistant gefunden:

            {
                "entry_id": "ec5d6d81fb683e2d626a741bfaf2a7a4",
                "version": 1,
                "domain": "esphome",
                "title": "wg_lichterkette",
                "data": {
                    "host": "192.168.50.33",
                    "port": 6053,
                    "password": "xxxxxxxxxxxxxxxx"
                },
                "options": {},
                "system_options": {
                    "disable_new_entities": false
                },
                "source": "zeroconf",
                "connection_class": "local_push",
                "unique_id": "wg_lichterkette"
            },

Lösung

Ich habe die IP-Adresse im Host-Eintrag durch den DNS-Namen im lokalen Netzwerk ersetzt. Dafür muss natürlich sichergestellt sein, dass der lokale DNS-Server den Namen auch entsprechend bereitstellt:

            {
                "entry_id": "ec5d6d81fb683e2d626a741bfaf2a7a4",
                "version": 1,
                "domain": "esphome",
                "title": "wg_lichterkette",
                "data": {
                    "host": "wg_lichterkette.local",
                    "port": 6053,
                    "password": "xxxxxxxxxxxxxxxx"
                },
                "options": {},
                "system_options": {
                    "disable_new_entities": false
                },
                "source": "zeroconf",
                "connection_class": "local_push",
                "unique_id": "wg_lichterkette"
            },

Die Bearbeitung der Datei kann entweder per VI aus der OpenSSH Webgui innerhalb von Home Assistant erfolgen, oder über sein Tool wie WinSCP vom Client aus.

Nach der Änderung der Datei führe ich direkt einen Neustart von Home Assistant aus, damit meine Änderung nicht wieder durch eine interne Verwaltungsfunktion überschrieben wird.

Kommentare