Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. (gelöst) mein erstes Blockly... korrekt?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    (gelöst) mein erstes Blockly... korrekt?

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

      Kommt darauf an... Du schickst immer ein Telegram wenn sich der Wert außerhalb der Grenzen ändert.
      Also fällt auf 64.9% -> telegram
      fällt auf 64.3 -> telegram
      steigt auf 64.7 -> telegram...
      Bei Luftfeuchte ists wahrscheinlich nicht besonders dynamisch, weil eher ein träges System.

      Jede Änderung wird also ein Telegram auslösen, außer sie finden im Bereich zwischen 65 und 75 statt. Kann man wollen, kann aber auch nervig sein...
      Du könntest vlt ein Flag einbauen, dass sich merkt, ob du schon benachrichtigt hast und dann in der Folge kein Telegram mehr senden. Flag wieder auf true setzen, wenn deine Humidity um soll-Bereich angekommen ist. Oder Flag nach einer Stunde zurücksetzen. Dann meldet Telegram was, lässt dich aber eine Stunde lang in Ruhe.
      Kommt also darauf an, was du erreichen möchtest.

      1 Reply Last reply Reply Quote 1
      • Humidor
        Humidor last edited by

        Hi,
        d.h. das Blockly fkt. so wie es mal ist, korrekt projektiert.

        Dein Einwand ist sehr gut, ist auch meine nächste Änderung die ich vor hatte.
        Da weiß ich aber noch nicht recht wie ich das angehen soll.
        Variable erstellen "bBlock" für Bool (0/1)
        dann eine Abfrage ob bBlock true/false ist und bei true nach einer Zeit resetten.
        Bild Text

        dslraser 1 Reply Last reply Reply Quote 0
        • Humidor
          Humidor last edited by Humidor

          Ha, hab grad die erste Benachrichtigung erhalten 😊
          Bild Text
          noch falsch geschrieben, aber es funktioniert.

          wie funktioniert denn das Debug?, kann ich mir den Zustand von bBlock anzeigen lassen bzw. den Zeitintervall?

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

            @Humidor sagte in mein erstes Blockly... korrekt?:

            wie funktioniert denn das Debug?, kann ich mir den Zustand von bBlock anzeigen lassen bzw. den Zeitintervall?

            Einen richtigen Debugger, wie aus programmierumgebungen gibt es nicht wirklich. Ich kenne nur die Möglichkeit, einen Debug Output Block einzufügen.

            Humidor 1 Reply Last reply Reply Quote 0
            • Humidor
              Humidor @OstfrieseUnterwegs last edited by

              @OstfrieseUnterwegs sagte in mein erstes Blockly... korrekt?:

              @Humidor sagte in mein erstes Blockly... korrekt?:

              wie funktioniert denn das Debug?, kann ich mir den Zustand von bBlock anzeigen lassen bzw. den Zeitintervall?

              Einen richtigen Debugger, wie aus programmierumgebungen gibt es nicht wirklich. Ich kenne nur die Möglichkeit, einen Debug Output Block einzufügen.

              schade, das ist das A&O ...

              Homoran 1 Reply Last reply Reply Quote 0
              • OstfrieseUnterwegs
                OstfrieseUnterwegs last edited by

                Gerade gesehen, du stoppst deinen Timer nicht... Wenn jetzt das script triggert, dann macht er jedesmal einen neuen Timer und die setzen dann jeder für sich jeweils nach 30 min deine Variable zurück.
                Du solltest Block 'Ausführen in' nehmen. Der führt einmal nach einer bestimmten Zeit aus und dann ist er weg.

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

                  @Humidor sagte in mein erstes Blockly... korrekt?:

                  schade, das ist das A&O ...

                  Ähm, aber wo ist das Problem?

                  @Humidor sagte in mein erstes Blockly... korrekt?:

                  wie funktioniert denn das Debug?, kann ich mir den Zustand von bBlock anzeigen lassen bzw. den Zeitintervall?

                  Natürlich geht das mit dem Debug-Baustein.
                  Und wenn du fertig bist kannst du ihn löschen oder für späteren Gebrauch einfach deaktivieren

                  1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @Humidor last edited by

                    @Humidor
                    hm...ich habe es jetzt so noch nicht probiert, aber es sieht auf den ersten Blick so aus, das hier im Laufe der Zeit jede Menge Intervalle laufen werden, da das Intervall nirgends gestoppt wird.
                    Ich glaube Du brauchst ein timeout, aber auch das sollte gestoppt werden.

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

                      ich verstehe die Worte, kann ich aber nicht in Taten umsetzen, wäre das etwa so?
                      Bild Text

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

                        @Humidor sagte in mein erstes Blockly... korrekt?:

                        wäre das etwa so?

                        etwa, ja!

                        ein weiteres Stop timeout direkt vor dem timeout, damit das alte gestoppt wird auch wenn ein neues gestartet wird

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

                          @Homoran sagte in mein erstes Blockly... korrekt?:

                          @Humidor sagte in mein erstes Blockly... korrekt?:

                          wäre das etwa so?

                          etwa, ja!

                          ein weiteres Stop timeout direkt vor dem timeout, damit das alte gestoppt wird auch wenn ein neues gestartet wird

                          verstehe nicht ganz, wäre das die Lösung?
                          Bild Text

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

                            @Humidor sagte in mein erstes Blockly... korrekt?:

                            verstehe nicht ganz, wäre das die Lösung?

                            nein!

                            das stop direkt VOR "Ausführen...."

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

                              so?
                              Bild Text

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

                                @Humidor Ja!

                                und zum Thema Debug:
                                debugging.png

                                Mal auf die Schnelle einen beliebigen Debug-Baustein genommen.
                                Das Ergebnis wird im log eangezeigt

                                1 Reply Last reply Reply Quote 1
                                • Humidor
                                  Humidor last edited by

                                  Super!

                                  dann möchte ich noch einen Debug Ausgabe machen, wo alle 10s die Werte von bBlock, Intervall ausgegeben werden.
                                  läuft das so:
                                  Bild Text

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

                                    @Humidor sagte in mein erstes Blockly... korrekt?:

                                    läuft das so:

                                    neee.
                                    Das ist kein Intervall, sondern ein Timeout.

                                    @Humidor sagte in mein erstes Blockly... korrekt?:

                                    wo alle 10s die Werte

                                    Wieso alle 10 Sekunden.
                                    Es muss doch reichen wenn sie geändert werden, oder?
                                    Dann einfach den Debug ganz oben als erstes unter den Trigger vor "falls bBlock"...

                                    Mit dem Intervall Timeout (???) ist das schon etwas komplizierter, da dort ein fester Name vergeben ist und du den nicht abfragen kannst. Zumindest habe ich es noch nie versucht.

                                    Du kannst aber einen eigenen Namen statt "Intervall" eingeben, legst dazu noch eine Variable mit eben diesem Namen an, und fragst die im debug ab.

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

                                      @Humidor sagte:

                                      soll unter 65% ein Telegram und über 75% abschicken.

                                      Wenn nur einmal bei Grenzwertunterschreitung bzw. -überschreitung ein Telegramm gesendet werden soll, kann man es so machen:

                                      Blockly_temp.JPG

                                      Wert findet man unter "Trigger".

                                      1 Reply Last reply Reply Quote 2
                                      • Humidor
                                        Humidor last edited by Humidor

                                        die Debug-Anzeige soll unabhängig vom Code sein, zeitlich reicht mir
                                        Bild Text

                                        15:04:55.003	info	javascript.0 (5315) script.js.common.Humidity: bBlock: , Timeout:
                                        15:05:00.005	info	javascript.0 (5315) script.js.common.Humidity: bBlock: , Timeout:
                                        

                                        verstehe noch nicht wie ich den Bool Block als True/False oder 1/2 anzeige bzw. die timeouts.. ?

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

                                          @Humidor sagte in mein erstes Blockly... korrekt?:

                                          die Debug-Anzeige soll unabhängig vom Code sein

                                          Da die Variable bBlock aber nur in dem Code vorkommt muss der Cron-Block sich aber im gleichen Blockly (genau gesagt neben oder über/unter dem anderen) befinden

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

                                            @Homoran sagte:

                                            Mit dem Intervall Timeout (???) ist das schon etwas komplizierter, da dort ein fester Name vergeben ist und du den nicht abfragen kannst.

                                            Man kann.

                                            @Homoran sagte in mein erstes Blockly... korrekt?:

                                            Du kannst aber einen eigenen Namen statt "Intervall" eingeben, legst dazu noch eine Variable mit eben diesem Namen an, und fragst die im debug ab.

                                            Das sollte man nicht machen, da dann die Variable mit gleichem Namen doppelt vorhanden ist. Falls es noch keine selbst erstellte Variable gibt, sollte man eine Dummy-Variable anlegen, diese in das Editor-Fenster ziehen und anschließend die Timer-Variable auswählen.

                                            Blockly_dummy.JPG

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            780
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            6
                                            59
                                            2165
                                            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