Seite 2 von 2

Re: Startzeit für Wallbox als Rule Trigger

Verfasst: 6. Dez 2021 13:37
von int5749
udo1toni hat geschrieben: 6. Dez 2021 11:49 Ja, da müsste man die Formeln im Detail noch mal anschauen. Und die Frage ist, wie genau die Regelung überhaupt funktioniert.

Ein paar Dinge sind mir da in Deiner Rule unklar...
:(
udo1toni hat geschrieben: 6. Dez 2021 11:49 Punkt 1: Du berechnest den Startzeitpunkt vChargeStart. Das sollte eigentlich der Zeitpunkt sein, zu dem der erste Timer tChargeNow auslöst. Statt aber einfach

Code: Alles auswählen

tChargeNow = createTimer(vChargeStart,[| ...])
rechnest Du die Differenz zu now aus, das sollte unnötig sein.
OK, ich dachte es müsste immer eine Dauer in Minuten sein, daher die Berechnung. Da der Timer scheinbar nicht mit LocalTime arbeitet, denn da bekomme ich einen Fehler, habe ich dies nun wie folgt eingetragen.

Code: Alles auswählen

tChargeNow = createTimer((ZonedDateTime.now().with(vChargeStart)), [|
Zumindest zeigt VSC keine Fehler :?
udo1toni hat geschrieben: 6. Dez 2021 11:49 Punkt 2: Du benutzt da verschiedene Konstanten (0.373, 4.140, 0.115) Woraus ergeben die sich?
Noch weiß ich es :) aber frage mich in 3 Monaten noch einmal 8-) Daher werde ich dies jetzt noch im Script dokumentieren.

Unser EV hat eine Batterie von Brutto 42kW/h, davon sind 37,3kW/h netto nutzbar => 1% entspricht 0.373kW
4.140 entspricht der Leistung, die beim vorwärmen im Akku ankommen sollte
vorwärmen.JPG
0.115 entspricht 1Min mit 10kW Leistung <<= Und hier liegt wahrscheinlich der maßgebliche Fehler für die Differenz :) Denn ursprünglich wollte ich "nur" mit max. 10kW/h laden, habe mich dann aber doch für 12kW/h entschieden und diesen Punkkt nicht auf 0.138 (1Min mit 12kW) angepasst.

Der zweite Punkt wird sicher die Verlustleistung sein, diese habe ich in dieser "idealen" Rechnung vernachlässigt, da es nur wenige Minuten ausmachen sollte.
udo1toni hat geschrieben: 6. Dez 2021 11:49 Bei den 45 Minuten habe ich folgende Idee: Wenn ich es richtig verstehe, nutzt Du den Timer tChargeCurrent, um während des Ladevorgangs den maximalen Ladestrom viertelstündlich anzuheben, bis der maximale Strom 12 (Ampere) beträgt. Das ist dann nach 45 Minuten der Fall. Der tatsächliche Ladestrom dürfte aber immer etwas von der Vorgabe abweichen, ob nun nach unten oder nach oben.
Hast Du eine Möglichkeit, den tatsächlichen Ladestrom an der Steckdose zu messen? das könnte evtl. helfen, die angenommenen Werte etwas zu korrigieren.
Ja, richtig verstanden und da habe ich einen Vorschlag von Dir als deutliche Anlehnung genutzt, den Du hier im Forum einmal vorgeschlagen hattest :mrgreen: Ich könnte wahrscheinlich die Wallbox oder auch EVCC (Beide sprechen MQTT) mal prüfen, was dort ausgegeben wird. Eine Meßeinrichtung habe ich nur als Zähler in der Leitung, auf den kann ich aber noch nicht remote zugreifen. Dazu müsste ich noch ein Modul kaufen :(

Re: Startzeit für Wallbox als Rule Trigger

Verfasst: 13. Dez 2021 21:45
von int5749
Irgendwie stehe ich gerade auf dem Schlauch

In der hier geposteten Rule prüfe ich beim eintreten der Zeit zwei Items und dies funktioniert auch. Nun wollte ich ein drittes Item abfragen, was zu einem ungewollten Abbruch führt und ich finde meinen Fehler nicht :(

Neue Abfrage

Code: Alles auswählen

    if (ChargeCar.state != ON || evcc_charging.state == "true" || evcc_connected != "true") {
		// wenn nicht eingeschaltet oder
		// derzeit nicht am laden
		// Auto nicht verbunden => exit
		logInfo("Warp", "Abbruch des Zielladens!")
    	return;
	}
Status der Items ist:
ChargeCar.state = ON
evcc_charging.state = true
evcc_connected = true
Trotzdem bricht die Rule an dieser Stelle ab.

Wenn ich die Zeile ändere in

Code: Alles auswählen

if (ChargeCar.state != ON || evcc_charging.state == "true" || evcc_connected == "true") {
läuft die Regel weiter, bricht also nicht ab, das Gleiche bei

Code: Alles auswählen

if (ChargeCar.state != ON || evcc_charging.state == "true" || evcc_connected == "false") {
Ich habe auch schon alle Vergleiche in Klammern gesetzt

Code: Alles auswählen

if ((ChargeCar.state != ON) || (evcc_charging.state == "true") || (evcc_connected != "true")) {
Auch dies funktioniert nicht :(

Hat hier jemand eine Fackel für mich zum erhellen, oder anzünden der Rule??

Viele Grüße

Re: Startzeit für Wallbox als Rule Trigger

Verfasst: 13. Dez 2021 21:51
von int5749
arghhh, da wird man langsam blind auf den Augen :oops:

Code: Alles auswählen

if (ChargeCar.state != ON || evcc_charging.state == "true" || evcc_connected.state != "true") {
Kaum schreibt man(n) den Code richtig klappt es auch :roll:
.state fehlte beim letzten Item

Re: Startzeit für Wallbox als Rule Trigger

Verfasst: 13. Dez 2021 21:58
von udo1toni
Manchmal hilft es, Code hier rein zu stellen, um den Fehler zu sehen... ;)