NEWS
Diskussionsthread zu "Blockly für Dummies"
-
@wintermute sagte in Diskussionsthread zu "Blockly für Dummies":
Auch die, die nicht in Global sondern im Root-Verzeichnis liegen?
nein!
im root kannst du deine eigene Struktur aufbauen -
@homoran Gut. Dann habe ich es doch nicht so ganz falsch gemacht
-
@homoran sagte in Diskussionsthread zu "Blockly für Dummies":
nein!
im root kannst du deine eigene Struktur aufbauenWofür gibt es denn die Ebene
common
? Ich habe meine komplette Struktur inroot
aufgebaut. -
@meister-mopper sagte in Diskussionsthread zu "Blockly für Dummies":
Wofür gibt es denn die Ebene common
Deko!
Natürlich kann man auch dort seine Struktur drin aufbauen, ist mir im Baum aber eine Ebene zu viel.
-
Hat mal jemand ein schönes einfaches Beispiel (aus dem wahren Leben) für "Listen"?
Am besten etwas ohne Selektor - das würde den Anfänger vermutlich überfordern. -
@codierknecht nutze ich immer wieder zum glätten von Werten
-
@homoran
OK. Wird einen Anfänger in der Form aber vermutlich erschlagenAber man könnte nach dem Muster ja ein einfacheres Beispiel bauen, um jeweils den Mittelwert aus X Temperaturwerten zu erhalten.
Ich bau da mal was ... -
@codierknecht war nur ein Schnellschuss aus dem Bestand
-
@codierknecht sagte: Mittelwert aus X Temperaturwerten zu erhalten.
Gleitender Mittelwert über 24 h:
Anmerkung: Der DP "Temperatur-Liste" muss vom Typ "array" sein.
Durch das Voranstellen des neuesten Wertes in der Liste, kann man im Tab "Objekte" Änderungen in der Liste besser beobachten. -
-
@codierknecht
hier eine andere Variante, läuft gleitend
Länge der Liste wird ganz oben definiert.Die beiden letzten können durch Mittelwert der Liste ersetzt werden
EDIT: Hat Paul ja inzwischen ähnlich gepostet.
bin zu langsam
-
Ich glaube, so eine Mischung aus allem ist für den Anfänger verständlich.
Also den Mittelwert der Tagestemperaturen ermitteln.Trigger auf die Temperatur, Mittelwert ausgeben (im Log. Da einen DP zu hinterlegen kann jeder halten wie er will) und um 00:00 Uhr Liste leeren.
Dass das damit nicht persistent ist, ist soweit klar.
Soll aber nur ein knackiges Beispiel ohne viel Tamtam sein.@paul53 Vorne anfügen macht Sinn.
Edit
Etwa so:
-
@codierknecht sagte: Trigger auf die Temperatur, Mittelwert ausgeben
Das ist kein echter Tages-Mittelwert, da Temperaturwerte, die lange Zeit konstant bleiben, untergewichtet werden.
-
@paul53
Guter Hinweis - ich baue das um auf CRON -
@paul53 sagte in Diskussionsthread zu "Blockly für Dummies":
da Temperaturwerte, die lange Zeit konstant bleiben, untergewichtet werden.
dafür hatte ich auch mal was geklöppelt, das mit Zeitdifferenzen arbeitete und dann den letzten Wert x-mal in die Liste eintrug. (x = Zeitspanne : Standardsendeintervall)
ich weiss gar nicht ob das korrekt arbeitet.
mir hat's gereicht und für Einsteiger zu komplex
-
Ich denke, der Ursprungsthread ist so ziemlich komplett.
Ich will den Anfänger ja nicht überfordern, denke aber, die wichtigsten Punkte angesprochen zu haben.
Soll ja nicht die Doku ersetzen, sondern nur die häufigsten Fallstricke und deren Umgehung aufzeigen.Sollten der Thread eklatante Fehler enthalten oder ein wichtiger Punkt noch gänzlich unbehandelt sein: Nur zu - bitte hier melden.
-
Hallo. Ich bin gerade, bei der Suche nach der Antwort auf eine Frage, auf den Blockly für Dummies Thread gestoßen und würde die Frage einfach mal hier stellen, vielleicht wäre dieser Punkt evtl. auch für andere im Dummies Thread hilfreich.
Und zwar geht es um den "Falls Block". Ich habe in einigen meiner Skripte, bei den Falls Blöcken, mehrere Bedingungen mit den selben Variablen Abfragen und frage mich, welche Variante in diesem Fall ressourcenschonender und auch schneller ist. Bisher habe ich es immer, soweit es geht, vermieden, Falls Blöcke in Falls Blöcke zu bauen, weil ich meine mal gelesen zu haben, dass das nicht so gut sei. Ich habe dann immer mehrere Bedingungen mit "und" oder "oder" Blöcken zusammen gebaut und manche Variable so mehrfach überprüft, was ja, nach meinem Verständnis, aber eigentlich mehr Ressourcen benötigt. Deshalb frage ich mich mittlerweile, ob es nicht doch besser ist, in so einem Fall dann doch mehrere Falls Blöcke ineinander zu setzen, da so die jeweilige Variable nur einmal abgefragt werden muss und nicht mehrfach.
Hier mal Screenshots beider Varianten, dann ist es leichter zu verstehen, was ich meine. Als erstes, wie ich es bisher gemacht habe, hier wurden zb die Variablen Entpreller, AlexaImBett, BWM_HS mehrfach in Bedingungen gesetzt und mehrfach überprüft:
Und so habe ich den Block jetzt mal umgestellt mit mehreren Falls Blöcken ineinander:
Welche Variante ist denn jetzt tatsächlich die bessere, was den code, die Ressourcen und die Geschwindigkeit angeht? (Die Übersichtlichkeit ist eher zweitrangig)
-
@h-a-m-i sagte: Welche Variante ist denn jetzt tatsächlich die bessere
Wenn alle Debug-Ausgaben in den sonst-Zweigen benötigt werden, ist die zweite Variante besser. In jedem Fall ist es besser, die Entpreller-Variable nur einmal zu prüfen, was mittels Timer-Variable eleganter geht:
-
@h-a-m-i
Ich glaube, in diesem Fall ist Lesbarkeit wichtiger als noch das letzte Quentchen Performance rauszuquetschen.Nimm die Variante, die Du nach einigen Wochen oder gar Monaten noch verstehst.
-
Ok prima, also ist es nicht schlimm, mehrere Falls Blöcke ineinander zu bauen. Solche Blöcke kommen nämlich bei mir öfter vor.
@codierknecht sagte in Diskussionsthread zu "Blockly für Dummies":
in diesem Fall ist Lesbarkeit wichtiger als noch das letzte Quentchen Performance rauszuquetschen.
Aber bedeutet das dann, dass die aufgeräumte, zweite Variante mehr Ressourcen/Zeit verbraucht als die erste? In diesem Fall geht es ja um das Einschalten eines Lichts per Bewegungsmelder und das soll so schnell wie möglich passieren...
@paul53 sagte in Diskussionsthread zu "Blockly für Dummies":
was mittels Timer-Variable eleganter geht:
Ach cool, das ist ja noch besser. Danke. Der grüne "Verzögerung timeout" Block oben gibt also immer an, ob dieser timeout gerade läuft, richtig?