# ![Banner](banner.png) # 🔍 Home Assistant Auto-Finder (Windows + Linux) Et lille Python-script, der automatisk scanner dit lokale netvĂŠrk og finder, hvilken IP-adresse din **Home Assistant**-server bruger (port **8123**). Scriptet kan kĂžres bĂ„de pĂ„ **Windows** og **Linux**, sĂ„ lĂŠnge Python 3 er installeret. Perfekt til: - Headless Home Assistant installationer (ingen skĂŠrm pĂ„ boksen) - Proxmox / VM-miljĂžer - Raspberry Pi og andre smĂ„ bokse - Hurtigt at finde ny IP efter reinstall / flytning --- ## 🚀 Funktioner - Fungerer pĂ„ bĂ„de **Windows** og **Linux** - Finder automatisk din lokale IPv4-adresse - Antager et /24-netvĂŠrk (fx `192.168.2.0/24`) - Scanner hele subnettet efter Ă„ben port **8123** - KĂžrer i loop indtil en Home Assistant-server svarer - Kan altid stoppes med **CTRL + C** - Ingen eksterne Python-pakker – kun standardbiblioteket --- ## 📩 Krav - **Python 3.x** - NetvĂŠrksforbindelse til det subnet, hvor Home Assistant kĂžrer - PĂ„ Windows: Python tilfĂžjet til `PATH` (valgfrit, men rart) - PĂ„ Linux: Standard Python 3-installation (Debian/Ubuntu/RPiOS mv.) --- ## đŸ“„ Installation Pak ZIP-filen ud, sĂ„ du har disse filer: ```text find_ha.py README.md banner.png ``` --- ## ▶ Brug pĂ„ Linux Åbn en terminal i mappen med filerne og kĂžr: ```bash chmod +x find_ha.py ./find_ha.py ``` Eller: ```bash python3 find_ha.py ``` Eksempel-output: ```text 🔍 Home Assistant Auto-Finder (Windows + Linux) Scanner efter Home Assistant pĂ„ port 8123 KĂžrer indtil en server findes – stop med CTRL+C 🌐 Opdaget lokal IP-range (baseret pĂ„ /24): 192.168.2.0/24 ⏳ Ingen Home Assistant fundet endnu... prĂžver igen om 5 sekunder. ⏳ Ingen Home Assistant fundet endnu... prĂžver igen om 5 sekunder. ✅ Fundet Home Assistant: http://192.168.2.84:8123 FĂŠrdig. Åbn adressen ovenfor i din browser. ``` --- ## ▶ Brug pĂ„ Windows 1. SĂžrg for at **Python 3** er installeret (du kan teste i **PowerShell** eller **Kommandoprompt**): ```powershell python --version ``` eller ```powershell py --version ``` 2. NavigĂ©r til mappen med `find_ha.py`: ```powershell cd C:\sti\til\mappen ``` 3. KĂžr scriptet: ```powershell python .\find_ha.py ``` eller ```powershell py .\find_ha.py ``` Stop med **CTRL + C** hvis du vil afbryde. --- ## 🔍 Hvordan virker det? 1. **Finder lokal IPv4-adresse** Scriptet laver en "falsk" UDP-forbindelse til `8.8.8.8:80` for at finde den IP, dit system ville bruge til at gĂ„ pĂ„ nettet. Der sendes ingen rigtig trafik, men OS vĂŠlger det rigtige interface. 2. **Antager et /24-subnet** Hvis IP f.eks. er `192.168.2.57`, antager scriptet netvĂŠrket: ```text 192.168.2.0/24 ``` og scanner alle adresser fra `192.168.2.1` til `192.168.2.254`. 3. **Scanner port 8123** For hver IP prĂžves en TCP-forbindelse til port **8123**. Hvis den svarer, antages det, at det er en Home Assistant-instans. 4. **Looper indtil succes** Hvis der ikke findes nogen, venter scriptet et par sekunder og prĂžver igen. --- ## đŸ§Ș Typiske scenarier - Du har lige installeret Home Assistant pĂ„ en **Raspberry Pi** uden skĂŠrm - Du har lavet en ny **VM i Proxmox** med Home Assistant - Din router har givet en anden IP end du forventede - Du sĂŠtter Home Assistant op for andre, og vil hurtigt kunne finde IP’en --- ## ❗ Fejlfinding ### Scriptet siger: *"Kunne ikke finde en ikke-127.x IPv4-adresse."* Mulige Ă„rsager: - Maskinen er ikke forbundet til et netvĂŠrk - Der er kun loopback (127.0.0.1) aktivt - VPN / specielle netvĂŠrksopsĂŠtninger ➜ Tjek din netvĂŠrksforbindelse og prĂžv igen. --- ### Scriptet finder ingen Home Assistant Tjek fĂžlgende: - KĂžrer Home Assistant faktisk? - Er port **8123** Ă„ben i firewall? - Er den maskine, du kĂžrer scriptet fra, pĂ„ **samme subnet**? - Bruger du VLANs, hvor der mĂ„ske ikke er routing mellem netvĂŠrkene? --- ## 📂 Projektstruktur ```text homeassistant-autofinder/ ├── find_ha.py ├── README.md └── banner.png ``` --- ## 📜 License MIT License --- ## 💡 IdĂ©er til videreudvikling - TilfĂžje scanning af flere porte (fx HTTPS, add-ons osv.) - Enkel web-UI der viser scanning live - Docker-version der kan kĂžre i container - Mulighed for at angive subnet manuelt via argumenter PR’er og forks er naturligvis velkomne 🙂