Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Status über längeren Zeitraum prüfen - wie setze ich das um?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Status über längeren Zeitraum prüfen - wie setze ich das um?

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

      Moin!

      Ich benötige mal einen Denkanstoß und vermutlich auch ein wenig Hilfe bei der Umsetzung zu folgender Aufgabe:

      Ich habe einen 3D-Drucker im Keller. Er ist also außer Hör- und Sichtweite. An den Druckkopf möchte ich einen Xiaomi Erschütterungssensor verbauen.

      Jetzt möchte ich regelmäßig prüfen lassen, ob sich der Drucker noch bewegt.
      Ich möchte nun 2 "Prüfschleifen" realisieren.
      Die erste Schleife soll nach der ersten Erschütterung gestartet. Jetzt soll über zB 10 Minuten hinweg geprüft werden, ob es weiterhin Erschütterungen gibt (eventuell habe ich nur kurz etwas daran gemacht).
      a) nein = stoppe alle weiteren Prüfungen
      b) ja = mache das gleiche wie die erste Schleife. Wenn hier nun aber irgendwann auch keine Bewegung mehr stattfindet, dann soll zB irgendwo eine Lampe angehen oder sowas.

      Wie kann ich sowas umsetzen?

      mickym Homoran 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @mymomo last edited by

        @mymomo Ich kann Dir nur raten, Dich gedanklich von "Schleifen" komplett zu lösen und nur noch in Triggern zu denken. Ich arbeite zwar nicht mit Blockly - aber im Prinzip ist die Logik immer gleich, egal mit welcher Logikmaschine Du es umsetzt.

        Erschütterung = Trigger macht was und startet Timer mit 10 Minuten oder setzt vorhanden Timer wieder auf 10 Minuten.
        Timer abgelaufen, Lampe an.

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

          @mickym
          hey!
          danke für den Hinweis.
          okay, mit Timeouts habe ich schon gearbeitet.

          ich weiß jedoch nicht wie ich diese Verschachtelung bauen kann.
          ist es erlaubt einfach "nichts" als Befehl zurück zu geben?

          die ersten 10 Minuten nach der ersten Erschütterung sollen ja erst mal nicht weiter beachtet werden. vielleicht reinige ich den Drucker ja nur oder mach neues Material in den Drucker.
          heißt: ich prüfe ob "Erschütterung = wahr" und dann verlangt die Logik ja nach "mach das und das". Aber er soll ja einfach nix machen. Könnte ich einfach gar nichts eintragen und nur bei "falsch" den Befehl zum Abbruch hinterlegen?
          wenn er mir innerhalb der ersten 10 Minuten ein "falsch" zurück gibt, dann soll einfach nur alles abgebrochen werden und KEINE Lampe angehen.

          erst wenn er länger als 10 Minuten immer wieder den Status "Erschütterung = wahr" zurück gibt soll der Timeout einfach in die nächste Runde gehen. Erst wenn er mir dann irgendwann auf "falsch" springt soll zB eine Lampe anmachen.

          Homoran mickym 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @mymomo last edited by

            @mymomo nimm die Erschütterung als Trigger und prüfe dann auf die Differenz der Timestamps

            1 Reply Last reply Reply Quote 0
            • M
              Muchul last edited by

              Wie lange hält die Batterie, wenn der sensor Stundenlang sendet?
              Würde es nicht mehr Sinn machen den Stromverbrauch zu überwachen?

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

                @mymomo sagte in Status über längeren Zeitraum prüfen - wie setze ich das um?:

                heißt: ich prüfe ob "Erschütterung = wahr" und dann verlangt die Logik ja nach "mach das und das". Aber er soll ja einfach nix machen. Könnte ich einfach gar nichts eintragen und nur bei "falsch" den Befehl zum Abbruch hinterlegen?
                wenn er mir innerhalb der ersten 10 Minuten ein "falsch" zurück gibt, dann soll einfach nur alles abgebrochen werden und KEINE Lampe angehen.

                Du könntest doch einfach mit einem eigenen DP arbeiten. Sprich beim Triggern setzt Du in einem 1. Blockly einen Datenpunkt sagen wir mal Timer läuft auf true. Der Timer setzt ihn nach Ablauf auf false zurück.

                In einem 2. Blockly triggerst Du wieder auf Erschütterung und kannst dann ja entscheiden, ob Du was machst oder nicht solange der Timer Datenpunkt auf true steht.

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

                  @mymomo sagte in Status über längeren Zeitraum prüfen - wie setze ich das um?:

                  An den Druckkopf möchte ich einen Xiaomi Erschütterungssensor verbauen.

                  Ich weiß sowieso nicht, ob das eine gute Idee ist, oder ob der Sensor nicht die Präzision des Druckkopfs stören wird.

                  Außerdem ist die Frage
                  @muchul sagte in Status über längeren Zeitraum prüfen - wie setze ich das um?:

                  Wie lange hält die Batterie, wenn der sensor Stundenlang sendet?

                  vollkommen berechtigt, da der Sensor während des Betriebes wahrscheinlich dauersenden wird.

                  Wozu willst du das ganze eigentlich umsetzen?

                  Im Prinzip kann man das alles hinterfragen:

                  • Willst du erfahren, ob der Drucker fertig ist?
                    • Wenn ja, zu welchem Zweck?
                      • Hast du so viel zu drucken, dass es auf die Minute ankommt, um das nächste Teil zu starten?
                    • wenn Nein, warum brauchst du die Info überhaupt?

                  Wenn es dann "unbedingt" sein muss, würde ich da wohl auch eher über eine Leistungsmessung arbeiten

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  860
                  Online

                  32.0k
                  Users

                  80.5k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  368
                  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