Modification of teleinfo to match base option.
This commit is contained in:
parent
9d55cf5759
commit
295d564951
|
|
@ -3,8 +3,8 @@ package controllers
|
||||||
import (
|
import (
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
|
|
||||||
|
"git.kingpenguin.tk/chteufleur/datahouse.git/models/teleinfo"
|
||||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/variables"
|
"git.kingpenguin.tk/chteufleur/datahouse.git/models/variables"
|
||||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/teleinfo"
|
|
||||||
|
|
||||||
"html/template"
|
"html/template"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
@ -22,13 +22,15 @@ func (c *AddTeleinfoController) Prepare() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *AddTeleinfoController) Get() {
|
func (c *AddTeleinfoController) Get() {
|
||||||
adresse := c.GetString(teleinfo.AdresseCompteur)
|
adresse := c.GetString(teleinfo.AdresseCompteur)
|
||||||
tarif := c.GetString(teleinfo.OptionTarifaire)
|
tarif := c.GetString(teleinfo.OptionTarifaire)
|
||||||
option := c.GetString(teleinfo.OptionBase)
|
option, _ := c.GetInt(teleinfo.OptionBase)
|
||||||
hp, _ := c.GetInt(teleinfo.HeurePleinne)
|
isousc, _ := c.GetInt(teleinfo.IntensiteSouscrite)
|
||||||
hc, _ := c.GetInt(teleinfo.HeureCreuse)
|
iinst, _ := c.GetInt(teleinfo.IntensiteInstantanne)
|
||||||
|
imax, _ := c.GetInt(teleinfo.IntensiteMax)
|
||||||
|
papp, _ := c.GetInt(teleinfo.PuissanceApparente)
|
||||||
|
|
||||||
teleinfo.AddData(adresse, tarif, option, int64(hp), int64(hc))
|
teleinfo.AddData(adresse, tarif, int64(option), int64(isousc), int64(iinst), int64(imax), int64(papp))
|
||||||
|
|
||||||
cpt := teleinfo.GetCompteurByAdresse(adresse)
|
cpt := teleinfo.GetCompteurByAdresse(adresse)
|
||||||
if cpt == nil || cpt.Id == 0 {
|
if cpt == nil || cpt.Id == 0 {
|
||||||
|
|
@ -37,8 +39,6 @@ func (c *AddTeleinfoController) Get() {
|
||||||
c.Ctx.Output.Body([]byte(""))
|
c.Ctx.Output.Body([]byte(""))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//——————————————————————————————————————————————————————————————————————————————
|
//——————————————————————————————————————————————————————————————————————————————
|
||||||
// ViewTeleinfoController
|
// ViewTeleinfoController
|
||||||
//——————————————————————————————————————————————————————————————————————————————
|
//——————————————————————————————————————————————————————————————————————————————
|
||||||
|
|
@ -72,36 +72,18 @@ func (c *ViewTeleinfoController) Get() {
|
||||||
c.TplName = "teleinfo.tpl"
|
c.TplName = "teleinfo.tpl"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func formatDataSensorTeleInfo(values []teleinfo.TeleinfoTable) string {
|
func formatDataSensorTeleInfo(values []teleinfo.TeleinfoTable) string {
|
||||||
ret := ""
|
ret := ""
|
||||||
for a := 0; a < 2; a++ {
|
ret += "{name : \"Puissance apparente (VA)\",marker : {enabled : true, radius : 3}, data : ["
|
||||||
ret += "{name : \""
|
for i := 0; i < len(values); i++ {
|
||||||
if a == 0 {
|
if i > 0 {
|
||||||
ret += "Heure Pleines"
|
|
||||||
} else {
|
|
||||||
ret += "Heure Creuses"
|
|
||||||
}
|
|
||||||
ret += "\",marker : {enabled : true, radius : 3}, data : ["
|
|
||||||
for i := 0; i < len(values); i++ {
|
|
||||||
if i > 0 {
|
|
||||||
ret += ","
|
|
||||||
}
|
|
||||||
// TODO faire la dérivé de la puissance pour avoir les variations plutot que l'évolution de la puissance
|
|
||||||
horodate := strconv.FormatInt((values[i].HorodateGMT.Unix()+int64(timezoneOffset))*1000, 10)
|
|
||||||
value := ""
|
|
||||||
if a == 0 {
|
|
||||||
value = strconv.FormatInt(values[i].HeurePleinne, 10)
|
|
||||||
} else {
|
|
||||||
value = strconv.FormatInt(values[i].HeureCreuse, 10)
|
|
||||||
}
|
|
||||||
ret += "[" + horodate + "," + value + "]"
|
|
||||||
}
|
|
||||||
ret += "]}"
|
|
||||||
|
|
||||||
if a == 0 {
|
|
||||||
ret += ","
|
ret += ","
|
||||||
}
|
}
|
||||||
|
// TODO faire la dérivé de la puissance pour avoir les variations plutot que l'évolution de la puissance
|
||||||
|
horodate := strconv.FormatInt((values[i].HorodateGMT.Unix()+int64(timezoneOffset))*1000, 10)
|
||||||
|
value := strconv.FormatInt(values[i].PuissanceApparente, 10)
|
||||||
|
ret += "[" + horodate + "," + value + "]"
|
||||||
}
|
}
|
||||||
|
ret += "]}"
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,20 +8,22 @@ import (
|
||||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/utils"
|
"git.kingpenguin.tk/chteufleur/datahouse.git/models/utils"
|
||||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/variables"
|
"git.kingpenguin.tk/chteufleur/datahouse.git/models/variables"
|
||||||
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
AdresseCompteur = "ADCO"
|
AdresseCompteur = "ADCO"
|
||||||
OptionTarifaire = "OPTARIF"
|
OptionTarifaire = "OPTARIF"
|
||||||
OptionBase = "BASE" // Wh
|
OptionBase = "BASE" // Wh
|
||||||
HeurePleinne = "HCHP" // Wh
|
IntensiteSouscrite = "ISOUSC" // A
|
||||||
HeureCreuse = "HCHC" // Wh
|
IntensiteInstantanne = "IINST" // A
|
||||||
|
IntensiteMax = "IMAX" // A
|
||||||
|
PuissanceApparente = "PAPP" // VA
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
_, timezoneOffset = time.Now().Zone()
|
_, timezoneOffset = time.Now().Zone()
|
||||||
log = logs.NewLogger(10000)
|
log = logs.NewLogger(10000)
|
||||||
|
|
||||||
optionTarifaireTranslate = make(map[string]string)
|
optionTarifaireTranslate = make(map[string]string)
|
||||||
)
|
)
|
||||||
|
|
@ -36,34 +38,35 @@ func init() {
|
||||||
optionTarifaireTranslate["EJP."] = "EJP"
|
optionTarifaireTranslate["EJP."] = "EJP"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//——————————————————————————————————————————————————————————————————————————————
|
//——————————————————————————————————————————————————————————————————————————————
|
||||||
// TeleinfoTable
|
// TeleinfoTable
|
||||||
//——————————————————————————————————————————————————————————————————————————————
|
//——————————————————————————————————————————————————————————————————————————————
|
||||||
type TeleinfoTable struct {
|
type TeleinfoTable struct {
|
||||||
Id int64
|
Id int64
|
||||||
HorodateGMT time.Time `orm:"auto_now;type(datetime)"`
|
HorodateGMT time.Time `orm:"auto_now;type(datetime)"`
|
||||||
AdresseCompteur string
|
AdresseCompteur string
|
||||||
OptionTarifaire string
|
OptionTarifaire string
|
||||||
OptionBase string
|
OptionBase int64
|
||||||
HeurePleinne int64
|
IntensiteSouscrite int64
|
||||||
HeureCreuse int64
|
IntensiteInstantanne int64
|
||||||
|
IntensiteMax int64
|
||||||
|
PuissanceApparente int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AddData(adresse, tarif string, base, isousc, iinst, imax, papp int64) {
|
||||||
func AddData(adresse, tarif, option string, hp, hc int64) {
|
log.Info("Add teleinfo {adresse: %s, tarif: %s, base: %s Wh, isousc: %d A, iinst: %d A, imax: %d A, ppap: %d VA}", adresse, tarif, base, isousc, iinst, imax, papp)
|
||||||
log.Info("Add teleinfo {adresse: %s, tarif: %s, option: %s, hp: %d, hc: %d}", adresse, tarif, option, hp, hc)
|
|
||||||
o := orm.NewOrm()
|
o := orm.NewOrm()
|
||||||
o.Using(database.Alias)
|
o.Using(database.Alias)
|
||||||
|
|
||||||
ti := new(TeleinfoTable)
|
ti := new(TeleinfoTable)
|
||||||
ti.AdresseCompteur = adresse
|
ti.AdresseCompteur = adresse
|
||||||
ti.OptionTarifaire = tarif
|
ti.OptionTarifaire = tarif
|
||||||
ti.OptionBase = option
|
ti.OptionBase = base
|
||||||
ti.HeurePleinne = hp
|
ti.IntensiteSouscrite = isousc
|
||||||
ti.HeureCreuse = hc
|
ti.IntensiteInstantanne = iinst
|
||||||
o.Insert(ti)
|
ti.IntensiteMax = imax
|
||||||
|
ti.PuissanceApparente = papp
|
||||||
|
o.Insert(ti)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAllDataForCompteur(adresseCompteur string) []TeleinfoTable {
|
func GetAllDataForCompteur(adresseCompteur string) []TeleinfoTable {
|
||||||
|
|
@ -81,10 +84,13 @@ func GetAllDataForCompteur(adresseCompteur string) []TeleinfoTable {
|
||||||
|
|
||||||
d.AdresseCompteur = utils.GetString(m, "AdresseCompteur")
|
d.AdresseCompteur = utils.GetString(m, "AdresseCompteur")
|
||||||
d.OptionTarifaire = optionTarifaireTranslate[utils.GetString(m, "OptionTarifaire")]
|
d.OptionTarifaire = optionTarifaireTranslate[utils.GetString(m, "OptionTarifaire")]
|
||||||
d.OptionBase = utils.GetString(m, "OptionBase")
|
d.OptionBase = utils.GetInt(m, "OptionBase")
|
||||||
|
|
||||||
d.HeurePleinne = utils.GetInt(m, "HeurePleinne")
|
d.IntensiteSouscrite = utils.GetInt(m, "IntensiteSouscrite")
|
||||||
d.HeureCreuse = utils.GetInt(m, "HeureCreuse")
|
d.IntensiteInstantanne = utils.GetInt(m, "IntensiteInstantanne")
|
||||||
|
d.IntensiteMax = utils.GetInt(m, "IntensiteMax")
|
||||||
|
|
||||||
|
d.PuissanceApparente = utils.GetInt(m, "PuissanceApparente")
|
||||||
|
|
||||||
dataArray = append(dataArray, *d)
|
dataArray = append(dataArray, *d)
|
||||||
}
|
}
|
||||||
|
|
@ -106,10 +112,13 @@ func GetLastDataForCompteur(adresseCompteur string) *TeleinfoTable {
|
||||||
|
|
||||||
data.AdresseCompteur = utils.GetString(m, "AdresseCompteur")
|
data.AdresseCompteur = utils.GetString(m, "AdresseCompteur")
|
||||||
data.OptionTarifaire = optionTarifaireTranslate[utils.GetString(m, "OptionTarifaire")]
|
data.OptionTarifaire = optionTarifaireTranslate[utils.GetString(m, "OptionTarifaire")]
|
||||||
data.OptionBase = utils.GetString(m, "OptionBase")
|
data.OptionBase = utils.GetInt(m, "OptionBase")
|
||||||
|
|
||||||
data.HeurePleinne = utils.GetInt(m, "HeurePleinne")
|
data.IntensiteSouscrite = utils.GetInt(m, "IntensiteSouscrite")
|
||||||
data.HeureCreuse = utils.GetInt(m, "HeureCreuse")
|
data.IntensiteInstantanne = utils.GetInt(m, "IntensiteInstantanne")
|
||||||
|
data.IntensiteMax = utils.GetInt(m, "IntensiteMax")
|
||||||
|
|
||||||
|
data.PuissanceApparente = utils.GetInt(m, "PuissanceApparente")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return data
|
return data
|
||||||
|
|
@ -121,15 +130,13 @@ func DeleteDataCompteur(adresseCompteur string) {
|
||||||
o.Delete(&TeleinfoTable{AdresseCompteur: adresseCompteur})
|
o.Delete(&TeleinfoTable{AdresseCompteur: adresseCompteur})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//——————————————————————————————————————————————————————————————————————————————
|
//——————————————————————————————————————————————————————————————————————————————
|
||||||
// CompteurTeleinfoTable
|
// CompteurTeleinfoTable
|
||||||
//——————————————————————————————————————————————————————————————————————————————
|
//——————————————————————————————————————————————————————————————————————————————
|
||||||
type CompteurTeleinfoTable struct {
|
type CompteurTeleinfoTable struct {
|
||||||
Id int64
|
Id int64
|
||||||
AdresseCompteur string
|
AdresseCompteur string
|
||||||
Description string
|
Description string
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetCompteurByAdresse(adresse string) *CompteurTeleinfoTable {
|
func GetCompteurByAdresse(adresse string) *CompteurTeleinfoTable {
|
||||||
|
|
@ -190,7 +197,6 @@ func GetSensor(id int64) *CompteurTeleinfoTable {
|
||||||
o := orm.NewOrm()
|
o := orm.NewOrm()
|
||||||
o.Using(database.Alias)
|
o.Using(database.Alias)
|
||||||
|
|
||||||
|
|
||||||
var ret = new(CompteurTeleinfoTable)
|
var ret = new(CompteurTeleinfoTable)
|
||||||
var maps []orm.Params
|
var maps []orm.Params
|
||||||
_, err := o.QueryTable(new(CompteurTeleinfoTable)).Filter("Id", id).Values(&maps)
|
_, err := o.QueryTable(new(CompteurTeleinfoTable)).Filter("Id", id).Values(&maps)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package variables
|
package variables
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Version = "0.1.2"
|
Version = "0.1.4"
|
||||||
|
|
||||||
SessionName = "Session_Data_House"
|
SessionName = "Session_Data_House"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,11 +138,10 @@
|
||||||
<center><h3><strong>{{.compteurDescription}}</strong></h3></center>
|
<center><h3><strong>{{.compteurDescription}}</strong></h3></center>
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
||||||
<h4>N° Compteur: <small>{{.dataCompteur.AdresseCompteur}}</small></h4>
|
<h4>N° Compteur : <small>{{.dataCompteur.AdresseCompteur}}</small></h4>
|
||||||
<h4>Option tarifaire: <small>{{.dataCompteur.OptionTarifaire}}</small></p>
|
<h4>Option tarifaire : <small>{{.dataCompteur.OptionTarifaire}}</small></p>
|
||||||
<h4>Option base: <small>{{.dataCompteur.OptionBase}}</small></h4>
|
<h4>Option base : <small>{{.dataCompteur.OptionBase}} Wh</small></h4>
|
||||||
<h4>Heure pleine: <small>{{.dataCompteur.HeurePleinne}} Wh</small></h4>
|
<h4>Intensité souscrite : <small>{{.dataCompteur.IntensiteSouscrite}} A</small></h4>
|
||||||
<h4>Heure creuse: <small>{{.dataCompteur.HeureCreuse}} Wh</small></h4>
|
|
||||||
|
|
||||||
<div style="margin-top: 30px;" id="graphe"></div>
|
<div style="margin-top: 30px;" id="graphe"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue