diff --git a/csv/main.go b/csv/main.go index 1ddd8405e141b0f535c60e203fdc586c1b32eb60..79d41c00b5bffb1f5ddac39ab13ce45edfd829bc 100644 --- a/csv/main.go +++ b/csv/main.go @@ -4,6 +4,7 @@ import ( "encoding/csv" "encoding/json" "os" + "time" "jonasled.dev/jonasled/ems-esp-logger/helper" ) @@ -14,6 +15,8 @@ func JsonToCsv(jsonData string) { panic(err) } + currentDate := time.Now().Format("2006-01-02 13:44") + file, err := os.OpenFile(os.Getenv("OUTPUT_FILE_NAME"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { panic(err) @@ -27,9 +30,9 @@ func JsonToCsv(jsonData string) { if err != nil { panic(err) } - if fileInfo.Size() == 0 { - header := make([]string, 0, len(data)) + // Write header + header := []string{"Date"} for key := range data { header = append(header, key) } @@ -38,7 +41,8 @@ func JsonToCsv(jsonData string) { } } - row := make([]string, 0, len(data)) + // Write data as a single line with the date + row := []string{currentDate} for _, value := range data { row = append(row, helper.AnyToString(value)) } diff --git a/mqttclient/main.go b/mqttclient/main.go index 77d1529d5110c959c40663bcbd71a313be6d3ae7..c90d00c9a5bd123202e0d5e12f6974e3468efeb1 100644 --- a/mqttclient/main.go +++ b/mqttclient/main.go @@ -5,6 +5,7 @@ import ( "os" mqtt "github.com/eclipse/paho.mqtt.golang" + "jonasled.dev/jonasled/ems-esp-logger/csv" "jonasled.dev/jonasled/ems-esp-logger/helper" "jonasled.dev/jonasled/ems-esp-logger/log" ) @@ -15,6 +16,7 @@ var messagePubHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Me var messagePubHandlerBoiler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) { log.Log.Debugf("Received message for boiler: %s from topic: %s\n", msg.Payload(), msg.Topic()) + csv.JsonToCsv(string(msg.Payload())) }