Skip to content

Commit

Permalink
Add demo templates (#15386)
Browse files Browse the repository at this point in the history
  • Loading branch information
naltatis authored Aug 18, 2024
1 parent 15a3dee commit 8b539ad
Show file tree
Hide file tree
Showing 8 changed files with 228 additions and 5 deletions.
1 change: 1 addition & 0 deletions assets/js/components/Config/DeviceTags.vue
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ export default {
return `${this.fmtKw(value[0])} / ${this.fmtKw(value[1])}`;
case "currentRange":
return `${this.fmtNumber(value[0], 1)} A / ${this.fmtNumber(value[1], 1)} A`;
case "controllable":
case "configured":
return value
? this.$t("config.deviceValue.yes")
Expand Down
5 changes: 5 additions & 0 deletions cmd/dumper.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,11 @@ func (d *dumper) Dump(name string, v interface{}) {
}
}

// controllable battery
if _, ok := v.(api.BatteryController); ok {
fmt.Fprintf(w, "Controllable:\ttrue\n")
}

if v, ok := v.(api.Charger); ok {
if enabled, err := v.Enabled(); err != nil {
fmt.Fprintf(w, "Enabled:\t%v\n", err)
Expand Down
7 changes: 4 additions & 3 deletions i18n/de.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ never = "nur mit genug PV-Überschuss."
[config]

[config.battery]
titleAdd = "Batterie Zähler hinzufügen"
titleEdit = "Batterie Zähler bearbeiten"
titleAdd = "Batterie hinzufügen"
titleEdit = "Batterie bearbeiten"

[config.circuits]
description = "Stellt sicher, dass die Summe aller Ladepunkte, die an einen Stromkreis angeschlossen sind, die konfigurierten Leistungs- und Stromgrenzen nicht überschreitet. Stromkreise können verschachtelt werden, um eine Hierarchie aufzubauen."
Expand Down Expand Up @@ -54,10 +54,11 @@ chargeStatusF = "Fehler"
chargedEnergy = "Geladen"
co2 = "Netz-CO₂"
configured = "Konfiguriert"
controllable = "Steuerbar"
currency = "Währung"
current = "Strom"
currentRange = "Strom"
enabled = "Aktiviert"
enabled = "Ladebereit"
energy = "Energie"
feedinPrice = "Einspeisevergütung"
gridPrice = "Netzpreis"
Expand Down
5 changes: 3 additions & 2 deletions i18n/en.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ never = "only with enough surplus."
[config]

[config.battery]
titleAdd = "Add Battery Meter"
titleEdit = "Edit Battery Meter"
titleAdd = "Add Battery"
titleEdit = "Edit Battery"

[config.circuits]
description = "Ensures, that the sum of all loadpoints connected to a circuit does not exceed the configured power and current limits. Circuits can be nested to build a hierarchy."
Expand Down Expand Up @@ -54,6 +54,7 @@ chargeStatusF = "error"
chargedEnergy = "Charged"
co2 = "Grid CO₂"
configured = "Configured"
controllable = "Controllable"
currency = "Currency"
current = "Current"
currentRange = "Current"
Expand Down
4 changes: 4 additions & 0 deletions server/http_config_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ func testInstance(instance any) map[string]testResult {
res[key] = makeResult(val, err)
}

if _, ok := instance.(api.BatteryController); ok {
res["controllable"] = makeResult(true, nil)
}

if dev, ok := instance.(api.VehicleOdometer); ok {
val, err := dev.Odometer()
res["odometer"] = makeResult(val, err)
Expand Down
56 changes: 56 additions & 0 deletions templates/definition/charger/demo-charger.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
template: demo-charger
group: generic
products:
- description:
de: Demowallbox
en: Demo charger
requirements:
description:
en: For demonstration purposes. Charger with a fixed set of values.
de: Zu Demonstrationszwecken. Wallbox mit festen Werten.
params:
- name: status
description:
de: Ladezustand
en: Charge status
validvalues: [A, B, C, D, E, F]
default: A
- name: power
description:
de: Leistung
en: Power
type: number
default: 0
- name: enabled
description:
de: Ladebereit
en: Enabled
type: bool
default: true
- name: maxcurrent
description:
de: Maximale Stromstärke (A)
en: Maximum amperage (A)
help:
example: 16
type: number
advanced: true

render: |
type: custom
enable:
source: js
script:
enabled:
source: const
value: {{ .enabled }}
status:
source: const
value: {{ .status }}
maxcurrent:
source: js
script: |
{{ .maxcurrent }}
power:
source: const
value: {{ .power }}
89 changes: 89 additions & 0 deletions templates/definition/meter/demo-battery.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
template: demo-battery
group: generic
products:
- description:
de: Demobatterie
en: Demo battery
requirements:
description:
en: For demonstration purposes. Battery with a fixed set of values.
de: Zu Demonstrationszwecken. Hausbatterie mit festen Werten.
params:
- name: usage
choice: ["battery"]
- name: power
description:
de: Leistung (W)
en: Power (W)
type: number
- name: soc
description:
de: Ladestand (%)
en: Charge (%)
type: number
- name: controllable
description:
de: Steuerbar
en: Controllable
type: bool
help:
de: "Unterstützt aktive Batteriesteuerung"
en: "Supports active battery control"
- name: energy
description:
de: Zählerstand (kWh)
en: Meter reading (kWh)
type: number
advanced: true
- name: currentL1
description:
de: L1 Stromstärke (A)
en: L1 current (A)
type: number
advanced: true
- name: currentL2
description:
de: L2 Stromstärke (A)
en: L2 current (A)
type: number
advanced: true
- name: currentL3
description:
de: L3 Stromstärke (A)
en: L3 current (A)
type: number
advanced: true

render: |
type: custom
power:
source: const
value: {{ .power }}
{{- if .energy }}
energy:
source: const
value: {{ .energy}}
{{- end }}
soc:
source: const
value: {{ .soc }}
{{- if .controllable }}
batterymode:
source: js
vm: shared
script: |
1
{{- end }}
{{- if .currentL1 }}
currents:
- source: const
value: {{ .currentL1 }}
{{- if .currentL2 }}
- source: const
value: {{ .currentL2 }}
{{- end }}
{{- if .currentL3 }}
- source: const
value: {{ .currentL3 }}
{{- end }}
{{- end }}
66 changes: 66 additions & 0 deletions templates/definition/meter/demo-meter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
template: demo-meter
group: generic
products:
- description:
de: Demozähler
en: Demo meter
requirements:
description:
en: For demonstration purposes. Meter with a fixed set of values.
de: Zu Demonstrationszwecken. Zähler mit festen Werten.
params:
- name: usage
choice: ["grid", "pv", "aux", "charge"]
- name: power
description:
de: Leistung (W)
en: Power (W)
type: number
- name: energy
description:
de: Zählerstand (kWh)
en: Meter reading (kWh)
type: number
advanced: true
- name: currentL1
description:
de: L1 Stromstärke (A)
en: L1 current (A)
type: number
advanced: true
- name: currentL2
description:
de: L2 Stromstärke (A)
en: L2 current (A)
type: number
advanced: true
- name: currentL3
description:
de: L3 Stromstärke (A)
en: L3 current (A)
type: number
advanced: true

render: |
type: custom
power:
source: const
value: {{ .power }}
{{- if .energy }}
energy:
source: const
value: {{ .energy}}
{{- end }}
{{- if .currentL1 }}
currents:
- source: const
value: {{ .currentL1 }}
{{- if .currentL2 }}
- source: const
value: {{ .currentL2 }}
{{- end }}
{{- if .currentL3 }}
- source: const
value: {{ .currentL3 }}
{{- end }}
{{- end }}

0 comments on commit 8b539ad

Please sign in to comment.