diff options
| -rw-r--r-- | config.go | 15 | ||||
| -rw-r--r-- | configs/valid/tplink.json | 17 |
2 files changed, 32 insertions, 0 deletions
@@ -52,10 +52,18 @@ type ShellyConfig struct { type ShellyConfigs []ShellyConfig +type TPLinkConfig struct { + ID string `json:"id"` + IP string `json:"ip"` +} + +type TPLinkConfigs []TPLinkConfig + type StartupConfig struct { MQTT MQTTConfig `json:"mqtt"` Homematic HomematicConfig `json:"homematic"` Shelly ShellyConfigs `json:"shelly"` + TPLink TPLinkConfigs `json:"tplink"` } func (sc StartupConfig) String() string { @@ -132,6 +140,13 @@ func (sc StartupConfig) Validate() error { } } + for _, tplink := range sc.TPLink { + ip := net.ParseIP(tplink.IP) + if ip == nil { + return fmt.Errorf("Failed to parse IP address '%s'.", tplink.IP) + } + } + return nil } diff --git a/configs/valid/tplink.json b/configs/valid/tplink.json new file mode 100644 index 0000000..f672fa4 --- /dev/null +++ b/configs/valid/tplink.json @@ -0,0 +1,17 @@ +{ + "mqtt": { + "broker": "tcp://127.0.0.1:1883", + "client-id": "siaserver", + "topic-prefix": "sia" + }, + "homematic": { + "ccu": "http://127.0.0.1:8080", + "polling-period": "50ms" + }, + "tplink": [ + { + "id": "tplink1", + "ip": "192.168.1.40" + } + ] +} |
