refactor: temperature
This commit is contained in:
@ -6,10 +6,12 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"text/tabwriter"
|
||||
"time"
|
||||
|
||||
"git.cryptic.systems/fh-trier/go-flucky/pkg/sensor"
|
||||
|
||||
"git.cryptic.systems/fh-trier/go-flucky/pkg/types"
|
||||
"github.com/satori/go.uuid"
|
||||
|
||||
"git.cryptic.systems/fh-trier/go-flucky-server/pkg/types"
|
||||
)
|
||||
|
||||
// FluckyConfig dasd
|
||||
@ -37,12 +39,23 @@ func (fc *FluckyConfig) AddSensor(sensor *types.Sensor) error {
|
||||
return fmt.Errorf("Sensor %v with UUID %v already exists", s.SensorName, s.SensorID)
|
||||
}
|
||||
|
||||
if sensor.WireID != nil &&
|
||||
s.WireID == sensor.WireID {
|
||||
return fmt.Errorf("Sensor with 1wire-id %v already exists as %v", s.WireID, s.SensorName)
|
||||
if *sensor.WireID != "" &&
|
||||
*s.WireID == *sensor.WireID {
|
||||
return fmt.Errorf("Sensor with 1wire-id %v already exists as %v", *s.WireID, s.SensorName)
|
||||
}
|
||||
}
|
||||
|
||||
// check if sensor has a valid device id
|
||||
if sensor.DeviceID != fc.Device.DeviceID {
|
||||
sensor.DeviceID = fc.Device.DeviceID
|
||||
}
|
||||
|
||||
// overwrite creation date
|
||||
sensor.CreationDate = time.Now()
|
||||
|
||||
//TODO: check if wire sensor exists in /dev/bus/w1/devices
|
||||
|
||||
// check
|
||||
fc.Sensors = append(fc.Sensors, sensor)
|
||||
|
||||
return nil
|
||||
@ -110,8 +123,8 @@ func (fc *FluckyConfig) DisableSensor(nameOrUUID string) error {
|
||||
|
||||
// disable sensor matched after name
|
||||
if !validUUID.MatchString(nameOrUUID) &&
|
||||
*sensor.SensorName == nameOrUUID {
|
||||
*sensor.SensorEnabled = false
|
||||
sensor.SensorName == nameOrUUID {
|
||||
sensor.SensorEnabled = false
|
||||
found = true
|
||||
break
|
||||
}
|
||||
@ -119,7 +132,7 @@ func (fc *FluckyConfig) DisableSensor(nameOrUUID string) error {
|
||||
// remove machted uuid
|
||||
if validUUID.MatchString(nameOrUUID) &&
|
||||
sensor.SensorID == nameOrUUID {
|
||||
*sensor.SensorEnabled = false
|
||||
sensor.SensorEnabled = false
|
||||
found = true
|
||||
break
|
||||
}
|
||||
@ -170,8 +183,8 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error {
|
||||
|
||||
// disable sensor matched after name
|
||||
if !validUUID.MatchString(nameOrUUID) &&
|
||||
*sensor.SensorName == nameOrUUID {
|
||||
*sensor.SensorEnabled = true
|
||||
sensor.SensorName == nameOrUUID {
|
||||
sensor.SensorEnabled = true
|
||||
found = true
|
||||
break
|
||||
}
|
||||
@ -179,7 +192,7 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error {
|
||||
// remove machted uuid
|
||||
if validUUID.MatchString(nameOrUUID) &&
|
||||
sensor.SensorID == nameOrUUID {
|
||||
*sensor.SensorEnabled = true
|
||||
sensor.SensorEnabled = true
|
||||
found = true
|
||||
break
|
||||
}
|
||||
@ -192,6 +205,45 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (fc *FluckyConfig) GetHumiditySensors() []sensor.HumiditySensor {
|
||||
hs := []sensor.HumiditySensor{}
|
||||
// for _, s := range fc.Sensors {
|
||||
// switch s.SensorType {
|
||||
// case "DHT11":
|
||||
// hs = append(hs, sensor.DHT11Sensor{
|
||||
// Sensor: s,
|
||||
// })
|
||||
// case "DHT22":
|
||||
// hs = append(hs, sensor.DHT22Sensor{
|
||||
// Sensor: s,
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
return hs
|
||||
}
|
||||
|
||||
func (fc *FluckyConfig) GetTemperatureSensors() []sensor.TemperatureSensor {
|
||||
ts := []sensor.TemperatureSensor{}
|
||||
|
||||
for _, s := range fc.Sensors {
|
||||
switch s.SensorType {
|
||||
case "DHT11":
|
||||
ts = append(ts, &sensor.DHT11Sensor{
|
||||
Sensor: s,
|
||||
})
|
||||
case "DHT22":
|
||||
ts = append(ts, &sensor.DHT22Sensor{
|
||||
Sensor: s,
|
||||
})
|
||||
case "DS18B20":
|
||||
ts = append(ts, &sensor.DS18B20{
|
||||
Sensor: s,
|
||||
})
|
||||
}
|
||||
}
|
||||
return ts
|
||||
}
|
||||
|
||||
// JSONDecoder decode a JSON string from a reader into a struct
|
||||
func (fc *FluckyConfig) JSONDecoder(r io.Reader) error {
|
||||
jsonDecoder := json.NewDecoder(r)
|
||||
@ -234,10 +286,10 @@ func (fc *FluckyConfig) PrintSensors(w io.Writer) error {
|
||||
// declar tabwriter
|
||||
tw := tabwriter.NewWriter(w, 0, 0, 3, ' ', 0)
|
||||
|
||||
fmt.Fprint(tw, "id\tname\tlocation\ttype\twire-id\tgpio\tenabled\n")
|
||||
fmt.Fprint(tw, "name\tlocation\ttype\twire-id\tgpio\tenabled\n")
|
||||
|
||||
for _, sensor := range fc.Sensors {
|
||||
fmt.Fprintf(tw, "%v\t%v\t%v\t%v\t%v\t%v\t%v\n", sensor.SensorID, *sensor.SensorName, *sensor.SensorLocation, *sensor.SensorType, *sensor.WireID, *sensor.GPIONumber, *sensor.SensorEnabled)
|
||||
fmt.Fprintf(tw, "%v\t%v\t%v\t%v\t%v\t%v\n", sensor.SensorName, sensor.SensorLocation, sensor.SensorType, *sensor.WireID, *sensor.GPIONumber, sensor.SensorEnabled)
|
||||
}
|
||||
|
||||
tw.Flush()
|
||||
@ -253,10 +305,9 @@ func (fc *FluckyConfig) RemoveSensor(nameOrUUID string) error {
|
||||
|
||||
// remove machted name
|
||||
if !validUUID.MatchString(nameOrUUID) &&
|
||||
*sensor.SensorName == nameOrUUID {
|
||||
sensor.SensorName == nameOrUUID {
|
||||
fc.Sensors = append(fc.Sensors[:i], fc.Sensors[i+1:]...)
|
||||
found = true
|
||||
break
|
||||
}
|
||||
|
||||
// remove machted uuid
|
||||
@ -264,12 +315,11 @@ func (fc *FluckyConfig) RemoveSensor(nameOrUUID string) error {
|
||||
sensor.SensorID == nameOrUUID {
|
||||
fc.Sensors = append(fc.Sensors[:i], fc.Sensors[i+1:]...)
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
return fmt.Errorf("Can not find remote %v", nameOrUUID)
|
||||
return fmt.Errorf("Can not find sensor %v", nameOrUUID)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -1,6 +1,6 @@
|
||||
package config
|
||||
|
||||
import "git.cryptic.systems/fh-trier/go-flucky-server/pkg/types"
|
||||
import "git.cryptic.systems/fh-trier/go-flucky/pkg/types"
|
||||
|
||||
// Remote ...
|
||||
type Remote struct {
|
||||
|
Reference in New Issue
Block a user