weather/weather.go

56 lines
1.0 KiB
Go
Raw Normal View History

2019-07-07 13:09:55 +02:00
package main
import (
"flag"
"fmt"
"time"
_ "github.com/influxdata/influxdb1-client"
client "github.com/influxdata/influxdb1-client/v2"
)
var err error
var now = time.Now()
var wc WeatherConfig
var configpath string
const kelvin = -273.15
func main() {
flag.StringVar(&configpath, "configfile", "common.ini", "config file to use with fuelprices section")
flag.Parse()
GetConfig(configpath, &wc)
httpClient, err := client.NewHTTPClient(client.HTTPConfig{
Addr: fmt.Sprintf("http://%s:%d", wc.InfluxHost, wc.InfluxPort),
Username: wc.InfluxUser,
Password: wc.InfluxPass,
})
HandleFatalError(err)
bp, err := client.NewBatchPoints(client.BatchPointsConfig{
Database: wc.InfluxDB,
})
HandleFatalError(err)
Get
for _, p := range *prices {
tags := map[string]string{"pdv": p.ID, "fuel": p.Fuel}
fields := map[string]interface{}{"value": p.Amount}
point, _ := client.NewPoint(
wc.InfluxTable,
tags,
fields,
now,
)
bp.AddPoint(point)
err = httpClient.Write(bp)
HandleError(err)
}
}