NEWS
Gleitender Durchschnitt mit Blockly
-
Ich habe das jetzt so gebaut (letzten 2 Zeilen unten nur als Kennzeichen für den Beginn des anderen Blocks):
Jetzt warte ich, ob neue Fehler im Log auftreten. Die Funktion - darum geht es ja eigentlich - des Skripts sehe ich mir im Nachhinein an, wenn keine Syntax-Fehler mehr aftauchen.
Besten Dank erst einmal.
-
@schweiger2 sagte: Ich habe das jetzt so gebaut
Den Wert, den der Trigger-Datenpunkt übergibt, magst Du wohl nicht?
Zur Funktion "markise": Wenn level einmal auf 100 gesetzt wurde, bleibt er auf 100. Nach Skriptstart ist level erst einmal undefined, womit "steuere" meckern wird.
-
Hallo paul53,
sorry, den ersten Punkt kann ich fachlich nicht verstehen. Ich übergebe der Liste doch als letzten Listeneintrag den aktualisierten Wert aus dem Objekt "Wind Speed" des Wettersensors durch
,
oder wie meinst Du das ?
Im Protokoll finde ich jetzt keine errors mehr, das ist schonmal ein Teilerfolg dank Deiner Hilfe.
Zu level: verstehe ich, hoffe ich. Wenn ich "level" zu Beginn der Funktion "=0" setze, würde die Markise - wenn Sie z.B. auf 30% ausgefahren ist und "windig" und "dunkel" NICHT wahr sind, auf Null % (=komplett zu) fahren, oder ?
-
@schweiger2 sagte: oder wie meinst Du das ?
Den identischen Wert wie "Wert vom Objekt WIND_SPEED" liefert die lokale Trigger-Variable Wert. Ist nur etwas eleganter (Ressourcen schonender).
@schweiger2 sagte in Gleitender Durchschnitt mit Blockly:
"windig" und "dunkel" NICHT wahr sind, auf Null % (=komplett zu) fahren, oder ?
Wahrscheinlich würde eine Warnung oder einer Error erzeugt. Was ist "0 % = komplett zu" bei einer Markise? Voll ausgefahren?
Soll die Markise nicht wieder ausfahren, wenn sich der Wind gelegt hat? Wenn doch, dann versuche es mal so: -
ahaaa, danke, ist schon geändert.
Zum "level": 0% = 0% Helligkeit = komplett herausgefahren. Ja, dies ist für mich nur eine Schutzschaltung, wenn das Schließen mal vergessen wurde; das Öffnen möchte ich manuell selbst bestimmen.
-
@schweiger2 sagte: nur eine Schutzschaltung, wenn das Schließen mal vergessen wurde; das Öffnen möchte ich manuell selbst bestimmen.
Dann mache es so (ohne Probleme mit undefined) :
-
es ist so einfach - wenn man den Wald vor lauter Bäumen sehen würde.
Danke vielmals für Deine Hilfe.
schweiger2
-
@asgothian
Ich hatte vor Dein Script zu nutzen und bin gleich zu Beginn daran gescheitert, dass mein JS-Adapter (5.1.3) kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):
Mit dem was mir der Menüpunkt Liste anbietet, kann ich nur überschreiben:
Das könnte ich funktional zwar durch das von vorne fortschreitende Überschreiben mit Nullen "abfangen", führt aber zu einer beständig steigenden Länge der Liste ...
Hast Du einen Tipp zu meinem Problem?
Schon mal danke -
@k_b sagte: kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):
-
kann entfernt werden
-
@paul53 sagte in Gleitender Durchschnitt mit Blockly:
@k_b sagte: kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):
hi,
ich stehe noch auf dem schlauch... welches Element ist das ?
das finde ich gar nicht
danke euch
-
so ?
-
@christian-sandkaulen fast.
- Nimm das
setze Liste
innerhalb des "mache" raus. - Stell das "nimm" in
in der Liste nimm das erste Element
auf "entferne". Sobald du das tust wird sich die Form des Bausteins anpassen. - Ändere das "wurde geändert" auf "wurde aktualisiert"
- ersetze die 10 in
summe über die Liste / 10
durchlänge von Liste
A.
- Nimm das
-
@asgothian sagte in Gleitender Durchschnitt mit Blockly:
@christian-sandkaulen fast.
- Nimm das
setze Liste
innerhalb des "mache" raus. - Stell das "nimm" in
in der Liste nimm das erste Element
auf "entferne". Sobald du das tust wird sich die Form des Bausteins anpassen. - Ändere das "wurde geändert" auf "wurde aktualisiert"
- ersetze die 10 in
summe über die Liste / 10
durchlänge von Liste
A.
so?
- Nimm das
-
@christian-sandkaulen so.
A.
-
Danke, das funktioniert. Und ich habe nun meine Leistung gemessen über den Ferraris Zähler geglättet das entspricht mehr Realität als zwei Messwerte
-
Danke für die Tips.... leider scheitere ich irgendwo. Kann mir das bitte jmd erklären? ich hoffe ich liege zu brutal auf der Leitung
.... Wert ist ein Text :O.... i see
-
Falls das noch interessiert - ich habe einen gleitenden Durchschnitt für meine Solaranlage umgesetzt. Siehe Printscreen.
In diesem Script wird eine Liste mit 12 Elementen erzeugt. Eine Schleife liest nun alle 5 Sekunden die aktuelle Leistung von der PV-Anlage (pv-power) ein. (5s * 12 = 1 Min.)
Der aktuelle gleitende Durchschnitt steht hier in der lokalen Variablen 1-min-avg.
Das Script kann für jede andere Zeit angepasst werden. Z.B. einen 5-Min Schnitt mit einer Liste mit 60 Elementen entsprechend.
-
Ich finde die Idee des gleitenden Mittelwerts toll.
Leider funktioniert die Variante unten nicht. Habe dabei von euch abgekupfert.
Möchte den gleitenden Mittelwert aus 24h also 24 Werten.
Aber irgendwie kommt dabei eher der letzte Wert raus.
Kann den Fehler nicht erkennen. Help please. -
@chemieka sagte: Kann den Fehler nicht erkennen.
Damit die Liste einen Skriptstart übersteht, muss die Liste in einem Datenpunkt (Typ "array") gespeichert werden, der bei Skriptstart eingelesen wird.