NEWS
Summe über Liste nicht korrekt?
-
Ich habe diverse Abläufe, die in Abhängigkeit der Sonneneinstrahlung gesteuert werden (Beschattung; Eingenverbrauchssteuerung, u.a. Ladung des PlugIn-Hybrids bei ausreichend Sonnenschein auf die PV-Anlage)
Damit bin ich nicht mehr so zufrieden gewesen, nachdem die letzte Zeit sehr schnelle Wechsel zwischen Wolken und Sonne auftraten.Ich habe mir daraufhin ein ein Blockly zusammengebastelt, das mir den Anteil der (ausreichenden) Sonneneinstrahlung in den letzten (etwa)10 Minuten ausrechnen sollte.
Das ist der erste Teil, später kommt noch der Erzeugungsüberschuss auf dem gleichen Prinzip dazu.
geplant war:
Die Solarproduktion wird etwa alle 7 Sekunden ausgelesen, liegt diese über einem Wert (im Moment 2000W) wird eine Variable auf 1, sonst auf 0 gesetzt.
Der Wert wird in einer Liste am Ende angehängt.
Dann wird die Summe der Liste gebildet und durch die Anzahl Messungen geteilt.Soweit zur Theorie.
Der debug liefert aber jetzt folgendes log:
In meinem Verständnis müsste die Summe der Liste doch immer niedriger werden, wenn die Liste zu Beginn mit Einsen gefüllt war, die nach und nach gelöscht und am Ende durch Nullen ersetzt werden.
(Die ersten 84 Zeilen müssten alles Einsen sein, dann müsste es bis Zeile 164 mit den Prozenten abwärts gehen, wenn mur Nullen nachgeliefert würden)
-
@Homoran sagte:
wenn die Liste zu Beginn mit Einsen gefüllt war, die nach und nach gelöscht und am Ende durch Nullen ersetzt werden.
Wo wird die Liste zu Beginn mit 1 gefüllt ? Du erzeugst eine leere Liste zu Beginn. Das Log zeigt nicht den Beginn nach Skriptstart.
Anmerkung: Die Variablen Sonnenzeit, Sonnensumme und Sonnenanteil müssen nicht bei Skriptstart initialisiert werden, da sie in jedem Fall in der Funktion gesetzt werden.
-
@paul53 sagte in Summe über Liste nicht korrekt?:
Wo wird die Liste zu Beginn mit 1 gefüllt ?
Nicht zu Beginn (Skriptstart) - zu Beginn des Ausschnitts. Sorry war nicht präzise.
Aber die Zeilen 1-84 steigt die Summe bis auf 80, weil nur Einsen kommen, ab Zeile 109 bleibt es aber bei Summe=55 und Prozent=68,75 stehen.
Ich meine, dass da nur weitere Nullen hinzukamen.
Aber ich kann diese weiteren Zahlenfolgen nicht nachvollziehen.Gerade eben war es genau umgekehrt, da war bei irgendwas um die 87% Schluss, obwohl die Sonne dauerhaft schien
-
@Homoran sagte:
ab Zeile 109 bleibt es aber bei Summe=55 und Prozent=68,75 stehen.
Ja, das dürfte nicht passieren.
-
@paul53 sagte in Summe über Liste nicht korrekt?:
Ja, das dürfte nicht passieren.
Danke - das beruhigt immerhin
Habe jetzt den debug etwas erweitert:
Mal sehen, wenn es jetzt die 85 (von 80 geändert) erreicht
So sieht es erst einmal richtig aus -
@Homoran
Weshalb verwendest Du die Schleife ? Da jedesmal nur ein Eintrag zum Array hinzugefügt wird, muss auch nur maximal ein Eintrag entfernt werden. -
@paul53 sagte in Summe über Liste nicht korrekt?:
Weshalb verwendest Du die Schleife ?
damit das Array auch am Anfang bis zur maximalen Anzahl volläuft...
...
....
Dann reicht das falls ohne Schleife, oder?
-
-
Werde ich gleich ändern!
Sollte aber eigentlich am Ergebnis nichts ändern. -
Hab es noch nicht geändert - momentan sieht es korrekt aus:
14:47:21.556 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 78; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 43; Anteil Sonne: 55.1% 14:47:28.551 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 79; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 44; Anteil Sonne: 55.7% 14:47:35.555 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 80; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 45; Anteil Sonne: 56.3% 14:47:42.596 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 81; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 45; Anteil Sonne: 55.6% 14:47:49.557 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 82; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 45; Anteil Sonne: 54.9% 14:47:56.559 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 83; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 45; Anteil Sonne: 54.2% 14:48:03.556 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 84; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 45; Anteil Sonne: 53.6% 14:48:10.552 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 45; Anteil Sonne: 52.9% 14:48:17.552 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 44; Anteil Sonne: 51.8% 14:48:31.557 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 43; Anteil Sonne: 50.6% 14:48:38.556 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 42; Anteil Sonne: 49.4% 14:48:45.557 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 41; Anteil Sonne: 48.2% 14:48:52.598 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 40; Anteil Sonne: 47.1% 14:48:59.565 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 39; Anteil Sonne: 45.9% 14:49:06.549 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:49:13.553 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 37; Anteil Sonne: 43.5% 14:49:20.568 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 36; Anteil Sonne: 42.4% 14:49:27.581 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 35; Anteil Sonne: 41.2% 14:49:34.547 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 35; Anteil Sonne: 41.2% 14:49:41.547 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 34; Anteil Sonne: 40% 14:49:48.545 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 34; Anteil Sonne: 40% 14:49:55.552 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 33; Anteil Sonne: 38.8% 14:50:02.593 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 32; Anteil Sonne: 37.6% 14:50:09.554 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 31; Anteil Sonne: 36.5% 14:50:16.554 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:50:23.557 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:50:30.569 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:50:37.569 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:50:44.550 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:50:51.563 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:50:58.545 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:51:05.556 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:51:12.600 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:51:19.552 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:51:26.556 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:51:33.542 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 30; Anteil Sonne: 35.3% 14:51:40.546 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 31; Anteil Sonne: 36.5% 14:51:47.550 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 31; Anteil Sonne: 36.5% 14:51:54.545 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 31; Anteil Sonne: 36.5% 14:52:01.544 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 32; Anteil Sonne: 37.6% 14:52:08.543 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 33; Anteil Sonne: 38.8% 14:52:15.538 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 34; Anteil Sonne: 40% 14:52:22.589 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 35; Anteil Sonne: 41.2% 14:52:29.657 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 36; Anteil Sonne: 42.4% 14:52:36.544 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 36; Anteil Sonne: 42.4% 14:52:43.542 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 36; Anteil Sonne: 42.4% 14:52:50.556 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 37; Anteil Sonne: 43.5% 14:52:57.555 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 37; Anteil Sonne: 43.5% 14:53:04.558 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 1; Summe des Arrays: 37; Anteil Sonne: 43.5% 14:53:11.544 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 1; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:53:18.550 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:53:25.544 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:53:32.597 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:53:39.554 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:53:46.543 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:53:53.543 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:54:00.543 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 0; aktueller Wert: 0; Summe des Arrays: 38; Anteil Sonne: 44.7% 14:54:07.553 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 37; Anteil Sonne: 43.5% 14:54:14.532 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 36; Anteil Sonne: 42.4% 14:54:21.560 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 35; Anteil Sonne: 41.2% 14:54:28.569 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 34; Anteil Sonne: 40% 14:54:35.554 info javascript.1 (9789) script.js.Wetter_und_Klima.Sonnenanteil: Anzahl Messungen: 85; erster Wert: 1; aktueller Wert: 0; Summe des Arrays: 33; Anteil Sonne: 38.8%
"erster_Wert" ist der erste Wert im Array, der gelöscht wird; "aktueller Wert" ist der Wert, der als letztes ins Array geschrieben wird.
Was seltsam war:
der Block zum Berechnen des Prozentsatzes war auf einmal verschwunden. Ich musste ihn neu anlegen -
@Homoran sagte:
"erster_Wert" ist der erste Wert im Array, der gelöscht wird; "aktueller Wert" ist der Wert, der als letztes ins Array geschrieben wird.
Jetzt sieht man natürlich mehr: Die Summe kann eine ganze Weile konstant bleiben, solange der gleiche Wert hinten hinzugefügt wird wie der, der vorn entfernt wird.