config refactor
This commit is contained in:
parent
23e8c067e8
commit
0687cb2258
58
openpdu_example.yaml
Normal file
58
openpdu_example.yaml
Normal file
@ -0,0 +1,58 @@
|
||||
display:
|
||||
h: 32
|
||||
rotated: false
|
||||
swaptopbottom: false
|
||||
type: ssd1306
|
||||
w: 128
|
||||
hostname: openpdu-rack1
|
||||
|
||||
mqtt:
|
||||
cliendid: openpdu-main
|
||||
host: 192.168.1.230
|
||||
password: ""
|
||||
port: "1883"
|
||||
prefix: openpdu-main
|
||||
schema: tcp
|
||||
username: ""
|
||||
|
||||
ups:
|
||||
host: 192.168.1.132
|
||||
name: ups
|
||||
password: slave
|
||||
username: monuser
|
||||
boards:
|
||||
2306c7db-9d2e-4f55-8944-6a5a8b75a4a3:
|
||||
type: dummy
|
||||
inverted: false
|
||||
channelCount: 4
|
||||
channels:
|
||||
4976c508-1f63-4894-a859-cc5bd555b3c1:
|
||||
num: 0
|
||||
name: autonomo
|
||||
startValue: false
|
||||
c0a4d271-2b75-41c0-8b05-86c5ca0b3e94:
|
||||
num: 1
|
||||
name: fenomeno
|
||||
startValue: false
|
||||
4d0b384f-6bcb-4eca-a803-ebea90c2a434:
|
||||
num: 2
|
||||
name: ecomeno
|
||||
startValue: false
|
||||
acb5e9d5-959c-4427-a850-17c262b96c16:
|
||||
num: 3
|
||||
name: ripopolo
|
||||
startValue: false
|
||||
outlets:
|
||||
0fca047e-0e7f-4cee-83a8-2086ee306faf:
|
||||
num: 0
|
||||
channelID: 4976c508-1f63-4894-a859-cc5bd555b3c1
|
||||
6b36abdc-dc8d-424a-997d-ffb59642c749:
|
||||
num: 1
|
||||
channelID: 4d0b384f-6bcb-4eca-a803-ebea90c2a434
|
||||
e14f53ba-8b53-4327-a1c7-10cf148d6c42:
|
||||
num: 2
|
||||
channelID: c0a4d271-2b75-41c0-8b05-86c5ca0b3e94
|
||||
1e66a9b5-54fe-4e0e-b34f-4d96b58f2111:
|
||||
num: 3
|
||||
channelID: acb5e9d5-959c-4427-a850-17c262b96c16
|
||||
|
24
src/mqtt.go
24
src/mqtt.go
@ -10,13 +10,13 @@ import (
|
||||
var MQTTclient MQTT.Client
|
||||
|
||||
func init() {
|
||||
viper.SetDefault("MqttCliendID", "OpenPDU") // max 23 chars
|
||||
viper.SetDefault("MqttPrefix", "openpdu") // max 23 chars
|
||||
viper.SetDefault("MqttSchema", "tcp")
|
||||
viper.SetDefault("MqttHost", "localhost")
|
||||
viper.SetDefault("MqttPort", "1883")
|
||||
viper.SetDefault("MqttUsername", "")
|
||||
viper.SetDefault("MqttPassword", "")
|
||||
viper.SetDefault("Mqtt.CliendID", "OpenPDU") // max 23 chars
|
||||
viper.SetDefault("Mqtt.Prefix", "openpdu") // max 23 chars
|
||||
viper.SetDefault("Mqtt.Schema", "tcp")
|
||||
viper.SetDefault("Mqtt.Host", "localhost")
|
||||
viper.SetDefault("Mqtt.Port", "1883")
|
||||
viper.SetDefault("Mqtt.Username", "")
|
||||
viper.SetDefault("Mqtt.Password", "")
|
||||
|
||||
// MQTT.ERROR = log.New(os.Stdout, "[ERROR] ", 0)
|
||||
// MQTT.CRITICAL = log.New(os.Stdout, "[CRIT] ", 0)
|
||||
@ -30,16 +30,16 @@ func init() {
|
||||
// https://girishjoshi.io/post/golang-paho-mqtt/
|
||||
|
||||
func mqttLoop() {
|
||||
uri := viper.GetString("MqttSchema") + "://" + viper.GetString("MqttHost") + ":" + viper.GetString("MqttPort")
|
||||
uri := viper.GetString("Mqtt.Schema") + "://" + viper.GetString("Mqtt.Host") + ":" + viper.GetString("Mqtt.Port")
|
||||
opts := MQTT.NewClientOptions().AddBroker(uri)
|
||||
|
||||
opts.SetClientID(viper.GetString("MqttCliendID"))
|
||||
opts.SetClientID(viper.GetString("Mqtt.CliendID"))
|
||||
|
||||
if username := viper.GetString("MqttUsername"); username != "" {
|
||||
if username := viper.GetString("Mqtt.Username"); username != "" {
|
||||
opts.SetUsername(username)
|
||||
}
|
||||
|
||||
if password := viper.GetString("MqttPassword"); password != "" {
|
||||
if password := viper.GetString("Mqtt.Password"); password != "" {
|
||||
opts.SetPassword(password)
|
||||
}
|
||||
|
||||
@ -80,6 +80,6 @@ func MQTTreconfigure() {
|
||||
|
||||
func MQTTpublish(topic string, value string) {
|
||||
if MQTTclient.IsConnected() {
|
||||
MQTTclient.Publish(viper.GetString("MqttPrefix")+"/"+topic, 0, false, value)
|
||||
MQTTclient.Publish(viper.GetString("Mqtt.Prefix")+"/"+topic, 0, false, value)
|
||||
}
|
||||
}
|
||||
|
@ -8,13 +8,13 @@ import (
|
||||
)
|
||||
|
||||
func mqttPage(ctx *macaron.Context) {
|
||||
ctx.Data["schema"] = viper.GetString("MqttSchema")
|
||||
ctx.Data["host"] = viper.GetString("MqttHost")
|
||||
ctx.Data["port"] = viper.GetString("MqttPort")
|
||||
ctx.Data["clientid"] = viper.GetString("MqttCliendID")
|
||||
ctx.Data["prefix"] = viper.GetString("MqttPrefix")
|
||||
ctx.Data["username"] = viper.GetString("MqttUsername")
|
||||
ctx.Data["password"] = viper.GetString("MqttPassword")
|
||||
ctx.Data["schema"] = viper.GetString("Mqtt.Schema")
|
||||
ctx.Data["host"] = viper.GetString("Mqtt.Host")
|
||||
ctx.Data["port"] = viper.GetString("Mqtt.Port")
|
||||
ctx.Data["clientid"] = viper.GetString("Mqtt.CliendID")
|
||||
ctx.Data["prefix"] = viper.GetString("Mqtt.Prefix")
|
||||
ctx.Data["username"] = viper.GetString("Mqtt.Username")
|
||||
ctx.Data["password"] = viper.GetString("Mqtt.Password")
|
||||
|
||||
ctx.Data["schemas"] = []string{"tcp", "ssl", "ws"}
|
||||
ctx.HTML(200, "mqtt")
|
||||
@ -43,12 +43,12 @@ func mqttPost(ctx *macaron.Context, f MQTTPostForm) {
|
||||
return
|
||||
}
|
||||
|
||||
viper.Set("MqttHost", strings.ToLower(strings.TrimSpace(f.Host)))
|
||||
viper.Set("MqttPort", strings.ToLower(strings.TrimSpace(f.Port)))
|
||||
viper.Set("MqttCliendID", strings.TrimSpace(f.ClientID))
|
||||
viper.Set("MqttPrefix", strings.TrimSpace(f.Prefix))
|
||||
viper.Set("MqttUsername", strings.TrimSpace(f.Username))
|
||||
viper.Set("MqttPassword", f.Password)
|
||||
viper.Set("Mqtt.Host", strings.ToLower(strings.TrimSpace(f.Host)))
|
||||
viper.Set("Mqtt.Port", strings.ToLower(strings.TrimSpace(f.Port)))
|
||||
viper.Set("Mqtt.CliendID", strings.TrimSpace(f.ClientID))
|
||||
viper.Set("Mqtt.Prefix", strings.TrimSpace(f.Prefix))
|
||||
viper.Set("Mqtt.Username", strings.TrimSpace(f.Username))
|
||||
viper.Set("Mqtt.Password", f.Password)
|
||||
|
||||
viper.WriteConfig()
|
||||
|
||||
|
16
src/ups.go
16
src/ups.go
@ -10,10 +10,10 @@ var ups nut.UPS
|
||||
var upsVars map[string]nut.Variable
|
||||
|
||||
func init() {
|
||||
viper.SetDefault("UpsHost", "localhost")
|
||||
viper.SetDefault("UpsName", "ups")
|
||||
viper.SetDefault("UpsUsername", "")
|
||||
viper.SetDefault("UpsPassword", "")
|
||||
viper.SetDefault("Ups.Host", "localhost")
|
||||
viper.SetDefault("Ups.Name", "ups")
|
||||
viper.SetDefault("Ups.Username", "")
|
||||
viper.SetDefault("Ups.Password", "")
|
||||
}
|
||||
|
||||
func UpsConnect() {
|
||||
@ -21,16 +21,16 @@ func UpsConnect() {
|
||||
var connectErr, authenticationError error
|
||||
var u nut.UPS
|
||||
|
||||
upsClient, connectErr = nut.Connect(viper.GetString("UpsHost"))
|
||||
upsClient, connectErr = nut.Connect(viper.GetString("Ups.Host"))
|
||||
if connectErr != nil {
|
||||
logErr(connectErr.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if username = viper.GetString("UpsUsername"); username == "" {
|
||||
if username = viper.GetString("Ups.Username"); username == "" {
|
||||
return
|
||||
}
|
||||
if password = viper.GetString("UpsPassword"); password == "" {
|
||||
if password = viper.GetString("Ups.Password"); password == "" {
|
||||
return
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ func UpsConnect() {
|
||||
}
|
||||
|
||||
for _, u = range upsList {
|
||||
if u.Name == viper.GetString("UpsName") {
|
||||
if u.Name == viper.GetString("Ups.Name") {
|
||||
ups = u
|
||||
logNotice("UPS connected")
|
||||
UpsReadVars()
|
||||
|
@ -8,10 +8,10 @@ import (
|
||||
)
|
||||
|
||||
func upsPage(ctx *macaron.Context) {
|
||||
ctx.Data["host"] = viper.GetString("UpsHost")
|
||||
ctx.Data["upsname"] = viper.GetString("UpsName")
|
||||
ctx.Data["username"] = viper.GetString("UpsUsername")
|
||||
ctx.Data["password"] = viper.GetString("UpsPassword")
|
||||
ctx.Data["host"] = viper.GetString("Ups.Host")
|
||||
ctx.Data["upsname"] = viper.GetString("Ups.Name")
|
||||
ctx.Data["username"] = viper.GetString("Ups.Username")
|
||||
ctx.Data["password"] = viper.GetString("Ups.Password")
|
||||
|
||||
// if ups == nil {
|
||||
// ctx.Data["serverstatus"] = "Disconnected"
|
||||
@ -38,10 +38,10 @@ type UPSPostForm struct {
|
||||
}
|
||||
|
||||
func upsPost(ctx *macaron.Context, f UPSPostForm) {
|
||||
viper.Set("UpsHost", strings.ToLower(strings.TrimSpace(f.Host)))
|
||||
viper.Set("UpsName", strings.TrimSpace(f.UpsName))
|
||||
viper.Set("UpsUsername", strings.TrimSpace(f.Username))
|
||||
viper.Set("UpsPassword", f.Password)
|
||||
viper.Set("Ups.Host", strings.ToLower(strings.TrimSpace(f.Host)))
|
||||
viper.Set("Ups.Name", strings.TrimSpace(f.UpsName))
|
||||
viper.Set("Ups.Username", strings.TrimSpace(f.Username))
|
||||
viper.Set("Ups.Password", f.Password)
|
||||
|
||||
viper.WriteConfig()
|
||||
UpsReconfigure()
|
||||
|
Loading…
Reference in New Issue
Block a user