Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ampere Storage Pro - Grid values dont make sense #18033

Open
1 task done
rklueber opened this issue Jan 3, 2025 · 11 comments
Open
1 task done

Ampere Storage Pro - Grid values dont make sense #18033

rklueber opened this issue Jan 3, 2025 · 11 comments
Assignees
Labels
devices Specific device support

Comments

@rklueber
Copy link

rklueber commented Jan 3, 2025

Describe the bug

Installed evcc in Docker. Works like a charm after I understood how the configuration is done. I have Ampere Storage Pro. Adding grid/battery/inverter was easy via IP/modbus.

Anyone else running this hardware without issues? I have the impression the grid meter does not work properly. Saw similar issues which did not lead to a solution for me.

This is evcc
image

This is the respective information I read out via HA which make sense to me and are in line with the values I can read on the display of the physical EVU smart meter.

image

Any ideas where to look?

Steps to reproduce

  1. Start Docker
  2. Values are off

Configuration details

sponsortoken: eyJhbGciOiJIUzI2NiIsInR5cCI6IkpXVCJ9...

network:
  schema: http
  host: evcc.local # .local suffix announces the hostname on MDNS
  port: 7070

log: debug
levels:
  cache: error

# unique installation id
plant: 9b7394ced66f2e1...

interval: 30s # control cycle interval

meters:
- type: template
  template: saj-h2
  id: 1
  host: 10.0.30.87
  port: 502
  usage: grid
  modbus: tcpip
  name: grid1
- type: template
  template: saj-h2
  id: 1
  host: 10.0.30.87
  port: 502
  usage: pv
  modbus: tcpip
  name: pv2
- type: template
  template: saj-h2
  id: 1
  host: 10.0.30.87
  port: 502
  usage: battery
  modbus: tcpip
  capacity: 12
  defaultmode: 2
  # minsoc: 20
  # maxsoc: 95
  name: battery3

chargers:
- type: template
  template: openwb-2.0
  id: 1
  host: 192.168.193.5
  port: 1502
  modbus: tcpip
  connector: 1
  name: wallbox4
- type: template
  template: openwb-2.0
  id: 1
  host: 192.168.193.6
  port: 1502
  modbus: tcpip
  connector: 2
  name: wallbox5

loadpoints:
- title: Garage
  charger: wallbox4
  mode: minpv
- title: Stellplatz
  charger: wallbox5
  mode: off

site:
  title: Heidbergdamm
  meters:
    grid: grid1
    pv:
    - pv2
    battery:
    - battery3

tariffs:
  grid:
    type: template
    template: tibber
    token: _N01KQGAJZlsAJPCDOIb...

vehicles:
  - name: tessa
    type: template
    template: tesla
    title: Tessa # Wird in der Benutzeroberfläche angezeigt (optional)
    capacity: 80 # Akkukapazität in kWh (optional)
    accessToken: eyJhbGciOiJSUzI1NiIs...
    refreshToken: EU_8051b3ab64a7ee55...
    vin: LRW...

Log details

[lp-1  ] DEBUG 2025/01/03 15:19:51 charge power: 11161W
[lp-1  ] DEBUG 2025/01/03 15:19:51 charge currents: [16.1 16.2 16.2]A
[lp-2  ] DEBUG 2025/01/03 15:19:51 charge power: 0W
[lp-2  ] DEBUG 2025/01/03 15:19:51 charge currents: [0 0 0]A
[site  ] DEBUG 2025/01/03 15:19:52 grid power: 698W
[site  ] DEBUG 2025/01/03 15:19:56 pv power: 510W
[site  ] DEBUG 2025/01/03 15:19:57 grid currents: [1.34 1.41 1.45]A
[site  ] DEBUG 2025/01/03 15:19:58 battery soc: 11%
[site  ] DEBUG 2025/01/03 15:19:58 battery power: 0W
[site  ] DEBUG 2025/01/03 15:19:58 site power: 798W
[lp-2  ] DEBUG 2025/01/03 15:19:58 charge total import: 0.000kWh
[lp-2  ] DEBUG 2025/01/03 15:19:58 charger status: A

What type of operating system or environment does evcc run on?

Docker container

Nightly build

  • I have verified that the issue is reproducible with the latest nightly build

Version

0.132.0

@rklueber
Copy link
Author

rklueber commented Jan 3, 2025

I checked the SAJ modbus implementation from Stanus74

EVCC is using a different register compared to HA SAJ modbus integration.

EVCC uses 0x40A7 and SAJ Modbus integration from HA uses 0x40A0 which gets the correct results.

I am not a skilled developer and looked into setting up an own development version of EVCC to test this simple/small change here. I failed to do so. Forgive me.

Anyone willing to implement this small hack. I am happy to test with real hardware.

@andig andig added the devices Specific device support label Jan 3, 2025
@rklueber
Copy link
Author

rklueber commented Jan 3, 2025

I was able to clone the repro, did the required changes in the template and build/run a docker. I can confirm the suggested change above (0x40A7 to 0x40A0) works.

@andig
Copy link
Member

andig commented Jan 5, 2025

Laut Template ist 0x40A7 # TotalGridPowerWatt. Das klingt richtig. Was ist 0x40A7? Und funktioniert das dann auch für den SAJ H2? Es braucht wohl mal eine detailliertere Erläuterung, welcher der Werte hier wofür steht, die Benennung ist verwirrend:

("directionPV", None),  # 16533
("directionBattery", "decode_16bit_int"),  # 16534
("directionGrid", "decode_16bit_int"),  # 16535
("directionOutput", None),  # 16536
("TotalLoadPower", "decode_16bit_int"),  # 16544
("CT_GridPowerWatt", "decode_16bit_int"),  # 16545
("CT_GridPowerVA", "decode_16bit_int"),  # 16546
("CT_PVPowerWatt", "decode_16bit_int"),  # 16547
("CT_PVPowerVA", "decode_16bit_int"),  # 16548
("pvPower", "decode_16bit_int"),  # 16549
("batteryPower", "decode_16bit_int"),  # 16550
("totalgridPower", "decode_16bit_int"),  # 16551
("totalgridPowerVA", "decode_16bit_int"),  # 16552
("inverterPower", "decode_16bit_int"),  # 16553
("TotalInvPowerVA", "decode_16bit_int"),  # 16554
("BackupTotalLoadPowerWatt", "decode_16bit_uint"),  # 16555
("BackupTotalLoadPowerVA", "decode_16bit_uint"),  # 16556
("gridPower", "decode_16bit_int"),  # 16557

@rklueber
Copy link
Author

rklueber commented Jan 5, 2025

In dem Thread für die HA integration findet sich (in einem Telegram Chat) ein PDF mit einigen Infos. Aber mehr als die Beschreibung 0x40A0 als "SysTotalLoadWatt" findet sich dort auch nicht.

Quelle: https://t.me/saj_nooficialoriginal/8487

Ich habe einen H2. Hier funktioniert es mit dem 0x40A0. Hast du einen sinnvollen Wert mit dem Register 0x40A7?

@andig
Copy link
Member

andig commented Jan 5, 2025

Ich komme mangels Telegram nicht drauf :O

@rklueber
Copy link
Author

rklueber commented Jan 5, 2025

@andig
Copy link
Member

andig commented Jan 5, 2025

Screenshot 2025-01-05 at 13 32 08

Danke. Klingt für mich, als wäre 0x40A0 die Inverterleistung, 40A7H aber tatsächlich Netz. Bekommst Du beim H2 auf beiden Registern die gleichen Werte?

@premultiply was machen wir damit?

@rklueber
Copy link
Author

rklueber commented Jan 5, 2025

Nein auf beiden Registern kommen unterschiedliche Werte. Auf 0x40A7 kommen Werte die nicht passen. Siehe initialer Screenshot.

Mit der modification sieht das besser aus bei mir.

image

Hat denn einer von euch ein SAJ Gerät auf dem auf 0x40A7 sinnige Werte kommen?

@premultiply
Copy link
Member

premultiply commented Jan 5, 2025

Bei 0x40A0 passt keine der Beschreibungen in diversen Dokumenten von SAJ. Da geht es nur um Loads (Hausverbrauch).
Von der Beschreibung her ergibt nur 0x40A7 oder vielleicht noch 0x40AD größeren Sinn.
Was enthält denn 0x40AD ?

@rklueber
Copy link
Author

rklueber commented Jan 8, 2025

Danke für das kritische Nachfragen. Mein System wird gerade durch die Batterie gespeist und in dem Zustand stimmt die Anzeige in EVCC mit dem geänderten Register auf 0x40A0 wieder nicht. Ergo ist das nicht das richtige Register ,-). Euer Verdacht war begründet.

Welchen Wert erwartet EVCC denn für ein Meter dort?

Kann man das irgendwo nachlesen oder erklären? Dann kann ich versuchen an meinem System den richtigen Wert zu finden.

0x40AD hat 0 Watt zurück geliefert.

@andig
Copy link
Member

andig commented Jan 8, 2025

Battery/PV: Zähler am Gerät bevor es ins Haus geht. Grid: Netzübergabepunkt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
devices Specific device support
Projects
None yet
Development

No branches or pull requests

3 participants