From d03705e1a6f58b3e10c67e7450b34ec8c4620e83 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 25 Aug 2024 12:10:17 +0200 Subject: [PATCH] Ocpp: add disconnect required status (#15659) --- api/reason.go | 1 + api/reason_enumer.go | 20 +++--- assets/js/components/Loadpoint.vue | 2 +- .../js/components/MaterialIcon/Reconnect.vue | 21 ++++++ assets/js/components/Vehicle.vue | 2 +- assets/js/components/VehicleStatus.vue | 65 ++++++++++++++----- charger/ocpp.go | 15 ++++- core/keys/loadpoint.go | 10 +-- core/loadpoint.go | 2 +- i18n/de.toml | 1 + i18n/en.toml | 1 + 11 files changed, 107 insertions(+), 33 deletions(-) create mode 100644 assets/js/components/MaterialIcon/Reconnect.vue diff --git a/api/reason.go b/api/reason.go index 46fbd7525..8d3439c55 100644 --- a/api/reason.go +++ b/api/reason.go @@ -6,4 +6,5 @@ type Reason int const ( ReasonUnknown Reason = iota ReasonWaitingForAuthorization + ReasonDisconnectRequired ) diff --git a/api/reason_enumer.go b/api/reason_enumer.go index b2d441de5..22e80fb57 100644 --- a/api/reason_enumer.go +++ b/api/reason_enumer.go @@ -7,11 +7,11 @@ import ( "strings" ) -const _ReasonName = "unknownwaitingforauthorization" +const _ReasonName = "unknownwaitingforauthorizationdisconnectrequired" -var _ReasonIndex = [...]uint8{0, 7, 30} +var _ReasonIndex = [...]uint8{0, 7, 30, 48} -const _ReasonLowerName = "unknownwaitingforauthorization" +const _ReasonLowerName = "unknownwaitingforauthorizationdisconnectrequired" func (i Reason) String() string { if i < 0 || i >= Reason(len(_ReasonIndex)-1) { @@ -26,20 +26,24 @@ func _ReasonNoOp() { var x [1]struct{} _ = x[ReasonUnknown-(0)] _ = x[ReasonWaitingForAuthorization-(1)] + _ = x[ReasonDisconnectRequired-(2)] } -var _ReasonValues = []Reason{ReasonUnknown, ReasonWaitingForAuthorization} +var _ReasonValues = []Reason{ReasonUnknown, ReasonWaitingForAuthorization, ReasonDisconnectRequired} var _ReasonNameToValueMap = map[string]Reason{ - _ReasonName[0:7]: ReasonUnknown, - _ReasonLowerName[0:7]: ReasonUnknown, - _ReasonName[7:30]: ReasonWaitingForAuthorization, - _ReasonLowerName[7:30]: ReasonWaitingForAuthorization, + _ReasonName[0:7]: ReasonUnknown, + _ReasonLowerName[0:7]: ReasonUnknown, + _ReasonName[7:30]: ReasonWaitingForAuthorization, + _ReasonLowerName[7:30]: ReasonWaitingForAuthorization, + _ReasonName[30:48]: ReasonDisconnectRequired, + _ReasonLowerName[30:48]: ReasonDisconnectRequired, } var _ReasonNames = []string{ _ReasonName[0:7], _ReasonName[7:30], + _ReasonName[30:48], } // ReasonString retrieves an enum value from the enum constants string name. diff --git a/assets/js/components/Loadpoint.vue b/assets/js/components/Loadpoint.vue index 88aacd002..6301f0397 100644 --- a/assets/js/components/Loadpoint.vue +++ b/assets/js/components/Loadpoint.vue @@ -141,7 +141,7 @@ export default { sessionSolarPercentage: Number, // charger - chargerAwaitingAuthorization: Boolean, + chargerStatusReason: String, chargerFeatureIntegratedDevice: Boolean, chargerFeatureHeating: Boolean, chargerIcon: String, diff --git a/assets/js/components/MaterialIcon/Reconnect.vue b/assets/js/components/MaterialIcon/Reconnect.vue new file mode 100644 index 000000000..302d6274e --- /dev/null +++ b/assets/js/components/MaterialIcon/Reconnect.vue @@ -0,0 +1,21 @@ + + + diff --git a/assets/js/components/Vehicle.vue b/assets/js/components/Vehicle.vue index 15c549751..8867cfc7c 100644 --- a/assets/js/components/Vehicle.vue +++ b/assets/js/components/Vehicle.vue @@ -107,7 +107,7 @@ export default { integratedDevice: Boolean, limitEnergy: Number, mode: String, - chargerAwaitingAuthorization: Boolean, + chargerStatusReason: String, phaseAction: String, phaseRemainingInterpolated: Number, planActive: Boolean, diff --git a/assets/js/components/VehicleStatus.vue b/assets/js/components/VehicleStatus.vue index b139c8ff7..d2e8d9b6d 100644 --- a/assets/js/components/VehicleStatus.vue +++ b/assets/js/components/VehicleStatus.vue @@ -84,6 +84,15 @@ > +
+ +