Skip to content

Commit a408c04

Browse files
change status endpoint. convert avg to float, if it is a string. (#20)
1 parent 20fa297 commit a408c04

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

eliona/data.go

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,17 @@ package eliona
1717

1818
import (
1919
"context"
20-
api "github.com/eliona-smart-building-assistant/go-eliona-api-client/v2"
21-
"github.com/eliona-smart-building-assistant/go-eliona/asset"
22-
"github.com/eliona-smart-building-assistant/go-utils/common"
23-
"github.com/eliona-smart-building-assistant/go-utils/log"
2420
"hailo/apiserver"
2521
"hailo/conf"
2622
"hailo/hailo"
2723
"math"
24+
"strconv"
2825
"time"
26+
27+
api "github.com/eliona-smart-building-assistant/go-eliona-api-client/v2"
28+
"github.com/eliona-smart-building-assistant/go-eliona/asset"
29+
"github.com/eliona-smart-building-assistant/go-utils/common"
30+
"github.com/eliona-smart-building-assistant/go-utils/log"
2931
)
3032

3133
func UpsertDataForDevices(config apiserver.Configuration, spec hailo.Spec) error {
@@ -110,10 +112,10 @@ func UpsertDataForStation(config apiserver.Configuration, status hailo.Status) e
110112
parseTime(status.Generic.LastContact),
111113
*assetId,
112114
stationDataPayload{
113-
int(status.DeviceTypeSpecific.AverageBatteryLevel * 100),
115+
int(interfaceToFloat(status.DeviceTypeSpecific.AverageBatteryLevel) * 100),
114116
lastContact,
115117
status.DeviceTypeSpecific.TotalInputsCount,
116-
int(status.DeviceTypeSpecific.AverageFillingLevel * 100),
118+
int(interfaceToFloat(status.DeviceTypeSpecific.AverageFillingLevel) * 100),
117119
CheckActivity(config, lastContact),
118120
},
119121
)
@@ -125,6 +127,22 @@ func UpsertDataForStation(config apiserver.Configuration, status hailo.Status) e
125127
return nil
126128
}
127129

130+
func interfaceToFloat(value interface{}) float64 {
131+
var fValue float64 = -1
132+
133+
switch v := value.(type) {
134+
case string:
135+
fValue, _ = strconv.ParseFloat(v, 32)
136+
case int:
137+
fValue = (float64)(v)
138+
case float32:
139+
fValue = (float64)(v)
140+
case float64:
141+
fValue = v
142+
}
143+
return fValue
144+
}
145+
128146
func CheckActivity(connection apiserver.Configuration, lastContact float64) bool {
129147
return lastContact < (float64)(connection.InactiveTimeout/3600)
130148
}

hailo/fds.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,20 @@ package hailo
1818
import (
1919
"encoding/base64"
2020
"encoding/json"
21-
"github.com/eliona-smart-building-assistant/go-utils/http"
22-
"github.com/eliona-smart-building-assistant/go-utils/log"
23-
"github.com/volatiletech/null/v8"
2421
"hailo/apiserver"
2522
"strings"
2623
"sync"
2724
"time"
25+
26+
"github.com/eliona-smart-building-assistant/go-utils/http"
27+
"github.com/eliona-smart-building-assistant/go-utils/log"
28+
"github.com/volatiletech/null/v8"
2829
)
2930

3031
const (
3132
AuthApiPath = "/beta/v1/authentication"
3233
FdsSpecificationPath = "/specifications"
33-
FdsStatusPath = "/status"
34+
FdsStatusPath = "/statuses"
3435
FdsDiagnosticsPath = "/diagnostics"
3536
FdsIdParam = "/?ids="
3637
)
@@ -84,10 +85,10 @@ type Status struct {
8485
LastEmptyCount int `json:"last_empty_count"`
8586
BinAlarm bool `json:"bin_alarm"`
8687
// Station
87-
AverageBatteryLevel float32 `json:"average_battery_level"`
88-
AverageFillingLevel float32 `json:"average_filling_level"`
89-
TotalInputsCount int `json:"total_inputs_count"`
90-
CompStatuses []Status `json:"component_statuses"`
88+
AverageBatteryLevel interface{} `json:"average_battery_level"`
89+
AverageFillingLevel interface{} `json:"average_filling_level"`
90+
TotalInputsCount int `json:"total_inputs_count"`
91+
CompStatuses []Status `json:"component_statuses"`
9192
// Both
9293
FillingLevel []struct {
9394
Level float32 `json:"level"`

0 commit comments

Comments
 (0)