Timer Ablauf
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Super Udo. Vielen Dank für die Erklärungen. Jetzt ist es aboslut verständlich.
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Hi Udo, ich versuche die Konvertierungsfehler zu lösen - leider ohne Erfolg.
Z.B.
oder
werden immer ausgegeben als:
Aber der Ausdruck passt doch. Was läuft hier falsch?
Z.B.
Code: Alles auswählen
nChargeLevel = (RenaultZEServices_Zoe_ChargeLevel.state as Number).floatValue
Code: Alles auswählen
nChargeLevel = (RenaultZEServices_Zoe_Charging_Target.state as Number).floatValue
Code: Alles auswählen
Type mismatch: cannot convert from float to int(org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types)
- peter-pan
- Beiträge: 2564
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Timer Ablauf
... versuche mal die Variablen so zu initialisieren:
Ich vermute mal, das
als Integer definiert wird.
Code: Alles auswählen
var float nChargeLevel = 0.0
Code: Alles auswählen
var nChargeLevel = 0
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Eigentlich sollte die Variable so definiert werden:
Und das sollte dann ausreichen, um auch Float speichern zu können.
Bitte Primitives, so weit möglich, vermeiden.
float, int, boolean usw. -> Primitive
Number, Integer, Boolean -> Objekt
Primitives haben keine Methoden und brauchen ungleich länger zur Initialisierung (Ich meine etwa Faktor 30...), das sind echte Zeitfresser.
Code: Alles auswählen
var Number nChargeLevel = 0
Bitte Primitives, so weit möglich, vermeiden.
float, int, boolean usw. -> Primitive
Number, Integer, Boolean -> Objekt
Primitives haben keine Methoden und brauchen ungleich länger zur Initialisierung (Ich meine etwa Faktor 30...), das sind echte Zeitfresser.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Das hat das Problem gelöst.
Ich habe jetzt aber auch noch folgede Fehlermeldungen, mit der ich nichts Anfangen kann, bzw finde einfach keinen Fehler. Ich habe mal ein Screenshot gemacht um das einfacher zu halten:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Type mismatched weist in diesem Kontext auf einen Klammerfehler hin. Kopiere bitte einmal die komplette Rule und füge sie hier (mit Code-Tags) als Text ein. Die Zeilen sind im Screenshot nicht vollständig sichtbar.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Vielleicht findest Du den Fehler:
Code: Alles auswählen
rule "schedule charging timer"
when
Item KebaState changed or
Item KebaPower changed
then
if(KebaPower.state > 0 && KebaState.state == 3 && tMyTimer === null){ // falls Timer nicht existiert und Zoe lädt
tMyTimer = createTimer(now.plusSeconds(1), [| // Timer anlegen und gleich starten
val tSched = if(myTime.state instanceof Number) (myTime.state as Number) else 0 // Zykluszeit in Minuten
val results_status = executeCommandLine(Duration.ofSeconds(30), "sudo", "-u", "openhabian", "/usr/local/bin/pyze", "status", "--km")
logInfo("charge", "results_Status Plugged {}", results_status)
val results_vehicle = executeCommandLine(Duration.ofSeconds(30),"sudo", "-u", "openhabian", "/usr/local/bin/pyze", "vehicles")
logInfo("charge", "results_Vehicle Plugged {}", results_vehicle)
if(tSched > 0)
logInfo("charge","Timer wird in {} Minuten erneut ausgeführt!",tSched)
tMyTimer.reschedule(now.plusMinutes(tSched))
else {
logInfo("charge","Timer wird nicht mehr ausgeführt!")
tMyTimer = null
}
])
}
end
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Falls der Code identisch mit dem aus viewtopic.php?p=41605#p41605 ist, da habe ich auf jeden Fall auch ein Klammerpaar vergessen. (Im Originalposting jetzt korrigiert, es geht um die Zeile
und das nachfolgende
Leider sehe ich aber momentan keinen anderen Klammerfehler.
Code: Alles auswählen
if(tSched > 0)
Code: Alles auswählen
else {
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Timer Ablauf
Ah, noch ein zweiter Fehler... Cannot convert from Number to long...
Ändere bitte diese Zeile ab:
Ändere bitte diese Zeile ab:
Code: Alles auswählen
val tSched = if(myTime.state instanceof Number) (myTime.state as Number).intValue else 0
^^^^^^^^
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 181
- Registriert: 1. Sep 2018 18:24
Re: Timer Ablauf
Auf die fehlenden Klammern hätte ich auch selber drauf kommen können. Da bin ich wohl mit der if - Abfrage weiter oben (wo keine explizit benötigt wird) durcheinander gekommen. Vielen Dank!
Könntest Du mir vielleicht noch das
Könntest Du mir vielleicht noch das
erklären?*.intValue