evcc-io/templates/definition/tariff/enever.yaml

97 lines
2.5 KiB
YAML

template: enever
products:
- brand: Enever
requirements:
evcc: ["skiptest"]
group: price
countries: ["NL"]
params:
- name: token
required: true
- name: provider
description:
en: Provider
de: Anbieter
type: choice
choice:
[
"",
"AA",
"AIP",
"ANWB",
"BE",
"EE",
"EN",
"EVO",
"EZ",
"FR",
"GSL",
"MDE",
"NE",
"PE",
"TI",
"VDB",
"VON",
"WE",
"ZG",
"ZP",
]
required: true
- name: resolution
description:
en: Price resolution
de: Preisauflösung
type: choice
choice: ["hourly", "quarterly"]
default: quarterly
required: true
- preset: tariff-base
- preset: tariff-features
- name: interval
default: 3h
advanced: true
render: |
type: custom
{{ include "base" . }}
{{ include "features" . }}
forecast:
source: go
script: |
// concat today and tomorrow
"[" + strings.Trim(strings.Trim(today, "[]") + "," + strings.Trim(tomorrow, "[]"), ",") + "]"
in:
- name: today
type: string
config:
source: http
uri: https://enever.nl/apiv3/stroomprijs_vandaag.php?token={{ .token }}{{ if eq .resolution "quarterly" }}&resolution=15{{ end }}
jq: |
[ .data.[] |
{
"start": .datum,
"end": (
(.datum[0:19]) as $dt |
(.datum[19:]) as $tz |
($dt | strptime("%FT%T") | mktime + {{ if eq .resolution "quarterly" }}900{{ else }}3600{{ end }} | strftime("%FT%T")) + $tz
),
"value": .prijs{{ .provider }} | tonumber
}
] | tostring
- name: tomorrow
type: string
config:
source: http
uri: https://enever.nl/apiv3/stroomprijs_morgen.php?token={{ .token }}{{ if eq .resolution "quarterly" }}&resolution=15{{ end }}
jq: |
[ .data.[] |
{
"start": .datum,
"end": (
(.datum[0:19]) as $dt |
(.datum[19:]) as $tz |
($dt | strptime("%FT%T") | mktime + {{ if eq .resolution "quarterly" }}900{{ else }}3600{{ end }} | strftime("%FT%T")) + $tz
),
"value": .prijs{{ .provider }} | tonumber
}
] | tostring
interval: {{ .interval }}