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

      Hallo zusammen,

      ich habe folgendes Probelm und stehe gerade irgendwie auf dem Schlauch, wo und wie ich anfangen soll.

      Meine Tochter hat in ihrem Zimmer einen Fernseher. Ich möchte die tägliche Nutzungsdauer auf eine Stunde beschränken. Zu welcher Tageszeit soll erstmal keine Rolle spielen. Allerdings kann sie sich die zur Verfügung stehende Zeit (also die eine Stunde) frei aufteilen. Soll heißen, ob sie eine Stunde am Stück schaut oder 3 mal 20 Minuten, ist mir egal.

      Realisieren möchte ich das mittels der HM Funksteckdose mit Leistungsmessung. Heißt, wenn Verbrauch über eine bestimmte Wattzahl liegt, dann läuft das Zeitkontingent runter. Ist es null, geht der Fernseher aus. Mit jedem neuen Tag wird der Zeitzähler wieder auf eine Stunde zurückgesetzt.

      Da ich nicht programmieren kann und später das ganze noch erweitern möchte (und vor allem verstehen will) wäre das ganze in blockly cool.

      Danke schonmal für Eure Bemühungen.

      Grüße Andreas

      1 Reply Last reply Reply Quote 0
      • 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

                            509
                            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