evcc icon indicating copy to clipboard operation
evcc copied to clipboard

OCPP: Mennekes Smart Charging Station seit 0.130.0 Fehlerhaft

Open benesolar opened this issue 1 year ago • 46 comments

Describe the bug

Hallo,

seit dem Update 0.130.0 startet die Ladung nicht mehr. Habe auch schon 0.130.3 getestet.

  • charge power: not available
  • charger out of sync: expected enabled, got disabled

grafik

evcc-20240825-152707-ocpp trace.log

Steps to reproduce

  1. Funktionierende Config mit 0.129.0
  2. Update auf 0.130.3 ...

Configuration details

network:
  schema: http
  host: evcc.local
  port: 7070

interval: 5s # control cycle interval

# database configuration for persisting charge sessions and settings
# database:
#   type: sqlite
#   dsn: <path-to-db-file>

# telemetry: true

# log settings
log: error
levels:
  core: error
  lp-1: error
  lp-2: error
  lp-3: error
  cache: error
  db: error
  ocpp: error

# meter definitions
meters:
  - name: grid
    type: template
    template: fronius-gen24
    usage: grid
    host: 192.168.1.248
    port: 502
  - name: pv1
    type: template
    template: fronius-gen24
    usage: pv
    host: 192.168.1.248
    port: 502
  - name: pv2
    type: template
    template: fronius-solarapi-v1
    usage: pv
    host: 192.168.1.249
    port: 502
  - name: pv3
    type: custom
    power:
      source: sunspec
      id: 240
      uri: 192.168.1.249:502
      value:
        - 201:W
        - 211:W
  - name: battery
    type: template
    template: fronius-solarapi-v1
    usage: battery
    host: 192.168.1.248
    user: customer
    password: xxx
  - name: EVSE-DIN
    type: template
    template: eastron
    # RS485 via adapter (Modbus RTU)
    modbus: rs485serial
    id: 2
    device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
    baudrate: 9600
    comset: "8N1" # Kommunikationsparameter für den Adapter

# charger definitions
chargers:
  - name: EVSE-DIN
    type: template
    template: evse-din
    # RS485 via adapter (Modbus RTU)
    modbus: rs485serial
    id: 1
    device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
    baudrate: 9600 
    comset: "8N1" # Kommunikationsparameter für den Adapter
  - name: SmartTRechts
    stationid: Webergasse
    connector: 1
    type: template
    template: ocpp
    connecttimeout: 5m
    timeout: 10m
    autostart: true
    bootnotification: false
    meterInterval: 60s
    metervalues: Energy.Active.Import.Register
  - name: SmartTLinks
    stationid: Webergasse
    connector: 2
    type: template
    template: ocpp
    connecttimeout: 5m
    timeout: 10m
    autostart: true
    bootnotification: false
    meterInterval: 60s
    metervalues: Energy.Active.Import.Register
#- name: fritzdect
#  type: template
#  template: fritzdect
#  uri: https://192.168.1.254 # FRITZ!Box ip address (local)
#  user: fritz3914 # FRITZ!Box username (Has to have Smart Home privileges!)
#  password: xxx # FRITZ!Box password
#  ain: 'xxx' # switch actor identification number without blanks (see AIN number on switch sticker)
#  standbypower: 10 # treat as charging above this power

# vehicle definitions
vehicles:
  - name: polestar
    type: template
    template: polestar
    title: Polestar 2
    identifiers:
      - 043768e29a7xxx # RFID token ID
    mode: pv
    user: xxx
    password: xxx
    vin: YSMVSxxx
    capacity: 75
  - name: BMW
    type: custom
    title: BMW IX1
    capacity: 64.7
    identifiers:
      - 041f64eacd1xxx
    onIdentify:
      mode: pv
#  - name: scooter
#    type: template
#    template: niu-e-scooter
#    title: scooter # Wird in der Benutzeroberfläche angezeigt # Optional
#    user: xxx # Benutzerkonto (bspw. E-Mail Adresse, User Id, etc.)
#    password: xxx # Passwort des Benutzerkontos (bei führenden Nullen bitte in einfache Hochkommata setzen)
#    serial: Nxxx
#    capacity: 4 # Akku-Kapazität in kWh # Optional 

# site describes the EVU connection, PV and home battery
site:
  title: Zuhause # display name for UI
  meters:
    grid: grid # grid meter
    pv: # list of pv inverters/ meters
    - pv1
    - pv2
    - pv3
    battery: battery # battery meter
  prioritySoC: # give home battery priority up to this soc (empty to disable)
  bufferSoC: # ignore home battery discharge above soc (empty to disable)
  residualPower: 100
  circuit: main

circuits:
  - name: main
    maxCurrent: 35
    meter: grid

# loadpoint describes the charger, charge meter and connected vehicle
loadpoints:
  - title: Garage # display name for UI
    charger: EVSE-DIN # charger
    meter: EVSE-DIN # charge meter
    phases: 0 # ev phases (default 3)
    enable: # pv mode enable behavior
      delay: 1m # threshold must be exceeded for this long
      threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
    disable: # pv mode disable behavior
      delay: 3m # threshold must be exceeded for this long
      threshold: 0 # maximum import power (W)
    guardDuration: 5m # switch charger contactor not more often than this (default 5m)
  - title: LadesäuleRechts
    charger: SmartTRechts
    mode: off
    phases: 0
    enable: # pv mode enable behavior
      delay: 1m # threshold must be exceeded for this long
      threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
    disable: # pv mode disable behavior
      delay: 4m # threshold must be exceeded for this long
      threshold: 0 # maximum import power (W)
    guardDuration: 5m # switch charger contactor not more often than this (default 5m)
  - title: LadesäuleLinks
    charger: SmartTLinks
    mode: off
    phases: 0
    enable: # pv mode enable behavior
      delay: 1m # threshold must be exceeded for this long
      threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
    disable: # pv mode disable behavior
      delay: 4m # threshold must be exceeded for this long
      threshold: 0 # maximum import power (W)
    guardDuration: 5m # switch charger contactor not more often than this (default 5m)
#  - title: Schuko
#    charger: fritzdect
#    meter:
#    vehicle:
#    mode: pv
#    soc:
#    # polling defines usage of the vehicle APIs
#    # Modifying the default settings it NOT recommended. It MAY deplete your vehicle's battery
#    # or lead to vehicle manufacturer banning you from API use. USE AT YOUR OWN RISK.
#    poll:
      # poll mode defines under which condition the vehicle API is called:
      #   charging: update vehicle ONLY when charging (this is the recommended default)
      #   connected: update vehicle when connected (not only charging), interval defines how often
      #   always: always update vehicle regardless of connection state, interval defines how often (only supported for single vehicle)
#    mode: charging
      # poll interval defines how often the vehicle API may be polled if NOT charging
#      interval: 60m
#      min: 0 # immediately charge to 0% regardless of mode unless "off" (disabled)
#      target: 100 # always charge to 100%
#      estimate: false # set true to interpolate between api updates
#      phases: 1 # ev phases (default 3)
#    enable: # pv mode enable behavior
#      delay: 1m # threshold must be exceeded for this long
#      threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
#    disable: # pv mode disable behavior
#      delay: 5m # threshold must be exceeded for this long
#      threshold: 200 # maximum import power (W)
#    guardDuration: 5m # switch charger contactor not more often than this (default 10m)
#    minCurrent: 6 # minimum charge current (default 6A)
#    maxCurrent: 16 # maximum charge current (default 16A)

# tariffs are the fixed or variable tariffs
tariffs:
  currency: EUR
  grid:
    # either static grid price (or price zones)
    type: fixed
    price: 0.2073 # EUR/kWh
  feedin:
    # rate for feeding excess (pv) energy to the grid
    type: fixed
    price: 0.07 # EUR/kWh
# push messages
messaging:
  events:
    start: # charge start event
      title: Ladung von {{.vehicleTitle}} gestarted
      msg: |
        {{.title}} Begann Ladung von {{.vehicleTitle}} im {{ toString .mode | upper }} Modus.
    stop: # charge stop event
      title: Ladung von {{.vehicleTitle}} pausiert
      msg: |
        Ladung von {{.vehicleTitle}} pausiert
    connect: # vehicle connect event
      title: "{{.vehicleTitle}} verbunden mit {{.title}}"
      msg: |
        {{.vehicleTitle}} verbunden mit {{.title}} an {{round (divf .pvPower 1000) 2 }} kW PV.
    disconnect: # vehicle connected event
      title: "{{.vehicleTitle}} disconnected of {{.title}}"
      msg: |
        {{.vehicleTitle}} disconnected of {{.title}} nach {{.connectedDuration}}.
        Geladen {{round (divf .chargedEnergy 1000) 2 }} kWh in {{.chargeDuration}}.
  services:
    - type: telegram
      token: xxx # bot id
      chats:
      - -xxx # list of chat ids

Log details

Siehe Anhang

What type of operating system are you running?

Linux

Version

0.130.3

benesolar avatar Aug 25 '24 13:08 benesolar

Bitte 0.130.3 probieren. Sollte behoben sein.

andig avatar Aug 25 '24 13:08 andig

ich habe bereits 0.130.3 laufen - Fehler tritt auch da auf.

Komplettes Log: evcc-20240825-155251-trace.log

benesolar avatar Aug 25 '24 13:08 benesolar

Dann brauchts bitte ein Log mit site, loadpoint, ocpp auf trace. Sonst nix. Danke.

andig avatar Aug 25 '24 14:08 andig

Log mit beiden Anschlüssen der Ladestation: evcc-20240825-171151-trace.log

Hier nochmal der OCPP Log vom Start der Ladestation mit der Antwort auf GetConfiguration: evcc-20240825-152707-ocpp trace.log

benesolar avatar Aug 25 '24 15:08 benesolar

Bevor ich da versuche weiter einzusteigen: Du zwingst der Wallbox die Messwerte auf:

metervalues: Energy.Active.Import.Register

wunderst Dich dann aber, dass Leistung nicht dabei ist... Warum auch immer das bei den anderen Box geht, aber die Config ist ja einfach falsch. Tatsächlich scheint Connector 1 auch keine Leistung zu liefern, 2 aber sehr wohl. Warum auch immer.

@premultiply warum wir hier bei Connector 1 überhaupt Leistung dekoriert?

andig avatar Aug 25 '24 17:08 andig

Stand nach dem Update auf 0.130.4 und geänderter Config:

  - name: SmartTRechts
    stationid: Webergasse
    connector: 1
    type: template
    template: ocpp
    connecttimeout: 5m
    timeout: 2m
    bootnotification: false
  - name: SmartTLinks
    stationid: Webergasse
    connector: 2
    type: template
    template: ocpp
    connecttimeout: 5m
    timeout: 2m
    bootnotification: false

werden keine Fehlermeldungen mehr angezeigt, Ladung funktioniert.

evcc-20240825-204406-trace.log

Bei dem einen Ladepunkt werden im Aus und PV Modus 12 W Ladeleistung angezeigt. Hier misst der Zähler den Eigenverbrauch vom Controller der Ladestation.

benesolar avatar Aug 25 '24 18:08 benesolar

@andig Irgendwas stimmt hier noch nicht mit der Initialisierung bei mehreren Connectoren. Lass uns da nochmal gemeinsam nach schauen.

@benesolar

  - name: SmartTRechts
    stationid: Webergasse
    connector: 1
    type: template
    template: ocpp
  - name: SmartTLinks
    stationid: Webergasse
    connector: 2
    type: template
    template: ocpp

ist mehr als ausreichend.

premultiply avatar Aug 25 '24 20:08 premultiply

zu früh gefreut, ich habe die Einstellungen oben übernommen und auf 0.130.4+1724669427 aktualisiert:

[lp-2 ] ERROR 2024/08/27 12:39:52 charge power: not available
[lp-3 ] ERROR 2024/08/27 12:39:52 charge power: not available 

evcc-20240827-124057-trace.log

Logfile von der Ladestation selbst:

OCPP16.log

benesolar avatar Aug 27 '24 10:08 benesolar

Ja, sind wir dran...

andig avatar Aug 27 '24 12:08 andig

Test des angehängten PR wäre Klasse. Der ist ein bisschen zu groß, um ihn mal eben so zu mergen.

andig avatar Aug 29 '24 18:08 andig

Erst jetzt wieder möglich, Ladestation war defekt.

0.130.7: weiterhin charge power: not available bei den Anschlüssen wo kein Ladevorgang läuft.

0.130.7+1725675906: cannot create charger 'SmartTLinks': cannot create charger type 'template': cannot create charger type 'ocpp': timeout evcc-20240907-170440-trace.log

benesolar avatar Sep 07 '24 15:09 benesolar

@benesolar der timeout sollte jetzt auch behoben sein. Charge power bin ich unsicher, ggf. bräuchte es da nochmal ein Logfile.

andig avatar Sep 15 '24 12:09 andig

evcc 0.130.11 (81a31592) cannot create charger type 'ocpp': timeout

evcc-20240915-204603-trace.log

benesolar avatar Sep 15 '24 18:09 benesolar

Deine WB trennt die Verbindung:

charge point disconnected: Webergasse

Wäre eine Frage an den Herstellersupport möglich?

/cc @premultiply

andig avatar Sep 15 '24 19:09 andig

Ich starte immer die Ladestation und EVCC gleichzeitig neu, hängt eventuell damit zusammen? Hier ein neuer Log ohne disconnect.

evcc-20240915-213704-trace.log

Mit 0.130.7 funktioniert es.

Was genau soll ich den Hersteller fragen?

benesolar avatar Sep 15 '24 19:09 benesolar

Ich starte immer die Ladestation und EVCC gleichzeitig neu, hängt eventuell damit zusammen?

Mach mal bitte erst die Ladestation aus, starte dann evcc (neu) und dann die Ladestation wieder an.

premultiply avatar Sep 15 '24 19:09 premultiply

So kann ich es erst am Wochenende machen wenn ich wieder vorort bin.

Inzwischen ein log mit 0.130.7 falls es hilft: evcc-20240917-173511-trace.log

benesolar avatar Sep 17 '24 15:09 benesolar

[Webergasse-1] DEBUG 2024/09/15 21:31:29 waiting for chargepoint: 5m0s
[ocpp  ] TRACE 2024/09/15 21:31:29 error dispatching request [341681420, TriggerMessage] to Webergasse: cannot send request 341681420, no client Webergasse exists
[Webergasse-2] DEBUG 2024/09/15 21:31:29 failed triggering StatusNotification: cannot send request 341681420, no client Webergasse exists

Das ist maximal merkwürdig. -2 kommt völlig aus dem Nichts, ohne dass auch nur ein Ladepunkt verbunden wäre (@premultiply wo kommt das her?)

Dann fällt auf, dass die Box lower-case Config Keys benutzt, aber auf ChangeConfiguration in richtiger Schreibweise reagiert (@premultiply sollten wir das Einlesen case insensitive machen?).

Leider ergibt das Log (zumindest der Start) nicht viel Sinn für mich. Vielleicht liegts tatsächlich am gleichzeitigen Restart.

andig avatar Sep 17 '24 19:09 andig

Habe den Bereich in der .py gefunden der für ChangeConfiguration zuständig ist. .lower steht dort überall dabei

Ich denke ein Zitat daraus ist erlaubt: elif ConfigKey.lower() == 'HeartbeatInterval'.lower():

benesolar avatar Sep 17 '24 19:09 benesolar

Das heisst ja nicht, dass das irgendwie ein Standard wäre. Aber ja...

andig avatar Sep 17 '24 19:09 andig

In der Spec steht es eigentlich ganz klar als fester String mit Groß- und kleinbuchstaben drin. Aber warum einfach kopieren wenn man wieder irgendeine Sonderlocke in die Firmware bauen kann...

premultiply avatar Sep 17 '24 20:09 premultiply

@benesolar könntest Du dem Nightly nochmal eine Chance geben? Bitte erst evcc, dann WB starten damit wir ein sauberes Log bekommen.

andig avatar Sep 20 '24 15:09 andig

Hier die Logs mit dem gewünschten Prozedere:

0.130.7.log 0.130.11+1726846520.log

Weiterhin gleicher Fehler.

benesolar avatar Sep 20 '24 17:09 benesolar

Kann es sein, dass evcc die verfügbaren MeterValuesSampledData nicht verarbeitet, da die wallbox diese in Hochkommata packt?

Aus der "configurationKey" Message: {"readonly": false, "key": "metervaluessampleddata", "value": "'Power.Active.Import', 'Energy.Active.Import.Register'"}

mfuchs1984 avatar Sep 20 '24 17:09 mfuchs1984

Ähhhh…. Was soll denn der Mist jetzt wieder?! Es ist wirklich unglaublich, welchen Sch*** die sich da zusammen braten. Das lässt sich aber lösen 👍🏻

andig avatar Sep 20 '24 19:09 andig

🤦🏻‍♂️🙄

premultiply avatar Sep 21 '24 06:09 premultiply

@benesolar @premultiply ich verstehe das Log nicht. Der Anfang fehlt. Ich sehe

[Ladestation-1] DEBUG 2024/09/20 18:57:53 waiting for chargepoint: 5m0s
[ocpp  ] TRACE 2024/09/20 18:57:53 error dispatching request [3589246882, TriggerMessage] to Ladestation: cannot send request 3589246882, no client Ladestation exists
[Ladestation-2] DEBUG 2024/09/20 18:57:53 failed triggering StatusNotification: cannot send request 3589246882, no client Ladestation exists

Hier spricht evcc schon fröhlich mit der WB. Wo kommt das her wenn noch gar keine verbunden ist??? Das kann nicht sein.

andig avatar Sep 21 '24 09:09 andig

@benesolar ansonsten zeigt das Log keinen Fehler mehr. Was klappt denn jetzt noch nicht?

andig avatar Sep 21 '24 09:09 andig

das ist nur im main Log drinnen: cannot create charger type 'ocpp': timeout

Und dann ist zumindest in der funktionierenden 0.130.7 der Fehler charge power: not available auf den Ladepunkten wo kein Ladevorgang läuft.

benesolar avatar Sep 21 '24 10:09 benesolar

das ist nur im main Log drinnen: cannot create charger type 'ocpp': timeout

Ich seh da nix. Was ist das main log?

Und dann ist zumindest in der funktionierenden 0.130.7 der Fehler

...aber um das gehts ja nun schon seit 5 Releases nicht mehr.

Ich mache mal vorsichtig zu. Gerne nochmal komplettes Log fürs Nightly ab Start falls es noch einen Fehler gibt. https://github.com/evcc-io/evcc/issues/15677#issuecomment-2365099832 erweckt bei mir den Eindruck, als würden da Teile vom Log fehlen, warum auch immer.

andig avatar Sep 21 '24 11:09 andig