Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Gerät anhand der Leistung ausschalten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Gerät anhand der Leistung ausschalten

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

      Hallo Zusammen,

      ich möchte gerne meinen 3d-Drucker abschalten, wenn er den Druck fertig gestellt hat. Manche drucke dauern ja Stunden und die starte ich dann vor der Arbeit/ins Bett gehen. Wenn der Drucker fertig ist ist er manchmal noch Stunden im Leerlauf, das möchte ich verhindern.
      Also habe ich einen Meross-Steckdosenadapter verbaut, der die Leistung messen kann. Im Ruhezustand hat der Drucker ~12W, jeder Wert darüber ist also noch Betrieb. Allerdings braucht er relativ wenig Leistung, wenn das Heizbett/Heizpatrone mal ihre Temperatur erreicht haben. Und wenn dann mal kurzzeitig der wert <14 erreicht wird, schaltet die Steckdose sofort ab. Ich hatte dann gedacht, dass wenn der 3x prüfen muss, mit einer Verzögerung von jeweils 30s, ob die Leistung unter 15ist, sollte er den Ruhezustand erkennen können. Allerdings funktioniert das nicht, manchmal wird er nach dem einschalten sofort wieder ausgeschaltet, keine Ahnung warum.

      tronxy.JPG

      Ich dachte jedenfalls, dass 3x die Bedingung erfüllt sein muss, bevor er effektiv ausgeschaltet wird. Natürlich kann es zufällig vorkommen, dass exakt 3x hintereinander das Phänomen "wenig Leistung" eintreten kann, wird aber sehr unwahrscheinlich. Daher gehe ich davon aus, dass meine Verknüpfung logisch betrachtet falsch umgesetzt wurde.

      Asgothian BananaJoe D 3 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @gintonik last edited by Asgothian

        @gintonik sagte in Gerät anhand der Leistung ausschalten:

        Daher gehe ich davon aus, dass meine Verknüpfung logisch betrachtet falsch umgesetzt wurde.

        Die Logik ist an mehreren Stellen falsch:

        • Der Baustein Wert beinhaltet den Wert der den Trigger ausgelöst hat. Dementsprechend ändert sich der Wert zwischen den pausen nicht.
        • Der Trigger wird mehrfach aufgerufen - bei jeder Änderung des State erneut, und dann in 1.5 Minuten abgearbeitet. Das bedeutet das das Konstrukt auch dann nicht gehen würde wenn der korrekte Wert des Datenpunktes abgefragt wird.

        Die eigentliche Lösung ist viel einfacher:

        In deinem Trigger machst du:
        falls Wert >= 14 mache Anhalten Timeout
        sonst falls nicht Timeout mache Ausführen Timeout in 90 Sekunden
        Innerhalb des Timeout dann diese 2 Aktionen:
        Steuere An mit falsch
        setze Timeout = null

        Damit wird verifiziert das die Leistung für 90 sekunden unterhalb von 14 sein muss bevor der Drucker abgeschaltet wird.

        A.

        G 1 Reply Last reply Reply Quote 0
        • BananaJoe
          BananaJoe Most Active @gintonik last edited by

          @gintonik Du verwendest nicht zufällig OctoPrint? https://octoprint.org/
          Zum einen gibt es für OctoPrint plugins die das selbst machen, zum anderen einen ioBroker Adapter dafür über den du den Druckstatus überwachen kannst.
          OctoPrint kann z.B. auch eine Nachricht versenden wenn der Druck fertig ist:
          9ec4a276-6640-4eca-a804-d666add5e198-image.png

          Ich nutze es hauptsächlich weil ich die Druckaufträge so im Webbrowser hochladen und überwachen kann. Die Tasten am Drucker habe ich seit dem quasi gar nicht mehr genutzt.

          Es gibt auch mechanische Lösung die abschalten wenn der Drucker am Ende in Parkposition fährt ...

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

            @bananajoe said in Gerät anhand der Leistung ausschalten:

            @gintonik Du verwendest nicht zufällig OctoPrint? https://octoprint.org/
            Zum einen gibt es für OctoPrint plugins die das selbst machen, zum anderen einen ioBroker Adapter dafür über den du den Druckstatus überwachen kannst.
            OctoPrint kann z.B. auch eine Nachricht versenden wenn der Druck fertig ist:
            9ec4a276-6640-4eca-a804-d666add5e198-image.png

            Ich nutze es hauptsächlich weil ich die Druckaufträge so im Webbrowser hochladen und überwachen kann. Die Tasten am Drucker habe ich seit dem quasi gar nicht mehr genutzt.

            Es gibt auch mechanische Lösung die abschalten wenn der Drucker am Ende in Parkposition fährt ...

            Mein Drucker läuft nicht mit Octoprint sondern mit der eingebauten Steuerung. Ich rufe meinen G-Code immer von der SD-Karte ab. Für Octoprint müsste mindestens ein ESP bzw. Raspi eingebunden sein, und halte ich in meinem Fall für unpraktisch, da ich persönlich keinen Mehrwert im Octoprint gesehen habe. Die Parkposition abzufragen ist auch clever, allerdings wird auch hier wieder ein ESP benötigt, der den Impuls auswertet. Genau deswegen wollte ich meine olle Cloud-China-Büchse namens Meross verwenden, da die sonst außer Weihnachtsbeleuchtung keinen Einsatzweck mehr hat.

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

              @asgothian said in Gerät anhand der Leistung ausschalten:

              @gintonik sagte in Gerät anhand der Leistung ausschalten:

              Daher gehe ich davon aus, dass meine Verknüpfung logisch betrachtet falsch umgesetzt wurde.

              Die Logik ist an mehreren Stellen falsch:

              • Der Baustein Wert beinhaltet den Wert der den Trigger ausgelöst hat. Dementsprechend ändert sich der Wert zwischen den pausen nicht.
              • Der Trigger wird mehrfach aufgerufen - bei jeder Änderung des State erneut, und dann in 1.5 Minuten abgearbeitet. Das bedeutet das das Konstrukt auch dann nicht gehen würde wenn der korrekte Wert des Datenpunktes abgefragt wird.

              Die eigentliche Lösung ist viel einfacher:

              In deinem Trigger machst du:
              falls Wert >= 14 mache Anhalten Timeout
              sonst falls nicht Timeout mache Ausführen Timeout in 90 Sekunden
              Innerhalb des Timeout dann diese 2 Aktionen:
              Steuere An mit falsch
              setze Timeout = null

              Damit wird verifiziert das die Leistung für 90 sekunden unterhalb von 14 sein muss bevor der Drucker abgeschaltet wird.

              A.

              Keine Chance, ich komme nicht zurecht, finde keine Blöcke die deiner Beschreibung entsprechen z.B. "Anhalten Timeout".

              Ich habe jetzt doch einen Post gefunden, der eine Waschmaschine ausschaltet, wenn die Leistung gesunken ist. Aber laut Post ist das eine Super Lösung, funktioinieren tut Sie bei mir nicht und ich verstehe nicht, was da überhaupt passieren soll... 😫

              link text

              blockly.JPG

              Das habe ich quasi portiert aber keine Ahnung wie das überhaupt gehen soll...

              Asgothian 1 Reply Last reply Reply Quote 0
              • Asgothian
                Asgothian Developer @gintonik last edited by Asgothian

                @gintonik das sollte gehen

                es funktioniert nach einem vergleichbaren Prinzip, allerdings mit 5 Minuten.

                der Sonst Zweig erzeugt den Timeout wenn der Wert von >14 auf 14 oder weniger fällt.
                Wenn der Timeout durchkommt, dann wird abgeschaltet
                der falls Zweig bricht den Timeout ab, sofern der Wert wieder über 14 steigt.

                A.

                p.s. der "anhalten Timeout" Baustein den ich zitiert hatte war der "stop Timeout" Baustein. Ich hatte keinen Zugriff auf Blockly um das genau zu prüfen.

                1 Reply Last reply Reply Quote 0
                • G
                  gintonik last edited by

                  Bei mir funktioniert die Logik nicht und ich habe einen Verdacht:

                  Der Trigger ist ja die Leistungsmessung. Wenn diese sich nicht verändert, und das kann ja passieren, wenn sie konstant bleibt, wird der Turnus kein zweites mal ausgeführt und somit kann keine Vergleichsmessung stattfinden, oder sehe ich das falsch?
                  Ich habe den Drucker eingeschaltet und das Heizbett erwärmt und 2min. später wieder deaktiviert, er bleibt trotzdem an...

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

                    @gintonik sagte in Gerät anhand der Leistung ausschalten:

                    Wenn diese sich nicht verändert, und das kann ja passieren

                    eher genau das Gegenteil.
                    Die Leistung wird sich immer im Messabstand im milliWatt (oder was immer du da misst) -bereich ändern.
                    Außer dein Messgerät ist grobmotorisch oder falsch konfiguriert

                    Aber das kannst du ja über einen debug-Baustein feststellen oder durch loggen des Leistungs-Datenpunktes

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

                      @homoran said in Gerät anhand der Leistung ausschalten:

                      @gintonik sagte in Gerät anhand der Leistung ausschalten:

                      Wenn diese sich nicht verändert, und das kann ja passieren

                      eher genau das Gegenteil.
                      Die Leistung wird sich immer im Messabstand im milliWatt (oder was immer du da misst) -bereich ändern.
                      Außer dein Messgerät ist grobmotorisch oder falsch konfiguriert

                      Aber das kannst du ja über einen debug-Baustein feststellen oder durch loggen des Leistungs-Datenpunktes

                      Wie kann ich "debuggen"? Am liebsten würde ich sehen, was gerade passiert, das würde mir auch helfen, manche Abläufe zu verstehen. In Pascal hätte ich hier in 2 Minuten alles fertig, aber das ist eine andere Welt...

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

                        @gintonik sagte in Gerät anhand der Leistung ausschalten:

                        Wie kann ich "debuggen"?

                        @homoran sagte in Gerät anhand der Leistung ausschalten:

                        über einen debug-Baustein

                        (unter System)

                        1 Reply Last reply Reply Quote 0
                        • D
                          Dan_Ce @gintonik last edited by

                          @gintonik ich würde in jedem Falle empfehlen, den Stromverbrauch zunächst aufzuzeichnen und in grafana z.B. genau zu analysieren, damit du den Zeitpunkt "Drucker ist fertig" auch genau triffst. Das ist möglicherweise nicht immer trivial und unter Umständen auch nicht immer gleich.

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

                            @dan_ce said in Gerät anhand der Leistung ausschalten:

                            @gintonik ich würde in jedem Falle empfehlen, den Stromverbrauch zunächst aufzuzeichnen und in grafana z.B. genau zu analysieren, damit du den Zeitpunkt "Drucker ist fertig" auch genau triffst. Das ist möglicherweise nicht immer trivial und unter Umständen auch nicht immer gleich.

                            Ich vermute dass diese vermeintlich einfache Funktion doch etwas schwieriger ist als angenommen. Ich bin Neuling und tue mich noch etwas schwer. Ihr sagt ja dass der Block weiter oben laufen sollte, in so fern könnte mein Meross noch in die Suppe spucken. Ich werde dann mal versuchen irgendwelche Daten aufzuzeichnen, irgendwie.

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              Dan_Ce @gintonik last edited by

                              @gintonik
                              Zum Aufzeichnen kannst du z.B. die InfluxDB nutzen und zum visualisieren der Werte Grafana.
                              Zu beiden findest du anfängerfreundliche Anleitungen, z.B. bei YouTube

                              1 Reply Last reply Reply Quote 0
                              • Asgothian
                                Asgothian Developer @gintonik last edited by

                                @gintonik sagte in Gerät anhand der Leistung ausschalten:

                                Bei mir funktioniert die Logik nicht und ich habe einen Verdacht:

                                Der Trigger ist ja die Leistungsmessung. Wenn diese sich nicht verändert, und das kann ja passieren, wenn sie konstant bleibt, wird der Turnus kein zweites mal ausgeführt und somit kann keine Vergleichsmessung stattfinden, oder sehe ich das falsch?
                                Ich habe den Drucker eingeschaltet und das Heizbett erwärmt und 2min. später wieder deaktiviert, er bleibt trotzdem an...

                                Du hast einen Denkfehler in deiner Logik. Es findet kein Leistungsvergleich statt.

                                Statt dessen ist es eine reine "Event" Abarbeitung:

                                Fällt die Leistungsaufnahme unter 14 W wird angestossen das das Gerät in 5 Minuten ausgeschaltet wird - ohne weitere Prüfungen.
                                Steigt die Leistungsaufnahme über 14 W wird ein gegebenenfalls angestossenes Abschalten deaktiviert, das Gerät läuft also weiter.

                                A

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                820
                                Online

                                32.0k
                                Users

                                80.5k
                                Topics

                                1.3m
                                Posts

                                5
                                14
                                745
                                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