forked from OpenPDU/openpdu
bella mqtt quasi va
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
package main
|
||||
|
||||
import "log"
|
||||
|
||||
// BoardType Status
|
||||
const (
|
||||
BoardTypeDummy uint = 0
|
||||
@@ -61,9 +59,7 @@ func (b *Board) PowerToggle(num uint) error {
|
||||
b.dummyValue = make(map[uint]bool)
|
||||
}
|
||||
v, _ := b.PowerStatus(num)
|
||||
log.Printf("toggle prestatus %v:%v", num, b.dummyValue[num])
|
||||
b.dummyValue[num] = !v
|
||||
log.Printf("toggle poststatus %v:%v", num, b.dummyValue[num])
|
||||
return nil
|
||||
}
|
||||
return nil
|
||||
@@ -81,7 +77,6 @@ func (b *Board) PowerStatus(num uint) (bool, error) {
|
||||
b.dummyValue[num] = false
|
||||
val = false
|
||||
}
|
||||
log.Printf("status %v:%v", num, val)
|
||||
return val, nil
|
||||
}
|
||||
return false, nil
|
||||
|
||||
@@ -13,6 +13,9 @@ type Configuration struct {
|
||||
MQTT MQTTConfig `json:"mqtt"`
|
||||
}
|
||||
|
||||
// TheConfig def
|
||||
var TheConfig Configuration
|
||||
|
||||
func loadConfig(filename string) (Configuration, error) {
|
||||
bytes, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
@@ -37,5 +40,6 @@ func saveConfig(c Configuration, filename string) error {
|
||||
return ioutil.WriteFile(filename, bytes, 0644)
|
||||
}
|
||||
|
||||
// TheConfig def
|
||||
var TheConfig Configuration
|
||||
func writeConfig() error {
|
||||
return saveConfig(TheConfig, "t1.json")
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-macaron/binding"
|
||||
"github.com/go-macaron/pongo2"
|
||||
"gopkg.in/macaron.v1"
|
||||
)
|
||||
@@ -20,6 +21,10 @@ func startServer() {
|
||||
m.Post("/json/outlet/:outlet/off", jsonOutletPowerOFF)
|
||||
m.Post("/json/outlet/:outlet/toggle", jsonOutletPowerToggle)
|
||||
|
||||
m.Get("/settings/mqtt", webGETSettingsMQTT)
|
||||
m.Post("/json/settings/mqtt", binding.Bind(SettingsMQTTForm{}), webPOSTSettingsMQTT)
|
||||
// m.Post("/settings/mqtt", webPOSTSettingsMQTT)
|
||||
|
||||
m.Get("/boards", func(ctx *macaron.Context) {
|
||||
ctx.HTML(200, "boards") // 200 is the response code.
|
||||
})
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package main
|
||||
|
||||
import "gopkg.in/macaron.v1"
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"gopkg.in/macaron.v1"
|
||||
)
|
||||
|
||||
func statusPage(ctx *macaron.Context) {
|
||||
var pluglist []Dictionary
|
||||
@@ -12,3 +16,51 @@ func statusPage(ctx *macaron.Context) {
|
||||
ctx.Data["pluglist"] = pluglist
|
||||
ctx.HTML(200, "status") // 200 is the response code.
|
||||
}
|
||||
|
||||
//SettingsMQTTForm definition
|
||||
type SettingsMQTTForm struct {
|
||||
BrokerIP string `form:"brokerip" binding:"Required"`
|
||||
BrokerPort string `form:"brokerport" binding:"Required"`
|
||||
ClientID string `form:"clientid" binding:"Required"`
|
||||
Username string `form:"username"`
|
||||
Password string `form:"password"`
|
||||
Topic string `form:"topic" binding:"Required"`
|
||||
CleanSession bool `form:"cleansession"`
|
||||
HomeAssistant bool `form:"homeassistant"`
|
||||
}
|
||||
|
||||
func webGETSettingsMQTT(ctx *macaron.Context) {
|
||||
ctx.Data["r_brokerip"] = TheConfig.MQTT.BrokerIP
|
||||
ctx.Data["r_brokerport"] = TheConfig.MQTT.BrokerPort
|
||||
ctx.Data["r_clientid"] = TheConfig.MQTT.ClientID
|
||||
ctx.Data["r_username"] = TheConfig.MQTT.Username
|
||||
ctx.Data["r_password"] = TheConfig.MQTT.Password
|
||||
ctx.Data["r_cleansession"] = TheConfig.MQTT.CleanSession
|
||||
ctx.Data["r_topic"] = TheConfig.MQTT.Topic
|
||||
ctx.Data["r_homeassistant"] = TheConfig.MQTT.HomeAssistant
|
||||
ctx.HTML(200, "settings_mqtt") // 200 is the response code.
|
||||
}
|
||||
|
||||
func webPOSTSettingsMQTT(ctx *macaron.Context, f SettingsMQTTForm) {
|
||||
|
||||
TheConfig.MQTT.BrokerIP = f.BrokerIP
|
||||
TheConfig.MQTT.BrokerPort = f.BrokerPort
|
||||
TheConfig.MQTT.ClientID = f.ClientID
|
||||
TheConfig.MQTT.Username = f.Username
|
||||
TheConfig.MQTT.Password = f.Password
|
||||
TheConfig.MQTT.Topic = f.Topic
|
||||
// TODO: cleansession
|
||||
// TODO: homeassistant
|
||||
|
||||
err := writeConfig()
|
||||
if err != nil {
|
||||
ctx.JSON(http.StatusOK, Dictionary{
|
||||
"result": "error",
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
ctx.JSON(http.StatusOK, Dictionary{
|
||||
"result": "ok",
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user