fix(pkg/config): converter for humidity and temperature sensors
This commit is contained in:
@ -11,6 +11,17 @@ import (
|
||||
"github.com/volker-raschek/flucky/pkg/types"
|
||||
)
|
||||
|
||||
var humiditySensorModels = map[types.SensorModel]types.SensorModel{
|
||||
types.DHT11: types.DHT11,
|
||||
types.DHT22: types.DHT22,
|
||||
}
|
||||
|
||||
var temperatureSensorModels = map[types.SensorModel]types.SensorModel{
|
||||
types.DHT11: types.DHT11,
|
||||
types.DHT22: types.DHT22,
|
||||
types.DS18B20: types.DS18B20,
|
||||
}
|
||||
|
||||
// Configuration of flucky
|
||||
type Configuration struct {
|
||||
Device *types.Device `json:"device"`
|
||||
@ -119,27 +130,25 @@ func (c *Configuration) EnableSensor(name string) error {
|
||||
|
||||
// GetHumiditySensors returns a list of humidity sensors
|
||||
func (c *Configuration) GetHumiditySensors(option Option) []sensor.HumiditySensor {
|
||||
humiditySensors := c.convertHumiditySensors(c.Sensors)
|
||||
humiditySensors := c.getHumiditySensors()
|
||||
|
||||
switch option {
|
||||
case ENABLED:
|
||||
for i, humiditySensor := range humiditySensors {
|
||||
if !humiditySensor.GetEnabled() {
|
||||
if !humiditySensor.SensorEnabled {
|
||||
humiditySensors = append(humiditySensors[:i], humiditySensors[i+1:]...)
|
||||
}
|
||||
}
|
||||
return humiditySensors
|
||||
return c.convertHumiditySensors(humiditySensors)
|
||||
case DISABLED:
|
||||
for i, humiditySensor := range humiditySensors {
|
||||
if humiditySensor.GetEnabled() {
|
||||
if humiditySensor.SensorEnabled {
|
||||
humiditySensors = append(humiditySensors[:i], humiditySensors[i+1:]...)
|
||||
}
|
||||
}
|
||||
return humiditySensors
|
||||
case ALL:
|
||||
return humiditySensors
|
||||
return c.convertHumiditySensors(humiditySensors)
|
||||
default:
|
||||
return humiditySensors
|
||||
return c.convertHumiditySensors(humiditySensors)
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +158,7 @@ func (c *Configuration) GetHumiditySensorsByName(names []string) []sensor.Humidi
|
||||
configHumiditySensors := make(map[string]*types.Sensor, 0)
|
||||
|
||||
for _, name := range names {
|
||||
for _, s := range c.Sensors {
|
||||
for _, s := range c.getHumiditySensors() {
|
||||
switch name {
|
||||
case s.SensorID:
|
||||
configHumiditySensors[s.SensorID] = s
|
||||
@ -171,27 +180,25 @@ func (c *Configuration) GetHumiditySensorsByName(names []string) []sensor.Humidi
|
||||
|
||||
// GetTemperatureSensors returns a list of temperature sensors
|
||||
func (c *Configuration) GetTemperatureSensors(option Option) []sensor.TemperatureSensor {
|
||||
temperatureSensors := c.convertTemperatureSensors(c.Sensors)
|
||||
temperatureSensors := c.getTemperatureSensors()
|
||||
|
||||
switch option {
|
||||
case ENABLED:
|
||||
for i, temperatureSensor := range temperatureSensors {
|
||||
if !temperatureSensor.GetEnabled() {
|
||||
if !temperatureSensor.SensorEnabled {
|
||||
temperatureSensors = append(temperatureSensors[:i], temperatureSensors[i+1:]...)
|
||||
}
|
||||
}
|
||||
return temperatureSensors
|
||||
return c.convertTemperatureSensors(temperatureSensors)
|
||||
case DISABLED:
|
||||
for i, temperatureSensor := range temperatureSensors {
|
||||
if temperatureSensor.GetEnabled() {
|
||||
if temperatureSensor.SensorEnabled {
|
||||
temperatureSensors = append(temperatureSensors[:i], temperatureSensors[i+1:]...)
|
||||
}
|
||||
}
|
||||
return temperatureSensors
|
||||
case ALL:
|
||||
return temperatureSensors
|
||||
return c.convertTemperatureSensors(temperatureSensors)
|
||||
default:
|
||||
return temperatureSensors
|
||||
return c.convertTemperatureSensors(temperatureSensors)
|
||||
}
|
||||
}
|
||||
|
||||
@ -201,7 +208,7 @@ func (c *Configuration) GetTemperatureSensorsByName(names []string) []sensor.Tem
|
||||
configTemperatureSensors := make(map[string]*types.Sensor, 0)
|
||||
|
||||
for _, name := range names {
|
||||
for _, s := range c.Sensors {
|
||||
for _, s := range c.getTemperatureSensors() {
|
||||
switch name {
|
||||
case s.SensorID:
|
||||
configTemperatureSensors[s.SensorID] = s
|
||||
@ -272,6 +279,7 @@ func (c *Configuration) convertHumiditySensors(sensors []*types.Sensor) []sensor
|
||||
|
||||
func (c *Configuration) convertTemperatureSensors(sensors []*types.Sensor) []sensor.TemperatureSensor {
|
||||
temperatureSensors := make([]sensor.TemperatureSensor, 0)
|
||||
|
||||
for _, s := range sensors {
|
||||
switch s.SensorModel {
|
||||
case types.DHT11:
|
||||
@ -290,3 +298,23 @@ func (c *Configuration) convertTemperatureSensors(sensors []*types.Sensor) []sen
|
||||
}
|
||||
return temperatureSensors
|
||||
}
|
||||
|
||||
func (c *Configuration) getHumiditySensors() []*types.Sensor {
|
||||
humiditySensors := make([]*types.Sensor, 0)
|
||||
for _, s := range c.Sensors {
|
||||
if _, ok := humiditySensorModels[s.SensorModel]; ok {
|
||||
humiditySensors = append(humiditySensors, s)
|
||||
}
|
||||
}
|
||||
return humiditySensors
|
||||
}
|
||||
|
||||
func (c *Configuration) getTemperatureSensors() []*types.Sensor {
|
||||
temperatureSensors := make([]*types.Sensor, 0)
|
||||
for _, s := range c.Sensors {
|
||||
if _, ok := temperatureSensorModels[s.SensorModel]; ok {
|
||||
temperatureSensors = append(temperatureSensors, s)
|
||||
}
|
||||
}
|
||||
return temperatureSensors
|
||||
}
|
||||
|
Reference in New Issue
Block a user