Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. letzen Wert in Variable zwischenspeichern

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    letzen Wert in Variable zwischenspeichern

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Michi_Pi @oFbEQnpoLKKl6mbY5e13 last edited by

      @ofbeqnpolkkl6mby5e13

      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?

      O 1 Reply Last reply Reply Quote 0
      • O
        oFbEQnpoLKKl6mbY5e13 @Michi_Pi last edited by oFbEQnpoLKKl6mbY5e13

        @michi_pi

        sztds.png

        So.

        M 1 Reply Last reply Reply Quote 0
        • M
          Michi_Pi @oFbEQnpoLKKl6mbY5e13 last edited by

          @ofbeqnpolkkl6mby5e13 Okay, danke.

          O 1 Reply Last reply Reply Quote 0
          • O
            oFbEQnpoLKKl6mbY5e13 @Michi_Pi last edited by oFbEQnpoLKKl6mbY5e13

            @michi_pi

            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.

            M 1 Reply Last reply Reply Quote 0
            • M
              Michi_Pi @oFbEQnpoLKKl6mbY5e13 last edited by

              @ofbeqnpolkkl6mby5e13 stimmt, diesen Fall hab ich gar nicht bedacht.

              O 1 Reply Last reply Reply Quote 0
              • O
                oFbEQnpoLKKl6mbY5e13 @Michi_Pi last edited by

                @michi_pi

                Normalerweise wird natürlich auch nicht getriggert, wenn Badewanne aus ist/bleibt.

                1 Reply Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @Michi_Pi last edited by

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

                  O 1 Reply Last reply Reply Quote 0
                  • O
                    oFbEQnpoLKKl6mbY5e13 @dslraser last edited by

                    @dslraser
                    Und wenn sich die Temperatur während der Laufzeit des Skripts ändert?

                    dslraser 1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @oFbEQnpoLKKl6mbY5e13 last edited by

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

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        Michi_Pi @dslraser last edited by

                        @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 😅
                        9dd4a8ae-dfae-40ac-a386-5e1f1c2cd996-grafik.png

                        O 1 Reply Last reply Reply Quote 0
                        • O
                          oFbEQnpoLKKl6mbY5e13 @Michi_Pi last edited by oFbEQnpoLKKl6mbY5e13

                          @michi_pi

                          Inkedblockly_LI.jpg

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

                          M dslraser 2 Replies Last reply Reply Quote 0
                          • M
                            Michi_Pi @oFbEQnpoLKKl6mbY5e13 last edited by

                            @ofbeqnpolkkl6mby5e13

                            zu 2. Hier wird wahr abgefragt, das bringt ja der Falls Trigger ja schon mit sich, das brauche ich nicht explizit mit angeben.

                            O 2 Replies Last reply Reply Quote 0
                            • O
                              oFbEQnpoLKKl6mbY5e13 @Michi_Pi last edited by

                              @michi_pi

                              Dann weiß ich jetzt zumindest, dass deine Variable "Wert" vom Typ Boolean ist.

                              1 Reply Last reply Reply Quote 0
                              • dslraser
                                dslraser Forum Testing Most Active @oFbEQnpoLKKl6mbY5e13 last edited by dslraser

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

                                Screenshot_20210118-083050_Chrome.jpg

                                Screenshot_20210118-083122_Chrome.jpg

                                O 1 Reply Last reply Reply Quote 0
                                • O
                                  oFbEQnpoLKKl6mbY5e13 @dslraser last edited by oFbEQnpoLKKl6mbY5e13

                                  @dslraser
                                  Okay, habe ich bisher zugegebenermaßen nie benutzt. Kann man auch gar nicht erkennen im Blocky. Eine Variable sieht genauso aus.

                                  dslraser 1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @oFbEQnpoLKKl6mbY5e13 last edited by

                                    @ofbeqnpolkkl6mby5e13 sagte in letzen Wert in Variable zwischenspeichern:

                                    Eine Variable sieht genauso aus.

                                    Ja, leider sind die Farben gleich...

                                    O 1 Reply Last reply Reply Quote 0
                                    • O
                                      oFbEQnpoLKKl6mbY5e13 @dslraser last edited by

                                      @dslraser
                                      Ich finde das auch schlecht lesbar von der Logik her. Würde ich so nie benutzen. Ist aber Geschmackssache.

                                      dslraser 1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @oFbEQnpoLKKl6mbY5e13 last edited by dslraser

                                        @ofbeqnpolkkl6mby5e13

                                        ist in diesem Fall das Gleiche wie das hier

                                        Screenshot_20210118-084443_Chrome.jpg

                                        Screenshot_20210118-085327_Chrome.jpg

                                        oder

                                        Screenshot_20210118-084517_Chrome.jpg

                                        Screenshot_20210118-085352_Chrome.jpg

                                        O 1 Reply Last reply Reply Quote 0
                                        • O
                                          oFbEQnpoLKKl6mbY5e13 @dslraser last edited by

                                          @dslraser
                                          Okay.

                                          1 Reply Last reply Reply Quote 0
                                          • O
                                            oFbEQnpoLKKl6mbY5e13 @Michi_Pi last edited by oFbEQnpoLKKl6mbY5e13

                                            @michi_pi

                                            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.

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            899
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            48
                                            3846
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo