last vbat value not respecting invalid GPS positions

This commit is contained in:
Joerg Lehmann 2021-12-17 20:45:05 +01:00
parent fbcebb980a
commit c678fbe5cd
1 changed files with 51 additions and 1 deletions

View File

@ -411,10 +411,12 @@ func getLastMetrics(deveui string) OneMetric {
var res OneMetric var res OneMetric
url := "http://localhost:8086/api/v2/query?org=wobischorg" url := "http://localhost:8086/api/v2/query?org=wobischorg"
data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket") data := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|> range(start:-365d) |> range(start:-365d)
|> filter(fn: (r) => r._measurement == "measurement" and r.deveui == "%s") |> filter(fn: (r) => r._measurement == "measurement" and r.deveui == "%s")
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value") |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
|> filter(fn: (r) => r.lat != 0)
|> sort(columns: ["_time"], desc: false) |> sort(columns: ["_time"], desc: false)
|> last(column: "_time")`, deveui)) |> last(column: "_time")`, deveui))
@ -469,9 +471,57 @@ func getLastMetrics(deveui string) OneMetric {
res.Lon = s[len(s)-2] res.Lon = s[len(s)-2]
res.PosTimestamp = t.In(location).Format("02.01.2006 15:04") res.PosTimestamp = t.In(location).Format("02.01.2006 15:04")
} }
}
}
data2 := []byte(fmt.Sprintf(`from(bucket:"wobischbucket")
|> range(start:-365d)
|> filter(fn: (r) => r._measurement == "measurement" and r.deveui == "%s")
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
|> sort(columns: ["_time"], desc: false)
|> last(column: "_time")`, deveui))
req2, err := http.NewRequest("POST", url, bytes.NewBuffer(data2))
if err != nil {
log.Fatal("Error reading request. ", err)
}
// Set headers
req2.Header.Set("Authorization", "Token "+INFLUX_RO_TOKEN)
req2.Header.Set("accept", "application/csv")
req2.Header.Set("content-type", "application/vnd.flux")
// Send request
resp2, err := client.Do(req2)
if err != nil {
log.Fatal("Error reading response. ", err)
}
defer resp2.Body.Close()
fmt.Println("response Status:", resp2.Status)
fmt.Println("response Headers:", resp2.Header)
body2, err := ioutil.ReadAll(resp2.Body)
if err != nil {
log.Fatal("Error reading body. ", err)
}
fmt.Println("response Body 2:", string(body2))
scanner2 := bufio.NewScanner(strings.NewReader(string(body2)))
for scanner2.Scan() {
s := strings.Split(scanner2.Text(), ",")
fmt.Printf("BlaBla: %v, elements: %d\n", s, len(s))
if (len(s) >= 12) && !(strings.HasPrefix(s[5], "_")) {
t, err := time.Parse(time.RFC3339, s[5])
if err != nil {
fmt.Printf("error converting time: %s\n", s[5])
continue
}
res.Timestamp = t.In(location).Format("02.01.2006 15:04")
res.BatteryPercent = strconv.Itoa(vbat2percent(s[len(s)-1])) res.BatteryPercent = strconv.Itoa(vbat2percent(s[len(s)-1]))
res.BatteryPercentHTML = template.HTML(vbat2html(s[len(s)-1])) res.BatteryPercentHTML = template.HTML(vbat2html(s[len(s)-1]))
} }
} }