NEWS
Liste mit Blocky und Durchschnittswert daraus?
-
Beim Thema Listen tu ich mich etwas schwer, weil die Blöcke hier eben nicht wirklich selbsterklärend sind.
Ziel:
Ich möchte den Durchschnittswert einer Liste aus z.B 5 Zahlen, die bei jedem Wechsel des DP Benzinpreis den aktuellen Preis in die Liste schreibt und aus den 5 Werten den Durchschnitt errechnet.Eigentlich recht simpel, nur fehlt mir hier der Ansatz, wie die Liste in Blockly aufgebaut werden muss.
-
So ich habe mir mal ein Blockly ohne Liste gebaut, was anscheinend sogar funktioniert
Hat wohl auch den Vorteil, dass wenn ich es über DPs löse, das ganze auch nicht so flüchtig ist.
Könnte mir trotzdem einer bitte die Variante über eine Liste zeigen, damit ich verstehe wie das dann funktioniert?Hier mal mein Blockly ohne Liste:
Das läuft soweit ich das beurteilen kann und schmeißt auch keine Wahrungen im Log. Falls doch einer ne Verbesserung, oder anderen Ansatz mit selbem Ergebnis hat, ich bin offen dafür. -
-
@paul53
OK, ist die Antwort auf meine Frage, nur versteh ich da leider die Hälfte nicht wirklich. Ich könnte das jetzt einfach nachbauen, was bestimmt auch funktioniert. Bei so was habe ich dann aber immer etwas Magenschmerzen, weil ich es einfach nicht wirklich 100% verstehe.Dann Plan B, kann man mein Blockly so lassen, oder hast da eine Optimierung auf Lager? Habs mal durchgespielt und es scheint so schon zu laufen, kommt mir aber bisschen um die Ecke vor.
-
Im Prinzip ist es vom Verständnis einfach so.
Du hast das doch selbst mit den Datenpunkten geschrieben und das funktioniert.
Wenn Du nun das ganze aus einer Liste extrahieren willst - dann musst Du nur jeden Datenpunkt in eine Variable oder ebenfalls in einen Datenpunkt schreiben.Im Prinzip musst Du wissen wie die Liste aufgebaut ist, die Zeile für Zeile einlesen und dann den Wert extrahieren und kannst ihn eben in einen Datenpunkt oder eine Variable schreiben.
Diese verfährst Du mit diesem Variablen analog nach Deinem Verfahren zur Ermittlung des Durchschnittswertes .
-
@Jan1 sagte:
weil ich es einfach nicht wirklich 100% verstehe.
Bau es nach und ergänze es nach jedem Schritt um einen Debug-Baustein mit Ausgabe des gerade veränderten Wertes, dann wirst Du es sicherlich auch verstehen.
-
@mickym
Bei Listen stehe ich eben bisschen planlos da, da ich mir das nicht richtig vorstellen kann, wobei das wahrscheinlich einfach er ist, als ich es vermute und genau da liegt mein Problem.
Es muss auch keine Liste sein, war heute morgen nur mein erster Gedanke, weil ich da noch keine Idee hatte, wie ich es mit einem 08/15 Blockly lösen könnte. Das Blockly steht ja nun und so wie es aussieht funktioniert es so wie geplant. Normal bin ich mit meinen Konstrukten wenn sie laufen zufrieden. Das hier wirkt irgendwie verbesserungswürdig, wobei mir hier wieder der Ansatz fehlt@paul53
werd ich wohl machen, da das der einfachste Weg ist um ein Aha Effekt zu erlangen -
Hallo Jan,
Für die Bildung des Mittelwert gibt es einen eigenen Mathe Block
Wichtig:
Bitte schreibe diese Liste in einen DP und nicht wie im Beispiel in einer Variable. Sonst ist bei jedem Skript-Neustart (z.B. Stromausfall) dein Durchschnittswert weg. -
@DAN78
Es kann so einfach sein -
@DAN78
So und ein Problem.
Wo finde ich den Baustein "in der Liste ... "? den zweiten bekomme ich hin, aber den ersten mit "entferne", klappt bei mir nicht, da ich eben genau kein entferne im dropdown Menü finde.
-
@Jan1
Der Baustein der default "nimm" in diesem Feld stehen hat. -
@Jan1 schau mal, ist etwas tricky ...
-
@ticaki
OK, den hatte ich nicht genommen, da der im defaut ja so aussieht:
Das stört mich etwas in Blockly, dass die Blöcke teils ihre Funktion und Aussehen unvorhersehbar ändern, wenn man sie mit den dropdown Menüs ändert.
Aber danke für den Tipp
-
@BBTown
in der Tat -
@DAN78
Das Script läuft bei mir so nicht. Die Berechnung des Mittelwerts haut nicht hin, es wird immer der vorherige Wert ausgegeben.
-
@Jan1
Da steht im letzten Baustein minimalwert nicht mittelwert.Bäume? Wald?
-
@ticaki
Wie peinlich
Aber wie immer, wenn zwei Augen nix mehr sehen, hilft eben ein anderer. -
Klappt trotzdem nicht, weil der Adapter den DP als Zeichenkette deklariert und dann kommen sehr seltsame Werte raus, wenn ich zum Testen einfach mal 1, 2, 3 usw. eingebw
{ "from": "system.host.Pi3Bplus.cli", "ts": 1551075095600, "user": "system.user.admin", "common": { "name": "diesel short", "desc": "Preis Diesel (e.ee) zwei Dezimalstellen (nicht gerundet)", "type": "string", "role": "value", "read": true, "write": true }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "tankerkoenig.0.stations.0.diesel.short", "type": "state" }
-
Hilft dir das weiter?
EDIT Quark, das hier sollte hilfreich sein:
-
@ticaki
muss ich mal testen, aber erst morgen