mirror of
https://github.com/tobiasehlert/teslamateapi.git
synced 2026-02-27 09:54:18 +08:00
fixing typo and some small things
adding README info of commands with documentation
This commit is contained in:
@@ -13,6 +13,7 @@ TeslaMateApi is a RESTful API to get data collected by self-hosted data logger *
|
||||
- Written in **[Golang](https://golang.org/)**
|
||||
- Data is collected from TeslaMate **Postgres** database and local **MQTT** Broker
|
||||
- Endpoints return data in JSON format
|
||||
- Send commands to your Tesla through the TeslaMateApi
|
||||
|
||||
### Table of Contents
|
||||
|
||||
@@ -108,6 +109,28 @@ Basically the same environment variables for the database, mqqt and timezone nee
|
||||
- **MQTT_NAMESPACE** string *(default: )*
|
||||
- **MQTT_SLEEPTIME** integer *(default: 100)*
|
||||
|
||||
**Commands** environment variables
|
||||
|
||||
- **ENABLE_COMMANDS** boolean *(default: false)*
|
||||
- **COMMANDS_ALL** boolean *(default: false)*
|
||||
- **COMMANDS_ALLOWLIST** string *(default: allow_list.json)*
|
||||
- **COMMANDS_WAKE** boolean *(default: false)*
|
||||
- **COMMANDS_ALERT** boolean *(default: false)*
|
||||
- **COMMANDS_REMOTESTART** boolean *(default: false)*
|
||||
- **COMMANDS_HOMELINK** boolean *(default: false)*
|
||||
- **COMMANDS_SPEEDLIMIT** boolean *(default: false)*
|
||||
- **COMMANDS_VALET** boolean *(default: false)*
|
||||
- **COMMANDS_SENTRYMODE** boolean *(default: false)*
|
||||
- **COMMANDS_DOORS** boolean *(default: false)*
|
||||
- **COMMANDS_TRUNK** boolean *(default: false)*
|
||||
- **COMMANDS_WINDOWS** boolean *(default: false)*
|
||||
- **COMMANDS_SUNROOF** boolean *(default: false)*
|
||||
- **COMMANDS_CHARGING** boolean *(default: false)*
|
||||
- **COMMANDS_CLIMATE** boolean *(default: false)*
|
||||
- **COMMANDS_MEDIA** boolean *(default: false)*
|
||||
- **COMMANDS_SHARING** boolean *(default: false)*
|
||||
- **COMMANDS_SOFTWAREUPDATE** boolean *(default: false)*
|
||||
|
||||
## API documentation
|
||||
|
||||
More detailed documentation of every endpoint will come..
|
||||
@@ -118,10 +141,13 @@ More detailed documentation of every endpoint will come..
|
||||
- GET `/api/v1/cars/:CarID`
|
||||
- GET `/api/v1/cars/:CarID/charges`
|
||||
- GET `/api/v1/cars/:CarID/charges/:ChargeID`
|
||||
- GET `/api/v1/cars/:CarID/command`
|
||||
- POST `/api/v1/cars/:CarID/command/:Command`
|
||||
- GET `/api/v1/cars/:CarID/drives`
|
||||
- GET `/api/v1/cars/:CarID/drives/:DriveID`
|
||||
- GET `/api/v1/cars/:CarID/status`
|
||||
- GET `/api/v1/cars/:CarID/updates`
|
||||
- POST `/api/v1/cars/:CarID/wake_up`
|
||||
- GET `/api/v1/globalsettings`
|
||||
- GET `/api/ping`
|
||||
|
||||
|
||||
@@ -43,7 +43,9 @@ func TeslaMateAPICarsCommandV1(c *gin.Context) {
|
||||
CarID = convertStringToInteger(ParamCarID)
|
||||
}
|
||||
|
||||
// validating that CarID is not zero
|
||||
if CarID == 0 {
|
||||
log.Println("[error] TeslaMateAPICarsCommand CarID is invalid (zero)!")
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "CarID invalid"})
|
||||
return
|
||||
}
|
||||
@@ -159,7 +161,7 @@ func getCommandToken() string {
|
||||
|
||||
func getAllowList() []string {
|
||||
|
||||
var allowAll bool = getEnvAsBool("COMMANDS_ALL", false)
|
||||
allowAll := getEnvAsBool("COMMANDS_ALL", false)
|
||||
|
||||
// https://tesla-api.timdorr.com/vehicle/commands/wake
|
||||
if getEnvAsBool("COMMANDS_WAKE", false) || allowAll {
|
||||
@@ -224,7 +226,7 @@ func getAllowList() []string {
|
||||
}
|
||||
|
||||
// https://tesla-api.timdorr.com/vehicle/commands/sunroof
|
||||
if getEnvAsBool("COMMAND_SUNROOF", false) || allowAll {
|
||||
if getEnvAsBool("COMMANDS_SUNROOF", false) || allowAll {
|
||||
allowList = append(allowList, "/command/sun_roof_control")
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -75,16 +75,16 @@ func main() {
|
||||
v1.GET("/cars/:CarID", TeslaMateAPICarsV1)
|
||||
v1.GET("/cars/:CarID/charges", TeslaMateAPICarsChargesV1)
|
||||
v1.GET("/cars/:CarID/charges/:ChargeID", TeslaMateAPICarsChargesDetailsV1)
|
||||
v1.GET("/cars/:CarID/commands", TeslaMateAPICarsCommandV1)
|
||||
v1.POST("/cars/:CarID/commands/:Command", TeslaMateAPICarsCommandV1)
|
||||
v1.GET("/cars/:CarID/drives", TeslaMateAPICarsDrivesV1)
|
||||
v1.GET("/cars/:CarID/drives/:DriveID", TeslaMateAPICarsDrivesDetailsV1)
|
||||
v1.GET("/cars/:CarID/status", TeslaMateAPICarsStatusV1)
|
||||
|
||||
v1.GET("/cars/:CarID/updates", TeslaMateAPICarsUpdatesV1)
|
||||
v1.GET("/globalsettings", TeslaMateAPIGlobalsettingsV1)
|
||||
|
||||
v1.GET("/cars/:CarID/command", TeslaMateAPICarsCommandV1)
|
||||
|
||||
v1.POST("/cars/:CarID/command/:Command", TeslaMateAPICarsCommandV1)
|
||||
v1.POST("/cars/:CarID/wake_up", TeslaMateAPICarsCommandV1)
|
||||
v1.GET("/globalsettings", TeslaMateAPIGlobalsettingsV1)
|
||||
}
|
||||
|
||||
// /api/ping endpoint
|
||||
|
||||
Reference in New Issue
Block a user