Node-RED nodes for controlling Tesla vehicles and energy sites via Teslemetry API
npm install @teslemetry/node-red-contrib-teslemetry

Node-RED nodes for controlling Tesla vehicles and energy sites via the Teslemetry API.
- 🚗 Vehicle Control: Lock/unlock, climate, charging, navigation, and more
- âš¡ Energy Management: Monitor and control Powerwall and Solar systems
- 📡 Real-Time Events: React to vehicle state changes via Server-Sent Events
- 🎯 Signal Monitoring: Track specific vehicle data fields (speed, battery, etc.)
- 🔄 Full API Coverage: Access all Teslemetry API features
Navigate to your Node-RED user directory (usually ~/.node-red) and install:
``bash`
cd ~/.node-red
npm install @teslemetry/node-red-contrib-teslemetry
Then restart Node-RED.
1. Open Node-RED in your browser
2. Go to Menu → Manage palette
3. Click the Install tab
4. Search for @teslemetry/node-red-contrib-teslemetry
5. Click Install
`bash`
cd ~/.node-red
npm install /path/to/packages/node-red-contrib-teslemetry
1. Teslemetry Account: Sign up at teslemetry.com
2. Access Token: Generate an API access token from your Teslemetry dashboard
3. Tesla Virtual Key: Configure virtual key access for your vehicle(s)
1. Drag a Teslemetry node onto your flow
2. Double-click to edit and add a new Teslemetry Config
3. Enter your Teslemetry access token
4. Save and deploy
Configuration:
- VIN: Select a vehicle or leave empty to use msg.vin.msg.command
- Command: Select a command or leave empty to use .
Inputs:
- msg.vin (string): VIN of the vehicle (if not configured).msg.command
- (string): Command to execute (if not configured).msg.driver_temp
- (number): Driver temperature for setTemps.msg.passenger_temp
- (number): Passenger temperature for setTemps.msg.seat
- (string): Seat position for setSeatHeater (e.g., front_left).msg.level
- (number): Heat level (0-3) for setSeatHeater.msg.percent
- (number): Charge limit percentage for setChargeLimit.msg.amps
- (number): Charging amps for setChargingAmps.msg.lat
- (number): Latitude for triggerHomelink.msg.lon
- (number): Longitude for triggerHomelink.msg.value
- (string): Address or text for navigationRequest.
Configuration:
- Site ID: Select a site or leave empty to use msg.siteId.msg.command
- Command: Select a command or leave empty to use .
Inputs:
- msg.siteId (number): Energy Site ID (if not configured).msg.command
- (string): Command to execute (if not configured).msg.percentage
- (number): Backup reserve percentage for setBackupReserve.msg.percent
- (number): Off-grid reserve percentage for setOffGridVehicleChargingReserve.
Configuration:
- VIN: Filter events for a specific vehicle (optional).
- Event Type: The type of event to listen for.
Event Types:
- all: Stream all events
- data: Real-time telemetry data updates
- state: State changes (online/asleep/charging)
- vehicle_data: Full vehicle data snapshots
- errors: Vehicle error events
- alerts: Vehicle alerts and notifications
- connectivity: Connection status changes
- credits: API credit usage updates
- config: Configuration changes
Outputs:
- msg.payload: The event data objectmsg.topic
- : The event type
Configuration:
- VIN: The vehicle to monitor
- Field: The specific signal field to listen for (e.g., speed, odometer, battery_level)
Outputs:
- msg.payload: The new value of the signalmsg.topic
- : signalmsg.field
- : The name of the field
1. Add a geofence or location trigger node
2. Add a function node to set msg.command = "lockDoors"
3. Add a teslemetry-vehicle-command node with your VIN configured
4. Connect them together
1. Add an inject node configured for your departure time
2. Add a teslemetry-vehicle-command node
3. Set Command to Start HVAC
4. Set temperatures using setTemps with msg.driver_temp and msg.passenger_temp
1. Add a teslemetry-event node
2. Set Event Type to data
3. Add a function node to filter charging-related updates
4. Add an email or pushover node for notifications
5. Send alert when charging completes
1. Add a teslemetry-signal node
2. Set Field to battery_level`
3. Add a switch node to check if value < 20
4. Add notification node (email/SMS/Pushover)
- Get Vehicle Data: Retrieves comprehensive vehicle information
- Wake Up: Wakes up the vehicle from sleep
- Flash Lights: Flashes the headlights
- Honk Horn: Honks the horn
- Lock/Unlock Doors: Controls door locks
- Remote Start: Enables keyless driving
- Actuate Trunk: Opens/closes front or rear trunk
- Climate Control: Start/stop HVAC, set temps, seat heaters, steering wheel heater
- Charging: Start/stop, open/close port, set limit, set amps
- Sentry Mode: Enable/disable Sentry Mode
- Homelink: Trigger Homelink at specific coordinates
- Navigation: Send destination to vehicle navigation
- Get Live Status: Live power usage details
- Get Site Info: Configuration and site details
- Set Backup Reserve: Set battery reserve percentage
- Set Operation Mode: Self Consumption, Backup, or Autonomous
- Set Storm Mode: Enable/disable Storm Mode
- Grid Import/Export: Configure grid export rules (Everything, Solar Only, Nothing)
- Off-Grid Reserve: Set vehicle charging reserve for off-grid operation
- Teslemetry Documentation: https://teslemetry.com/docs
- API Reference: https://developer.teslemetry.com
- Support: https://github.com/Teslemetry/typescript-teslemetry/issues
Apache-2.0 License - see LICENSE file for details
Contributions are welcome! Please see the main repository for contribution guidelines.