fix: sensor typ to static sensor model

This commit is contained in:
2019-02-28 19:48:25 +01:00
parent 1a3a31c5f2
commit 14ce354b32
11 changed files with 129 additions and 99 deletions

View File

@ -207,41 +207,48 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error {
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{
switch s.SensorModel {
case types.DHT11:
hs = append(hs, &sensor.DHT11Sensor{
Sensor: s,
})
case "DHT22":
ts = append(ts, &sensor.DHT22Sensor{
Sensor: s,
})
case "DS18B20":
ts = append(ts, &sensor.DS18B20{
case types.DHT22:
hs = append(hs, &sensor.DHT22Sensor{
Sensor: s,
})
}
}
return ts
return hs
}
func (fc *FluckyConfig) GetTemperatureSensors() ([]sensor.TemperatureSensor, error) {
ts := []sensor.TemperatureSensor{}
for _, s := range fc.Sensors {
// skip disabled sensors
if !s.SensorEnabled {
continue
}
switch s.SensorModel {
case types.DHT11:
ts = append(ts, &sensor.DHT11Sensor{
Sensor: s,
})
case types.DHT22:
ts = append(ts, &sensor.DHT22Sensor{
Sensor: s,
})
case types.DS18B20:
ts = append(ts, &sensor.DS18B20{
Sensor: s,
})
default:
return nil, fmt.Errorf("Sensor Model %v is not a valid sensor model. Please remove the sensor named %v", s.SensorModel, s.Name())
}
}
return ts, nil
}
// JSONDecoder decode a JSON string from a reader into a struct
@ -289,7 +296,7 @@ func (fc *FluckyConfig) PrintSensors(w io.Writer) error {
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\n", 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.SensorModel, *sensor.WireID, *sensor.GPIONumber, sensor.SensorEnabled)
}
tw.Flush()
@ -299,30 +306,21 @@ func (fc *FluckyConfig) PrintSensors(w io.Writer) error {
// RemoveSensor deletes a sensor by its name or its unique UUID
func (fc *FluckyConfig) RemoveSensor(nameOrUUID string) error {
found := false
for i, sensor := range fc.Sensors {
// remove machted name
if !validUUID.MatchString(nameOrUUID) &&
sensor.SensorName == nameOrUUID {
fc.Sensors = append(fc.Sensors[:i], fc.Sensors[i+1:]...)
found = true
return nil
}
// remove machted uuid
if validUUID.MatchString(nameOrUUID) &&
sensor.SensorID == nameOrUUID {
fc.Sensors = append(fc.Sensors[:i], fc.Sensors[i+1:]...)
found = true
return nil
}
}
if !found {
return fmt.Errorf("Can not find sensor %v", nameOrUUID)
}
return nil
return fmt.Errorf("Can not find sensor %v", nameOrUUID)
}
// RemoveRemote deletes a remote address by its name or its unique UUID