added logs for all errors
This commit is contained in:
@@ -169,7 +169,7 @@ func messageHandler(client mqtt.Client, msg mqtt.Message) {
|
|||||||
|
|
||||||
rows, err := db.Query(paramQuery, mfmMeterID, plantID)
|
rows, err := db.Query(paramQuery, mfmMeterID, plantID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
publishError(client, errorTopic, fmt.Sprintf("❌ Failed to fetch parameters for meter %d: %v", mfmMeterID, err))
|
logAndPublishError(client, errorTopic, fmt.Sprintf("❌ Failed to fetch parameters for meter %d: %v", mfmMeterID, err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
@@ -178,25 +178,25 @@ func messageHandler(client mqtt.Client, msg mqtt.Message) {
|
|||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var name string
|
var name string
|
||||||
if err := rows.Scan(&name); err != nil {
|
if err := rows.Scan(&name); err != nil {
|
||||||
publishError(client, errorTopic, fmt.Sprintf("❌ Failed to scan parameter name: %v", err))
|
logAndPublishError(client, errorTopic, fmt.Sprintf("❌ Failed to scan parameter name: %v", err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
paramColumns = append(paramColumns, name)
|
paramColumns = append(paramColumns, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(paramColumns) == 0 {
|
if len(paramColumns) == 0 {
|
||||||
publishError(client, errorTopic, fmt.Sprintf("❌ No parameters found for meter_id %d", mfmMeterID))
|
logAndPublishError(client, errorTopic, fmt.Sprintf("❌ No parameters found for meter_id %d", mfmMeterID))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate values count
|
// Validate values count
|
||||||
if len(values) < len(paramColumns) {
|
if len(values) < len(paramColumns) {
|
||||||
publishError(client, errorTopic, fmt.Sprintf("❌ Insufficient register values: expected %d, got %d", len(paramColumns), len(values)))
|
logAndPublishError(client, errorTopic, fmt.Sprintf("❌ Insufficient register values: expected %d, got %d", len(paramColumns), len(values)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(values) > len(paramColumns){
|
if len(values) > len(paramColumns){
|
||||||
publishError(client, errorTopic, fmt.Sprintf("❌ Too many register values: expected %d, got %d", len(paramColumns), len(values)))
|
logAndPublishError(client, errorTopic, fmt.Sprintf("❌ Too many register values: expected %d, got %d", len(paramColumns), len(values)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ func messageHandler(client mqtt.Client, msg mqtt.Message) {
|
|||||||
|
|
||||||
_, err = db.Exec(insertQuery, args...)
|
_, err = db.Exec(insertQuery, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
publishError(client, errorTopic, fmt.Sprintf("❌ Failed to insert into mfm_readings: %v", err))
|
logAndPublishError(client, errorTopic, fmt.Sprintf("❌ Failed to insert into mfm_readings: %v", err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ func messageHandler(client mqtt.Client, msg mqtt.Message) {
|
|||||||
|
|
||||||
|
|
||||||
// Publishes error messages to a specific topic
|
// Publishes error messages to a specific topic
|
||||||
func publishError(client mqtt.Client, topic, message string) {
|
func logAndPublishError(client mqtt.Client, topic, message string) {
|
||||||
token := client.Publish(topic, 1, false, message)
|
token := client.Publish(topic, 1, false, message)
|
||||||
token.Wait()
|
token.Wait()
|
||||||
if token.Error() != nil {
|
if token.Error() != nil {
|
||||||
@@ -303,6 +303,10 @@ func main() {
|
|||||||
sigChan := make(chan os.Signal, 1)
|
sigChan := make(chan os.Signal, 1)
|
||||||
<-sigChan
|
<-sigChan
|
||||||
}
|
}
|
||||||
|
func logAndPublishError(client mqtt.Client, errorTopic string, message string) {
|
||||||
|
log.Printf("[ERROR PUBLISH] Topic: %s | Message: %s", errorTopic, message)
|
||||||
|
publishError(client, errorTopic, message)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user