Ajout du monitoring de l'humidite du sol
This commit is contained in:
parent
cfe297612b
commit
0d83871ec0
|
|
@ -0,0 +1,25 @@
|
|||
package controllers
|
||||
|
||||
import (
|
||||
"github.com/astaxie/beego"
|
||||
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/soilMoisture"
|
||||
)
|
||||
|
||||
type AddSoilMoistController struct {
|
||||
beego.Controller
|
||||
}
|
||||
|
||||
func (c *AddSoilMoistController) Get() {
|
||||
macArduino := c.GetString(soilMoisture.MacModuleWifiArduino)
|
||||
pinArduino := c.GetString(soilMoisture.PinArduino)
|
||||
valeurCapteur, _ := c.GetInt(soilMoisture.ValeurCapteur)
|
||||
|
||||
soilMoisture.AddData(pinArduino, macArduino, int64(valeurCapteur))
|
||||
|
||||
cpt := soilMoisture.GetCapteurByAdresse(macArduino, pinArduino)
|
||||
if cpt == nil || cpt.Id == 0 {
|
||||
soilMoisture.AddCapteur(macArduino, pinArduino)
|
||||
}
|
||||
c.Ctx.Output.Body([]byte(""))
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
package soilMoisture
|
||||
|
||||
import (
|
||||
"github.com/astaxie/beego/logs"
|
||||
"github.com/astaxie/beego/orm"
|
||||
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/database"
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/utils"
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/variables"
|
||||
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
MacModuleWifiArduino = "MAC"
|
||||
PinArduino = "PIN"
|
||||
ValeurCapteur = "VAL"
|
||||
)
|
||||
|
||||
var (
|
||||
_, timezoneOffset = time.Now().Zone()
|
||||
log = logs.NewLogger(10000)
|
||||
)
|
||||
|
||||
func init() {
|
||||
log.SetLogger(variables.LogType, variables.LogParams)
|
||||
orm.RegisterModel(new(SoilMoistureTable),new(CapteurSoilMoistureTable))
|
||||
orm.DefaultRowsLimit = 4500
|
||||
}
|
||||
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
// SoilMoistureTable
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
type SoilMoistureTable struct {
|
||||
Id int64
|
||||
HorodateGMT time.Time `orm:"auto_now;type(datetime)"`
|
||||
CapteurPin string // Pin Arduino
|
||||
MacId string // Id Bac à Fleur
|
||||
ValeurCapteur int64
|
||||
}
|
||||
|
||||
func AddData(pinCapteur string, macId string, valeur int64) {
|
||||
log.Info("Add soilMoisture {BacMac: %s, pinArduino: %s, valeur: %d}", macId, pinCapteur, valeur)
|
||||
o := orm.NewOrm()
|
||||
o.Using(database.Alias)
|
||||
|
||||
ti := new(SoilMoistureTable)
|
||||
ti.CapteurPin = pinCapteur
|
||||
ti.ValeurCapteur = valeur
|
||||
ti.MacId = macId
|
||||
o.Insert(ti)
|
||||
}
|
||||
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
// CapteurSoilMoistureTable
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
type CapteurSoilMoistureTable struct {
|
||||
Id int64
|
||||
MacArduino string
|
||||
PinArduino string
|
||||
Description string
|
||||
}
|
||||
|
||||
func GetCapteurByAdresse(mac string, pin string) *CapteurSoilMoistureTable {
|
||||
o := orm.NewOrm()
|
||||
o.Using(database.Alias)
|
||||
|
||||
ret := new(CapteurSoilMoistureTable)
|
||||
var maps []orm.Params
|
||||
_, err := o.QueryTable(new(CapteurSoilMoistureTable)).Filter("MacArduino", mac).Filter("PinArduino", pin).Values(&maps)
|
||||
if err == nil {
|
||||
for _, m := range maps {
|
||||
ret.Id = utils.GetInt(m, "Id")
|
||||
ret.MacArduino = utils.GetString(m, "MacArduino")
|
||||
ret.PinArduino = utils.GetString(m, "PinArduino")
|
||||
ret.Description = utils.GetString(m, "Description")
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
func AddCapteur(mac string, pin string) {
|
||||
o := orm.NewOrm()
|
||||
o.Using(database.Alias)
|
||||
_, _ = o.Insert(&CapteurSoilMoistureTable{MacArduino: mac, PinArduino: pin})
|
||||
}
|
||||
|
|
@ -24,6 +24,7 @@ var (
|
|||
AddTempRoute = "/add/temp/" + sensorMacRegex + "/:val([0-9]+)"
|
||||
AddRelayRoute = "/add/relay/" + sensorMacRegex
|
||||
TeleinfoAddRoute = "/teleinfo/add"
|
||||
AddSoilMoistRoute = "/add/soil" /* Route for soil moisture sensors*/
|
||||
|
||||
ViewTempRoute = "/view/temp"
|
||||
ViewRelaysRoute = "/view/relay"
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ func init() {
|
|||
beego.Router(variables.AddTempRoute, &controllers.AddTempController{})
|
||||
beego.Router(variables.AddRelayRoute, &controllers.AddRelayController{})
|
||||
beego.Router(variables.TeleinfoAddRoute, &controllers.AddTeleinfoController{})
|
||||
beego.Router(variables.AddSoilMoistRoute, &controllers.AddSoilMoistController{})
|
||||
|
||||
beego.Router(variables.ViewTempRoute, &controllers.ViewTempController{})
|
||||
beego.Router(variables.ViewRelaysRoute, &controllers.ViewRelayController{})
|
||||
|
|
|
|||
Loading…
Reference in New Issue