NEWS
Gleitender Durchschnitt mit Blockly
-
@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.
-
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) :

-
@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
-
@marius-kossinna sagte in Gleitender Durchschnitt mit Blockly:
Ich glätte damit meinen PH-Messwert von Pool, der sprang mir einfach zu sehr auf und ab.
Ist etwas aufwändiger, aber nachvollziehbarEtwas aufwändiger ? Das ist ein Understatement.
- Warum nutzt du überhaupt eine Liste wenn du sowieso jede variable einzeln hältst. Du kannst doch beim Umschreiben auch gleich addieren
- 10 Variablen von Hand "schieben" ? meh.
Wenn schon Schieberegister, dann wenigstens so:

A.
Korrektur: Fehler im screenshot.
@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 -
@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 -
@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 dankekann entfernt werden
-
@k_b sagte: kein Blockly-Element enthält, mit dem ich ein Element der Liste löschen könnte ("remove"/"first"):

@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
-
@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
-
@christian-sandkaulen fast.
- Nimm das
setze Listeinnerhalb des "mache" raus. - Stell das "nimm" in
in der Liste nimm das erste Elementauf "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 / 10durchlänge von Liste
A.
- Nimm das
-
@christian-sandkaulen fast.
- Nimm das
setze Listeinnerhalb des "mache" raus. - Stell das "nimm" in
in der Liste nimm das erste Elementauf "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 / 10durchlänge von Liste
A.
@asgothian sagte in Gleitender Durchschnitt mit Blockly:
@christian-sandkaulen fast.
- Nimm das
setze Listeinnerhalb des "mache" raus. - Stell das "nimm" in
in der Liste nimm das erste Elementauf "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 / 10durchlänge von Liste
A.
so?

- Nimm das
-
@asgothian sagte in Gleitender Durchschnitt mit Blockly:
@christian-sandkaulen fast.
- Nimm das
setze Listeinnerhalb des "mache" raus. - Stell das "nimm" in
in der Liste nimm das erste Elementauf "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 / 10durchlänge von Liste
A.
so?

- Nimm das
-
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
-
Servus Leute,
ich habe einen analogen Sensor der über ESP-Easy Mega alle 60 Sekunden einen Wert schickt. Jetzt möchte ich diesen Wert glätten. Also wäre die richtige Methode gleitender Mittelwert/Durchschnitt. Wie löse ich das mit Blockly? Irgendwie mit Listen müsste das gehen oder ?
Der analoge wert soll nur dann in den gleitenden Mittelwert einbezogen werden wenn eine Bedingung erfüllt ist......
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.

-
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. -
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. -
@paul53
Ich habe das jetzt 1 zu 1 nachgebaut wobei MittelTempMonat mal die Variable zu der Liste sein soll. Es spielt keine Rolle ob ich Zeichenkette oder Liste nehme. Wenn ich nur eine leere Liste erzeuge gehts.Leider Fehler 21:11:00.013 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
21:11:00.014 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:19:9)
21:12:00.033 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
21:12:00.034 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:19:9)
-
@paul53
Ich habe das jetzt 1 zu 1 nachgebaut wobei MittelTempMonat mal die Variable zu der Liste sein soll. Es spielt keine Rolle ob ich Zeichenkette oder Liste nehme. Wenn ich nur eine leere Liste erzeuge gehts.Leider Fehler 21:11:00.013 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
21:11:00.014 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:19:9)
21:12:00.033 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
21:12:00.034 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:19:9)
-
Wenn ich es so mache klappt das mit der Liste aber bei der Mittelwertsberechnung kommt dann kein wert:


@chemieka sagte in Gleitender Durchschnitt mit Blockly:
kommt dann kein wert:
doch, der ist aber keine Zahl!
sind alle Werte der Liste Zahlen?
wo kommen diese her?
liefert der Sensor die Werte als Zahl? -
@chemieka sagte in Gleitender Durchschnitt mit Blockly:
kommt dann kein wert:
doch, der ist aber keine Zahl!
sind alle Werte der Liste Zahlen?
wo kommen diese her?
liefert der Sensor die Werte als Zahl?@homoran
Die werte komme auf dem Blockyscript selber und kommen von einem Sensor.
Ja das Problem ist genau das, dass es das falsche Format.
Wenn ich mit einer leeren Liste anfange dann gehts. Jetzt will ich mir aber die Werte zur Sicherheit zwischenspeichern in einer externen Variable (MittelTempMonat). Das gelingt mir nicht so, dass ich die Daten wieder nehmen könnte und dann weiterschreiben.



