Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Limit von Variablen pro Blockly?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Limit von Variablen pro Blockly?

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

      Ich glaube ich habe den "Fehler" gefunden - zumindest läuft jetzt die Uhr schonmal synchron zur Systemzeit.

      Ich glaube der Fehler liegt im Systemblock "steuere". Ich habe den jetzt gegen einen "aktualisiere" Block ausgetauscht und nun scheinen die sich ändernden Werte viel schneller angezeigt zu werden.

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

        Schade zu früh gefreut - mitlerweile werden einige Variablen gar nicht mehr aus dem Datenpunkt heraus genommen, obwohl die Bedingungen schon lange nicht mehr zutreffend sind.

        Hier haben wir so ein Beispiel - Pool Status: und Rücklauftemperatur: - beides ist gemäß Blockly Definition nicht mehr zutreffend. In dem erzeugten Datenpunkt, steht der Pool Status aber noch vollständig drin und bei der Rücklauftemperatur wurde nur der Wert entfernt. Der Text ist nach wie vor vorhanden, obwohl dieser in der selben Variable Bedingung stehen, wie der Wert selber.

        caed63cd-08cd-4ab5-9a93-76ea5fa3aa50-image.png

        Hier die Auswertung, wann welches Ergebnis zu einem Texteintrag im Datenpunkt führen soll.

        3d605f89-4c4a-465a-a23a-5a6660281e51-image.png

        So sieht der eigentliche Block aus, der dann aus den ganzen Variablen, je nach Ergebnis einen Text Datenpunkt zusammenfügt.

        a6b4e526-5ff9-4a62-81d3-34cd185b0542-image.png
        .
        .
        .
        .
        d317e592-07e2-415c-a63b-22834a34a901-image.png

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

          @jb_sullivan sagte: das ganze sieht dann so aus.

          Zwei gleiche Trigger? Das kann nicht funktionieren, da man nicht wissen kann, welcher zuerst auslöst. Man nimmt nur einen Trigger, setzt zuerst die Variablen und wertet sie anschließend aus.

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

            @paul53 Meinst du mit Trigger "Matrix Standard = wahr"?

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

              @jb_sullivan sagte: Meinst du mit Trigger "Matrix Standard = wahr"?

              Du hast im Bild nebeneinander zwei Trigger mit den gleichen 15 Trigger-Datenpunkten. Die triggern quasi gleichzeitig, aber einer von beiden triggert zuerst, wobei man nicht voraussagen kann, welcher von beiden. Wenn der linke Trigger zuerst triggert, werden veraltete Werte in die Matrix geschrieben.

              EDIT: Mit folgendem Prinzip sollte es funktionieren:

              Bild_2022-06-29_190525147.png

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

                @paul53 Ich denke so ist das jetzt besser - oder?

                Das mit der Uhrzeit und dem Versatz von ~ 4 Minuten habe ich auch raus gefunden. Das VIS Widget "Timeandweather - simple Clock" zeigt die Uhrzeit des PC an, auf dem die VIS gerade ausgeführt wird, währenddessen die Uhrzeit des "Aktuelle Zeit" Blockly die Uhrzeit von dem Rechner nimmt, auf dem ioBroker läuft.

                Einmal Netzwerk Zeit synchronisiert und schon passt das auch 🙂

                f3bbd74b-03ac-4c45-ad94-2b571b2efc53-image.png

                ae14583b-de9a-46cb-ab5e-e5296f3c4534-image.png

                SORRY - hatte meinen Blockly "Umbau" schon fertig, bevor dein Beispiel da war. War in der Zwischenzeit nur was essen. Aber ich gucke mal ob es mit deinem Beispiel vielleicht noch einfacher wird - Vielen Dank schonmal dafür.

                paul53 Homoran Thomas Braun 3 Replies Last reply Reply Quote 0
                • paul53
                  paul53 @JB_Sullivan last edited by

                  @jb_sullivan sagte: jetzt besser - oder?

                  Der gesamte Block "Auswertung DP" muss in den Trigger vor den Block "aktualisiere Matrix".

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @JB_Sullivan last edited by

                    @jb_sullivan sagte in Limit von Variablen pro Blockly?:

                    Das VIS Widget "Timeandweather - simple Clock" zeigt die Uhrzeit des PC an, auf dem die VIS gerade ausgeführt wird, währenddessen die Uhrzeit des "Aktuelle Zeit" Blockly die Uhrzeit von dem Rechner nimmt, auf dem ioBroker läuft.

                    selbstverständlich!

                    1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @JB_Sullivan last edited by Thomas Braun

                      @jb_sullivan sagte in Limit von Variablen pro Blockly?:

                      Einmal Netzwerk Zeit synchronisiert und schon passt das auch

                      Praxis-Tip: Lass den ntp-Service dauerhaft laufen. Die exakte Uhrzeit auf den Rechnern ist kein optisches Problem, es gibt einige Netzwerkdienste, die z. B. Plausibilitätstest machen und Pakete aus der Zukunft verwerfen.

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

                        Sorry wenn ich nochmal nerve - ich habe das Blockly ja nun nach @paul53 seinem Beispiel umgebaut.

                        Leider habe ich einen ganz Sack voll Datenpunkte, die sich immer nur sporadisch ändern (also in der Ergebnis Ausgabe), obwohl sie genauso abgefragt werden, wie Datenpunkte die sich kontinuierlich ändern. Obwohl die Bedingung schon längst "Geschichte" ist, wir der Text und der Wert immer noch angezeigt - teilweise über Stunden.

                        Stoppe ich das Skript und starte es neu - stimmen alles Ausgaben sofort wieder....... bis zum nächsten mal.

                        Ich komme ums verrecken nicht dahinter, warum ca. 3-4 Werte IMMER korrekt aktualisiert werden und die restlichen Werte sehr häufig auf einem alten Stand eingefroren werden.

                        dca1014b-df7e-4ecc-8c09-52710aeb707f-image.png

                        Nun kam mir die Idee, das es ggf. zu viele Datenpunkte sind, auf die getriggert wird. Gibt es im ioBroker System irgend einen Datenpunkt, der kontinuierlich seinen Zustand wechselt, sodaß man nur auf diesen einen DP triggern könnte? Also so eine Art Taktgeber um de Lese/Schreibprozess des Blockly anzustoßen.

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

                          @jb_sullivan sagte: Text und der Wert immer noch angezeigt - teilweise über Stunden.

                          Das hast Du so programmiert, dass jeder Wert ständig angezeigt wird, auch wenn er über Stunden konstant bleibt.
                          Was wolltest Du erreichen?

                          Wenn nur die Werte angezeigt werden sollen, bei denen die Prüfbedingung stimmt, muss vor den Prüfungen jeder Variable ein Leerstring zugewiesen werden.

                          EDIT: Einfacher geht es jedoch ganz ohne Variablen:

                          Bild_2022-06-30_191551874.png

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

                            @paul53 sagte in Limit von Variablen pro Blockly?:

                            Das hast Du so programmiert, dass jeder Wert ständig angezeigt wird, auch wenn er über Stunden konstant bleibt.
                            Was wolltest Du erreichen?

                            OK - habe ich das? Dann habe ich die Logik dahinter missverstanden 😞 Ich dachte wenn der Wert nicht mit der Vorgabe überein stimmt, wird der DP auch nicht zur Anzeige frei gegeben - was ja auch sehr häufig "funktioniert" hat - aber auch sehr häufig nicht 🙂

                            Ich habe nun alle Variablen verworfen und das Blockly so aufgebaut wie in deinem letzten Beispiel. LÄUFT PERFEKT !!! Nun ist es genau so wie ich es mir ursprünglich erdacht hatte - Vielen Dank nochmal dafür. Ich sehe schon, ich muss noch viel lernen ......

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            903
                            Online

                            32.0k
                            Users

                            80.5k
                            Topics

                            1.3m
                            Posts

                            blockly
                            4
                            15
                            829
                            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