This will set up a Raspberry Pi to connect to a Tesla Powerwall Gateway (TEG) and bridge that connection to the ethernet connected LAN.
As of Tesla Powerwall Firmware 25.10.1, a local host based static route using the Powerwall LAN IP (ie. sudo ip route add 192.168.91.1 via $POWERWALL_IP
) is no longer supported by the Powerwall. Tesla is blocking access via this method. You will need to use a bridge method (as shown below) or have your host direclty connect to the WiFi Access Point on your Powerwall (gateway) to get the extended metrics (vitals).
Below is a method to set up a Raspberry Pi to be a bridge between your LAN and the Powerwall, which will require you to set up a local host baed route (ie. sudo ip route add 192.168.91.1 via $RPI_IP
). Alternatively, you can see a method to host pypowerwall on Raspberry Pi that connects to both your LAN and Powerwall. That is described here: jasonacox/Powerwall-Dashboard#607
___________________ __________________________ _______________
[ Powerwall Gateway ] [ Raspberry Pi (Bridge) ] [ Host ]
[ TEG ] WiFi [__________________________] LAN [ Linux/Mac/Win ]
[ WiFi: TEG-xxx ] <---- [ 192.168.91.x | 10.0.1.55 ] <-----> [ 10.0.1.65 ]
[ 192.168.91.1 ] [ WiFi (dhcp) | Ethernet ] [ LAN ]
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ [‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾] ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
[ NAT to 192.168.91.x. ]
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
- Create or edit
/etc/wpa_supplicant/wpa_supplicant.conf
:
network={
ssid="TEG-xxx"
psk="password"
}
- Restart Networking and Test
sudo systemctl restart networking
# Test
ifconfig wlan0
ping -c 1 192.168.91.1
- Set up IPv4 Routing and Reboot
# Add IP Forwarding - Uncomment net.ipv4.ip_forward=1
sudo sed -i -e '/^#net\.ipv4\.ip_forward=1/s/^#//' /etc/sysctl.conf
sudo sysctl -w net.ipv4.ip_forward=1
# Restart
sudo reboot
- Set up NAT
# The Powerwall will reject IP addresses not in the 192.168.91.x range
# so you will need to set up network address translation.
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# There are various ways to make them persistent, here is one.
sudo apt install iptables-persistent
sudo netfilter-persistent save
On the host, you need to add a route to use the Raspberry Pi as a gateway to get to the Powerwall Gateway.
# Linux
sudo ip r add 192.168.91.0/24 via 10.0.1.55
# MacOS
sudo route add -host 192.168.91.1 10.0.1.55
# Test
ping -c 1 192.168.91.1
curl -ik https://192.168.91.1
Yes, but the traffic can't make it back to the Gateway unless you add the route back to the Powerwall via the RPi.
Alternative: If you are using your RPi to poll the Powerwall and just present the data (via Dashboard, API, etc) to your LAN, you don't need to add the IP forwarding, just Steps 1 and 2. The Powerwall would only have access to your RPi in that case.
That would work as well. Would you be willing to share your setup?