Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Ist meine ODER Logik korrekt?

    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

    Ist meine ODER Logik korrekt?

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active last edited by

      Wenn man das nicht bestimmen kann, wer wann wie wo triggert, würde ich halt beide Werte in einem Objekt in einer Variable sammeln und diese beiden Eigenschaften mit ODER verknüpfen. So funktioniert es halt mit NR.

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

        @mickym sagte: Wenn man das nicht bestimmen kann, wer wann wie wo triggert

        Man kann.

        Bild_2022-08-12_122842789.png

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @paul53 last edited by mickym

          @paul53 ja und beide Werte in eine Variable mit unterschiedlichen Objekteigenschaften schreiben und bei jedem Trigger egal von welchem Datenpunkt auswerten und Ergebnis ausspucken. Es gibt ja im Blockly glaub auch so ein Schleifenkonstrukt, das über die Eigenschaften eines Objektes iterieren kann

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

            @mickym sagte: Schleifenkonstrukt, das über die Eigenschaften eines Objektes iterieren kann

            Zu kompliziert. Man kann auch auf Änderung beider Datenpunkte triggern und durch eine kurze Verzögerung vermeiden, dass der Zieldatenpunkt zwischen 0 und 1 hin und her springt, wenn sich beide Datenpunkte "gleichzeitig" ändern.

            Bild_2022-08-12_124510940.png

            mickym rtwl 2 Replies Last reply Reply Quote 3
            • mickym
              mickym Most Active @paul53 last edited by mickym

              @paul53 jo so gehts auch. Das Entprellen hast Du halt jetzt noch hinzugefügt, macht aber natürlich Sinn. Wie immer King of Blockly.👍😉 und natürlich auch JS und generell

              1 Reply Last reply Reply Quote 1
              • rtwl
                rtwl @paul53 last edited by

                @paul53 sagte in Ist meine ODER Logik korrekt?:

                Bild_2022-08-12_124510940.png

                wollte gerade deinen Vorschlag nachbauen, jedoch hab ich hier wohl keine Möglichkeit bei "falls wahr/falsch" eine Debug output zu integrieren. Damit ich Änderungen im Log sehen kann.

                Was mich aber zu meiner zweiten Frage bringt. Aktuell erhalte ich alle 30 min einen Log eintrag vom debug output, obwohl sich die Werte nicht geändert haben. Gibt es da eine Möglichkeit der Prüfung, dass der Debug output nur dann passiert, wenn sich der Datenpunkt auch tatsächlich geändert hat?

                2022-08-14 12:55:07.859 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz aktiv
                2022-08-14 13:25:07.986 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz aktiv
                2022-08-14 13:55:08.011 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz aktiv
                2022-08-14 14:25:08.386 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 14:55:08.156 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 15:25:08.444 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 15:55:08.309 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 16:25:08.397 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 16:55:08.306 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 17:25:08.685 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz nicht aktiv
                2022-08-14 17:55:08.368 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz aktiv
                2022-08-14 18:25:08.583 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz aktiv
                2022-08-14 18:55:08.634 - info: javascript.0 (32080) script.js.Raffstores.zSonnenstatus: Sonnenschutz aktiv
                

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

                  ah...
                  ich hatte den Trigger auf "wurde aktualisiert" anstelle von "wurde geändert".

                  So sollte es jetzt passen:
                  4d55dc21-8935-4a50-8474-b25b56ac1d81-image.png

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

                    alle guten Dinge sind drei...

                    Wenn meine Logik korrekt ist, sollten jetzt dennoch bei jeder Änderung zwei gleiche Log-Einträge kommen, da immer zuerst der "next_hour" Datenpunkt geändert wird und dann eine Stunde später der "current". Beide male liegt dann ja eine "wurde geändert" Auslösung vor wodurch dann das Skript erneut durchläuft.

                    Daher trotzdem die Frage, ob es eine einfache Möglichkeit gibt den debug output block nur bei einer tatsächlichen Änderung auszuführen?

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

                      @rtwl sagte: den debug output block nur bei einer tatsächlichen Änderung auszuführen?

                      Bild_2022-08-14_215009719.png

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

                        @paul53
                        Vielen Dank!

                        Bedeutet das, dass die Variable lastDebug auch über mehrere Stunden bis zum nächsten Triggern gespeichert bleibt und dadurch diese Prüfung zum Erfolg führt?

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

                          @rtwl sagte: Bedeutet das, dass die Variable lastDebug auch über mehrere Stunden bis zum nächsten Triggern gespeichert bleibt und dadurch diese Prüfung zum Erfolg führt?

                          Ja, sie übersteht nur keinen Neustart des Skripts.

                          Wenn man allerdings die Variable sonnenstatus mit dem Wert des Datenpunktes vergleicht, wird auch ein Skriptstart überstanden:

                          Bild_2022-08-14_232659808.png

                          rtwl 1 Reply Last reply Reply Quote 1
                          • rtwl
                            rtwl @paul53 last edited by

                            @paul53 sagte: Wenn man allerdings die Variable sonnenstatus mit dem Wert des Datenpunktes vergleicht, wird auch ein Skriptstart überstanden

                            Guter Input! Hab es so umgesetzt. Danke für deine tolle Hilfe und Erklärungen!

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            748
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            5
                            24
                            1986
                            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