NEWS
letzen Wert in Variable zwischenspeichern
-
@ofbeqnpolkkl6mby5e13 stimmt, diesen Fall hab ich gar nicht bedacht.
Normalerweise wird natürlich auch nicht getriggert, wenn Badewanne aus ist/bleibt.
-
Hallo zusammen,
ich blicke noch nicht recht durch wie der Ablauf eines Blockly durchläuft. Bzw. speziell mit Variablen und Funktionen, wie und wo ich die setzen muss. Hab in der Doku auch nicht wirklich was dazu gefunden.Ich habe eine Szene (hier "Badewanne") wenn diese aktiviert wird, soll die Heizung, sofern die eingeschaltet ist, hochgedreht werden (hier auf 23 grad). Dabei möchte ich aber die letzte Temp. die eingestellt war, zwischenspeichern und diese dann wieder setzen wenn ich die Scene wieder ausschalte.
Mein Skript sieht jetzt so aus:

Allerdings bezweifle ich, dass das so funktioniert. Denn ich denke, wenn das Skript durchgelaufen ist, mit der Wahr Bedingung, wird die Temp. wohl auf die 23 grad gesetzt. So meine Vermutung.
Kann mir das jemand erklären ob das richtig ist bzw. zeigen wie ich das richtig darstelle?
Vielen Dank.@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. -
@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? -
@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. -
@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


-
@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 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.
-
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.
-

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...@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)

-
@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. -
@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...
-
@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
Ich finde das auch schlecht lesbar von der Logik her. Würde ich so nie benutzen. Ist aber Geschmackssache. -
@dslraser
Okay. -
zu 2. Hier wird wahr abgefragt, das bringt ja der Falls Trigger ja schon mit sich, das brauche ich nicht explizit mit angeben.
Du gehst doch davon aus, dass es in deinem Badezimmer zunächst kälter ist. Dann geht deine Szene "Badewanne" auf wahr und dann soll das Thermostat auf 23 Grad gestellt werden. Soweit richtig?
Dann ist dein Vergleich Temp_Alt = Temp_Neu nicht zielführend. Dann müsste es Temp_Alt < Temp_Neu heißen. Es bleibt aber nicht sinnvoll, die Ist-Temperatur einmalig beim Skriptstart abzufragen.
Edit:
Ist auch Unsinn. Der Vergleich Temp_Alt zu Temp_Neu ergibt keinen Sinn.Edit2:
Sinvoll wäre es, die Ist-Temperatur nach dem Triggern zu holen und wenn diese < 23 Grad und Badewanne = wahr und diese andere Bedingung = wahr, dann setzte Thermostat auf 23 Grad. -
Vorschlag (ich weiß nicht ob ich alles bedacht habe...)

-
@dslraser
Sieht sehr gut aus! -
Du gehst doch davon aus, dass es in deinem Badezimmer zunächst kälter ist. Dann geht deine Szene "Badewanne" auf wahr und dann soll das Thermostat auf 23 Grad gestellt werden. Soweit richtig?
Dann ist dein Vergleich Temp_Alt = Temp_Neu nicht zielführend. Dann müsste es Temp_Alt < Temp_Neu heißen. Es bleibt aber nicht sinnvoll, die Ist-Temperatur einmalig beim Skriptstart abzufragen.
Edit:
Ist auch Unsinn. Der Vergleich Temp_Alt zu Temp_Neu ergibt keinen Sinn.Edit2:
Sinvoll wäre es, die Ist-Temperatur nach dem Triggern zu holen und wenn diese < 23 Grad und Badewanne = wahr und diese andere Bedingung = wahr, dann setzte Thermostat auf 23 Grad.@ofbeqnpolkkl6mby5e13 ja genau, normalerweise ist die Temp. kleiner eingestellt als 23 grad.
ich hab den Vergleich jetzt da rein eingepackt, da ja wie du schon sagtest, wenn die Temp. gleich ist mit den 23 grad, dann brauch ich es nicht ändern. Ist wohl ein Denkfehler, hätte auch gleich mit 23grad vergleichen können.
Naja, so richtig fit bin ich da noch nicht, wie man Logiken am besten aufbauen kann.

-
@ofbeqnpolkkl6mby5e13 ja genau, normalerweise ist die Temp. kleiner eingestellt als 23 grad.
ich hab den Vergleich jetzt da rein eingepackt, da ja wie du schon sagtest, wenn die Temp. gleich ist mit den 23 grad, dann brauch ich es nicht ändern. Ist wohl ein Denkfehler, hätte auch gleich mit 23grad vergleichen können.
Naja, so richtig fit bin ich da noch nicht, wie man Logiken am besten aufbauen kann.

in meinem Beispiel/Vorschlag wird die Variable nur benutzt wenn alle Deine Bedingungen zutreffen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden



