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

Use generator to simplify interface composition #310

Merged
merged 17 commits into from
Aug 26, 2020
Merged

Conversation

andig
Copy link
Member

@andig andig commented Aug 23, 2020

Dieser PR implementiert einen Code Generator um dynamische Interface Komposition zu implementieren. Damit sinkt die Komplexität für Implementierung unterschiedlicher Zähler- und Chargereigenschaften die sich erst zur Laufzeit ergeben und daher nicht statisch typisiert werden können.

/cc @schenlap mit diesem PR kann die EVSE optional auch Energie und Ströme. Der Code dafür ist automatisch generiert.

Konfigurationsoption:

  meter:
     energy: true
     currents: true

Zugehörige golang-nuts Diskussion: https://groups.google.com/g/golang-nuts/c/Oo9Nwm4AZRI/m/mjMLeMcSBQAJ

@andig andig added the infrastructure Basic functionality label Aug 23, 2020
@andig andig marked this pull request as draft August 23, 2020 16:07
@andig andig force-pushed the experiment/composition branch from b04cb80 to e647311 Compare August 23, 2020 17:03
@andig andig marked this pull request as ready for review August 23, 2020 17:11
@andig andig force-pushed the experiment/composition branch from a7cf1f3 to 9ca1d43 Compare August 23, 2020 20:33
@andig andig mentioned this pull request Aug 24, 2020
@schenlap
Copy link
Contributor

schenlap commented Aug 24, 2020

So ganz klar ist es mir noch nicht was ich testen muss,

Ich habe den chrager folgendermaßen konfiguriert:

chargers:
- name: evsewifi
  type: evsewifi # Charger with Phoenix Contact controller
  uri: http://10.0.0.208 # SimpleEVSE-Wifi address
  meter:
      energy: true
      currents: true

Stimmt das so?

Die Ladeleistung muss jedenfalls noch mit 1000 multipliziert werden.

image

Die geladenen Wh werden nach stop und start zurückgesetzt. Auch "meterReading" wird leider von evse auf Null gesetzt, allerdings erst beim Start. "chargedEnergy" wird bereits beim Stop zurückgesetzt. Alles bei S0 Meter.

@andig
Copy link
Member Author

andig commented Aug 24, 2020

Du kannst zum Test einfach evcc charger eingeben, die Faktoren ergänze ich noch (Leistung ist jetzt auch mit drin).

@andig
Copy link
Member Author

andig commented Aug 24, 2020

Bzgl meterReading: das ist doch perfekt! Dann nehmen wir das als Zählerstand und lassen evcc das Delta ermitteln!

@andig
Copy link
Member Author

andig commented Aug 24, 2020

Bzgl actualPower: das sieht aus wie der theoretische Wert der Evse, weniger wie ein Messwert- den sollten wir also ignorieren, den theoretischen Wert kennt evcc ja auch.

@andig andig closed this Aug 24, 2020
@andig andig deleted the experiment/composition branch August 24, 2020 21:16
@andig andig restored the experiment/composition branch August 24, 2020 21:16
@andig andig reopened this Aug 24, 2020
@andig
Copy link
Member Author

andig commented Aug 24, 2020

Arrgh, 2x dicker Finger :O

@andig andig force-pushed the experiment/composition branch from e5f27c5 to 56e3ad4 Compare August 25, 2020 11:25
@andig andig force-pushed the experiment/composition branch from 039ebe6 to c181860 Compare August 25, 2020 12:24
@schenlap
Copy link
Contributor

schaut jetzt besser aus. Leistung paßt:

./evcc charger
[main  ] INFO 2020/08/26 19:02:44 evcc 0.0.1-alpha (HEAD)
[main  ] INFO 2020/08/26 19:02:44 using config file /home/steve/go/src/github.com/andig/evcc/evcc.yaml
[wifi  ] TRACE 2020/08/26 19:02:44 http://10.0.0.208/getParameters
{"type":"parameters","list":[{"vehicleState":3,"evseState":true,"maxCurrent":16,"actualCurrent":6,"actualPower":1.32,"duration":2504710,"alwaysActive":true,"lastActionUser":"vehicle","lastActionUID":"vehicle","energy":0.91,"mileage":5,"meterReading":0.91,"currentP1":5.8,"currentP2":0,"currentP3":0}]}
Status: C
[wifi  ] TRACE 2020/08/26 19:02:44 http://10.0.0.208/getParameters
{"type":"parameters","list":[{"vehicleState":3,"evseState":true,"maxCurrent":16,"actualCurrent":6,"actualPower":1.32,"duration":2504751,"alwaysActive":true,"lastActionUser":"vehicle","lastActionUID":"vehicle","energy":0.91,"mileage":5,"meterReading":0.91,"currentP1":5.8,"currentP2":0,"currentP3":0}]}
Enabled: true
[wifi  ] TRACE 2020/08/26 19:02:44 http://10.0.0.208/getParameters
{"type":"parameters","list":[{"vehicleState":3,"evseState":true,"maxCurrent":16,"actualCurrent":6,"actualPower":1.32,"duration":2504787,"alwaysActive":true,"lastActionUser":"vehicle","lastActionUID":"vehicle","energy":0.91,"mileage":5,"meterReading":0.91,"currentP1":5.8,"currentP2":0,"currentP3":0}]}
Energy: 0.9kWh
[wifi  ] TRACE 2020/08/26 19:02:44 http://10.0.0.208/getParameters
{"type":"parameters","list":[{"vehicleState":3,"evseState":true,"maxCurrent":16,"actualCurrent":6,"actualPower":1.32,"duration":2504818,"alwaysActive":true,"lastActionUser":"vehicle","lastActionUID":"vehicle","energy":0.91,"mileage":5,"meterReading":0.91,"currentP1":5.8,"currentP2":0,"currentP3":0}]}
Current L1..L3: 5.8A 0.0A 0.0A

Die geladene Energy setzt sich immer noch zurück. MeterReading wird auf 0 gesetzt wenn die Ladung beginnt und das wird von evse übernommen.

@andig
Copy link
Member Author

andig commented Aug 26, 2020

Die geladene Energy setzt sich immer noch zurück. MeterReading wird auf 0 gesetzt wenn die Ladung beginnt und das wird von evse übernommen.

Wirklich bekloppt, das das sollte auf Seite der EVSE gelöst werden...

@andig andig merged commit e7ee87b into master Aug 26, 2020
@delete-merged-branch delete-merged-branch bot deleted the experiment/composition branch August 26, 2020 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Basic functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants