Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Werte im Schieberegister

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Werte im Schieberegister

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

      @martinp
      @Codierknecht

      Danke euch beiden.
      Die "null" scheint wirklich vom Blockly Start zu kommen.

      Alles andere muss ich mir in Ruhe mal anschauen.

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

        @gonzokalle sagte: In den Objekten steht teilweise eine "null" anstatt einer "0".

        Die beiden Listen-Datenpunkte müssen erst einmal richtig initialisiert werden. Das kann / sollte in einem getrennten Skript erfolgen, das nach Initialisierung gelöscht wird.

        Blockly_temp.JPG

        Außerdem verwendet man zum Hochzählen besser Integer-Werte. Dann muss anschließend nicht gerundet werden.

        EDIT: Siehe hier

        Den Faktor 0,45 wendet man dann erst bei Schreiben der Regenmenge in den Datenpunkt an:

        Blockly_temp.JPG

        G 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @MartinP last edited by

          @martinp sagte: das "10-Minuten" Skript sich nicht mit dem "1-Stunden" Skript "beißt".

          Die "beißen" sich nicht, da sie verschiedene Variablen verwenden. Lediglich die Telegram-Nachricht sollte inkl. Prüfung etwas verzögert werden.

          MartinP 1 Reply Last reply Reply Quote 0
          • G
            Gonzokalle @paul53 last edited by

            @paul53
            Probiere ich heute Abend. 👍
            Muss erstmal arbeiten.

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

              @paul53 said in Werte im Schieberegister:

              @martinp sagte: das "10-Minuten" Skript sich nicht mit dem "1-Stunden" Skript "beißt".

              Die "beißen" sich nicht, da sie verschiedene Variablen verwenden. Lediglich die Telegram-Nachricht sollte inkl. Prüfung etwas verzögert werden.

              "Regenmenge_in_10 Min" wird in zwei Skripten verwendet, und "Regenmenge_im_60_Min" auch ...

              Wobei ich eher in der C++ Welt zu Hause bin - bei C++ müsste man schon darauf achten, dass man einen atomaren Datentyp nimmt ... bei NodeJS weiß ich nicht, ob es da integrierte Schutzmechanismen gegen solche Nebenläufigkeiten gibt. Damit beschäftige ich mich erst seit ein paar Monaten ... und weiß nicht, ob die "asynchronen" Funktionen doch unter der Motorhaube z. B. fein säuberlich hintereinander über eine Warteschlange abgearbeitet werden ...

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

                @paul53
                Meinst du so?
                Das nur der Kontakt gezählt wird und nachher mal 0,45 gerechnet wird habe ich verstanden.
                Den Anfang noch nicht. Welcher DP muss ich denn bei Regenmenge in 10Min eintragen?

                03873101-1fab-4f6a-b247-f2db66716108-image.png

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

                  @gonzokalle sagte: Welcher DP muss ich denn bei Regenmenge in 10Min eintragen?

                  Dafür werden zwei weitere DP gebraucht, damit die beiden Variablen einen Skriptstart überstehen.

                  Blockly_temp.JPG

                  Außerdem müssen die beiden Listen-DP bei jeder Listenänderung aktualisiert werden, so wie du es ursprünglich schon hattest.

                  Blockly_temp.JPG

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

                    @paul53
                    Ich habe mal ein paar Variablen umbenannt, damit ich es besser verstehe.
                    So?

                    9d6da8c4-4e46-4f31-90b8-8a4549a7f54c-image.png

                    38594d43-ed48-478c-9f1f-542e654717aa-image.png

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

                      @gonzokalle sagte: So?

                      Ganz oben: Ohne Division durch 0,45 und ohne runden (war ursprünglich falsch gedacht von mir). Die Datenpunkte enthalten Integer-Werte, was du schon richtig im Namen berücksichtigt hast.

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

                        @paul53
                        Dann verstehe ich es jetzt auch.
                        Der erste Test sieht gut aus.
                        Dankeschön😊

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

                          @gonzokalle
                          Diesen Teil um 1 s verzögern, da sonst noch ein alter Wert gelesen werden kann:

                          Blockly_temp.JPG

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

                            @paul53
                            Habe ich gemacht.

                            Aber allgemein kann man den Liste DP doch auch manuell erstellen?
                            Oder muss man das über aktualisieren machen?

                            a3877994-ea3c-4741-8775-962fa707d18b-image.png

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

                              @gonzokalle sagte: kann man den Liste DP doch auch manuell erstellen?

                              Im Prinzip schon. Bei einem Array ist es aber nicht so einfach, den Startwert fehlerfrei hinzubekommen.

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

                                @paul53

                                Bei einem Punkt bin ich mir unsicher.
                                Bei Contact in 10Min bleibt der letzte Wert immer stehen, obwohl es die letzten 10 Minuten nicht geregnet hat.
                                Beim Scriptstart wird dieser Wert aber in eine Variable eingelesen und mit neuen Regen addiert.
                                Hat es dann nicht zu viel geregnet?

                                ddc47b62-1417-413d-9f5e-35ffd52c2212-image.png

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

                                  @gonzokalle sagte: Bei Contact in 10Min bleibt der letzte Wert immer stehen, obwohl es die letzten 10 Minuten nicht geregnet hat.

                                  Es wird nur die Variable alle 10 Minuten auf 0 zurück gesetzt. Soll auch dies einen Skriptstart überstehen, muss auch eine 0 in den Datenpunkt "Contact in 10Min" geschrieben werden. Das gilt auch für "Contact in 60MIn".

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

                                    @paul53
                                    Vielleicht ist es einfacher gleich in den DP Contact in 10Min zu schreiben.
                                    Gibt es für DP auch eine "erhöhe um 1" Möglichkeit?

                                    paul53 MartinP 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Gonzokalle last edited by

                                      @gonzokalle sagte: Gibt es für DP auch eine "erhöhe um 1" Möglichkeit?

                                      Nein.

                                      1 Reply Last reply Reply Quote 0
                                      • MartinP
                                        MartinP @Gonzokalle last edited by

                                        @gonzokalle Das geht sicherlich, aber man sollte natürlich die Manipulation von Datenpunkten auf das minimal Mögliche reduzieren. Ist vermeidbarer Overhead ... Es wäre so etwas wie eine Read-Modify-Write Operation.

                                        Die Frage ist aber, ob dieser jetzt genutzte Ringpuffer-Mechanismus "unter der Motorhaube" da effizienter ist ...

                                        G 1 Reply Last reply Reply Quote 0
                                        • G
                                          Gonzokalle @MartinP last edited by

                                          @martinp
                                          Klingt kompliziert.
                                          Ich denke ich lasse es so wie es ist.

                                          G 1 Reply Last reply Reply Quote 0
                                          • G
                                            Gonzokalle @Gonzokalle last edited by Gonzokalle

                                            @gonzokalle
                                            Noch mal abschließend das etwas abgeänderte Blockly.

                                            17af666b-92fc-4d03-8cfd-c326cb7713ac-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            411
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            23
                                            876
                                            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