Skip to content
Snippets Groups Projects
Commit f3f90042 authored by Jonas Leder's avatar Jonas Leder
Browse files

introduce struct for transmitting task

parent 7f9414ca
Branches
No related tags found
1 merge request!1WIP: write values to a database
Pipeline #54565 failed
...@@ -10,6 +10,7 @@ import ( ...@@ -10,6 +10,7 @@ import (
"jonasled.dev/jonasled/ems-esp-logger/csv" "jonasled.dev/jonasled/ems-esp-logger/csv"
"jonasled.dev/jonasled/ems-esp-logger/helper" "jonasled.dev/jonasled/ems-esp-logger/helper"
"jonasled.dev/jonasled/ems-esp-logger/log" "jonasled.dev/jonasled/ems-esp-logger/log"
"jonasled.dev/jonasled/ems-esp-logger/types"
"jonasled.dev/jonasled/ems-esp-logger/zeromq" "jonasled.dev/jonasled/ems-esp-logger/zeromq"
) )
...@@ -22,25 +23,20 @@ var messagePubHandlerBoiler mqtt.MessageHandler = func(client mqtt.Client, msg m ...@@ -22,25 +23,20 @@ var messagePubHandlerBoiler mqtt.MessageHandler = func(client mqtt.Client, msg m
log.Log.Info("Received new boiler data") log.Log.Info("Received new boiler data")
csv.JsonToCsv(string(msg.Payload())) csv.JsonToCsv(string(msg.Payload()))
var jsonData map[string]interface{}
err := json.Unmarshal(msg.Payload(), &jsonData)
if err != nil {
panic(err)
}
currentTime := time.Now().Local().Format("2006-01-02 15:04:05")
jsonData["date"] = currentTime
updatedData, err := json.Marshal(jsonData)
if err != nil {
panic(err)
}
if os.Getenv("OUTPUT_FILE_NAME_RAW") != "" { if os.Getenv("OUTPUT_FILE_NAME_RAW") != "" {
dumpRawData(string(updatedData), os.Getenv("OUTPUT_FILE_NAME_RAW")) dumpRawData(string(msg.Payload()), os.Getenv("OUTPUT_FILE_NAME_RAW"))
} }
if os.Getenv("OUTPUT_DATABSE") != "" { if os.Getenv("OUTPUT_DATABSE") != "" {
zeromq.Pusher.Send(string(updatedData), 0) task := types.Task{
Date: time.Now().UTC(),
Data: string(msg.Payload()),
Instance: os.Getenv("INSTANCE_NAME"),
}
taskData, err := json.Marshal(task)
if err != nil {
log.Log.Error("Failed encoding new data task as JSON: ", err.Error())
}
zeromq.Pusher.Send(string(taskData), 0)
} }
} }
...@@ -72,12 +68,27 @@ func Init() { ...@@ -72,12 +68,27 @@ func Init() {
} }
func dumpRawData(data string, filename string) { func dumpRawData(data string, filename string) {
var jsonData map[string]interface{}
err := json.Unmarshal([]byte(data), &jsonData)
if err != nil {
panic(err)
}
currentTime := time.Now().Local().Format("2006-01-02 15:04:05")
jsonData["date"] = currentTime
updatedData, err := json.Marshal(jsonData)
if err != nil {
panic(err)
}
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil { if err != nil {
panic(err) panic(err)
} }
defer file.Close() defer file.Close()
file.WriteString(data) file.WriteString(string(updatedData))
file.WriteString("\n") file.WriteString("\n")
} }
package types
import "time"
type Task struct {
Date time.Time
Instance string
Data string
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment