Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Mein erstes Blockly | Schaltung für Zirkulationspumpe

    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

    Mein erstes Blockly | Schaltung für Zirkulationspumpe

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

      Hallo zusammen,

      Ich habe es schon in einem anderen Thread probiert, ich hoffe nun hier im Blockly-Unterforum auf konkrete Unterstützung. Folgendes Setting existiert:

      • Shelly 1PM Plus mit Addon und Temperaturfühler
      • Brauchwasserwärmepumpe mit angeschlossener Zirkulation
      • Der Temperaturfühler soll nun nach dem Boiler an der WW-Leitung angeschlossen werden und via Shelly die Zirkulationspumpe schalten, sobald (kurz) WW gezapft wird.

      Dazu würde ich nun gerne ein Blockly erstellen. Konkret würde ich gerne Folgendes umsetzen:

      • Messung der aktuellen Temperatur alle 2 Sekunden
      • Übernahme dieser Werte in eine Variable mit gleitendem Durchschnittswert der letzten 3 Messungen
      • Sobald eine Abweichung von diesem Durchschnittswert um 3° Celsius vorliegt, soll das Shelly die Zirkulationspumpe schalten
      • Die Zirkulationspumpe soll anschließend für eine Minute laufen
      • Danach soll eine 10-Minuten-Sperre verhindern, dass die Pumpe alle paar Minuten anläuft.

      Disclaimer: Alle konkreten Zahlenwerte hier sind Beispiele, die sich natürlich im konkreten Betrieb noch ändern können. Sie dienen eher der Veranschaulichung.

      Wer mag mich dabei unterstützen?

      Vielen Dank im Voraus!

      Codierknecht paul53 2 Replies Last reply Reply Quote 0
      • W
        warp735 last edited by

        Zeig doch erstmal, was bisher selbst versucht hast.

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Scrub last edited by Codierknecht

          @scrub

          Nur damit hier keine falsche Erwartenshaltung aufkommt: Es wird Dir wohl kaum jemand nur anhand einer textuellen Beschreibung ein fertiges Blockly vorlegen.
          Es wäre also hilfreich, wenn Du zumindest mal beginnst. Du willst es ja sicher auch verstehen und nicht nur nutzen.
          Um die Feinheiten kann man sich dann später kümmern.

          Vielleicht hilft Dir das hier weiter:
          https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

          Also erst mal machen und dann: Zeigen!
          https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

          W 1 Reply Last reply Reply Quote 0
          • W
            warp735 @Codierknecht last edited by warp735

            @codierknecht sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

            Es wird Dir wohl kaum jemand nur anhand einer textuellen Beschreibung ein fertiges Blockly vorlegen.

            Die Erwartung scheint zu bestehen... Ist jedenfalls der zweite Thread von ihm zu dem Thema und das steigert zumindest bei mir nicht die Lust zu helfen.

            Erstmal bisschen Eigeninitiative zeigen... Hardware verbauen, und dann mit einem Blockly anfangen wenn Temp größer X Pumpe einschalten. Nicht gleich um 5 Ecken denken und erwarten, dass einem andere das programmieren abnehmen.

            S 1 Reply Last reply Reply Quote 1
            • S
              Scrub @warp735 last edited by

              Hier mein erster Versuch:
              Zwischenablage-1.jpg

              Ich habe derzeit noch keine Lösung dafür gefunden, die Liste nach drei Werten wieder einzukürzen. Habe ich die Objekte richtig verwendet? Und kann ich die Berechnung des Durchschnittswertes mit dem aktuellen Wert so vornehmen?

              Vielen Dank für eure Unterstützung!

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Scrub last edited by

                @scrub
                Du machst es Dir unnötig schwer.

                c4f4eb03-4e1f-45ca-9e5f-5fb96656e162-image.png

                S 1 Reply Last reply Reply Quote 0
                • S
                  Scrub @Codierknecht last edited by

                  @codierknecht sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                  @scrub
                  Du machst es Dir unnötig schwer.

                  Das glaube ich sofort...
                  Ich finde die Funktion zum Entfernen des Listenelements nicht. Bei mir spuckt die Funktion nur die Werte "setze für" und "füge als" aus. Verwende ich die Falsche?

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @Scrub last edited by

                    @scrub sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                    Ich finde die Funktion zum Entfernen des Listenelements nicht

                    59a1e1bd-e14d-48ce-b93b-5eb7b7aa6685-image.png

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Scrub @Codierknecht last edited by Scrub

                      Okay, danke. Mich hat verwirrt, dass man es erst dann andocken kann, wenn alle Variablen befüllt sind, vorher scheint es nicht zu klappen.

                      Die neue Version sieht so aus:
                      Zwischenablage-1.jpg

                      Codierknecht 1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @Scrub last edited by

                        @scrub
                        Im Zeitplan fügst Du nur ein neues Element ein.
                        Alles andere hast Du außerhalb platziert. Das wird dann genau 1x ausgeführt - beim Start des Script.
                        Das ist dann auch der Grund, warum unten das "Wert" angemeckert wird. Außerhalb eine Triggers ist das Quatsch.

                        Willst Du das wirklich alle x Sekunden ausführen?
                        Vielleicht ist eine Ausführung bei Temperaturänderungen sinnvoller.

                        W 1 Reply Last reply Reply Quote 0
                        • W
                          warp735 @Codierknecht last edited by

                          @codierknecht sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                          Vielleicht ist eine Ausführung bei Temperaturänderungen sinnvoller.

                          Hab ich weiter oben ja schon angemerkt. Temp > 30° und fertig.

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Scrub @warp735 last edited by

                            Okay, ich habe nun auch die anderen Teile in den Zeitplan eingefügt. Das Skript sieht nun so aus:

                            Zwischenablage-1.jpg

                            Ich schaue mir das mit der reinen Temperatursteigerung noch einmal an. Ich habe ein wenig "Angst" vor Fehlauslösungen wegen Temperatursprüngen am Sensor. Einerseits möchte ich, dass die Zirkulation möglichst zeitnah anspringt (daher geringe Temperaturdifferenzen), andererseits sollen Fehler durch den gleitenden Wert ausgegliche werden... Vielleicht ist meine Sorge unbegründet und eine reine Abfrage anhand der feststellten Temperatur anhand eines bestimmten Schwellenwertes vollkommen ausreichend. Ich bastle gleich nochmal eine zweite Version.

                            Weitere Fragen habe ich aber zur einer Einschaltverzögerung. Bin ich mit folgendem Versuch total auf dem Holzweg?
                            Zwischenablage-2.jpg
                            Wie löse ich die Abfrage des angelegten Zeitstempels und dessen Löschung nach einer definierten Zeit?

                            Codierknecht S 2 Replies Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Scrub last edited by

                              @scrub sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                              Weitere Fragen habe ich aber zur einer Einschaltverzögerung

                              Schau Dir im Starthilfe-Thread das Thema "timeout" an.

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                Scrub @Scrub last edited by

                                Die rein temperaturgestütze Schaltung sähe dann so (einfach) aus?!!

                                Zwischenablage-1.jpg

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @Scrub last edited by

                                  @scrub
                                  So kannst Du mit "Wert" noch immer nicht arbeiten.
                                  Das funktioniert nur in einem Trigger auf einen DP.

                                  ff59234a-11b2-41f4-b411-3511237b1154-image.png

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    Scrub @Codierknecht last edited by

                                    @codierknecht
                                    Danke für deine Hilfe. Ich steige zwar noch nicht ganz dahinter, lese mich aber noch einmal ein. Du hast als Wert SwitchState eingetragen, den finde ich aber bei mir nicht. Ich finde nur Switch?

                                    Zwischenablage-1.jpg

                                    Codierknecht 1 Reply Last reply Reply Quote 0
                                    • S
                                      Scrub @Codierknecht last edited by

                                      @codierknecht sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                                      Schau Dir im Starthilfe-Thread das Thema "timeout" an.

                                      Zwischenablage-2.jpg

                                      So?

                                      1 Reply Last reply Reply Quote 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @Scrub last edited by

                                        @scrub sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                                        Du hast als Wert SwitchState eingetragen, den finde ich aber bei mir nicht. Ich finde nur Switch?

                                        Wie der Kram bei Dir heißt, weißt nur Du 😉
                                        Es sollte das Prinzip klar werden.

                                        So?

                                        Nein. Nimm nicht "Pause" sondern "Timeout" - wie oben gezeigt.

                                        Da passiert folgendes:
                                        Wenn die Temperatur über 30°C steigt, wird geprüft, ob der letzte Wert darunter lag.
                                        Nur dann wird die Pumpe (sofort) eingeschaltet.
                                        Nach der gewünschten Zeit wird die Pumpe wieder ausgeschaltet.

                                        Die Zeit bestimmst Du selbst. Keine Ahnung was da sinnvoll ist.
                                        Das sollte prinzipiell erstmal funktionieren.
                                        Im nächsten Schritt muss man mal schauen wie oft das so anspringt und sich ggf. Gegenmaßnahmen überlegen wenn das zu oft passiert.

                                        Es könnte auch passieren, dass die Temp. über 30° steigt und das Anwerfen der Pumpe sie nicht unter 30° kriegt.
                                        Wie gesagt: Ich habe von dem Anwendungsfall keinen blassen Schimmer. Versuch macht klug!

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          Scrub @Codierknecht last edited by

                                          @codierknecht sagte in Mein erstes Blockly | Schaltung für Zirkulationspumpe:

                                          Wie gesagt: Ich habe von dem Anwendungsfall keinen blassen Schimmer. Versuch macht klug!

                                          Das ist klar. Die eigentlichen Werte kann ich im Selbstversuch dann noch anpassen.

                                          Nun habe ich das Skript für den Timeout entsprechend der Beschreibung angepasst. Passt das?

                                          Zwischenablage-1.jpg

                                          Und wenn ich mich nicht total vertue, baue ich das ebenso in den Zeitplan-Block mit ein, da es ja ebenfalls laufend abgefragt werden soll?!

                                          Codierknecht 1 Reply Last reply Reply Quote 0
                                          • Codierknecht
                                            Codierknecht Developer Most Active @Scrub last edited by

                                            @scrub
                                            Warum wird da jetzt plötzlich der Schalter überwacht?
                                            Das könnte knallen, da ja der Schalter hier auch per Code geschaltet wird.
                                            Könnte 'ne wunderbare Endlosschleife werden.

                                            Ich dachte, es geht um die Temperatur?

                                            Was übrigens nicht funktioniert ist "Trigger in Trigger" oder "Trigger in Zeitplan".
                                            f241a380-fba9-45e3-91f7-6deda2871def-grafik.png

                                            Wieso Zeitplan?
                                            Ich hatte Dir doch oben gezeigt: Einen Trigger auf die Temperaturänderungen setzen.
                                            Wie oft ändert die sich bzw. wie oft sendet der Sensor seine Daten an ioB?
                                            Vermutlich deutlich seltener als alle 2 Sekunden. Derart häufig abzufragen wäre also sinnbefreit und würde das System unnötig belasten.
                                            Wiederkehrendes Abfragen von Werten über derart kurze Zeitpläne ist eigentlich eher ein Notnagel.
                                            Wesentlich effektiver ist es, auf die Änderungen von Werten direkt zu reagieren.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            509
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            34
                                            2191
                                            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