This commit is contained in:
premultiply 2024-09-07 15:08:52 +00:00
commit eb8d30830b
2 changed files with 88 additions and 8 deletions

View file

@ -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

View file

@ -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 -}}