diff --git a/meter/homematic/connection.go b/meter/homematic/connection.go index fddd4f330..31775e255 100644 --- a/meter/homematic/connection.go +++ b/meter/homematic/connection.go @@ -51,6 +51,10 @@ func NewConnection(uri, device, meterchannel, switchchannel, user, password stri conn.Client.Transport = transport.BasicAuth(user, password, conn.Client.Transport) } + if err := conn.Init(); err != nil { + return conn, err + } + return conn, nil } @@ -97,6 +101,12 @@ func (c *Connection) XmlCmd(method, channel string, values ...Param) (MethodResp return hmr, err } +// Initialze CCU methods via system.listMethods call +func (c *Connection) Init() error { + _, err := c.XmlCmd("system.listMethods", c.SwitchChannel) + return err +} + // Enabled reads the homematic HMIP-PSM switchchannel state true=on/false=off func (c *Connection) Enabled() (bool, error) { res, err := c.XmlCmd("getValue", c.SwitchChannel, Param{CCUString: "STATE"})