@teslemetry/node-red-contrib-teslemetry 0.2.1
Node-RED nodes for controlling Tesla vehicles and energy sites via Teslemetry API
Node-RED Teslemetry Integration
Node-RED nodes for controlling Tesla vehicles and energy sites via the Teslemetry API.
Features
- 🚗 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
Installation
From npm (Recommended)
Navigate to your Node-RED user directory (usually ~/.node-red) and install:
cd ~/.node-red
npm install @teslemetry/node-red-contrib-teslemetry
Then restart Node-RED.
From Node-RED Palette Manager
- Open Node-RED in your browser
- Go to Menu → Manage palette
- Click the Install tab
- Search for
@teslemetry/node-red-contrib-teslemetry - Click Install
Local Development
cd ~/.node-red
npm install /path/to/packages/node-red-contrib-teslemetry
Prerequisites
- Teslemetry Account: Sign up at teslemetry.com
- Access Token: Generate an API access token from your Teslemetry dashboard
- Tesla Virtual Key: Configure virtual key access for your vehicle(s)
Configuration
- Drag a Teslemetry node onto your flow
- Double-click to edit and add a new Teslemetry Config
- Enter your Teslemetry access token
- Save and deploy
Nodes
teslemetry-config
Configuration node to store your Teslemetry Access Token.
teslemetry-vehicle-command
Send commands to a specific vehicle or retrieve vehicle data.
Configuration:
- VIN: Select a vehicle or leave empty to use
msg.vin. - Command: Select a command or leave empty to use
msg.command.
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 forsetTemps.msg.passenger_temp(number): Passenger temperature forsetTemps.msg.seat(string): Seat position forsetSeatHeater(e.g.,front_left).msg.level(number): Heat level (0-3) forsetSeatHeater.msg.percent(number): Charge limit percentage forsetChargeLimit.msg.amps(number): Charging amps forsetChargingAmps.msg.lat(number): Latitude fortriggerHomelink.msg.lon(number): Longitude fortriggerHomelink.msg.value(string): Address or text fornavigationRequest.
teslemetry-energy-command
Send commands to a Tesla Energy Site or retrieve site status.
Configuration:
- Site ID: Select a site or leave empty to use
msg.siteId. - Command: Select a command or leave empty to use
msg.command.
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 forsetBackupReserve.msg.percent(number): Off-grid reserve percentage forsetOffGridVehicleChargingReserve.
teslemetry-event
Listen for real-time Server-Sent Events (SSE) from Teslemetry.
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
teslemetry-signal
Listen for specific signal changes from a vehicle.
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
Usage Examples
Example 1: Lock Vehicle When Leaving Home
- Add a geofence or location trigger node
- Add a function node to set
msg.command = "lockDoors" - Add a teslemetry-vehicle-command node with your VIN configured
- Connect them together
Example 2: Start Climate Control on Schedule
- Add an inject node configured for your departure time
- Add a teslemetry-vehicle-command node
- Set Command to Start HVAC
- Set temperatures using setTemps with
msg.driver_tempandmsg.passenger_temp
Example 3: Monitor Charging and Send Notifications
- Add a teslemetry-event node
- Set Event Type to data
- Add a function node to filter charging-related updates
- Add an email or pushover node for notifications
- Send alert when charging completes
Example 4: Alert on Low Battery
- Add a teslemetry-signal node
- Set Field to
battery_level - Add a switch node to check if value < 20
- Add notification node (email/SMS/Pushover)
Available Vehicle Commands
- 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
Available Energy Commands
- 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
Resources
- Teslemetry Documentation: https://teslemetry.com/docs
- API Reference: https://developer.teslemetry.com
- Support: https://github.com/Teslemetry/typescript-teslemetry/issues
License
Apache-2.0 License - see LICENSE file for details
Contributing
Contributions are welcome! Please see the main repository for contribution guidelines.