Vehicle: fix detection indicator and add vehicledetect api (#4164)
This commit is contained in:
parent
48f208971d
commit
1b1358cb3f
10 changed files with 45 additions and 15 deletions
|
|
@ -133,10 +133,11 @@ export default {
|
|||
connected: Boolean,
|
||||
// charging: Boolean,
|
||||
enabled: Boolean,
|
||||
vehicleTitle: String,
|
||||
vehicleSoC: Number,
|
||||
vehicleDetectionActive: Boolean,
|
||||
vehiclePresent: Boolean,
|
||||
vehicleRange: Number,
|
||||
vehicleSoC: Number,
|
||||
vehicleTitle: String,
|
||||
vehicles: Array,
|
||||
minSoC: Number,
|
||||
targetTime: String,
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ export default {
|
|||
enabled: Boolean,
|
||||
charging: Boolean,
|
||||
minSoC: Number,
|
||||
vehicleDetectionActive: Boolean,
|
||||
vehicleRange: Number,
|
||||
vehicleTitle: String,
|
||||
targetTimeActive: Boolean,
|
||||
|
|
|
|||
|
|
@ -892,17 +892,21 @@ func (lp *LoadPoint) vehicleDefaultOrDetect() {
|
|||
lp.addTask(lp.vehicleOdometer)
|
||||
}
|
||||
} else if len(lp.coordinatedVehicles()) > 0 {
|
||||
// flush all vehicles before detection starts
|
||||
lp.log.DEBUG.Println("vehicle api refresh")
|
||||
provider.ResetCached()
|
||||
|
||||
// reset connection timer and starts api refresh timer
|
||||
lp.vehicleDetect = lp.clock.Now()
|
||||
lp.vehicleDetectTicker = lp.clock.Ticker(vehicleDetectInterval)
|
||||
lp.publish(vehicleDetectionActive, true)
|
||||
lp.startVehicleDetection()
|
||||
}
|
||||
}
|
||||
|
||||
// startVehicleDetection reset connection timer and starts api refresh timer
|
||||
func (lp *LoadPoint) startVehicleDetection() {
|
||||
// flush all vehicles before detection starts
|
||||
lp.log.DEBUG.Println("vehicle api refresh")
|
||||
provider.ResetCached()
|
||||
|
||||
lp.vehicleDetect = lp.clock.Now()
|
||||
lp.vehicleDetectTicker = lp.clock.Ticker(vehicleDetectInterval)
|
||||
lp.publish(vehicleDetectionActive, true)
|
||||
}
|
||||
|
||||
// stopVehicleDetection expires the connection timer and ticker
|
||||
func (lp *LoadPoint) stopVehicleDetection() {
|
||||
lp.vehicleDetect = time.Time{}
|
||||
|
|
|
|||
|
|
@ -85,4 +85,6 @@ type API interface {
|
|||
|
||||
// SetVehicle sets the active vehicle
|
||||
SetVehicle(vehicle api.Vehicle)
|
||||
// StartVehicleDetection allows triggering vehicle detection for debugging purposes
|
||||
StartVehicleDetection()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -274,3 +274,15 @@ func (lp *LoadPoint) SetVehicle(vehicle api.Vehicle) {
|
|||
// disable auto-detect
|
||||
lp.stopVehicleDetection()
|
||||
}
|
||||
|
||||
// StartVehicleDetection allows triggering vehicle detection for debugging purposes
|
||||
func (lp *LoadPoint) StartVehicleDetection() {
|
||||
// reset vehicle
|
||||
lp.setActiveVehicle(nil)
|
||||
|
||||
lp.Lock()
|
||||
defer lp.Unlock()
|
||||
|
||||
// start auto-detect
|
||||
lp.startVehicleDetection()
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/index.html
vendored
4
dist/index.html
vendored
|
|
@ -20,8 +20,8 @@
|
|||
<meta name="theme-color" content="#020318" />
|
||||
|
||||
<title>evcc</title>
|
||||
<script type="module" crossorigin src="./assets/index.9738d453.js"></script>
|
||||
<link rel="stylesheet" href="./assets/index.fb2bc24b.css">
|
||||
<script type="module" crossorigin src="./assets/index.a11d5a54.js"></script>
|
||||
<link rel="stylesheet" href="./assets/index.7fc627a8.css">
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ func NewHTTPd(addr string, site site.API, hub *SocketHub, cache *util.Cache) *HT
|
|||
"targetcharge2": {[]string{"DELETE", "OPTIONS"}, "/targetcharge", targetChargeRemoveHandler(lp)},
|
||||
"vehicle": {[]string{"POST", "OPTIONS"}, "/vehicle/{vehicle:[0-9]+}", vehicleHandler(site, lp)},
|
||||
"vehicle2": {[]string{"DELETE", "OPTIONS"}, "/vehicle", vehicleRemoveHandler(lp)},
|
||||
"vehicleDetect": {[]string{"PATCH", "OPTIONS"}, "/vehicle", vehicleDetectHandler(lp)},
|
||||
"remotedemand": {[]string{"POST", "OPTIONS"}, "/remotedemand/{demand:[a-z]+}/{source::[0-9a-zA-Z_-]+}", remoteDemandHandler(lp)},
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -278,6 +278,15 @@ func vehicleRemoveHandler(loadpoint loadpoint.API) http.HandlerFunc {
|
|||
}
|
||||
}
|
||||
|
||||
// vehicleDetectHandler starts vehicle detection
|
||||
func vehicleDetectHandler(loadpoint loadpoint.API) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
loadpoint.StartVehicleDetection()
|
||||
res := struct{}{}
|
||||
jsonResult(w, res)
|
||||
}
|
||||
}
|
||||
|
||||
// socketHandler attaches websocket handler to uri
|
||||
func socketHandler(hub *SocketHub) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue