NEWS
letzen Wert in Variable zwischenspeichern
-
@michi_pi
Schreib doch die Temperatur erst in eine Variable und ändere sie dann.Machst du doch eh schon, nur nach dem Triggern wäre richtig.
Falls Wert was? Da fehlt eine Bedingung wie Wert = irgendwas.
-
was meinst du mit, da fehlt irgenwas?
ich habe jetzt die eine Variable (Temp_alt) erstellt, mit der aktuell gestellten Temperatur.
Nunn wird die Badewanne eingeschaltet, Trigger läuft und erkennt Badewanne ist True und HeatingPeriodeActive ist auch True, Temp. wird auf 23 grad gestellt.
Dann schalte ich die Badewanne aus, Trigger läuft wieder und erkennt Badewanne ist false und HeatingPeriodeActive ist true, Variable wird gesetzt.
Nur befürchte ich dass die Variable jetzt nicht mehr z.B. 19 Grad ist sondern 23 Grad.
Ist meine Annahme richtig oder falsch? -
-
@ofbeqnpolkkl6mby5e13 Okay, danke.
-
Du musst aber noch einiges an deinem Skript ändern, damit das so funktioniert wie gewünscht. Mein Screenshot soll dich erst mal nur auf die richtige Spur kriegen.
Zum Beispiel muss die Temperatur ja nicht geändert werden, wenn die Badewann nicht an ist.
Sinngemäß:
Wenn Badewanne wurde geändert, dann falls Badewanne = wahr und Wert = irgendwas und Wert von Objekt ID = irgendwas, dann ändere Wert von Objekt ID auf 23.Wenn Badewanne wurde geändert, dann falls Badewanne = unwahr usw.
-
@ofbeqnpolkkl6mby5e13 stimmt, diesen Fall hab ich gar nicht bedacht.
-
Normalerweise wird natürlich auch nicht getriggert, wenn Badewanne aus ist/bleibt.
-
@michi_pi said in letzen Wert in Variable zwischenspeichern:
Kann mir das jemand erklären ob das richtig ist bzw. zeigen wie ich das richtig darstelle?
Sieht für mich alles richtig aus.
Überprüfen kannst Du das Ganze mit debug Bausteinen.
Da Du Deine Variable außerhalb des Triggers setzt, wird die beim Blockly Start einmalig eingelesen (die Variable wird ja danach nicht nochmal geändert, da sie nicht im Trigger ist). Im Blockly verwendest Du sie dann nur zum zurückstellen.
Ich würde sagen das es richtig ist. -
@dslraser
Und wenn sich die Temperatur während der Laufzeit des Skripts ändert? -
@ofbeqnpolkkl6mby5e13
gerade nochmal drüber nachgedacht...Ja, Du hast recht. Dann wäre die "Rückstelltemperatur" immer die, die es zum Blockystart war. Das war ja nicht sein Ziel...
Dann gehört da doch einiges geändert. -
@dslraser @oFbEQnpoLKKl6mbY5e13
Weiß gerade nicht wie ich das Skript aufbauen soll, wenn sich die Temp_alt einmal ändert sollte und die Variable auch das mitbekommt.
Skript sieht jetzt so aus, denke sollte so gehen, sofern sich die Temp nicht mehr ändert
-
zu 1.) Es wurde doch schon geklärt, dass dieser Block nur einmalig beim Starten des Skriptes abgearbeitet wird. Der ergibt keinen Sinn.
zu 2.) Falls "Wert" was? Du gibst keine Bedingung an. Der Block "Falls" bewertet eine von dir vorgegebene Bedingung. Nämlich zum Beispiel Falls "Wert" = "23", dann aktualisiere... -
zu 2. Hier wird wahr abgefragt, das bringt ja der Falls Trigger ja schon mit sich, das brauche ich nicht explizit mit angeben.
-
Dann weiß ich jetzt zumindest, dass deine Variable "Wert" vom Typ Boolean ist.
-
@ofbeqnpolkkl6mby5e13 sagte in letzen Wert in Variable zwischenspeichern:
zu 2.) Falls "Wert" was? Du gibst keine Bedingung an. Der Block "Falls" bewertet eine von dir vorgegebene Bedingung. Nämlich zum Beispiel Falls "Wert" = "23", dann aktualisiere...
Falls Wert findest Du unter Trigger und bezieht sich auf den Wert vom Trigger.
(Falls Wert prüft auf true und falls nicht Wert auf false) -
@dslraser
Okay, habe ich bisher zugegebenermaßen nie benutzt. Kann man auch gar nicht erkennen im Blocky. Eine Variable sieht genauso aus. -
@ofbeqnpolkkl6mby5e13 sagte in letzen Wert in Variable zwischenspeichern:
Eine Variable sieht genauso aus.
Ja, leider sind die Farben gleich...
-
@dslraser
Ich finde das auch schlecht lesbar von der Logik her. Würde ich so nie benutzen. Ist aber Geschmackssache. -
-
@dslraser
Okay.