Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst - Blockly - "kleiner als letztes" Problem bzw. selbst Vergleichen :)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Gelöst - Blockly - "kleiner als letztes" Problem bzw. selbst Vergleichen :)

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      Walkinlarge2010 last edited by

      Hallo zusammen,

      anbei eine Frage zu Blockly und einer Umsetzung 🙂

      Folgendes habe ich vor:

      Es soll der Status "Solarthermie.aktiv" je nach Zustand auf true oder false gesetzt werden.

      Folgende Logik soll dahinter stecken:

      Vorlauf: < 25°C –> false, sonst:

      Rücklauf: akt. Wert > vorheriger Wert –> True, sonst:

      Vorlauf: akt. Wert > vorheriger Wert --> True, sonst:

      Vorlauf: Wert > als Wert Speicher Mitte –> True, sonst:

      Speicher mitte: akt. Wert > vorheriger Wert –> True, sonst false.

      Bei den rot markierten habe ich mein Problem, da ich diese Funktion des vorher/nachher Vergleichs nur als Trigger finde und keine Idee habe wie ich diesen selbst anstellen kann und dann in einer Logik unterbringe.

      Anbei der Vollständigkeit halber mein Screenshot, allerdings hört es bei dem ersten roten auf, da mir hier die Ideen ausgehen und ich in Google und der Suche nicht fündig geworden bin.

      Das ganze selbst in Java zu schreiben ist für mich (noch) keine Option, da ich hier ganz am Anfang stehe 😉

      Vielen Dank vorab für die Unterstützung!

      Gruß Walkinlarge
      6112_blockly_solarthermie.png

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Für jeden der drei Temperaturwerte wird ein Trigger benötigt. Den Wert und den Vergleich "Wert steigt" kann man an Variablen übergeben, die in einer gemeinsamen Funktion ausgewertet werden. Prinzip:

        493_blockly_werte_steigen.jpg

        1 Reply Last reply Reply Quote 0
        • W
          Walkinlarge2010 last edited by

          Vielen Dank für die schnelle Antwort, ich möchte noch verstehen was ich mache, will ja nicht dumm sterben 🙂 Daher noch mal ein paar Nachfragen zur Funktionsweise.

          Folgendes verstehe ich:

          Ich prüfe ob es eine Änderung am Objekt gibt (Falls Objekt), wenn das der Fall ist, wird im oberen Fall die Variable "VL" auf den aktuellen Wert geschrieben.

          Was passiert mit der Variable "VL_steigt" in dem Fall? Das habe ich inhaltlich noch nicht ganz verstanden. Wird durch den "Größer" Vergleich der alte Wert für den späteren Vergleich geschrieben?

          Wenn ich dann zwei Ergebnisse/Variablen habe, kann ich diese später dann in der Steuerung abrufen und über meine Logik prüfen lassen.

          Habe ich das so richtig verstanden?

          Danke 🙂

          Viele Grüße

          Walkinlarge

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Walkinlarge2010!:

            Was passiert mit der Variable "VL_steigt" `
            Die Variablen xx_steigt enthalten das Ergebnis des Vergleichs mit den Werten true oder false.
            @Walkinlarge2010!:

            Wenn ich dann zwei Ergebnisse/Variablen habe, kann ich diese später dann in der Steuerung abrufen und über meine Logik prüfen lassen. `
            Nicht später, sondern sofort nach Aktualisierung der Variablenwerte. Dazu dient der Funktionsaufruf in allen 3 Triggern.

            In der Funktion werden dann die Bedingungen geprüft, z.B.

            Falls VL > 25 und RL_steigt und VL_steigt und VL > Speicher und Speicher_steigt

            mache aktualisiere Solarthermie.aktiv mit wahr

            sonst aktualisiere Solarthermie.aktiv mit unwahr

            Dient der Datenpunkt "Solarthermie.aktiv" nur zur Anzeige in ioBroker, dann ist aktualisiere richtig. Wird er allerdings an irgend ein Gerät gesendet, muss steuere verwendet werden.

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              Nachtrag: Es sollten alle Variablen bei Skriptstart initialisiert werden, weil sich sonst alle 3 Temperaturwerte geändert haben müssen, bevor die Variablen gültige Werte enthalten.

              493_blockly_und_initialisierung.jpg

              1 Reply Last reply Reply Quote 0
              • W
                Walkinlarge2010 last edited by

                Super Danke, jetzt habe ich es auch verstanden 🙂

                Top Support!!! Schönes Wochenende noch!

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

                Support us

                ioBroker
                Community Adapters
                Donate

                872
                Online

                31.7k
                Users

                79.8k
                Topics

                1.3m
                Posts

                2
                6
                3496
                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