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]+)"
|
AddTempRoute = "/add/temp/" + sensorMacRegex + "/:val([0-9]+)"
|
||||||
AddRelayRoute = "/add/relay/" + sensorMacRegex
|
AddRelayRoute = "/add/relay/" + sensorMacRegex
|
||||||
TeleinfoAddRoute = "/teleinfo/add"
|
TeleinfoAddRoute = "/teleinfo/add"
|
||||||
|
AddSoilMoistRoute = "/add/soil" /* Route for soil moisture sensors*/
|
||||||
|
|
||||||
ViewTempRoute = "/view/temp"
|
ViewTempRoute = "/view/temp"
|
||||||
ViewRelaysRoute = "/view/relay"
|
ViewRelaysRoute = "/view/relay"
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ func init() {
|
||||||
beego.Router(variables.AddTempRoute, &controllers.AddTempController{})
|
beego.Router(variables.AddTempRoute, &controllers.AddTempController{})
|
||||||
beego.Router(variables.AddRelayRoute, &controllers.AddRelayController{})
|
beego.Router(variables.AddRelayRoute, &controllers.AddRelayController{})
|
||||||
beego.Router(variables.TeleinfoAddRoute, &controllers.AddTeleinfoController{})
|
beego.Router(variables.TeleinfoAddRoute, &controllers.AddTeleinfoController{})
|
||||||
|
beego.Router(variables.AddSoilMoistRoute, &controllers.AddSoilMoistController{})
|
||||||
|
|
||||||
beego.Router(variables.ViewTempRoute, &controllers.ViewTempController{})
|
beego.Router(variables.ViewTempRoute, &controllers.ViewTempController{})
|
||||||
beego.Router(variables.ViewRelaysRoute, &controllers.ViewRelayController{})
|
beego.Router(variables.ViewRelaysRoute, &controllers.ViewRelayController{})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue