Was bedeutet denn für dich “auf evcs power einstelle” ?
Grüße
Was bedeutet denn für dich “auf evcs power einstelle” ?
Grüße
Hei,
habe den controller so angepasst:
protected static int calculateRequiredPower(int essPower, int gridPower, int evcsPower) {
return gridPower + essPower - evcsPower;
}
Und in der “run methode” gebe ich hier einfach das evcs mit und fertig.
/*
* Calculates required charge/discharge power
*/
var calculatedPower = calculateRequiredPower(//
this.ess.getActivePower().getOrError(), //
this.meter.getActivePower().getOrError(), //
this.evcs.getActivePower().getOrError());
Vermutlich muss man hier noch diverse Anpassungen vornehmen, damit PV überschuss auch berücksichtigt wird, aber sonst entspricht das genau der Anforderung des Threads
Beste Grüße
Beton
Und was ist, wenn keine evcsPower vorhanden ist?
Servus,
guter Einwand!
So sollts gehen:
if(this.evcs.getStatus().getName() == "Charging") {
/*
* Calculates required charge/discharge power
*/
var calculatedPower = calculateRequiredPower(
this.ess.getActivePower().getOrError(),
this.meter.getActivePower().getOrError(),
this.evcs.getActivePower().getOrError());
/*
* set result
*/
this.ess.setActivePowerEqualsWithPid(calculatedPower);
this.ess.setReactivePowerEquals(0);
}
else {
/*
* Calculates required charge/discharge power
*/
var calculatedPower = calculateRequiredPower(
this.ess.getActivePower().getOrError(),
this.meter.getActivePower().getOrError(),
0);
/*
* set result
*/
this.ess.setActivePowerEqualsWithPid(calculatedPower);
this.ess.setReactivePowerEquals(0);
}
Beste Grüße
Beton
so is es schöner oder?
evcsPower = 0;
if(this.evcs.getStatus().getName() == "Charging") {
evcsPower = this.evcs.getActivePower().getOrError();
}
/*
* Calculates required charge/discharge power
*/
var calculatedPower = calculateRequiredPower(
this.ess.getActivePower().getOrError(),
this.meter.getActivePower().getOrError(),
evcsPower);
/*
* set result
*/
this.ess.setActivePowerEqualsWithPid(calculatedPower);
this.ess.setReactivePowerEquals(0);
Ich habe diese Logik mittels der ha_openems Integration und 2er Automatisierungen in Home Assistant wie folgt realisiert:
alias: "[ctrlEvcs]: Reserve aktiv solange Auto lädt"
description: Reserve aktiv solange Auto lädt
triggers:
- trigger: state
entity_id:
- sensor.fems12345_evcs0_status
actions:
- if:
- condition: state
entity_id: sensor.fems12345_evcs0_status
state: Charging
then:
- action: switch.turn_on
target:
entity_id: switch.fems12345_ctrlemergencycapacityreserve0_isreservesocenabled
else:
- action: switch.turn_off
target:
entity_id: switch.fems12345_ctrlemergencycapacityreserve0_isreservesocenabled
alias: "[ctrlEvcs]: Während Auto lädt Speicher Reserve auf Ladestand setzen"
description: Während Auto lädt Speicher Reserve auf Ladestand setzen
triggers:
- trigger: time_pattern
minutes: "*"
conditions:
- condition: state
entity_id: sensor.fems12345_evcs0_status
state: Charging
actions:
- action: number.set_value
data_template:
value: "{{ states('sensor.fems12345_sum_esssoc') }}"
target:
entity_id: number.fems12345_ctrlemergencycapacityreserve0_reservesoc