fix: sync and fetch temperatures
changes: - add sync command to synchronize device sensor information with remote servers - fix fetch functions to get temperatures
This commit is contained in:
@ -10,7 +10,6 @@ import (
|
||||
|
||||
stypes "git.cryptic.systems/fh-trier/go-flucky-server/pkg/types"
|
||||
"git.cryptic.systems/fh-trier/go-flucky/pkg/logs"
|
||||
"git.cryptic.systems/fh-trier/go-flucky/pkg/types"
|
||||
|
||||
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
|
||||
|
||||
@ -42,21 +41,21 @@ func Get(argSensorNames []string, writeLogfiles, push bool, configDir string, w
|
||||
}
|
||||
fmt.Fprint(tw, "\n")
|
||||
} else {
|
||||
numOfSensors := len(cnf.TemperatureSensors)
|
||||
numOfSensors := len(cnf.Sensors)
|
||||
|
||||
for _, temperatureSensor := range cnf.TemperatureSensors {
|
||||
for _, sensor := range cnf.Sensors {
|
||||
switch {
|
||||
case temperatureSensor.Name != "" && numOfSensors <= 1:
|
||||
sensorNames = append(sensorNames, temperatureSensor.Name)
|
||||
case temperatureSensor.Name == "" && numOfSensors <= 1:
|
||||
sensorNames = append(sensorNames, temperatureSensor.ID)
|
||||
case temperatureSensor.Name != "" && numOfSensors > 1:
|
||||
fmt.Fprintf(tw, "%v\t", temperatureSensor.Name)
|
||||
sensorNames = append(sensorNames, temperatureSensor.Name)
|
||||
case sensor.SensorName != nil && numOfSensors <= 1:
|
||||
sensorNames = append(sensorNames, *sensor.SensorName)
|
||||
case sensor.SensorName == nil && numOfSensors <= 1:
|
||||
sensorNames = append(sensorNames, sensor.SensorID)
|
||||
case sensor.SensorName != nil && numOfSensors > 1:
|
||||
fmt.Fprintf(tw, "%v\t", *sensor.SensorName)
|
||||
sensorNames = append(sensorNames, *sensor.SensorName)
|
||||
break
|
||||
case temperatureSensor.Name == "" && numOfSensors > 1:
|
||||
sensorNames = append(sensorNames, temperatureSensor.ID)
|
||||
fmt.Fprintf(tw, "%v\t", temperatureSensor.ID)
|
||||
case sensor.SensorName == nil && numOfSensors > 1:
|
||||
sensorNames = append(sensorNames, sensor.SensorID)
|
||||
fmt.Fprintf(tw, "%v\t", sensor.SensorID)
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -212,11 +211,11 @@ func getTemperatures(sensorNames []string, configDir string) ([]*stypes.Temperat
|
||||
}
|
||||
|
||||
// search after sensor
|
||||
var foundSensors []*types.WireSensor
|
||||
var foundSensors []*stypes.Sensor
|
||||
var sensorFound bool
|
||||
for _, configSensor := range cnf.TemperatureSensors {
|
||||
for _, configSensor := range cnf.Sensors {
|
||||
for _, sensorName := range sensorNames {
|
||||
if configSensor.ID == sensorName || configSensor.Name == sensorName {
|
||||
if configSensor.SensorID == sensorName || *configSensor.SensorName == sensorName {
|
||||
foundSensors = append(foundSensors, configSensor)
|
||||
sensorFound = true
|
||||
}
|
||||
@ -228,17 +227,16 @@ func getTemperatures(sensorNames []string, configDir string) ([]*stypes.Temperat
|
||||
}
|
||||
|
||||
for _, foundSensor := range foundSensors {
|
||||
t, err := ds18b20.Temperature(foundSensor.ID)
|
||||
t, err := ds18b20.Temperature(*foundSensor.WireID)
|
||||
if err != nil {
|
||||
return []*stypes.Temperature{}, fmt.Errorf("Can not read temperature from sensor %v: %v", foundSensor.ID, err)
|
||||
return []*stypes.Temperature{}, fmt.Errorf("Can not read temperature from sensor %v: %v", foundSensor.SensorID, err)
|
||||
}
|
||||
|
||||
temperature := &stypes.Temperature{
|
||||
TemperatureID: uuid.NewV4().String(),
|
||||
TemperatureValue: t,
|
||||
SensorID: foundSensor.ID,
|
||||
SensorID: foundSensor.SensorID,
|
||||
TemperatureDate: time.Now(),
|
||||
DeviceID: cnf.DeviceID,
|
||||
}
|
||||
|
||||
temperatures = append(temperatures, temperature)
|
||||
|
Reference in New Issue
Block a user