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 last edited by

      Gibt es eigentlich ein Limit welche Menge an Variablen pro Blockly eingesetzt werden darf?

      Ich habe ein Blockly mit aktuell 48 Variablen. Der Aufruf der Variablen, sowie die Anzeige des Inhalts sind an verschiedene Bedingungen geknüpft.

      Nun kommt es mir so vor, als wenn die Anzeige der Werte deutlich verzögert angezeigt wird.

      Ich habe daraufhin die Systemzeit ebenfalls in dem Skript in eine Variable schreiben lassen. Bei der anschließenden Anzeige der Zeit aus der Variablen heraus, kommt es zu einer Verzögerung von 4 Minuten !!!

      Darum meine Frage - gibt es irgend ein Limit bei der Anzahl der Variablen pro Blockly?

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

        @jb_sullivan sagte: Gibt es eigentlich ein Limit welche Menge an Variablen pro Blockly eingesetzt werden darf?

        Ich denke nicht. Meinst Du Skriptvariablen oder Datenpunkte?

        @jb_sullivan sagte in Limit von Variablen pro Blockly?:

        Anzeige der Werte deutlich verzögert angezeigt wird.

        Das liegt sicher nicht an der Anzahl Variablen bzw. Datenpunkte in einem Skript.

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

          @paul53

          Ja ich meine die Skript Variablen - das ganze sieht dann so aus. Sorry, mehr bekomme ich nicht in den Screenshot. Habe nur ein Laptop und das ist mit dieser, in ioB eingebetteten js-editor Variante, schon ein elendiges "gescrolle".

          Das wäre cool, wenn der js-Editor eine eigenständige Anwendung wäre, das man auf dem ganzen Bildschirm mehr Inhalt sehen könnte - ja ich weiß das man die ganzen Ränder auch zuklappen kann ..... 😉

          b1117008-4169-4352-91bf-a6355fb8de12-image.png

          JB_Sullivan paul53 2 Replies Last reply Reply Quote 0
          • 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

                                  569
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

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