diff --git a/charger/ocpp/cp_setup.go b/charger/ocpp/cp_setup.go index d21b27b2d..637b8b536 100644 --- a/charger/ocpp/cp_setup.go +++ b/charger/ocpp/cp_setup.go @@ -19,7 +19,6 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error { cp.log.DEBUG.Printf("failed configuring availability: %v", err) } - var meterValuesSampledData string meterValuesSampledDataMaxLength := len(strings.Split(desiredMeasurands, ",")) resp, err := cp.GetConfiguration() @@ -58,7 +57,7 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error { if opt.Readonly { meterValuesSampledDataMaxLength = 0 } - meterValuesSampledData = *opt.Value + cp.meterValuesSample = *opt.Value case KeyMeterValuesSampledDataMaxLength: if val, err := strconv.Atoi(*opt.Value); err == nil { @@ -113,13 +112,13 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error { // configure measurands if meterValues != "" { - if err := cp.configure(KeyMeterValuesSampledData, meterValues); err == nil { - meterValuesSampledData = meterValues + if err := cp.configure(KeyMeterValuesSampledData, meterValues); err == nil || meterValues == "disable" { + cp.meterValuesSample = meterValues + } else { + cp.log.WARN.Printf("failed configuring %s: %v", KeyMeterValuesSampledData, err) } } - cp.meterValuesSample = meterValuesSampledData - // trigger initial meter values if cp.HasRemoteTriggerFeature { if err := Instance().TriggerMessageRequest(cp.ID(), core.MeterValuesFeatureName); err == nil { @@ -135,13 +134,13 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error { // configure sample rate if meterInterval > 0 { if err := cp.configure(KeyMeterValueSampleInterval, strconv.Itoa(int(meterInterval.Seconds()))); err != nil { - cp.log.WARN.Printf("failed configuring MeterValueSampleInterval: %v", err) + cp.log.WARN.Printf("failed configuring %s: %v", KeyMeterValueSampleInterval, err) } } // configure websocket ping interval if err := cp.configure(KeyWebSocketPingInterval, "30"); err != nil { - cp.log.DEBUG.Printf("failed configuring WebSocketPingInterval: %v", err) + cp.log.DEBUG.Printf("failed configuring %s: %v", KeyWebSocketPingInterval, err) } return nil diff --git a/templates/definition/meter/vzlogger.yaml b/templates/definition/meter/vzlogger.yaml index 31e82cc0d..e7148baef 100644 --- a/templates/definition/meter/vzlogger.yaml +++ b/templates/definition/meter/vzlogger.yaml @@ -20,6 +20,51 @@ params: help: de: Multipliziere Rohwert mit diesem Faktor en: Multiply by this value + - name: l1currentuuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Strom in Phase 1 (OBIS Code 31.7.0) + en: The vzlogger channel uuid for current on phase 1 (OBIS Code 31.7.0) + - name: l2currentuuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Strom in Phase 2 (OBIS Code 51.7.0) + en: The vzlogger channel uuid for current on phase 2 (OBIS Code 51.7.0) + - name: l3currentuuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Strom in Phase 3 (OBIS Code 71.7.0) + en: The vzlogger channel uuid for current on phase 3 (OBIS Code 71.7.0) + - name: l1poweruuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Leistung in Phase 1 (OBIS Code 16.7.0) + en: The vzlogger channel uuid for power on phase 1 (OBIS Code 16.7.0) + - name: l2poweruuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Leistung in Phase 2 (OBIS Code 36.7.0) + en: The vzlogger channel uuid for power on phase 2 (OBIS Code 36.7.0) + - name: l3poweruuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Leistung in Phase 3 (OBIS Code 56.7.0) + en: The vzlogger channel uuid for power on phase 3 (OBIS Code 56.7.0) + - name: l1voltageuuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Spannung in Phase 1 (OBIS Code 32.7.0) + en: The vzlogger channel uuid for voltage on phase 1 (OBIS Code 32.7.0) + - name: l2voltageuuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Spannung in Phase 2 (OBIS Code 52.7.0) + en: The vzlogger channel uuid for voltage on phase 2 (OBIS Code 52.7.0) + - name: l3voltageuuid + advanced: true + description: + de: Die vzlogger Kanal uuid für Spannung in Phase 3 (OBIS Code 72.7.0) + en: The vzlogger channel uuid for voltage on phase 3 (OBIS Code 72.7.0) render: | type: custom power: # power reading @@ -29,3 +74,39 @@ render: | {{- if .scale }} scale: {{ .scale }} {{- end }} + {{ if and .l1currentuuid .l2currentuuid .l3currentuuid -}} + currents: + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l1currentuuid) }}) | .tuples[0][1] + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l2currentuuid) }}) | .tuples[0][1] + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l3currentuuid) }}) | .tuples[0][1] + {{ end -}} + {{ if and .l1poweruuid .l2poweruuid .l3poweruuid -}} + powers: + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l1poweruuid) }}) | .tuples[0][1] + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l2poweruuid) }}) | .tuples[0][1] + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l3poweruuid) }}) | .tuples[0][1] + {{ end -}} + {{ if and .l1voltageuuid .l2voltageuuid .l3voltageuuid -}} + voltages: + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l1voltageuuid) }}) | .tuples[0][1] + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l2voltageuuid) }}) | .tuples[0][1] + - source: http + uri: http://{{ .host }}:{{ .port }}/ + jq: .data[] | select(.uuid=={{ quote (trimAll "'" .l3voltageuuid) }}) | .tuples[0][1] + {{ end -}}