Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Tür-, Fensterkontakt, Entprellen, Blockly

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Tür-, Fensterkontakt, Entprellen, Blockly

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

      Hallo zusammen,

      ich bräuchte bitte Hilfe bei einem Blockly.
      Ich habe 2 Tür-Fensterkontakte an der Garage befestigt.

      Leider habe ich das Problem, dass das Garagentor vermutlich etwas auf ab geht und der Kontakt kurz schließt, wieder öffnet. Insgesamt ändert sich der Status wenn ich das richtig mitbekomme, 3 mal.
      Ich würde gerne das ganze "entprellen". Leider schaffe ich es irgendwie nicht. Ich bräuchte daher bitte einen Ansatz, wie ich es gelöst bekomme.

      c9b70bc8-78e0-4a25-8410-16df7105ed3e-image.png

      Dort reagiere ich auf diesen Datenpunkt:
      cb67a2dd-f9ce-4511-abfe-8583e688b545-image.png

      In Telegram bekomme ich dann meistens 2-3 Nachrichten.
      Das hätte ich eigentlich gedacht, könnte ich mit "Pause" abfangen. Aber leider klappt das nicht.

      Wie geht man eine Entprellen am besten an?
      Danke

      David G. 1 Reply Last reply Reply Quote 0
      • David G.
        David G. @wusa last edited by David G.

        @wusa

        Würde ich so machen
        Screenshot_20220613-202024_Chrome.jpg

        Falls der Trigger war ist wird der Timeout gestartet.
        Wenn dieser abgelaufen ist bekommst du die Telegram.
        Falls der Trigger zwischenzeitlich auf falsch geht, wird der Timeout gestoppt.

        Fall der tugger nicht true oder fals ist, musst du es noch mit einem Logigbaustein abfragen.

        W 1 Reply Last reply Reply Quote 0
        • W
          wusa @David G. last edited by wusa

          @david-g
          Ich komme mit deinem Vorschlag leider nicht an das gewünschte Ergebnis.
          0682e6f8-911d-4e75-8815-53a73516d8f7-image.png
          Hier kommen leider auch 3 Meldungen:
          56e9b57b-e555-402f-b847-c5a67e6e7e6c-image.png
          Und das alles Zeitgleich.

          Ich habe auch mit diesem Skript getestet:
          db72e21d-b6c5-4ccb-8ae6-9eece9f8f804-image.png

          Das bringt aber auch nicht das gewünschte Ergebnis.

          Der Datenpunkt wird leider sehr schnell hintereinander getriggert von dem Zigbee Schalter. Das muss ich irgendwie raus bekommen, damit zukünftige Projekte sauber laufen und nicht verrückt spielen.

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

            @wusa sagte: Das bringt aber auch nicht das gewünschte Ergebnis.

            Dann ist die Entprelldauer von 1 s zu kurz.

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

              @paul53

              Wie hoch müsste die Dauer sein?
              Ich will etwas steuern, wenn die Garage zu fahren beginnt.
              Da will ich halt nicht "zu lange" warten.

              Erst wenn ich das mit den Telegram Nachrichten hin bekomme, will ich weiter machen.

              Soll ich auf 2 Sekunden hoch gehen, oder ist das immer noch zu kurz?
              Wie sieht das Skript generell aus?

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

                @wusa sagte: Wie hoch müsste die Dauer sein?

                Keine Ahnung. Das zeigt Dir der zeitliche Abstand zwischen erster und letzter Nachricht. Genauer als Telegram wäre eine Debug-Ausgabe.

                Das Skript lässt sich stark vereinfachen:

                Bild_2022-06-13_224856609.png

                @wusa sagte in Tür-, Fensterkontakt, Entprellen, Blockly:

                Ich will etwas steuern, wenn die Garage zu fahren beginnt.
                Da will ich halt nicht "zu lange" warten.

                Die Nachricht wird mit dem ersten Trigger gesendet. Während der Sperrdauer werden nur weitere Nachrichten blockiert.

                W 1 Reply Last reply Reply Quote 1
                • W
                  wusa @paul53 last edited by

                  @paul53

                  Danke für die Hilfe.
                  7e7ec62e-82b6-4c97-a5bc-47932c9fcc32-image.png

                  Manchmal klappt es leider mit 1 Sekunde nicht. Ich lasse es daher mal auf 2 Sekunden stehen.

                  Das Problem ist glaube ich, dass der Magnet sich an die Garage zieht von dem Fensterkontakt. Der Magnet und die Garage sind miteinander Magnetisch. Vermutlich löst dies das Problem aus. Bin mir aber nicht sicher.

                  174420a5-4c08-46d9-9157-88d9621512ff-image.png

                  So sieht das ganze jetzt aus. Aber ich verstehe es noch nicht ganz.

                  Falls nicht timeout? Und setze timeout auf null? Das verstehe ich noch nicht.
                  Den Rest verstehe ich.

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

                    @wusa sagte: Falls nicht timeout? Und setze timeout auf null? Das verstehe ich noch nicht.

                    Es wird die Timer-Variable timeout als Sperrvariable "missbraucht". Wenn sie undefined (nach Skriptstart) oder null ist, erfolgt keine Sperre, wenn der Timer läuft, wird gesperrt.

                    @wusa sagte in Tür-, Fensterkontakt, Entprellen, Blockly:

                    So sieht das ganze jetzt aus.

                    Nur einen Trigger-Block verwenden!!

                    W 1 Reply Last reply Reply Quote 1
                    • W
                      wusa @paul53 last edited by

                      @paul53 sagte in Tür-, Fensterkontakt, Entprellen, Blockly:

                      Nur einen Trigger-Block verwenden!!

                      Das ist Absicht. Ich frage 2 verschiedene Fensterkontakte ab.
                      Einer ist am Tor oben befestigt, einer unten. So habe ich wirklich definierte Zustände.

                      Es wird die Timer-Variable timeout als Sperrvariable "missbraucht". Wenn sie undefined (nach Skriptstart) oder null ist, erfolgt keine Sperre, wenn der Timer läuft, wird gesperrt.

                      Ich glaube ich habs verstanden. Werde morgen nochmal nachdenken.
                      Momentan scheint es gut zu funktionieren. Mal sehen, wie ich das mit meinem weiteren Projekt umsetzen kann.
                      Da müssen dann beides Zustände gleichzeitig abgefragt werden.

                      Danke für die Hilfe

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

                        @wusa sagte: Ich frage 2 verschiedene Fensterkontakte ab.

                        Habe übersehen, dass es verschiedene Meldungen sind. Dann muss im unteren Trigger timeout2 abgefragt und auf null gesetzt werden.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        801
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        661
                        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