From cfdbb68f621b68c2e7acd7f46636c26e4611019d Mon Sep 17 00:00:00 2001 From: Pimouss Date: Sat, 15 Oct 2016 16:05:20 +0000 Subject: [PATCH 1/2] ajout route pour humidite --- models/variables/variables.go | 1 + routers/router.go | 1 + 2 files changed, 2 insertions(+) diff --git a/models/variables/variables.go b/models/variables/variables.go index 08157ea..46588ca 100644 --- a/models/variables/variables.go +++ b/models/variables/variables.go @@ -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" diff --git a/routers/router.go b/routers/router.go index 6673652..421c170 100644 --- a/routers/router.go +++ b/routers/router.go @@ -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{}) From 19e37f348180a53e4540177d3cf7ffcadb1552de Mon Sep 17 00:00:00 2001 From: Pimouss Date: Sat, 15 Oct 2016 16:10:15 +0000 Subject: [PATCH 2/2] ajout controller, model soilmoisture --- controllers/soilMoisture.go | 25 ++++++++ models/soilMoisture/soilMoisture.go | 89 +++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 controllers/soilMoisture.go create mode 100644 models/soilMoisture/soilMoisture.go diff --git a/controllers/soilMoisture.go b/controllers/soilMoisture.go new file mode 100644 index 0000000..48b555d --- /dev/null +++ b/controllers/soilMoisture.go @@ -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("")) +} diff --git a/models/soilMoisture/soilMoisture.go b/models/soilMoisture/soilMoisture.go new file mode 100644 index 0000000..e4ae21e --- /dev/null +++ b/models/soilMoisture/soilMoisture.go @@ -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}) +}