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
Any idea how to get this to work for TWO inverters? I've tried many things with NAT, but no luck.
Obviously, the
dumb
answer is:This is the script I'm attempting: