You do not need to configure this if your network is already configured and you ran "install.sh". Some devices like Raspberry Pi Zero W only support 2.4 GHz WiFi.
📶 WiFi Setup
▼💾 Archive System
▼Choose ONLY ONE archive system. If you want to use rsync, rclone, or NFS, delete or comment out the CIFS section.
🗄️ Storage Configuration
▼• A 128 GB or larger SD card is recommended (minimum 64 GB)
• The script will reserve 6 GB of fixed space
• CAM_SIZE of 40G is recommended, unless you accumulate a lot of footage
• One hour of recordings = 7-10 GB of data (depending on car model)
• MUSIC_SIZE must be sufficient for your music library
• If a size is not specified, that drive will not be created
The specified drive will be WIPED and completely repartitioned. DO NOT uncomment this line if you plan to use ONLY an SD card for boot and storage.
🌐 Network Services
▼Anyone on the $SSID (and $AP_SSID if configured) WiFi network can freely interact with the teslausb web interface if it is not secured!
🔔 Push Notifications
▼Push notifications consist of a title and a message. By default TESLAUSB_HOSTNAME is used as the title.
📁 Trigger Files (tesla_dashcam)
▼Uncomment any TRIGGER_FILE_xxxxx to create trigger file(s) in the archive directory for the listed clip type after all clips have been transferred.
For example: TRIGGER_FILE_SAVED=ARCHIVE_UPLOADED would create a file in $ARCHIVE_BASE/SavedClips/ARCHIVE_UPLOADED.
TRIGGER_FILE_ANY will create a trigger file in $ARCHIVE_BASE. This will make tesla_dashcam process both SavedClips and SentryClips when either changes.
Useful if using tesla_dashcam to process clips.
You can modify the value to your desired trigger filename. Remember to alter your tesla_dashcam trigger filename to match.
⚡ Keep Car Awake
▼Recent car firmware has deactivated the power ports when the vehicle enters a sleep state. This can hinder the completion of the archiving process by TeslaUSB. Tesla subsequently introduced the "Keep Accessory Power On" feature, but is NOT applicable to the data port used by Dashcam and TeslaUSB.
Several methods have been implemented: TeslaFi, Tessie, Bluetooth Low Energy (BLE), and Webhooks.
CHOOSE ONLY ONE METHOD! Do not mix TeslaFi with Tessie, or BLE with any of the services.
BLE:
++ Direct connection to the car; unlimited
- Additional complexity to configure initially
- Some security vulnerabilities
* See Hardware wiki for BLE hardware/software support notes
TeslaFi/Tessie:
+ Simple to configure initially
+ Remote monitoring and management
- Tessie: If you don't use Sentry Mode, you need to maintain consistent WiFi/internet connection
- Some security vulnerabilities
- Requires paid 3rd party service
Webhook:
+ Does not require teslausb to store credentials that can directly control your vehicle
- Requires another service like Home Assistant configured to receive webhooks
Case 1: [Compatible with TeslaFi, Tessie, BLE or Webhook]
You want Sentry Mode ON everywhere except when parked at home. Upon arriving home, Sentry Mode will already be ON to power TeslaUSB during archiving. Once complete, a command will be sent to turn OFF Sentry Mode.
>>> IMPORTANT: Verify that your in-car Sentry Mode is ON, and 'Exclude Home' is UNCHECKED.
Case 2: [Compatible with TeslaFi, Tessie, BLE or Webhook]
You DO NOT want Sentry Mode ON anywhere, except when archiving. Upon arriving home, TeslaUSB will send a command to turn ON Sentry Mode. Once archiving is complete, a command will be sent to turn OFF Sentry Mode.
>>> IMPORTANT: Verify that your in-car Sentry Mode is OFF.
Case 3: [Compatible with Tessie, BLE or Webhook]
Sentry Mode is NOT used by TeslaUSB. Instead, a periodic command is sent to the car to keep it awake.
All 3 methods have some level of security implications. For BLE, the key pair is stored on the device. For TeslaFi/Tessie, the API access token is in the config file.
Good security practices:
* Change your TeslaUSB user passwords (pi and root)
* Set user/password for the TeslaUSB AP (if enabled)
* Enable Tesla's pin-to-drive
* If your TeslaUSB has been compromised, immediately change your Tesla.com password
1. Log in to your TeslaFi account
2. Navigate to Settings → Tesla API → API Token (tab)
Enable TeslaFi API Command:
1. Navigate to Settings → Tesla API → Commands (tab)
2. Verify 'Sentry Mode' command is checked (enabled)
3. For added security, recommend disabling 'Unlock' command
1. Log in to your Tessie account
2. Navigate to Settings → Developer API → Generate access token
1. Ensure the TeslaUSB device is inside the vehicle and powered
2a. From the TeslaUSB Web UI: Menu > Tools > Pair BLE with Car
2b. Alternatively, if Web UI is not enabled, from SSH command line:
sudo /root/bin/tesla-control -ble -vin <your VIN> add-key-request /root/.ble/key_public.pem owner cloud_key
3. Shortly after initiating pairing, a request is shown for an authorized key card. Please tap a key card on the center console promptly and confirm on the car screen
4. If done successfully, you'll see an "Unknown Key" entry (can be renamed) under the car's Locks screen
Note: This DOES NOT prevent the car from locking, nor does it allow someone to easily unlock or drive the car. An authorized key (card, phone, fob) is still required.
A webhook message with a JSON body will be sent. The shape of the JSON will be: { "awake_command": "<command>" }
Commands that will be sent to this webhook:
1. start: Sent when SENTRY_CASE=2 and the archive process starts
2. stop: Sent when SENTRY_CASE=1 or 2 and the archive process ends
3. nudge: Sent when SENTRY_CASE=3 and the archive process is ongoing
You can manually turn on Sentry Mode or Camp Mode from the Tesla App. However, neither are great solutions as they keep the car awake indefinitely, unnecessarily consuming high voltage battery.
For that reason, it is a good idea to set up notification mechanisms (previous sections) so you know when to manually turn OFF Sentry/Camp Mode.
Another alternative is using a power bank or UPS hat to keep TeslaUSB powered independently of the car's USB power state. See the TeslaUSB wiki for more info.
🌡️ Temperature Monitor
▼Understanding your device's thermal profile is crucial for maintaining performance and reliability. As a reference, Raspberry Pi Foundation states its operating temperature range is 0°C to 85°C, and the system will begin throttling the processor when it reaches 80°C to prevent damage.
Anecdotally, other sub-components may become unstable at lower thresholds (e.g. Wi-Fi). As a general best practice, keep the temperature below 70°C. Start monitoring closely when it regularly reaches over 60°C.
Uncommenting any of the following parameters will activate TeslaUSB's temperature monitoring, which checks the temperature once per minute and retains the maximum value until the device restarts or powers off.
The following parameters determine when log entries and push messages (if configured) are triggered. The fixed interval case will only log entries, but will not send push messages, to avoid over-saturation.