Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
471 changes: 471 additions & 0 deletions charger/warp-http.go

Large diffs are not rendered by default.

1,247 changes: 1,247 additions & 0 deletions charger/warp-http_decorators.go

Large diffs are not rendered by default.

40 changes: 38 additions & 2 deletions charger/warp/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ const (
FeatureMeterAllValues = "meter_all_values"
FeatureMeterPhases = "meter_phases"
FeatureNfc = "nfc"
FeatureMeters = "meters"
FeaturePhaseSwitch = "phase_switch"
)

// https://www.warp-charger.com/api.html#evse_state
Expand Down Expand Up @@ -40,7 +42,7 @@ type MeterState struct {
}

// https://www.warp-charger.com/api.html#meter_values
type MeterValues struct {
type LegacyMeterValues struct {
Power float64 `json:"power"`
EnergyRel float64 `json:"energy_rel"`
EnergyAbs float64 `json:"energy_abs"`
Expand All @@ -49,11 +51,45 @@ type MeterValues struct {
}

// https://www.warp-charger.com/api.html#meter_all_values
type MeterAllValues struct {
type LegacyMeterAllValues struct {
PhasesActive []bool `json:"phases_active"`
PhasesConnected []bool `json:"phases_connected"`
}

// Meter value IDs according to Tinkerforge meter_value_id.csv
const (
ValueIDVoltageL1N = 1 // Voltage L1-N
ValueIDVoltageL2N = 2 // Voltage L2-N
ValueIDVoltageL3N = 3 // Voltage L3-N
ValueIDCurrentImExSumL1 = 13 // Current L1 Im-Ex Sum
ValueIDCurrentImExSumL2 = 17 // Current L2 Im-Ex Sum
ValueIDCurrentImExSumL3 = 21 // Current L3 Im-Ex Sum
ValueIDPowerImExSum = 74 // Power Im-Ex Sum L1 L2 L3
ValueIDEnergyAbsImSum = 209 // Energy Im Sum L1 L2 L3
)

type MeterValues struct {
VoltageL1N float64
VoltageL2N float64
VoltageL3N float64
CurrentImExSumL1 float64
CurrentImExSumL2 float64
CurrentImExSumL3 float64
PowerImExSum float64
EnergyAbsImSum float64
}

type MeterValuesIndices struct {
VoltageL1NIndex int
VoltageL2NIndex int
VoltageL3NIndex int
CurrentImExSumL1Index int
CurrentImExSumL2Index int
CurrentImExSumL3Index int
PowerImExSumIndex int
EnergyAbsImSumIndex int
}

type UsersConfig struct {
Users []User `json:"users"`
}
Expand Down
4 changes: 2 additions & 2 deletions charger/warp2.go → charger/warp2-mqtt.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,14 +241,14 @@ func (wb *Warp2) MaxCurrentMillis(current float64) error {

// CurrentPower implements the api.Meter interface
func (wb *Warp2) currentPower() (float64, error) {
var res warp.MeterValues
var res warp.LegacyMeterValues
err := wb.meterG(&res)
return res.Power, err
}

// TotalEnergy implements the api.MeterEnergy interface
func (wb *Warp2) totalEnergy() (float64, error) {
var res warp.MeterValues
var res warp.LegacyMeterValues
err := wb.meterG(&res)
return res.EnergyAbs, err
}
Expand Down
File renamed without changes.
47 changes: 47 additions & 0 deletions templates/definition/charger/tinkerforge-warp-http.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
template: tinkerforge-warp-http
products:
- brand: TinkerForge
description:
generic: WARP Charger Smart
- brand: TinkerForge
description:
generic: WARP Charger Pro
capabilities: ["mA", "1p3p", "rfid"]
requirements:
description:
en: Firmware v2 required. Automatic phase switching requires the additional WARP Energy Manager.
de: Firmware v2 erforderlich. Für automatische Phasenumschaltung wird zusätzlich der WARP Energy Manager benötigt.
evcc: ["skiptest"]
params:
- name: uri
required: true
- name: user
- name: password
- name: energyManagerUri
description:
generic: Energy Manager URI
help:
de: HTTP(S) Adresse des WARP Energy Manager
en: HTTP(S) address of the WARP Energy Manager
- name: energyManagerUser
description:
de: Energy Manager Benutzerkonto
en: Energy Manager Username
help:
de: bspw. E-Mail Adresse, User Id, etc.
en: e.g. email address, user id, etc.
- name: energyManagerPassword
description:
de: Energy Manager Passwort
en: Energy Manager Password
help:
de: Bei führenden Nullen bitte in einfache Hochkommata setzen
en: Use single quotes in case of leading zeros
render: |
type: warp-http
uri: {{ .uri }}
user: {{ .user }}
password: {{ .password }}
energyManagerUri: {{ .energyManagerUri }}
energyManagerUser: {{ .energyManagerUser }}
energyManagerPassword: {{ .energyManagerPassword }}
1 change: 1 addition & 0 deletions templates/definition/charger/tinkerforge-warp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
template: tinkerforge-warp
deprecated: true
covers:
- tinkerforge-warp-pro
products:
Expand Down
22 changes: 22 additions & 0 deletions templates/definition/charger/tinkerforge-warp3-http.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
template: tinkerforge-warp3-http
products:
- brand: TinkerForge
description:
generic: WARP3 Charger Smart
- brand: TinkerForge
description:
generic: WARP3 Charger Pro
capabilities: ["mA", "1p3p", "rfid"]
requirements:
evcc: ["skiptest"]
params:
- name: uri
required: true
- name: user
- name: password
render: |
type: warp-http
uri: {{ .uri }}
user: {{ .user }}
password: {{ .password }}
disablePhaseAutoSwitch: true
1 change: 1 addition & 0 deletions templates/definition/charger/tinkerforge-warp3-smart.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
template: tinkerforge-warp3-smart
deprecated: true
products:
- brand: TinkerForge
description:
Expand Down
1 change: 1 addition & 0 deletions templates/definition/charger/tinkerforge-warp3.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
template: tinkerforge-warp3
deprecated: true
products:
- brand: TinkerForge
description:
Expand Down
Loading