Tag: rpi

Raspberry Pi installeren met SSD‑boot, Tailscale en Home Assistant voor externe toegang

Raspberry Pi installeren met SSD‑boot, Tailscale en Home Assistant voor externe toegang

In deze handleiding leg ik uit hoe je een Raspberry Pi instelt als Tailscale‑subnetrouter, zodat een externe locatie veilig toegang krijgt tot een Home Assistant‑installatie op een andere plek.
Deze setup is gebaseerd op een echte situatie tussen twee locaties: Thuis en vakantie adres.


1. Raspberry Pi voorbereiden

Installeer Raspberry Pi OS Lite (64‑bit) met Raspberry Pi Imager. Schakel SSH in, stel een hostname in en configureer WiFi indien nodig.
Installeer het OS direct op een SSD voor maximale stabiliteit.

sudo apt update
sudo apt upgrade -y

2. Tailscale installeren

Tailscale maakt een veilige VPN‑verbinding tussen apparaten zonder ingewikkelde firewall‑instellingen.

Installeren:

curl -fsSL https://tailscale.com/install.sh | sh

Starten en aanmelden:

sudo tailscale up

Status controleren:

tailscale status

Je ziet nu een 100.x.x.x Tailscale‑IP.


3. Subnet Router inschakelen

Een subnetrouter zorgt ervoor dat apparaten op locatie A apparaten op locatie B kunnen bereiken.

IP‑forwarding inschakelen

Tijdelijk:

sudo sysctl -w net.ipv4.ip_forward=1

Permanent:

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1

Reboot de Pi.

LAN‑routes adverteren

Voorbeeld LAN: 192.168.86.0/24

sudo tailscale up --advertise-routes=192.168.86.0/24

Ga naar de Tailscale‑adminconsole en keur de route goed.

Nu werkt de Pi als subnetrouter.


4. Waarom HA Voice niet werkt via Tailscale

Op de externe locatie kan de PC Home Assistant bereiken via Tailscale, maar HA Voice niet.

HA Voice kan wél:

  • Lokale LAN‑IP’s bereiken
  • Publieke internet‑URL’s bereiken

HA Voice kan niet:

  • Tailscale‑IP’s bereiken
  • LAN‑IP’s van een ander netwerk
  • Subnetroutes gebruiken

Daarom werkt een adres zoals:

http://100.x.x.x:8123/api/esphome/...

wel op de PC, maar niet op HA Voice.


5. Oplossing: gebruik de externe URL van Home Assistant

HA Voice werkt overal als Home Assistant een publieke URL heeft, bijvoorbeeld:

https://extern_url.nl

Instellen in Home Assistant:

Instellingen → Systeem → Netwerk → Home Assistant URL’s

Internal URL: http://192.168.86.85:8123
External URL: https://extern_url.nl

Nu werkt HA Voice vanaf elke locatie.


6. Music Assistant correct instellen

Heb je een Home Assistant Voice Preview Edition (Voice PE) op een externe locatie staan (bijvoorbeeld op een vakantieadres of kantoor) en wil je hierop muziek streamen vanaf je Music Assistant-server thuis?

Als je probeert te streamen over een VPN, loop je vaak tegen een bekend probleem aan: de stream loopt op je scherm, maar je hoort pure stilte. Dit komt omdat de Voice PE de audio-URL rechtstreeks via het lokale IP-adres van je thuisnetwerk probeert op te halen, en dat netwerk kent hij niet.

Omdat je op een ESPHome-apparaat zoals de Voice PE geen Tailscale kunt installeren, lossen we dit op met een slimme netwerktruc via een lokale Raspberry Pi. In deze blog leg ik je stap voor stap uit hoe je dit inricht, zonder dat je thuisspeakers stoppen met werken!


De Opstelling

  • Thuislocatie: Home Assistant-server met de Music Assistant add-on actief.
  • Externe locatie: Een Raspberry Pi met Tailscale (ingesteld met een subnet router) én de Home Assistant Voice PE.

Stap 1: IP Forwarding aanzetten op de externe Raspberry Pi

Om de Raspberry Pi te veranderen in een slimme doorgeefsluis voor netwerkverkeer, moeten we eerst IP Forwarding inschakelen in Linux.

Log in via SSH op de externe Raspberry Pi en voer het volgende commando uit:

sudo sysctl -w net.ipv4.ip_forward=1

Om te zorgen dat deze instelling ook na een stroomuitval of herstart actief blijft, zetten we hem permanent vast in de configuratie:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

Stap 2: NAT/Masquerade instellen via iptables

We gaan nu de ingebouwde firewall (iptables) van de Raspberry Pi vertellen dat hij netwerkverkeer van de Voice PE moet accepteren en moet vermommen (masqueraden) over de Tailscale-tunnel (tailscale0).

Controleer eerst met ip link of jouw bekabelde netwerkkaart inderdaad eth0 heet (vervang dit door wlan0 als je Pi op wifi werkt). Voer daarna deze drie commando’s uit:

sudo iptables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o tailscale0 -j ACCEPT
sudo iptables -A FORWARD -i tailscale0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Stap 3: De Voice PE rechtstreeks naar de Pi sturen (De Gateway-truc)

Normaal gesproken stuurt de Voice PE al zijn internetverkeer naar de standaard internetrouter van de externe locatie. Die router snapt niets van jouw thuis-IP (bijv. 192.168.86.85) en gooit het verkeer weg.

We omzeilen de router volledig door de Raspberry Pi in te stellen als de ‘gateway’ van de Voice PE. Open de ESPHome YAML-configuratie van je Voice PE en pas het wifi: gedeelte aan met een handmatig IP-blok:

wifi:
  ssid: "Je_Wifi_Naam_Externe_Locatie"
  password: "Je_Wifi_Wachtwoord"
  
  manual_ip:
    static_ip: 192.168.1.150       # Een vrij IP-adres voor je Voice PE
    subnet: 255.255.255.0          # Het subnet van de externe locatie
    gateway: 192.168.1.23          # BELANGRIJK: Vul hier het lokale IP van je externe Raspberry Pi in!
    dns: 1.1.1.1                  

Klik op Install in ESPHome om de nieuwe firmware naar de Voice PE te flashen.

Stap 4: De netwerkregels permanent maken op de Pi

Linux wist handmatig ingevoerde iptables-regels zodra het apparaat herstart. Om te zorgen dat alles blijft werken na een stroomstoring, installeren we een hulpprogramma dat de regels automatisch opslaat en inlaadt:

sudo apt-get update && sudo apt-get install iptables-persistent -y

Tijdens de installatie verschijnt er een blauw scherm. Kies hier twee keer voor YES om de huidige IPv4-instellingen op te slaan.


Het Resultaat

Herstart de Raspberry Pi eenmalig via sudo reboot om te testen.

Zodra alles weer online is, gebeurt het volgende:

  1. Je start een stream in Music Assistant thuis naar de externe Voice PE.
  2. De Voice PE krijgt de opdracht de audio op te halen bij jouw thuis-IP (192.168.86.x).
  3. De Voice PE stuurt dit verzoek naar zijn gateway: de externe Raspberry Pi.
  4. De Pi pakt de data op, schiet het door de beveiligde Tailscale-tunnel, en de muziek begint direct lossless te spelen!

Omdat we de instellingen binnen Music Assistant zelf niet hebben hoeven aanpassen, blijven al je slimme speakers thuis ook gewoon perfect werken. Veel luisterplezier!


8. Conclusie

Met een Raspberry Pi als Tailscale‑subnetrouter kun je veilig toegang krijgen tot Home Assistant vanaf een externe locatie.
HA Voice werkt alleen via een externe URL, en Music Assistant werkt nu met de ip table aanpassingen in de rpi.
Als je de instellingen voor music assistant hebt doorgevoerd, kan de interne url in HA ook weer op het interne ip adres gezet worden.
Dit is ideaal voor vakantiehuizen, bedrijfspanden en tweede woningen.

Loading

Translate »