TentPilot Scout
Scout is a free, open-source Python gateway that runs on your Mac, Windows, or Linux machine. It discovers Kasa smart plugs on your LAN, reads Govee sensors via Bluetooth, and streams everything to TentPilot over WebSocket. Your browser auto-pairs with it — no tokens to copy or paste.
Requirements
- Python 3.11 or later
- macOS, Windows 10+, or any Linux distro (Ubuntu, Raspberry Pi OS, etc.)
- Same Wi-Fi network as your Kasa / Govee devices
- For Govee BLE: Bluetooth adapter required (built into most Macs and modern laptops)
Installation
Install Scout via pip
Open a terminal and run:
pip install tentpilot-scout
Or install from source (for development):
git clone https://github.com/SpencerLiolios/tentpilot
cd tentpilot
pip install -e scout/
Start Scout
Just run:
tentpilot-scout
Scout starts a local HTTP server on port 19532 and begins scanning for devices. You'll see output like:
TentPilot Scout v0.1.0
Scanning LAN for Kasa devices...
Scanning BLE for Govee sensors...
Pairing server: http://localhost:19532
Waiting for browser connection...
Connect from the dashboard
Open your TentPilot dashboard in the browser. An amber banner will appear at the top: "Scout detected — Connect". Click Connect. That's it — Scout sends your token and connects to the server over WebSocket.
Your browser polls http://localhost:19532 every 3 seconds. When Scout is running, it responds. The dashboard shows the banner. Clicking Connect sends your JWT to Scout over localhost — no tokens to copy, no QR codes to scan.
Verify devices are discovered
Go to Devices in the dashboard. You should see your Kasa plugs and Govee sensors listed with source: scout. Scout polls Kasa every 30 seconds and streams readings continuously.
Headless mode (no browser)
For Pi or server installs, pass your gateway token directly:
tentpilot-scout --token YOUR_GATEWAY_TOKEN --server https://api-production-c448.up.railway.app
Get your gateway token from Settings → Scout in the dashboard.
Run Scout as a background service (macOS)
To start Scout automatically at login on macOS, create a launchd plist:
# ~/Library/LaunchAgents/com.tentpilot.scout.plist
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>Label</key><string>com.tentpilot.scout</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/tentpilot-scout</string>
<string>--token</string><string>YOUR_TOKEN</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.tentpilot.scout.plist
Troubleshooting
Kasa devices not discovered
Make sure your Mac and the Kasa plugs are on the same subnet. Scout sends UDP broadcast discovery packets — some Wi-Fi routers block these between subnets (common on guest networks). Try pinging a known Kasa device: ping 192.168.1.X.
Govee BLE not working on macOS
Bluetooth permissions must be granted in System Settings → Privacy & Security → Bluetooth. Add your terminal app to the allowed list. If using Python directly, add the Python binary too.
Banner not appearing in browser
Make sure Scout is running. Check that your browser isn't blocking localhost polling (some browsers block mixed-content HTTPS→HTTP). Chrome and Edge work best. The dashboard polls http://localhost:19532/ping every 3 seconds — open browser devtools network tab to confirm.