NEWS
E3DC Hauskraftwerk steuern
-
@ArnoD
Korrektur zu meiner vorherigen Aussage.
Die Fehlermeldung hat heute wieder begonnen.
Ich habe allerdings die eine von dir genannte Zeile auskommentiert gelassen aber anscheinend ohne Erfolg.@psrelax
Wenn die Zeile auskommentiert ist, dann wird die Funktion nur noch aufgerufen, wenn die Objekt IDe3dc-rscp.0.EMS.POWER_BATsich ändert und der Wert <0 ist, also negativ und somit, nur wenn die Batterie entladen wird.Mir fehlt gerade die Fantasie, wie dieser Fehler dann noch auftreten kann.
Kannst du bei dir zum Testen mal diese beiden LOG Zeilen in der Funktion calculateBatteryRange() Zeile 2131 einfügen:
log(currentConsumptionW1 = ${currentConsumptionW},'warn')
log(currentConsumptionW2 = ${currentConsumptionW},'warn')Das würde dann so aussehen:
// Funktion zur Berechnung der Reichweite basierend auf dem aktuellen Verbrauch oder dem Durchschnittsverbrauch async function calculateBatteryRange(currentConsumptionW) { // Setze currentConsumptionW auf 0, wenn es null, undefined oder kleiner als 0 is log(`currentConsumptionW1 = ${currentConsumptionW}`,'warn') currentConsumptionW = (currentConsumptionW == null || currentConsumptionW >= 0) ? 0 : currentConsumptionW; log(`currentConsumptionW2 = ${currentConsumptionW}`,'warn') const akt_Autonomiezeit = (await getState(sID_Autonomiezeit)).val if (!homeAverage) { console.error('Keine Daten im homeAverage vorhanden.'); return; }Eigentlich kann es nur noch passieren, wenn der Wert
e3dc-rscp.0.EMS.POWER_BATnull oder undefined ist. -
@ArnoD
currentConsumptionW1 und currentConsumptionW2 gibt es nicht. Muss die Variable nicht vorher definiert werden?
Wird auf jeden Fall nicht kompiliert.Edit1: Es ist oben bei dir falsch drin gestanden. jetzt funktioniert es.
Edit2: Hier das Ergebnis der Ausgabe:

-
@ArnoD
currentConsumptionW1 und currentConsumptionW2 gibt es nicht. Muss die Variable nicht vorher definiert werden?
Wird auf jeden Fall nicht kompiliert.Edit1: Es ist oben bei dir falsch drin gestanden. jetzt funktioniert es.
Edit2: Hier das Ergebnis der Ausgabe:

@psrelax
Hätte jetzt was anderes erwartet.
Kannst du bitte noch weiter unten ab Zeile 2175 diesen LOG Eintrag "log(`consumption = ${JSON.stringify(consumption)}`,'warn');" hinzufügen:
Bitte die LOG Zeile aus dem Codefeld kopieren und bei dir einfügen.const consumption = { currentDayNightW: homeAverage[currentDay]?.['night'] ?? currentConsumptionW ?? 0, nextDayDayW: homeAverage[nextDayString]?.['day'] ?? currentConsumptionW ?? 0, nextDayNightW: homeAverage[nextDayString]?.['night'] ?? currentConsumptionW ?? 0, currentDayDayW: homeAverage[currentDay]?.['day'] ?? currentConsumptionW ?? 0, lastDayNightW: homeAverage[lastDayString]?.['night'] ?? currentConsumptionW ?? 0 }; log(`consumption = ${JSON.stringify(consumption)}`,'warn'); // Prüfen, ob einer der Werte 0 ist und die Funktion beenden if (Object.values(consumption).some(value => value === 0)) { console.error('Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden.'); return; }Welche Javascript und Node.js Version hast du ?
-
Hier bitte die Ausgabe (mehr Fehler wurden nicht produziert):

Ich habe..
Nodejs 20.19.1
Javascript Controller 7.0.7
Javascript Adapter 8.9.2 -
Hier bitte die Ausgabe (mehr Fehler wurden nicht produziert):

Ich habe..
Nodejs 20.19.1
Javascript Controller 7.0.7
Javascript Adapter 8.9.2@psrelax
Ich muss mir das später noch mal genauer ansehen.Kannst du mal diesen Teil:
const consumption = { currentDayNightW: homeAverage[currentDay]?.['night'] ?? currentConsumptionW ?? 0, nextDayDayW: homeAverage[nextDayString]?.['day'] ?? currentConsumptionW ?? 0, nextDayNightW: homeAverage[nextDayString]?.['night'] ?? currentConsumptionW ?? 0, currentDayDayW: homeAverage[currentDay]?.['day'] ?? currentConsumptionW ?? 0, lastDayNightW: homeAverage[lastDayString]?.['night'] ?? currentConsumptionW ?? 0 };Durch diesen Code ersetzen:
const consumption = { currentDayNightW: (homeAverage[currentDay]?.['night'] === 0 || homeAverage[currentDay]?.['night'] == null) ? currentConsumptionW ?? 0 : homeAverage[currentDay]?.['night'], nextDayDayW: (homeAverage[nextDayString]?.['day'] === 0 || homeAverage[nextDayString]?.['day'] == null) ? currentConsumptionW ?? 0 : homeAverage[nextDayString]?.['day'], nextDayNightW: (homeAverage[nextDayString]?.['night'] === 0 || homeAverage[nextDayString]?.['night'] == null) ? currentConsumptionW ?? 0 : homeAverage[nextDayString]?.['night'], currentDayDayW: (homeAverage[currentDay]?.['day'] === 0 || homeAverage[currentDay]?.['day'] == null) ? currentConsumptionW ?? 0 : homeAverage[currentDay]?.['day'], lastDayNightW: (homeAverage[lastDayString]?.['night'] === 0 || homeAverage[lastDayString]?.['night'] == null) ? currentConsumptionW ?? 0 : homeAverage[lastDayString]?.['night'] };damit sollte es dann funktionieren.
-
@Thomas-Braun sagte in E3DC Hauskraftwerk steuern:
Losgelöst vom Problem:
Updaten.Danke für den Tipp.
Sollte aber ohne ein Update auch funktionieren, meine ich. -
@Thomas-Braun sagte in E3DC Hauskraftwerk steuern:
Losgelöst vom Problem:
Updaten.Danke für den Tipp.
Sollte aber ohne ein Update auch funktionieren, meine ich.@psrelax sagte in E3DC Hauskraftwerk steuern:
Sollte aber ohne ein Update auch funktionieren, meine ich.
nodejs 20 ist auf der Palliativ-Station. Update es jetzt, solange das noch gepflegt wird.
Warum scheut ihr eigentlich immer wie der Teufel das Weihwasser updates auf die aktuell vorgesehene, empfohlene und noch halbwegs gepflegte Version? -
Man tut sich hald nicht so leicht sich zu entscheiden, ein Update durchzuführen, wenn man nur ein Produktivsystem besitzt :-)
Ich habe jetzt die neueste IOBroker Version V11 inkl. NodeJS
@ArnoD
Ich habe die Änderungen wieder rückgängig gemacht und beobachte, ob die Fehlermeldung noch auftritt. -
Man tut sich hald nicht so leicht sich zu entscheiden, ein Update durchzuführen, wenn man nur ein Produktivsystem besitzt :-)
Ich habe jetzt die neueste IOBroker Version V11 inkl. NodeJS
@ArnoD
Ich habe die Änderungen wieder rückgängig gemacht und beobachte, ob die Fehlermeldung noch auftritt.@psrelax sagte in E3DC Hauskraftwerk steuern:
Man tut sich hald nicht so leicht sich zu entscheiden, ein Update durchzuführen, wenn man nur ein Produktivsystem besitzt :-)
Naja, andersherum: GERADE das einzige System musste ja dann auch am leben halten. Per Updates...
IOBroker Version V11
??? Was soll das sein?
-
@psrelax sagte in E3DC Hauskraftwerk steuern:
Man tut sich hald nicht so leicht sich zu entscheiden, ein Update durchzuführen, wenn man nur ein Produktivsystem besitzt :-)
Naja, andersherum: GERADE das einzige System musste ja dann auch am leben halten. Per Updates...
IOBroker Version V11
??? Was soll das sein?
@Thomas-Braun sagte in E3DC Hauskraftwerk steuern:
??? Was soll das sein?
Das Docker Image
buanet/iobroker:latest-v11 -
@Thomas-Braun sagte in E3DC Hauskraftwerk steuern:
??? Was soll das sein?
Das Docker Image
buanet/iobroker:latest-v11Okay, das ist die Version des Containers, nicht vom ioBroker.
Da sind wir bei js-controller 7.x.y -
Okay, das ist die Version des Containers, nicht vom ioBroker.
Da sind wir bei js-controller 7.x.y@Thomas-Braun
Ok dann hald so :-)Sollte jetzt aber passen mit den Versionen, bzw. sollte jetzt alles aktuell sein.
