evcc-io / evcc

Sonne tanken ☀️🚘
https://evcc.io
MIT License
3.47k stars 639 forks source link

Phases detection wrong #2177

Closed Hoelli4C closed 2 years ago

Hoelli4C commented 2 years ago

Describe the bug I have set phases to p1 and my WARP Charger is indeed connected via 1 Phase. For the first few minutes everything works, after some time EVCC autodetects 2 and later 3 phases (see output below).

Expected behavior I would expect EVCC to keep my 1p setting.

EVCC details: Show output of evcc -v:

evcc version 0.77 (bac4e07)
Show evcc configuration file evcc.yaml:
uri: 0.0.0.0:7070 # uri for ui
interval: 10s # control cycle interval

log: error
levels:
  core: debug
  lp-1: debug
  lp-2: debug

meters:
- name: SHM2            #SMA Home Manager 2.0
  type: sma
  uri: 192.168.30.50

- name: WR-PV           #SMA Sunny TriPower 20000TL
  type: sma
  uri: 192.168.30.51
  password: xxx

- name: WR-BAT          # SMA Sunny Boy Storage 3.7
  type: sma
  uri: 192.168.30.52
  password: xxx

hems:
  type: shm
  allowcontrol: false

chargers:
- name: warp        # Konfigurationsname der Wallbox
  type: warp        # Typ der Wallbox
  broker: localhost # Hostname oder Adresse des MQTT-Brokers
  topic: warp/U7X   # Der Topic-Präfix
  usemeter: false    # true für WARP Charger Pro, false für Smart
  timeout: 30s

vehicles:
- name: ID4
  type: id
  title: ID4 # display name for UI
  capacity: 77 # kWh
  user: xxx # user
  password: xxx# password
  vin: xxx # optional

site:
  title: Home # display name for UI
  meters:
    grid: SHM2 # grid meter
    pv: WR-PV # pv meter
    battery: WR-BAT # battery meter
  prioritySoC: 80 # give home battery priority up to this soc (0 to disable)

loadpoints:
- title: Garage # display name for UI
  vehicle: ID4
  charger: warp # charger
  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
      mode: charging
      # poll interval defines how often the vehicle API may be polled if NOT charging
      interval: 60m
    min: 30 # 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
#    targetSoC: 100 # charge to 100%
  phases: 1 # ev phases (default 3)
  enable: # pv mode enable behavior
    delay: 2m # threshold must be exceeded for this long
    threshold: 0 # minimum export power (W). 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: 10m # switch charger contactor not more often than this (default 10m)
  mincurrent: 6 # minimum charge current (default 6A)
  maxcurrent: 16 # maximum charge current (default 16A)
  resetOnDisconnect: false

mqtt:
  broker: 192.168.30.10:1883

Show evcc log output with --log debug:
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 charge power: 3497W
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 detected phases: 1p (15.2A @ 3497W)
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 charger status: C
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 vehicle soc: 71%
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 vehicle range: 314km
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 max charge current: 15.1A = 15.2A + -0.136A (31W @ 1p)
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 pv max charge current: 15.1A
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 max charge current: 15.1A
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 charge power: 3466W
Jan  1 12:55:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:25 detected phases: 2p (15.1A @ 3466W)
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 charge power: 3466W
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 detected phases: 2p (15.1A @ 3466W)
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 charger status: C
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 vehicle soc: 71%
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 vehicle range: 314km
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 max charge current: 14.9A = 15.1A + -0.151A (69W @ 2p)
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 pv max charge current: 14.9A
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 max charge current: 14.9A
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 charge power: 6862W
Jan  1 12:55:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:35 detected phases: 2p (14.9A @ 6862W)
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 charge power: 6862W
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 detected phases: 2p (14.9A @ 6862W)
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 charger status: C
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 vehicle soc: 71%
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 vehicle range: 314km
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 max charge current: 14.6A = 14.9A + -0.271A (125W @ 2p)
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 pv max charge current: 14.6A
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 max charge current: 14.6A
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 charge power: 6737W
Jan  1 12:55:45 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:45 detected phases: 2p (14.6A @ 6737W)
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 charge power: 6737W
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 detected phases: 2p (14.6A @ 6737W)
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 charger status: C
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 vehicle soc: 71%
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 vehicle range: 314km
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 max charge current: 14.8A = 14.6A + 0.109A (-50W @ 2p)
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 pv max charge current: 14.8A
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 max charge current: 14.8A
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 charge power: 6787W
Jan  1 12:55:55 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:55:55 detected phases: 2p (14.8A @ 6787W)
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 charge power: 6787W
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 detected phases: 2p (14.8A @ 6787W)
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 charger status: C
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 vehicle soc: 71%
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 vehicle range: 314km
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 max charge current: 14.8A = 14.8A + 0.032A (-15W @ 2p)
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 pv max charge current: 14.8A
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 max charge current: 14.8A
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 charge power: 6802W
Jan  1 12:56:05 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:05 detected phases: 2p (14.8A @ 6802W)
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 charge power: 6802W
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 detected phases: 2p (14.8A @ 6802W)
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 charger status: C
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 vehicle soc: 71%
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 vehicle range: 314km
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 max charge current: 14.6A = 14.8A + -0.165A (76W @ 2p)
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 pv max charge current: 14.6A
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 max charge current: 14.6A
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 charge power: 6726W
Jan  1 12:56:15 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:15 detected phases: 3p (14.6A @ 6726W)
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 charge power: 6726W
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 detected phases: 3p (14.6A @ 6726W)
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 charger status: C
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 vehicle soc: 71%
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 vehicle range: 314km
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 max charge current: 14.6A = 14.6A + -0.00203A (1W @ 3p)
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 pv max charge current: 14.6A
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 max charge current: 14.6A
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 charge power: 10087W
Jan  1 12:56:25 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:25 detected phases: 3p (14.6A @ 10087W)
Jan  1 12:56:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:35 charge power: 10087W
Jan  1 12:56:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:35 detected phases: 3p (14.6A @ 10087W)
Jan  1 12:56:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:35 charger status: C
Jan  1 12:56:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:35 vehicle soc: 71%
Jan  1 12:56:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:35 vehicle range: 314km
Jan  1 12:56:35 raspi3 evcc[2363]: [lp-1  ] DEBUG 2022/01/01 12:56:35 max charge current: 14.6A = 14.6A + 0.00623A (-4W @ 3p)

premultiply commented 2 years ago

Auch in #2170 vorhanden. -> Erkennungsautomatik funktioniert ohne Zähler am LP nicht.

Hoelli4C commented 2 years ago

sieht so aus als würde zum Zeitpunkt des Fehler der Verbrauch im Haus auf die Ladeleistung aufgeschlagen und dadurch stimmen die Werte nicht mehr. Im Screenshot sieht man Verbrauch 0 (es laufen defintiv andere Verbraucher im Haus):

grafik

andig commented 2 years ago

Auch in #2170 vorhanden. -> Erkennungsautomatik funktioniert ohne Zähler am LP nicht.

Wenn ich bei 1p und 6A plötzlich 3,7kW sehe kann es nur 3p sein. Könntest Du konkreter werden, was hier nicht funktioniert?

Hoelli4C commented 2 years ago

Wo sind 3.7kw bei 6A? Die Ampere schwanken in meinem Log zwischen 14 und 16A.

Es ist defintiv so dass die WB nur per einer Phase (16A am DIP bzw. an der Sicherung) angebunden ist, da gehen nicht mehr als 3800W drüber. Es sieht so aus als würde der übrige Hausverbrauch über die Zeit dem Ladepunkt zugeschlagen werden und dann "sieht" EVCC mehr als 3800W per 16A und geht zuerrst auf 2P und dann später auf 3P.

12:55:25 detected phases: 2p (15.1A @ 3466W) 12:56:15 detected phases: 3p (14.6A @ 6726W)

premultiply commented 2 years ago

@andig Ohne Zähler ist doch bereits die Ladeleistung fake. Da jetzt noch eine Phasennutzung draus abzuleiten ist doch ziemlich sinnfrei. Hier kann nur fest die phases: Angabe in der Konfig weiterhelfen.

andig commented 2 years ago

Ich dachte eher an den Fall Leistungsmessung ohne Ströme. Das könnten wir natürlich noch differenzieren.

premultiply commented 2 years ago

Ja das wäre wohl sehr sinnvoll weil sonst kommt da nur Quatsch raus.

Und auch den Erkennungsalgorithmus würde ich gerne noch verfeinern. Der muss auch den zuvor erkannten phases-Wert berücksichtigen können bzw. diesen nicht ändern für Leistungsbereiche wo es nicht eindeutig ist.

andig commented 2 years ago

PR welcome

andig commented 2 years ago

Also hier sind wir fertig?

premultiply commented 2 years ago

Bis zum Fix nicht. Oder hab ich da was übersehen?

andig commented 2 years ago

Der einfache Fix wäre das ohne Zähler nixht zu machen. Wär das besser? Ansonsten work as expected für mich!

premultiply commented 2 years ago

Ja, das wäre besser. Wenn du das schnell fixen kannst mach das bitte gerne und dann hier zu.

Die Optimierung der Phasenerkennung anhand der (gemessenen) Leistung kommt später und separat. Da muss ich auch erst noch ein bisschen drüber sinnieren.

premultiply commented 2 years ago

Genug sinniert: Die Phasennutzungsschätzung nur anhand der gemessenen(!) Summenwirkleistung kann man nicht wirklich viel besser machen. @andig Das kann so bleiben wenn der Fall "Keine Wirkleistungsmessung und keine Phasenströme" vollständig ausgeklammert wird.

andig commented 2 years ago

Ich verstehe die Schlussfolgerung nicht, deshalb nochmal zurück zum Problem. Die Ursache ist ganz einfach wenn man ins Log schaut:

W A phases
3497 15,2 1,00028604
3466 15,1 0,99798445

Das Problem ist schlicht die kürzlich eingeführte ceil Funktion statt des sauberen Rundens.

premultiply commented 2 years ago

Nein, denn Achtung: Die Wirkleistung wird hier nicht gemessen sondern selbst geschätzt! Der Rest ist ein Float-Rundungsfehler.

Ceil ist korrekt. Es gibt keine 1,irgendwas Phasen sondern dann nur 2.

Bei gemessenen(!) Werten liegt die Wirkleistung immer unter der (Schein)Leistungsvorgange durch den max. Phasenstrom.

premultiply commented 2 years ago

Hier muss einfach nur dafür gesorgt werden dann diese Funktion nur mit gemessenen(!) Leistungen gefüttert wird.

andig commented 2 years ago

Mittels https://github.com/evcc-io/evcc/commit/13dac30def47a7666969fe090c2f4cf7a1a08133 behoben.

@premultiply weiter in https://github.com/evcc-io/evcc/issues/2146