diff --git a/provider/const.go b/provider/const.go index 6db48b8edb..6472eeb36b 100644 --- a/provider/const.go +++ b/provider/const.go @@ -26,7 +26,7 @@ func NewConstFromConfig(other map[string]interface{}) (Provider, error) { return nil, err } - pipe, err := pipeline.New(cc.Settings) + pipe, err := pipeline.New(nil, cc.Settings) if err != nil { return nil, err } diff --git a/provider/http.go b/provider/http.go index 931c68d447..2ff66d4464 100644 --- a/provider/http.go +++ b/provider/http.go @@ -60,8 +60,9 @@ func NewHTTPProviderFromConfig(other map[string]interface{}) (Provider, error) { return nil, err } + log := util.NewLogger("http") http := NewHTTP( - util.NewLogger("http"), + log, cc.Method, cc.URI, cc.Insecure, @@ -80,7 +81,7 @@ func NewHTTPProviderFromConfig(other map[string]interface{}) (Provider, error) { if err == nil { var pipe *pipeline.Pipeline - pipe, err = pipeline.New(cc.Settings) + pipe, err = pipeline.New(log, cc.Settings) http = http.WithPipeline(pipe) } diff --git a/provider/mqtt.go b/provider/mqtt.go index 2a589e01fa..986fc7af95 100644 --- a/provider/mqtt.go +++ b/provider/mqtt.go @@ -53,7 +53,7 @@ func NewMqttFromConfig(other map[string]interface{}) (Provider, error) { m = m.WithRetained() } - pipe, err := pipeline.New(cc.Settings) + pipe, err := pipeline.New(log, cc.Settings) if err == nil { m = m.WithPipeline(pipe) } diff --git a/provider/pipeline/pipeline.go b/provider/pipeline/pipeline.go index a040a45b12..d99389d3fd 100644 --- a/provider/pipeline/pipeline.go +++ b/provider/pipeline/pipeline.go @@ -9,6 +9,7 @@ import ( xj "github.com/basgys/goxml2json" "github.com/evcc-io/evcc/provider/javascript" + "github.com/evcc-io/evcc/util" "github.com/evcc-io/evcc/util/jq" "github.com/itchyny/gojq" "github.com/robertkrimen/otto" @@ -16,6 +17,7 @@ import ( ) type Pipeline struct { + log *util.Logger re *regexp.Regexp jq *gojq.Query dflt string @@ -35,8 +37,10 @@ type Settings struct { Script string } -func New(cc Settings) (*Pipeline, error) { - p := new(Pipeline) +func New(log *util.Logger, cc Settings) (*Pipeline, error) { + p := &Pipeline{ + log: log, + } var err error if err == nil && cc.Regex != "" { @@ -137,6 +141,10 @@ func (p *Pipeline) transformXML(value []byte) []byte { return value } + if p.log != nil { + p.log.TRACE.Println(out.String()) + } + return out.Bytes() } diff --git a/provider/socket.go b/provider/socket.go index 4e64287f1e..61e04a7020 100644 --- a/provider/socket.go +++ b/provider/socket.go @@ -85,7 +85,7 @@ func NewSocketProviderFromConfig(other map[string]interface{}) (Provider, error) } var err error - if p.pipeline, err = pipeline.New(cc.Settings); err != nil { + if p.pipeline, err = pipeline.New(log, cc.Settings); err != nil { return nil, err }