Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. "Wait" in blockly?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

"Wait" in blockly?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
48 Beiträge 14 Kommentatoren 20.3k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Mac
    schrieb am zuletzt editiert von
    #41

    Hallo Uwe,

    klappt gut mit dem Tapatalk, hab ich mir auch gerade eingerichtet.

    Jetzt klappt es tatsächlich super, ich habs ausgiebig getestet kommt eine Meldung durch, dann Ruhe bis zum nächsten Eintreten der Störung, vielen Dank.

    Das ist die eleganteste Lösung, der Ansatz mit dem Stop Timeout klappt leider doch nicht.

    Noch nachgeschoben zur Erläuterung der Nutzung:

    In unserem Mehrfamilienhaus haben wir sogenannte Frischwasserstationen, diese werden wie ein Durchlauferhitzer mit diesem WW-Heizvorauf im Gegenstrom betrieben und erzeugen das Duschwasser direkt in der Wohnung. Dieser Kreis wird aus einem ein m3 Speicher versorgt, ein Mischer sorgt dafür, dass die Vorlauftemperatur nicht über 65 Grad geht wegen der Verkalkung. Wenn die eine oder zwei Familien Duschen wir ad hoc eine sehr große Leistung abgefordert, es gibt immer seine starke Verzögerung, bis der Fühler die abgefallene Temperatur merkt und das Vebtil dann reagiert. Eine Familie im Erdgeschoß hat immer sehr stark schwankende Temperaturen es sehr schwierig die Speichertemperatur, WW Heizvorlauf ins richtige Verhältnis zu setzen. Der untere Wert unter 60 °C taucht immer für kurze Zeit ab, dann reißt das Ventil auf, schließt dann wieder, fängt dann an stark zu pendeln usw.

    Der Temperaturwert kommt von einer KNX Meßstelle, die verläßlich die richtige Temperatur vorgibt. Dieses Objekt habe ich "Vorlauf WW Bereitung" genannt.

    Um schnell reagieren zu könne hilft mir der "Voralarm". Der richtige Alarm ist dann bei 55°C, dann ist wirklich etwas defekt.

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      Mac
      schrieb am zuletzt editiert von
      #42

      Noch eine Frage bitte, da es jetzt so gut funktioniert:

      Kann ich aus den False/True Zuständen von "WW_KI60", wenn ich sie speichere eine Liste erzeugen - wann wie lange die Störung anstand, und wäre das sehr aufwendig?

      1 Antwort Letzte Antwort
      0
      • DutchmanD Offline
        DutchmanD Offline
        Dutchman
        Developer Most Active Administrators
        schrieb am zuletzt editiert von
        #43

        @Mac:

        Noch eine Frage bitte, da es jetzt so gut funktioniert:

        Kann ich aus den False/True Zuständen von "WW_KI60", wenn ich sie speichere eine Liste erzeugen - wann wie lange die Störung anstand, und wäre das sehr aufwendig? `

        Jup das geht mir flot oder vis und history Tabelle

        –-----------------------

        Send from mobile device

        Das schöne ios hat Auto Korrektur zum k****

        Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          aleks-83
          schrieb am zuletzt editiert von
          #44

          Hallo,

          Ich hänge mich mal an…

          Frage 1: Kann man folgendes mit blockly tun?

          Ich starte ein blockly Script (ScriptA). Schslte dort ein eigenes Datenobjekt auf true.

          (Daraufhin wird ein anderes Script (ScriptB) getriggert und führt ein paar Dinge aus)

          ScriptA wartet, bis ScriptB das Datenobjekt auf false gesetzt hat, und macht dann weiter?

          Geht das überhaupt grundsätzlich bei Javascript, oder würde ScriptA durch das Warten den CPU blockieren?

          Frage 2:

          Meinen Temperaturalarm vom Pi möchte ich etwas entprellen.

          Kann man sagen dass die Temperatur erst für eine gewisse Zeit > X sein muss bevor das Alarm ausgelöst wird?

          Mit einer Schleife?

          = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
          = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

          Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
          Glasfaser 400

          1 Antwort Letzte Antwort
          0
          • rantanplanR Online
            rantanplanR Online
            rantanplan
            schrieb am zuletzt editiert von
            #45

            @aleks-83:

            Frage 1: Kann man folgendes mit blockly tun?

            Ich starte ein blockly Script (ScriptA). Schslte dort ein eigenes Datenobjekt auf true.

            (Daraufhin wird ein anderes Script (ScriptB) getriggert und führt ein paar Dinge aus)

            ScriptA wartet, bis ScriptB das Datenobjekt auf false gesetzt hat, und macht dann weiter? `
            Grundsätzlich ja.

            Aber bedenke, dass "ScriptA" auch einen Trigger haben muss!

            Solche gegenseitige Beeinflussungen sollten genau überdacht werden.

            Sonst geht da schnell ein PingPong los und die Rechenleistung geht in den Keller.

            @aleks-83:

            Geht das überhaupt grundsätzlich bei Javascript, oder würde ScriptA durch das Warten den CPU blockieren? `
            Trigger "warten" ja immer auf ein Ereignis. Ist also kein Problem.
            @aleks-83:

            Frage 2:

            Meinen Temperaturalarm vom Pi möchte ich etwas entprellen.

            Kann man sagen dass die Temperatur erst für eine gewisse Zeit > X sein muss bevor das Alarm ausgelöst wird?

            Mit einer Schleife? `
            Könnte so funktionieren. (nicht getestet!)

            EDIT: Nochmal angepasst. Hatte vergessen, dass die Temperatur ja auch wieder kleiner werden kann ;)

            147_beispiel.png

            Export:

            ! ````
            <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="b_}m+8nvy6q6]:n-Hq)H" x="-388" y="-162"><field name="COMMENT">Beim Start auf 0 setzen</field>
            <next><block type="variables_set" id="T*8Xo{`DaLI,fzK8kmsZ"><field name="VAR">SchleifenZaehler</field>
            <value name="VALUE"><block type="math_number" id="H!N#^;%rn++UG]1PBBJk"><field name="NUM">0</field></block></value>
            <next><block type="on_ext" id="?jtfqya)vUNMutIE:8(["><mutation items="1"></mutation>
            <field name="CONDITION">ne</field>

                    <value name="OID0"><shadow type="field_oid" id=",b0[CASnuW)~r)l3tnd1"><field name="oid">default</field></shadow></value> 
                    <statement name="STATEMENT"><block type="controls_if" id=".2v;b18-Y}4;g84{ao*6"><mutation else="1"></mutation>
                        <value name="IF0"><block type="logic_compare" id="?24mu[mhlJnCClVBF/Ku"><field name="OP">GT</field>
                            <value name="A"><block type="on_source" id="AsOzK;zYeK!F2G6!A:%J"><field name="ATTR">state.val</field></block></value> 
                            <value name="B"><block type="math_number" id="8(p`P@wfLAs?3U=UFACr"><field name="NUM">70</field></block></value></block></value> 
                        <statement name="DO0"><block type="timeouts_setinterval" id="d;8r+xhyj/60VvnGsVRi"><field name="NAME">Intervall</field>
                            <field name="INTERVAL">2</field>
                            <field name="UNIT">min</field>
                            <statement name="STATEMENT"><block type="variables_set" id="F/X(K#OH8mzJ/6i[-;%@"><field name="VAR">SchleifenZaehler</field>
                                <value name="VALUE"><block type="math_arithmetic" id="fu=E,.nX|^_u*N%@97QY"><field name="OP">ADD</field>
                                    <value name="A"><shadow type="math_number" id="(z8}5YerV4mZkwY0R(nN"><field name="NUM">1</field></shadow> 
                                      <block type="variables_get" id="z?l01Q(vE/u?a4z:43,t"><field name="VAR">SchleifenZaehler</field></block></value> 
                                    <value name="B"><shadow type="math_number" id="5=;.lYhz1*_hEilamay-"><field name="NUM">1</field></shadow></value></block></value> 
                                <next><block type="controls_if" id="11q_s*`@uqH,9H4uOkhT"><value name="IF0"><block type="logic_compare" id="X/{}z?^4n%MnX2YgfTmo"><field name="OP">GT</field>
                                        <value name="A"><block type="variables_get" id=".B-)Z%vkzQw|D5[0OpJ1"><field name="VAR">SchleifenZaehler</field></block></value> 
                                        <value name="B"><block type="math_number" id="3bi{Y!Q%R+PTIWG(Lrt2"><field name="NUM">3</field></block></value></block></value> 
                                    <statement name="DO0"><block type="telegram" id="IsG^jMs%`prVZ-g}0tuL"><value name="MESSAGE"><shadow type="text" id="@qysYLa*EiLrVfI0?_)p"><field name="TEXT">Temperatur zu hoch</field></shadow></value> 
                                        <next><block type="comment" id="QvrRE^AEC2D=G6;WVsn9"><field name="COMMENT">WICHTIG!!! Intervall stoppen!!!!</field>
                                            <next><block type="timeouts_clearinterval" id="iw;NuCEZ9~NX,LFxh-8+"><field name="NAME">Intervall</field></block></next></block></next></block></statement></block></next></block></statement></block></statement> 
                        <statement name="ELSE"><block type="variables_set" id="nd-!V~+C5I?xWI?R5il%"><field name="VAR">SchleifenZaehler</field>
                            <value name="VALUE"><block type="math_number" id="~H6ntDlWG7G/w5d8wEy#"><field name="NUM">0</field></block></value> 
                            <next><block type="timeouts_clearinterval" id="8iiDrDrR/Fa/:b9DAPhA"><field name="NAME">Intervall</field></block></next></block></statement></block></statement></block></next></block></next></block> 
            

            <block type="comment" id="flcgZXuN`F8mbx,K87F:" x="-88" y="-112"><field name="COMMENT">Datenpunkt Temperatur</field></block></xml>

            ! ````

            Grüße

            Rantanplan

            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              aleks-83
              schrieb am zuletzt editiert von
              #46

              @rantanplan:

              @aleks-83:

              Frage 1: Kann man folgendes mit blockly tun?

              Ich starte ein blockly Script (ScriptA). Schslte dort ein eigenes Datenobjekt auf true.

              (Daraufhin wird ein anderes Script (ScriptB) getriggert und führt ein paar Dinge aus)

              ScriptA wartet, bis ScriptB das Datenobjekt auf false gesetzt hat, und macht dann weiter? `
              Grundsätzlich ja.

              Aber bedenke, dass "ScriptA" auch einen Trigger haben muss!

              Solche gegenseitige Beeinflussungen sollten genau überdacht werden.

              Sonst geht da schnell ein PingPong los und die Rechenleistung geht in den Keller. `
              OK, ich wollte mir damit eigentlich nur Arbeit ersparen.

              Mit dem eigenen Datenobjekt würde ich dann eine meiner Standard Routinen aufrufen die ich häufig verwende.

              z.B. das Raufdimmen von Lampen.

              Bin kein Javascript Programmierer, daher denke ich vllt etwas anders rum.

              Ich komme aus dem Bereich eines Zeilenweise arbeitenden Programmcodes. Dort gibt es auch Wait Befehle.

              @rantanplan:

              @aleks-83:

              Geht das überhaupt grundsätzlich bei Javascript, oder würde ScriptA durch das Warten den CPU blockieren? Trigger "warten" ja immer auf ein Ereignis. Ist also kein Problem.
              Ja schon. Aber aber Trigger der hier "warten" würde, wäre ja hinter einem anderem Trigger.

              Wenn also in dem moment wo der erste Trigger ausgelöst wird, nicht auch der andere Trigger den gewünschten Zustand hat, wird der Trigger übersprungen, richtig?

              @rantanplan:

              @aleks-83:

              Frage 2:

              Meinen Temperaturalarm vom Pi möchte ich etwas entprellen.

              Kann man sagen dass die Temperatur erst für eine gewisse Zeit > X sein muss bevor das Alarm ausgelöst wird?

              Mit einer Schleife? `
              Könnte so funktionieren. (nicht getestet!)

              EDIT: Nochmal angepasst. Hatte vergessen, dass die Temperatur ja auch wieder kleiner werden kann ;) `
              Super, Danke.

              Aber müsste in die Intervall-Schleife nicht noch eine Temperatur-Abfrage rein?

              Sonst würde jetzt einfach nur 6 Minuten nachdem die Temp > 70 ist, eine Meldung an telegram gesendet.

              Oder ?

              = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
              = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

              Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
              Glasfaser 400

              1 Antwort Letzte Antwort
              0
              • rantanplanR Online
                rantanplanR Online
                rantanplan
                schrieb am zuletzt editiert von
                #47

                @aleks-83:

                Ja schon. Aber aber Trigger der hier "warten" würde, wäre ja hinter einem anderem Trigger.

                Wenn also in dem moment wo der erste Trigger ausgelöst wird, nicht auch der andere Trigger den gewünschten Zustand hat, wird der Trigger übersprungen, richtig? `
                Wo ein Trigger steht ist völlig egal.

                Außer Trigger in Trigger. Das sollte man tunlichst vermeiden!

                Ein Trigger führt seine Befehle immer nur aus, wenn seine Bedingung erfüllt ist.

                @aleks-83:

                Aber müsste in die Intervall-Schleife nicht noch eine Temperatur-Abfrage rein?

                Sonst würde jetzt einfach nur 6 Minuten nachdem die Temp > 70 ist, eine Meldung an telegram gesendet.

                Oder ? `
                Wenn dann die Temperatur dann immer noch >70 ist, ja.

                Sollte die Temperatur <=70 werden, wird ja der Intervall gestoppt.

                Wird ein Intervall oder Timer gestoppt, werden die Befehle innerhalb eines Intervall/Timer NICHT ausgeführt.

                Grüße

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Antwort Letzte Antwort
                0
                • rantanplanR rantanplan

                  @NUCChris:

                  ich versuche grade den Wert von "timeout" über VIS einzustellen. Ich habe die vorherigen beispiele ausprobiert, aber es will nicht klappen :?: :? `

                  Der undokumentierte "Trick" mit der Variablen funktioniert nicht mehr.

                  Grüße

                  S Offline
                  S Offline
                  stundenblume
                  schrieb am zuletzt editiert von
                  #48

                  @rantanplan said in "Wait" in blockly?:

                  Der undokumentierte "Trick" mit der Variablen funktioniert nicht mehr.

                  @NUCChris said in "Wait" in blockly?:

                  kennt jemand einen neuen Trick? :shock:

                  @rantanplan said in "Wait" in blockly?:

                  [EDIT] Stand 18.10.17 Das Folgende funktioniert NICHT mehr*****

                  Bei mir funktioniert des Ersetzten der Zahl durch einen Variablennamen. Sogar Rechnen im Feld ist möglich. Also zB die Umrechnung von Minuten im Millisekunden.

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  1.0k

                  Online

                  32.4k

                  Benutzer

                  81.5k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe