NEWS
[Gelöst] Ölvorrat Enddatum berechnen
-
@bloop
Mit "rolle" und "type" wie bei dir funktionierts. Allerdings erhalte ich immer noch die Warnung das der Datenpunkt eine Nummer möchte und String erhält. -
@bloop sagte: Warnung das der Datenpunkt eine Nummer möchte und String erhält.
Du meinst umgekehrt? Du schreibst eine Zahl in "Datum_Ölstand_leer". Richtig:

@paul53 nein war schon richtig
Aktuell funktioniert das gesamte Skript wieder nicht. Ich teste gerade an was es liegen könnte.
Es scheint so als würde die Listenfunktion nicht ordnungsgemäß funktioniert...14:50:07.932 error javascript.0 (59155) script.js.common.Heizung.Öl-Verbrauch1: TypeError: Liste.shift is not a function 14:50:07.932 error javascript.0 (59155) at Object.<anonymous> (script.js.common.Heizung.Öl-Verbrauch1:32:9)on({id: "0_userdata.0.test"/*test*/, change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Liste[Liste.length - 1] = getState("0_userdata.0.test").val; Liste.shift(); setState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche"/*Durchschnittsvortagsverbräuche*/, Liste, true); Resttage = parseFloat(getState("0_userdata.0.Heizung.Füllstand_Öltank").val) / mathMean(Liste); Enddatum = parseFloat((new Date().getTime())) + parseFloat(86400000) * Resttage; setState("0_userdata.0.Heizung.Öl_Heizung.Datum_Ölstand_leer"/*Datum_Ölstand_leer*/, formatDate(getDateObject(Enddatum), "DD.MM.YYYY"), true); });
-
@paul53 nein war schon richtig
Aktuell funktioniert das gesamte Skript wieder nicht. Ich teste gerade an was es liegen könnte.
Es scheint so als würde die Listenfunktion nicht ordnungsgemäß funktioniert...14:50:07.932 error javascript.0 (59155) script.js.common.Heizung.Öl-Verbrauch1: TypeError: Liste.shift is not a function 14:50:07.932 error javascript.0 (59155) at Object.<anonymous> (script.js.common.Heizung.Öl-Verbrauch1:32:9)on({id: "0_userdata.0.test"/*test*/, change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Liste[Liste.length - 1] = getState("0_userdata.0.test").val; Liste.shift(); setState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche"/*Durchschnittsvortagsverbräuche*/, Liste, true); Resttage = parseFloat(getState("0_userdata.0.Heizung.Füllstand_Öltank").val) / mathMean(Liste); Enddatum = parseFloat((new Date().getTime())) + parseFloat(86400000) * Resttage; setState("0_userdata.0.Heizung.Öl_Heizung.Datum_Ölstand_leer"/*Datum_Ölstand_leer*/, formatDate(getDateObject(Enddatum), "DD.MM.YYYY"), true); });
-
@bloop
"setze für Letzte ein" ist falsch. Dann wird die Liste immer kürzer. Man muss an die Liste anfügen "füge als Letzte ein".@paul53
Klappt leider auch nichtjavascript.0 (59155) script.js.common.Heizung.Öl-Verbrauch: TypeError: Liste.push is not a function// Berechnung Resttage if (getState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche").val) { Liste = getState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche").val; } else { Liste = listsRepeat(getState("0_userdata.0.test").val, 14); } on({id: "0_userdata.0.test"/*test*/, change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Liste.push(getState("0_userdata.0.test").val); Liste.shift(); setState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche"/*Durchschnittsvortagsverbräuche*/, Liste, true); Resttage = parseFloat(getState("0_userdata.0.Heizung.Füllstand_Öltank").val) / mathMean(Liste); Enddatum = parseFloat((new Date().getTime())) + parseFloat(86400000) * Resttage; setState("0_userdata.0.Heizung.Öl_Heizung.Datum_Ölstand_leer"/*Datum_Ölstand_leer*/, formatDate(getDateObject(Enddatum), "DD.MM.YYYY"), true); }); -
@paul53
Klappt leider auch nichtjavascript.0 (59155) script.js.common.Heizung.Öl-Verbrauch: TypeError: Liste.push is not a function// Berechnung Resttage if (getState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche").val) { Liste = getState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche").val; } else { Liste = listsRepeat(getState("0_userdata.0.test").val, 14); } on({id: "0_userdata.0.test"/*test*/, change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Liste.push(getState("0_userdata.0.test").val); Liste.shift(); setState("0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche"/*Durchschnittsvortagsverbräuche*/, Liste, true); Resttage = parseFloat(getState("0_userdata.0.Heizung.Füllstand_Öltank").val) / mathMean(Liste); Enddatum = parseFloat((new Date().getTime())) + parseFloat(86400000) * Resttage; setState("0_userdata.0.Heizung.Öl_Heizung.Datum_Ölstand_leer"/*Datum_Ölstand_leer*/, formatDate(getDateObject(Enddatum), "DD.MM.YYYY"), true); });@bloop sagte in [Gelöst] Ölvorrat Enddatum berechnen:
Klappt leider auch nicht
Wenn sich die Liste im Datenpunkt schon verkürzt hat, muss neu initialisiert werden: Stoppe das Skript, trage 0 in den Datenpunkt "0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche" ein und starte das Skript.
-
@bloop sagte in [Gelöst] Ölvorrat Enddatum berechnen:
Klappt leider auch nicht
Wenn sich die Liste im Datenpunkt schon verkürzt hat, muss neu initialisiert werden: Stoppe das Skript, trage 0 in den Datenpunkt "0_userdata.0.Heizung.Öl_Heizung.Durchschnittsvortagsverbräuche" ein und starte das Skript.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden