Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] mit blockly einen Countdown starten, unterbrechen und fortführen

    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

    [gelöst] mit blockly einen Countdown starten, unterbrechen und fortführen

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

      Ich habe mir jetzt mal verschiedene blockly skripte im Forum angeschaut und denke, daß eine Lösung meines Problems ein Countdown von 60 Minuten ist, der bei Überschreiten einer Wattzahl gestartet wird. Daher habe ich auch den betreff geändert.

      Wenn ich das richtig sehe, könnte ich das mit diesem Ansatz machen: viewtopic.php?f=23&t=737&start=40#p63514

      Wie kann ich aber erreichen, daß der Countdown unterbricht, wenn die Wattzahl unter einen bestimmten Wert fällt und der Countdown fortgesetzt wird (nicht neu gestartet wird wird), wenn der Fernseher wieder an ist?

      Der Zähler soll erst um Mitternacht wieder auf 60 Minuten gesetzt werden.

      Danke und Grüße

      Andreas

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

        @weimaraner:

        Wie kann ich aber erreichen, daß der Countdown unterbricht, wenn die Wattzahl unter einen bestimmten Wert fällt `
        stop zyklische Ausführung, Zähler bleibt stehen
        @weimaraner:

        und der Countdown fortgesetzt wird (nicht neu gestartet wird wird), wenn der Fernseher wieder an ist? `
        Ausführen Intervall, es wird weiter gezählt.

        Etwa so:
        493_blockly_countdown_m_unterbr.jpg

        1 Reply Last reply Reply Quote 0
        • W
          weimaraner last edited by

          Sehr cool! 😄 Das probiere ich morgen gleich aus.

          Danke für Deine Hilfe!

          Grüße Andreas

          Edit: eine Frage noch: Warum steht unten beim Trigger "setze countdown auf 600" zweimal?

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

            @weimaraner:

            Warum steht unten beim Trigger "setze countdown auf 600" zweimal? `
            Das erste mal täglich um Mitternacht, das zweite mal bei Skriptstart, damit man zum Testen nicht bis Mitternacht warten muss.

            1 Reply Last reply Reply Quote 0
            • W
              weimaraner last edited by

              Jetzt habe ich es mal ausprobiert und zuerst ging der Föhn, den ich zu Testzwecken an die HM Steckdose angeschlossen habe nach 10 Sekunden aus. Wenn ich allerdings zwischendurch unterbreche und den Föhn per Hand ausschalte, sollte ja der Countdown unterbrechen und erst weiterzählen, wenn der Föhn wieder an ist. Er bleib dann aber unendlich an.

              Was lief falsch? 😞

              Edit: noch eine Verständnsisfrage. Muß die Variable (?) "countdown" noch irgendwie angelegt werden oder läuft das auch so in blockly. Falls ich den countdown visualisieren möchte, wo sehe ich diese Zahl?

              1884_countdown.jpg
              hier noch der Import

              ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
              ! <block type="comment" id="C)Oi+tobP3NJb8-5}_|" x="-587" y="-251"><field name="COMMENT">Leistung TV</field> ! <next><block type="on" id="Gb!veBqIjiY?+r9[#uBd"><field name="OID">hm-rpc.0.NEQ0399022.2.POWER</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="controls_if" id="Sz~/2LQ)-na5/TBs]eGJ"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_operation" id="0ex^sjpa!qYiKEHq^Z9%"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="k%~+oSc;IMB8C{=qhHq-"><field name="OP">GT</field> ! <value name="A"><block type="on_source" id="IYp)x,cC9%dslvy]-D~v"><field name="ATTR">state.val</field></block></value> ! <value name="B"><block type="math_number" id="9[V^yHf85K:BIj;Qhfz"><field name="NUM">20</field></block></value></block></value>
              ! <value name="B"><block type="logic_compare" id="_b4u5:[xOOK)33LeOKP"><field name="OP">LT</field> ! <value name="A"><block type="on_source" id="8N:v1V4e:b/=X6*nxmfe"><field name="ATTR">oldState.val</field></block></value> ! <value name="B"><block type="math_number" id="sF;5?c;kVM=CQ%Ay%ruq"><field name="NUM">20</field></block></value></block></value></block></value> ! <statement name="DO0"><block type="timeouts_setinterval" id="M~/KK*jhdrtS]+AFhKbu"><field name="NAME">Intervall</field> ! <field name="INTERVAL">1000</field> ! <statement name="STATEMENT"><block type="math_change" id="gtrmX:13zZ=wR=[Z[B2i"><field name="VAR">countdown</field> ! <value name="DELTA"><shadow type="math_number" id="K|#JrzHvxmb{?|[Ors;j"><field name="NUM">-1</field></shadow></value> ! <next><block type="controls_if" id="xz4bhId~KOga3Gi^3z8r"><value name="IF0"><block type="logic_compare" id="V;6%b8l2_8M.JbT?+6J_"><field name="OP">LTE</field> ! <value name="A"><block type="variables_get" id=";9ULSELXNb:L|7ew]9+["><field name="VAR">countdown</field></block></value> ! <value name="B"><block type="math_number" id="Im78V(2SQtT-Ej+VUS7"><field name="NUM">0</field></block></value></block></value>
              ! <statement name="DO0"><block type="comment" id="1**{-)VFBc?j0L/AaqxW"><field name="COMMENT">TV aus</field>
              ! <next><block type="control" id="rZzovp+z/Dh=KlM}+BeE"><mutation delay_input="false"></mutation>
              ! <field name="OID">hm-rpc.0.NEQ0399022.1.STATE</field>
              ! <field name="WITH_DELAY">FALSE</field>
              ! <value name="VALUE"><block type="logic_boolean" id="oO.l2^),wV(}Vw]0Ss7"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></next></block></statement></block></statement> ! <statement name="ELSE"><block type="timeouts_clearinterval" id="q2_0P~crCR[p0P=F/d:^"><field name="NAME">Intervall</field></block></statement></block></statement> ! <next><block type="schedule" id=":hRnpZId0WJtEG_v?3D."><field name="SCHEDULE">0 0 * * *</field> ! <statement name="STATEMENT"><block type="variables_set" id="?K~khJsMCiym/!BZi^J"><field name="VAR">countdown</field>
              ! <value name="VALUE"><block type="math_number" id="tJ5JliPj-#TzK)p.qiw"><field name="NUM">10</field></block></value></block></statement> ! <next><block type="comment" id="F67q]lpYtzr7K9@bl.@c"><field name="COMMENT">Skript Start</field> ! <next><block type="variables_set" id="G.*+9:~[g8mc#U1q5Xj"><field name="VAR">countdown</field>
              ! <value name="VALUE"><block type="math_number" id="Qz|ukuR7ryml=9RJOUo3"><field name="NUM">10</field></block></value></block></next></block></next></block></next></block></next></block></xml>

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

                @weimaraner:

                Wenn ich allerdings zwischendurch unterbreche und den Föhn per Hand ausschalte, sollte ja der Countdown unterbrechen und erst weiterzählen, wenn der Föhn wieder an ist. Er bleib dann aber unendlich an. `
                Das ist logisch nicht nachvollziehbar, da auf countdown <= 0 geprüft wird. Was ist "vorheriges Wert" ? Eine Skriptvariable oder eine Datenpunkteigenschaft ? Es muss die Datenpunkteigenschaft "vorheriger Wert" sein !
                493_blockly_dp_props.jpg
                @weimaraner:

                Muß die Variable (?) "countdown" noch irgendwie angelegt werden oder läuft das auch so in blockly. `
                Bei Auswahl des Blocks setze etwas auf wird die Variable etwas angelegt und je nach Auswahl umbenannt oder eine neue Variable erzeugt.
                @weimaraner:

                Falls ich den countdown visualisieren möchte, wo sehe ich diese Zahl? `
                Nirgends, denn es ist ein Skriptvariable. Anzeigen kannst Du den Wert mit einem Debug-Block unter erhöhe countdown um -1.

                1 Reply Last reply Reply Quote 0
                • W
                  weimaraner last edited by

                  @paul53:

                  @weimaraner:

                  Wenn ich allerdings zwischendurch unterbreche und den Föhn per Hand ausschalte, sollte ja der Countdown unterbrechen und erst weiterzählen, wenn der Föhn wieder an ist. Er bleib dann aber unendlich an. `
                  Das ist logisch nicht nachvollziehbar, da auf countdown <= 0 geprüft wird. Was ist "vorheriges Wert" ? Eine Skriptvariable oder eine Datenpunkteigenschaft ? Es muss die Datenpunkteigenschaft "vorheriger Wert" sein !

                  Blockly_DP_Props.JPG `

                  Ich habe diesen Wert ausgewählt.
                  1884_vorheriger_wert.jpg

                  Edit: Jetzt schaltet sich die HM Steckdose auch aus, wenn der Föhn zwischendurch ausgeschaltet wurde. Heißt der Countdown wird nicht angehalten. Ich bastel das blockly morgen nochmal in Ruhe nach. Meine Frau denkt schon ich habe einen an der Waffel, daß ich ständig den Föhn auf dem Schreibtisch anmache. :shock:

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

                    Welche Version des JS-Adapters verwendest Du (vorheriges Wert vs. vorheriger Wert) ?

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

                      @weimaraner:

                      Jetzt schaltet sich die HM Steckdose auch aus, wenn der Föhn zwischendurch ausgeschaltet wurde. Heißt der Countdown wird nicht angehalten. `
                      Da ich keine Meßsteckdose habe, weiß ich nicht, wie schnell der Leistungs-Datenpunkt bei Ausschalten reagiert. Vergrößere mal die Zykluszeit (z.B. auf 3 s).

                      1 Reply Last reply Reply Quote 0
                      • W
                        weimaraner last edited by

                        JS-Adapter habe ich 3.2.6.

                        ich werde am Wochenende nochmal ausführlich mit längerer Zykluszeit testen.

                        Heute nicht mehr… :? bin gerade rein und hundemüde.

                        1 Reply Last reply Reply Quote 0
                        • W
                          weimaraner last edited by

                          So, das blockly läuft! 🙂 Vielen Dank vor allem an paul53.

                          Scheinbar war mein Raspi mit der sekündlichen Abarbeitung des Intervalls etwas überfordert und hat sich da verschluckt. Ich habe diesen nun von 1 Sekunde auf 5 Sekunden gesetzt und dafür den countdown entsprechend eingekürzt. Jetzt läuft alles sauber und wird bei Unterbrechung angehalten und startet auch wieder.

                          Viele Grüße Andreas

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          570
                          Online

                          31.7k
                          Users

                          79.9k
                          Topics

                          1.3m
                          Posts

                          2
                          12
                          3310
                          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