Timer Ablauf
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Na ja, die Fehlermeldung besagt ja, dass Number nicht nach long konvertiert werden kann. Das liegt dann daran, dass Number potentiell auch Nachkommastellen aufweisen kann. .intValue gibt eben einen Integer Wert zurück, den openHAB dann automatisch nach long konvertiert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Besten Dank für die Erklärung.
Alles getestet und funktioniert nun wie es soll
Nochmals vielen Dank Udo!
Alles getestet und funktioniert nun wie es soll
Nochmals vielen Dank Udo!
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Gerne!
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Anfangs dachte ich alles ist gut. Aber jetzt, nachdem ich die Zoe endlich zum Laden anschließen konnte, scheint noch ein Fehler drin zu sein.
Der Ladevorgang wird sofort abgeschalten mit der Nachricht, dass das Ladeziel erreicht ist. Interessanterweise scheint nChargeTarget bei 0% zu sein. das heißt irgendwie finded der vergleich zwischen nChargeLevel und nChargeTarget nicht statt und nSoll bleibt bei dem initilisierten Wert 0.
Woran könnte das noch liegen?
Hier nochmal der Code:
Der Ladevorgang wird sofort abgeschalten mit der Nachricht, dass das Ladeziel erreicht ist. Interessanterweise scheint nChargeTarget bei 0% zu sein. das heißt irgendwie finded der vergleich zwischen nChargeLevel und nChargeTarget nicht statt und nSoll bleibt bei dem initilisierten Wert 0.
Woran könnte das noch liegen?
Hier nochmal der Code:
Code: Alles auswählen
rule "update timespan and eventually stop charging"
when
Item RenaultZEServices_Zoe_ChargeLevel changed or
Item RenaultZEServices_Zoe_Charging_Target changed
then
if(KebaPower.state > 0 && KebaState.state == 3){
var Number nChargeLevel = 0 // Default Wert, falls kein gültiger Wert
if(RenaultZEServices_Zoe_ChargeLevel.state instanceof Number) // falls gültiger Wert
nChargeLevel = (RenaultZEServices_Zoe_ChargeLevel.state as Number).floatValue // übernimm diesen Wert
var Number nChargeTarget = 0 // Default Wert, falls kein gültiger Wert
if(RenaultZEServices_Zoe_Charging_Target.state instanceof Number) // falls gültiger Wert
nChargeLevel = (RenaultZEServices_Zoe_Charging_Target.state as Number).floatValue // übernimm diesen Wert
var Number nSoll
if(nChargeLevel >= nChargeTarget) // Ziel überschritten?
nSoll = 0
else if(nChargeLevel >= nChargeTarget - 4) // Ziel - 4 überschritten?
nSoll = 2
else if(nChargeLevel >= nChargeTarget - 10) // Ziel - 10 überschritten?
nSoll = 5
else if(nChargeLevel >= nChargeTarget - 20) // Ziel - 20 überschritten?
nSoll = 10
else // sonst
nSoll = 20
if(nSoll == 0 ) { // Ziel überschritten?
tMyTimer?.cancel // laufenden Timer abbrechen (falls vorhanden)
tMyTimer = null // Zeiger löschen
myTime.postUpdate(5)
KebaSwitch.sendCommand(OFF) // Default Zyklus setzen
logInfo("RemainingCharingTarget", "Zoe set charging target achieved. Switching off at : {} %", nChargeTarget)
sendBroadcastNotification("Ladeziel erreicht. Schalte Ladevorgang ab bei: " + nChargeTarget.toString + "%" )
} else if(myTime.state != nSoll) { // weniger als x % bis zum Ladeziel
myTime.postUpdate(nSoll) // Zyklus anpassen
tMyTimer.reschedule(now.plusMinutes(nSoll)) // und Timer neu planen (optional)
}
}
end
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Das bedeutet lediglich, dass die beiden Items (oder mindestens eines davon) nicht initialisiert sind. Schau mal, dass Du eine gültige Zahl im Item Status hast.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Hi Udo. In den Items ist eine gültige Zahl. Ich habe eben einen Fehler entdeckt.
Bitte in Deinem ursprünglichen Code nChargeTarget zuweisen. Du hast zweimal nChargeLevel zugewiesen. Denke das passt nicht.
Aber jetzt - warum auch immer, bekomme ich einen Konvertierungsfehler: Eine Idee warum ich den bekomme?
Bitte in Deinem ursprünglichen Code nChargeTarget zuweisen. Du hast zweimal nChargeLevel zugewiesen. Denke das passt nicht.
Aber jetzt - warum auch immer, bekomme ich einen Konvertierungsfehler: Eine Idee warum ich den bekomme?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Timer Ablauf
Ich muss das auch immer wieder ausprobieren. Es wird wahrscheinlich an den unterschiedlichen Datentypen liegen.
Du kannst mal eine der folgenden Deklarationen versuchen:
Ich hab deine Regel mal in bei mir in den VSC-Editor geladen und bekomme dann die Fehlermeldung:
Also bei mir will er "Integer" oder "int".
Du kannst mal eine der folgenden Deklarationen versuchen:
Code: Alles auswählen
var Long nSoll
oder
var long nSoll
Code: Alles auswählen
Type mismatch: cannot convert from Number to int(org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
warum will er bei Dir kein long? Jetzt stehe ich völlig auf dem Schlauch.
Hab jetzt alles "ausprobiert", aber ohne Erfolg.....
Hab jetzt alles "ausprobiert", aber ohne Erfolg.....
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Ja, guten Morgen...

Was nSoll betrifft, sollte es eigentlich ausreichen, dies als Integer zu definieren:
Code: Alles auswählen
var Integer nSoll
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Also der Fehler scheint behoben zu sein. Aber jetzt stürzt Openhab komplett ab. Sobald ich die Zoe anhänge, hängt sich die Applikation auf.
Es kommt jetzt die Meldung:
Kann jemand was damit anfangen?
Es kommt jetzt die Meldung:
Code: Alles auswählen
Scheduled runnable ended with an exception:
java.lang.OutOfMemoryError: Java heap space