Closed blauberger closed 11 months ago
Da fehlt die Zeitzone im Timestamp. Aus der OCPP Spec (ich finde den "mandatory") Teil grad nicht. Verwendet wird RFC3339:
For example, a BootNotification response could look like this: [3, "19223201", {"status":"Accepted", "currentTime":"2013-02-01T20:53:32.486Z", "heartbeatInterval":300} ]
Man beachte das Z am Ende. Bitte Ticket beim Hersteller aufmachen.
@tvand zur Info. Ein weiterer Fall von "man könnte das ja mal eben anders machen"...
@andig Ich fürchte, das kannst Du nicht gewinnen. Gerade im Industriebereich werden Spezifikationen oft als Empfehlungen gesehen. In der Branche ist Softwareentwicklung oft eine Nebentätigkeit. Entsprechend sind oft Skills und Qualität. Been there, done that. Noch'n Beispiel: https://developer.easee.cloud/docs/ocpp-smart-charging
Ändert ja nichts daran, dass niemand gezwungen ist, den Schrott zu unterstützen oder zu kaufen. Wenn der Hersteller Wert auf Interoperabilität oder Kundenzufriedenheit legt muss er sich halt an den Standard halten. Dafür sind die da. Bei Easee ist mir nix offensichtliches aufgefallen- die haben es ja sogar geschafft, zu dokumentieren, welchen Teil sie nicht haben.
Thank you for the very quick reply. I have one more comment. In the specs of ocpp 1.6 I can read .. 3.15. Time notations This section is normative. Implementations MUST use ISO 8601 date time notation. Message receivers must be able to handle fractional seconds and time zone offsets (another implementation might use them). Message senders MAY save data usage by omitting insignificant fractions of seconds. .. and as mentioned here https://en.wikipedia.org/wiki/ISO_8601 .. If the time is in UTC, add a Z directly after the time without a space. Z is the zone designator for the zero UTC offset. .. and some lines above .. If no UTC relation information is given with a time representation, the time is assumed to be in local time. .. Could this not also be understood as that the "Z" or the other time zone strings for example "+02:00" are optional? Or is this a requirement of evcc to have all chargers and, may be, all other devices at UTC?
Die Box sendet hier eine Lokalzeit. Wo kommt denn dieser Fehler her?
Excellent find. Depends on https://github.com/lorenzodonini/ocpp-go/issues/237
@andig Naja, Theorie und Praxis, ya know. Meist ist es so, dass man als Kunde zum Kaufzeitpunkt gar keine Chance hat, herauszufinden, was alles nicht geht. Zumal man ja in der Regel nicht mal weiß, wonach man suchen muss.
Daraus lassen sich leider keine Ansprüche gegen Dritte ableiten. Da etwas OT- ich blende die Kommentare mal aus.
Library has a global data format setting that could be used- but only as long as you have a single format for all charge points...
For time being I will close this as wontfix until we can find a better upstream solution.
@blauberger please retry with tomorrow's nightly. Upstream enhancement has been included (https://github.com/evcc-io/evcc/commit/d212f04b28d0f890f595cda0babb58c6a5b6ac3e). Let's see if that is capable to parse the timestamps and if your box can understand evcc requests.
With the nightly build, the box now also works with the time zone set. The error messages have disappeared. Very good work! Thank you very much.
Describe the bug
Since Version 0.121.1 when a car is connected to the charger the log fills up with:
evcc[609]: [ocpp ] ERROR 2023/10/19 17:03:59 ocpp message (288115): FormationViolation - parsing time "2023-10-19T15:28:07" as "2006-01-02T15:04:05Z07:00": cannot parse "" as "Z07:00" ([2,"288115","StartTransaction",{"connectorId":1,"idTag":"evcc","meterStart":0,"reservationId":0,"timestamp":"2023-10-19T15:28:07"}])
The charger is a Growatt THOR EV Charger. It seems as the parser fails at the time zone info "Z07:00"
Steps to reproduce
Configuration details
Log details
What type of operating system are you running?
Linux
Version
0.121.1