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
This is a bogus placeholder representing the local IP address (LAN) of your Powerwall gateway. If you don't know what it is, you can scan for it:
You can then use that Ip address to create the static route (replace 10.0.1.55 with the address of your Powerwall). You use use option 1 or 4 in setup to access the extended metrics.
Now for the bad news. As of Tesla Powerwall Firmware 25.10.1, the static route we are trying above no longer works. Tesla is blocking access via that method. You will need to direclty connect to the WiFi Access Point on your Powerwall to get the extended metrics (vitals). Here is a way to set up a RPi to do that: jasonacox/Powerwall-Dashboard#607
Good luck!