mirror of
https://github.com/shouptech/tempgopher.git
synced 2026-02-03 16:49:42 +00:00
Enable verbose output on sensor
This commit is contained in:
parent
31ffadd2cf
commit
b353b15004
4 changed files with 9 additions and 7 deletions
|
|
@ -18,6 +18,7 @@ type Sensor struct {
|
||||||
CoolGPIO int32 `yaml:"coolgpio"`
|
CoolGPIO int32 `yaml:"coolgpio"`
|
||||||
CoolInvert bool `yaml:"coolinvert"`
|
CoolInvert bool `yaml:"coolinvert"`
|
||||||
CoolMinutes float64 `yaml:"coolminutes"`
|
CoolMinutes float64 `yaml:"coolminutes"`
|
||||||
|
Verbose bool `yaml:"verbose"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config contains the applications configuration
|
// Config contains the applications configuration
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@ func Test_LoadConfig(t *testing.T) {
|
||||||
HeatMinutes: 5,
|
HeatMinutes: 5,
|
||||||
CoolGPIO: 17,
|
CoolGPIO: 17,
|
||||||
CoolInvert: false,
|
CoolInvert: false,
|
||||||
CoolMinutes: 10}
|
CoolMinutes: 10,
|
||||||
|
Verbose: true,
|
||||||
|
}
|
||||||
|
|
||||||
testConfig := Config{Sensors: []Sensor{testSensor}}
|
testConfig := Config{Sensors: []Sensor{testSensor}}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,3 +9,4 @@ sensors:
|
||||||
coolgpio: 17
|
coolgpio: 17
|
||||||
coolinvert: false
|
coolinvert: false
|
||||||
coolminutes: 10
|
coolminutes: 10
|
||||||
|
verbose: true
|
||||||
|
|
|
||||||
|
|
@ -76,29 +76,25 @@ func RunThermostat(sensor Sensor, sc chan<- State, run *bool, wg *sync.WaitGroup
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case t > sensor.HighTemp && t < sensor.HighTemp:
|
case t > sensor.HighTemp && t < sensor.HighTemp:
|
||||||
log.Panic("Invalid state! Temperature is too high AND too low!")
|
log.Println("Invalid state! Temperature is too high AND too low!")
|
||||||
case t > sensor.HighTemp && s.Heating:
|
case t > sensor.HighTemp && s.Heating:
|
||||||
PinSwitch(hpin, false, sensor.HeatInvert)
|
PinSwitch(hpin, false, sensor.HeatInvert)
|
||||||
log.Printf("%s Turned off heat", sensor.Alias)
|
|
||||||
s.Heating = false
|
s.Heating = false
|
||||||
s.Changed = time.Now()
|
s.Changed = time.Now()
|
||||||
case t > sensor.HighTemp && s.Cooling:
|
case t > sensor.HighTemp && s.Cooling:
|
||||||
break
|
break
|
||||||
case t > sensor.HighTemp && min > sensor.CoolMinutes:
|
case t > sensor.HighTemp && min > sensor.CoolMinutes:
|
||||||
PinSwitch(cpin, true, sensor.CoolInvert)
|
PinSwitch(cpin, true, sensor.CoolInvert)
|
||||||
log.Printf("%s Turned on cool", sensor.Alias)
|
|
||||||
s.Cooling = true
|
s.Cooling = true
|
||||||
s.Changed = time.Now()
|
s.Changed = time.Now()
|
||||||
case t < sensor.LowTemp && s.Cooling:
|
case t < sensor.LowTemp && s.Cooling:
|
||||||
PinSwitch(cpin, false, sensor.CoolInvert)
|
PinSwitch(cpin, false, sensor.CoolInvert)
|
||||||
log.Printf("%s Turned off cool", sensor.Alias)
|
|
||||||
s.Cooling = false
|
s.Cooling = false
|
||||||
s.Changed = time.Now()
|
s.Changed = time.Now()
|
||||||
case t < sensor.LowTemp && s.Heating:
|
case t < sensor.LowTemp && s.Heating:
|
||||||
break
|
break
|
||||||
case t < sensor.LowTemp && min > sensor.HeatMinutes:
|
case t < sensor.LowTemp && min > sensor.HeatMinutes:
|
||||||
PinSwitch(hpin, true, sensor.HeatInvert)
|
PinSwitch(hpin, true, sensor.HeatInvert)
|
||||||
log.Printf("%s Turned on heat", sensor.Alias)
|
|
||||||
s.Heating = true
|
s.Heating = true
|
||||||
s.Changed = time.Now()
|
s.Changed = time.Now()
|
||||||
default:
|
default:
|
||||||
|
|
@ -106,7 +102,9 @@ func RunThermostat(sensor Sensor, sc chan<- State, run *bool, wg *sync.WaitGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Temp = t
|
s.Temp = t
|
||||||
|
if sensor.Verbose {
|
||||||
log.Printf("%s Temp: %.2f, Cooling: %t, Heating: %t, Duration: %.1f", sensor.Alias, s.Temp, s.Cooling, s.Heating, min)
|
log.Printf("%s Temp: %.2f, Cooling: %t, Heating: %t, Duration: %.1f", sensor.Alias, s.Temp, s.Cooling, s.Heating, min)
|
||||||
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case sc <- s:
|
case sc <- s:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue