Skip to content

Commit e70a2a0

Browse files
committed
Fix #494
(not tested yet)
1 parent d54a0ab commit e70a2a0

File tree

1 file changed

+15
-42
lines changed

1 file changed

+15
-42
lines changed

webapp/backend/pkg/database/scrutiny_repository_temperature.go

Lines changed: 15 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,59 +3,32 @@ package database
33
import (
44
"context"
55
"fmt"
6+
"strings"
7+
"time"
8+
69
"github.com/analogj/scrutiny/webapp/backend/pkg/models/collector"
710
"github.com/analogj/scrutiny/webapp/backend/pkg/models/measurements"
811
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
9-
"strings"
10-
"time"
1112
)
1213

1314
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1415
// Temperature Data
1516
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1617
func (sr *scrutinyRepository) SaveSmartTemperature(ctx context.Context, wwn string, deviceProtocol string, collectorSmartData collector.SmartInfo) error {
17-
if len(collectorSmartData.AtaSctTemperatureHistory.Table) > 0 {
18-
19-
for ndx, temp := range collectorSmartData.AtaSctTemperatureHistory.Table {
20-
//temp value may be null, we must skip/ignore them. See #393
21-
if temp == 0 {
22-
continue
23-
}
24-
25-
minutesOffset := collectorSmartData.AtaSctTemperatureHistory.LoggingIntervalMinutes * int64(ndx) * 60
26-
smartTemp := measurements.SmartTemperature{
27-
Date: time.Unix(collectorSmartData.LocalTime.TimeT-minutesOffset, 0),
28-
Temp: temp,
29-
}
30-
31-
tags, fields := smartTemp.Flatten()
32-
tags["device_wwn"] = wwn
33-
p := influxdb2.NewPoint("temp",
34-
tags,
35-
fields,
36-
smartTemp.Date)
37-
err := sr.influxWriteApi.WritePoint(ctx, p)
38-
if err != nil {
39-
return err
40-
}
41-
}
42-
// also add the current temperature.
43-
} else {
44-
45-
smartTemp := measurements.SmartTemperature{
46-
Date: time.Unix(collectorSmartData.LocalTime.TimeT, 0),
47-
Temp: collectorSmartData.Temperature.Current,
48-
}
18+
// collectorSmartData.AtaSctTemperatureHistory isn't reliable, only use current temperature
4919

50-
tags, fields := smartTemp.Flatten()
51-
tags["device_wwn"] = wwn
52-
p := influxdb2.NewPoint("temp",
53-
tags,
54-
fields,
55-
smartTemp.Date)
56-
return sr.influxWriteApi.WritePoint(ctx, p)
20+
smartTemp := measurements.SmartTemperature{
21+
Date: time.Unix(collectorSmartData.LocalTime.TimeT, 0),
22+
Temp: collectorSmartData.Temperature.Current,
5723
}
58-
return nil
24+
25+
tags, fields := smartTemp.Flatten()
26+
tags["device_wwn"] = wwn
27+
p := influxdb2.NewPoint("temp",
28+
tags,
29+
fields,
30+
smartTemp.Date)
31+
return sr.influxWriteApi.WritePoint(ctx, p)
5932
}
6033

6134
func (sr *scrutinyRepository) GetSmartTemperatureHistory(ctx context.Context, durationKey string) (map[string][]measurements.SmartTemperature, error) {

0 commit comments

Comments
 (0)