diff --git a/metrics.go b/metrics.go index 57e5065..825bc62 100644 --- a/metrics.go +++ b/metrics.go @@ -279,7 +279,7 @@ func downloadmetricsHandler(response http.ResponseWriter, request *http.Request) |> range(start: %s, stop: %s) |> filter(fn: (r) => r._measurement == "measurement") |> filter(fn: (r) => r.deveui == "%s") - |> filter(fn: (r) => r._field == "lon" or r._field == "lat" or r._field == "flags") + |> filter(fn: (r) => r._field == "lon" or r._field == "lat" or r._field == "flags" or r._field == "vbat") |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")`, mystart, mystop, mydeveui)) req, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) @@ -317,17 +317,17 @@ func downloadmetricsHandler(response http.ResponseWriter, request *http.Request) for scanner.Scan() { s := strings.Split(scanner.Text(), ",") fmt.Printf("Scanned Line: %v, elements: %d\n", s, len(s)) - if (len(s) >= 10) && !(strings.HasPrefix(s[5], "_")) { + if (len(s) >= 11) && !(strings.HasPrefix(s[5], "_")) { s_flags := "" - lat := s[len(s)-2] - lon := s[len(s)-1] + lat := s[len(s)-3] + lon := s[len(s)-2] if lat == "0" { s_flags = "NOGPS" } else { s_flags = "GPS" } - if len(s) == 11 { - flags, _ := strconv.Atoi(s[len(s)-3]) + if len(s) == 12 { + flags, _ := strconv.Atoi(s[len(s)-4]) if flags&1 == 1 { s_flags = s_flags + "+ALARM_BUTTON" } @@ -341,7 +341,9 @@ func downloadmetricsHandler(response http.ResponseWriter, request *http.Request) continue } mytime := t.In(location).Format("02.01.2006 15:04") - fmt.Fprintf(response, "\"%s\",%s,%s,%s\n", mytime, lon, lat, s_flags) + vbat := s[len(s)-1] + percent := vbat2percent(vbat) + fmt.Fprintf(response, "\"%s\",%s,%s,%d,%s\n", mytime, lon, lat, percent, s_flags) } }