spali / go-rscp

Go library to communicate with a E3DC system implementing the RSCP (Remote Storage Control Protocol)
https://github.com/spali/go-rscp
MIT License
27 stars 9 forks source link

Einige Tags kommen als Error zurück #12

Closed SaschaHenning closed 2 years ago

SaschaHenning commented 2 years ago

Erstmal Danke für die super Lösung. Ist echt praktisch.

Ich habe leider bei manchen Tags Probleme mit der Abfrage und erkenne nicht direkt, was ich falsch mache:

e3dc.json:

[
"INFO_REQ_TIME",
"EMS_REQ_BAT_SOC",
"EMS_REQ_POWER_ADD",
"EMS_REQ_POWER_BAT",
"EMS_REQ_POWER_HOME",
"EMS_REQ_POWER_GRID",
"EMS_REQ_SELF_CONSUMPTION",
"EMS_REQ_AUTARKY",
"EMS_REQ_GET_POWER_SETTINGS",
"EMS_REQ_GET_MANUAL_CHARGE",
"EMS_REQ_EMERGENCY_POWER_STATUS",
"EP_REQ_IS_GRID_CONNECTED",
"EP_REQ_IS_POSSIBLE",
"EP_REQ_IS_READY_FOR_SWITCH",
"EP_REQ_IS_INVALID_STATE",
"WB_REQ_ENERGY_ALL",
"EMS_REQ_STATUS",
"BAT_REQ_INFO"
]

Ergebnis (Auszug):

result: 
EMS_POWER_BAT: -1266
EMS_POWER_HOME: 1167
EMS_AUTARKY: 99.83789
...
BAT_INFO: ERR_FORMAT
INFO_TIME: '2022-01-31T22:33:58.000416Z'
EP_IS_READY_FOR_SWITCH: true
EP_IS_GRID_CONNECTED: true
EP_IS_INVALID_STATE: false
EP_IS_POSSIBLE: true
WB_ENERGY_ALL: ERR_FORMAT

Warum bekommen BAT_INFO und WB_ENERGY_ALL als Ergebnis ERR_FORMAT? Wie kann ich das "debuggen"?

Danke für einen Hinweis.

spali commented 2 years ago

Ich habe leider keine WB and der E3DC, kann dir darum nur theoretisch helfen.

WB_ENERGY_ALL verlangt gemäss Doku von E3DC, dass es innerhalb von REQ_WB_DATA Container verwendet wird. siehe Kann nur innerhalb eines REQ_WB_DATA Container verwendet werden!

Das heisst, du musst die Tags schachteln und noch ein Index der WB mit liefern. Ohne es getestet zu haben, müsste es vermutlich in etwa so aussehen:

[
  "EMS_POWER_BAT",
  //....
  [
    "REQ_WB_DATA",
    ["WB_INDEX", 0],
    "WB_REQ_ENERGY_ALL"
  ]
]