Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Bewässerung - Ausführung/Verzögerung unterbrechen

    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

    Bewässerung - Ausführung/Verzögerung unterbrechen

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

      Hi zusammen,

      ich möchte zeitversetzt die Ventile meiner Bewässerungsanlage steuern. Hierzu habe ich relativ schnell folgendes Blockly Skript erstellt:

      Bildschirmfoto 2019-07-22 um 18.44.49.png

      Idee:
      Ich setze die Variable "Automatische Bewässerung" über pocketControl am Handy auf "wahr". Anschließend laufen die vier Zonen nacheinander mit dem jeweiligen Versatz durch und beregnen.

      Problem:
      Habe ich die Variable auf "wahr" gesetzt, habe ich momentan keine Möglichkeit mehr, die Abarbeitung der Zonen zu stoppen.

      Ziel:
      Idealerweise würde ich einfach die Variable "Automatische Bewässerung" wieder auf "falsch" setzen und die Ausführung würde stoppen. Ideal wäre es natürlich, wenn das Skript wieder dort starten würde, wenn ich die Variable z. B. innerhalb 60 Minuten wieder auf "wahr" stelle und wieder von vorne starten würde, wenn der Zeitraum größer 60 Minuten ist.

      Hat hier jemand eine schlaue Idee, wie man das hinbekommen könnte?

      Danke schon einmal für eure Tipps!

      Grüße!

      1 Reply Last reply Reply Quote 0
      • G
        Gerni last edited by Gerni

        Ich bin am gleichen Thema dran und klinke mich mal mit ein. Ich habe:

        1 Schaltbare Steckdose an der Wasserpumpe
        1 Sonoff 4CH pro
        2 Hunter Ventile die an je einem Kanal des Sonoff 4CH angeschlossen sind
        1 24v AC Netzteil welches ich mit einer schaltbaren Steckdose schalte (Ist noch nicht das optimale, es brummt daher möchte ich es lieber ausschalten wenn eh nicht bewässert wird) um 24v AC auf den Sonoff zu bekommen

        Mein Skript:
        77191a2a-c70a-4132-9bf7-057701604e74-image.png

        Ich schalte einen Datenpunkt "Rasensprenger) der dann die Aktion auslöst. Durch die Verzögerungen läuft linke Rasenfläche 1 Minute denn wenn die rechte an geht, geht die linke (sonoffseitig) aus und nach 2 Minuten greift der Timeout und setzt den Datenpunkt "Rasensprenger" wieder auf False.

        So kann ich den Datenpunkt künftig ja auch in Alexa integrieren.

        Problem/Frage:

        • Wenn die Sprenger dann einmal laufen laufen sie die entsprechende Zeit auch wenn der "Rasensprenger" false ist. Vermutlich das Timeout falsch gesezt; wo muss es hin?
        • Zusätzlich möchte ich einen Zeitplan laufen lassen jedoch nur wenn "Rasensprenger" true und über yr Adapter zB Niederschlag unter 10mm (yr Adapter ist vorhanden) ist. So müsste der Zeitplan nicht greifen. Steht also eine Gartenparty an, ich den "Rasensprenger" vorher auf false setze dürfen die Sprenger natürlich nicht laufen.

        Folgend mein Startskript.

        Vielleicht hat ja jemand die selbe Anforderung, hat das umgesetzt und kann helfen.


        <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
        <variable type="" id="%H1#7-0;J}gfZeCh=x0">an/aus</variable> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="on_ext" id="[?xHl;H!w{E8~[C1lWaU" x="63" y="38"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="6mXX+e~;gTWYp(Z*:S{Y"> <field name="oid">javascript.0.Rasensprenger</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="{6=XP2Y9OMk+5gIC-YlI"> <value name="IF0"> <block type="logic_compare" id="QhOqv8+g]LCDm]zfF1No"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9*[;6wfcVF:*pLz[.^bF"> <field name="ATTR">val</field> <field name="OID">javascript.0.Rasensprenger</field> </block> </value> <value name="B"> <block type="logic_boolean" id="t2cf!xG_ovlg)k6f4l@o"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="E]8_i{xSE.OD;jjna$cp"> <mutation name="Pumpe und Ventile"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="+WAn?o)7{1m+nih]Mnxs"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="2U0Bw%0#2n40#;GkH6dM"> <mutation name="Linke Rasenfläche"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="ULs}145:}H8ra20,NZ#k"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="T#xeoDAa_e!nYC/PoVhh"> <mutation name="Rechte Rasenfläche"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="-WF1BJXq-!HV#OIl.$[S"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="timeouts_cleartimeout" id="k?]zbosT+k=Je}qhq7$C"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id="mL(+d]S^m3nAlJ-e)]e">
        <field name="NAME">timeout</field>
        <field name="DELAY">2</field>
        <field name="UNIT">min</field>
        <statement name="STATEMENT">
        <block type="control" id="sWEhZyx.NxG@]AnuR~4k">
        <mutation delay_input="false"></mutation>
        <field name="OID">javascript.0.Rasensprenger</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="%{,%c75vmZ5C/s44DvOv">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        <next>
        <block type="procedures_callnoreturn" id="crTx~Y1[ZV.z2BF#%av=">
        <mutation name="Komplette Anlage">
        <arg name="an/aus"></arg>
        </mutation>
        <value name="ARG0">
        <block type="logic_boolean" id="?Et%54lNnNs2J=(bk,AL">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        </block>
        </next>
        </block>
        </statement>
        </block>
        </next>
        </block>
        </next>
        </block>
        </statement>
        </block>
        <block type="procedures_defnoreturn" id="Iaq2}N*^A[q@H@#goRY|" x="638" y="38">
        <mutation>
        <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg> </mutation> <field name="NAME">Pumpe und Ventile</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="^!SfE14dfv-if?/bqcY">
        <mutation delay_input="false"></mutation>
        <field name="OID">sonoff.0.Wasserpumpe.POWER</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="ki%3xvvCf6YCcZjQZ,^a">
        <field name="BOOL">TRUE</field>
        </block>
        </value>
        <next>
        <block type="control" id="s=y^HVnW4e+NI=Ig%k!">
        <mutation delay_input="true"></mutation>
        <field name="OID">hs100.0.192_168_178_57.state</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">5</field>
        <field name="UNIT">sec</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="WKCH0U!?}(x^:3K6SfP|">
        <field name="BOOL">TRUE</field>
        </block>
        </value>
        </block>
        </next>
        </block>
        </statement>
        </block>
        <block type="procedures_defnoreturn" id="nK#[lNr?atwTI8)uVV-V" x="638" y="188">
        <mutation>
        <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg> </mutation> <field name="NAME">Linke Rasenfläche</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="~Q--de5|WJ^kYbec+s1">
        <mutation delay_input="true"></mutation>
        <field name="OID">sonoff.0.4CH Pro.POWER1</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">3</field>
        <field name="UNIT">sec</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="2RZA6[0dQTIn1hOIr(sq">
        <field name="BOOL">TRUE</field>
        </block>
        </value>
        </block>
        </statement>
        </block>
        <block type="procedures_defnoreturn" id="V8ltvDXESdEjMr}sCNp8" x="638" y="288">
        <mutation>
        <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg> </mutation> <field name="NAME">Rechte Rasenfläche</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="zY!WDIG4ET[hMfZeM0*j"> <mutation delay_input="true"></mutation> <field name="OID">sonoff.0.4CH Pro.POWER2</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="U+cQ:~~5:836$G5$BO^Q"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id="[f2d+O48MoLl8s4I$fS" x="638" y="413">
        <mutation>
        <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg> </mutation> <field name="NAME">Komplette Anlage</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="|1o6*|y}I84n(XL#~?c^"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.4CH Pro.POWER2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="dPL]A]lwN+@H;Sa^gxb2"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="HTPJK3Kg#e?)X^I9n!b">
        <mutation delay_input="false"></mutation>
        <field name="OID">sonoff.0.4CH Pro.POWER1</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="/+$e,){r
        17x6L{;{g`Y">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        <next>
        <block type="control" id="0kneh8gS3Uek!XZ*{5?^">
        <mutation delay_input="true"></mutation>
        <field name="OID">hs100.0.192_168_178_57.state</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">5</field>
        <field name="UNIT">sec</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="lhA(QeZLj*?AES8lhti,">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        <next>
        <block type="control" id="=$oIq[G5jya@7NKD80p)">
        <mutation delay_input="true"></mutation>
        <field name="OID">sonoff.0.Wasserpumpe.POWER</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">5</field>
        <field name="UNIT">sec</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="?JI/n4C-7f3h!Vy}A|hG">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </statement>
        </block>
        </xml>

        Alternativ mein Skript womit ich dann nur den Datenpunkt true/false schalte, da reagieren die Geräte entsprechend sofort (falls das jemand so schon gebrauchen kann)


        <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
        <variable type="" id="%H1#7-0;J}gfZeCh=x0">an/aus</variable> </variables> <block type="on_ext" id="[?xHl;H!w{E8~[C1lWaU" x="63" y="38"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="6mXX+e~;gTWYp(Z*:S{Y"> <field name="oid">javascript.0.Rasensprenger</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="{6=XP2Y9OMk+5gIC-YlI"> <value name="IF0"> <block type="logic_compare" id="QhOqv8+g]LCDm]zfF1No"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9*[;6wfcVF:*pLz[.^bF"> <field name="ATTR">val</field> <field name="OID">javascript.0.Rasensprenger</field> </block> </value> <value name="B"> <block type="logic_boolean" id="t2cf!xG_ovlg)k6f4l@o"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="E]8_i{xSE.OD;jjna$cp"> <mutation name="Pumpe und Ventile"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="+WAn?o)7{1m+nih]Mnxs"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="2U0Bw%0#2n40#;GkH6dM"> <mutation name="Linke Rasenfläche"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="ULs}145:}H8ra20,NZ#k"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="T#xeoDAa_e!nYC/PoVhh"> <mutation name="Rechte Rasenfläche"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="-WF1BJXq-!HV#OIl.$[S"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="control" id="sWEhZyx.NxG@]AnuR~4k"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Rasensprenger</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="%{,%c75vmZ5C/s44DvOv"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="crTx~Y1[ZV.z2BF#%av="> <mutation name="Komplette Anlage"> <arg name="an/aus"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="?Et%54lNnNs2J=(bk,AL"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="Iaq2}N*^A[q@H@#goRY|" x="638" y="38"> <mutation> <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg>
        </mutation>
        <field name="NAME">Pumpe und Ventile</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        <statement name="STACK">
        <block type="control" id="^!SfE14dfv-if?/bqcY"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Wasserpumpe.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ki%3xvvCf6YCcZjQZ,^a"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="s=y^HVnW*4e+NI=Ig%k!"> <mutation delay_input="true"></mutation> <field name="OID">hs100.0.192_168_178_57.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="WKCH0U!?}(x^:3K6SfP|"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="nK#[lNr?atwTI8)uVV-V" x="638" y="188"> <mutation> <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg>
        </mutation>
        <field name="NAME">Linke Rasenfläche</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        <statement name="STACK">
        <block type="control" id="~Q--de5|WJ^kYbec+s1"> <mutation delay_input="true"></mutation> <field name="OID">sonoff.0.4CH Pro.POWER1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="2RZA6[0dQTIn1hOIr(sq"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id="V8ltvDXESdEjMr}sCNp8" x="638" y="288"> <mutation> <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg>
        </mutation>
        <field name="NAME">Rechte Rasenfläche</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        <statement name="STACK">
        <block type="control" id="zY!WDIG4ET[hMfZeM0j">
        <mutation delay_input="true"></mutation>
        <field name="OID">sonoff.0.4CH Pro.POWER2</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">1</field>
        <field name="UNIT">min</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="U+cQ:~~5:836$G5$BO^Q">
        <field name="BOOL">TRUE</field>
        </block>
        </value>
        </block>
        </statement>
        </block>
        <block type="procedures_defnoreturn" id="[f2d+O48MoLl8s4I$fS" x="638" y="413"> <mutation> <arg name="an/aus" varid="%H1#7-0;J}gfZeCh=x0"></arg>
        </mutation>
        <field name="NAME">Komplette Anlage</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        <statement name="STACK">
        <block type="control" id="|1o6
        |y}I84n(XL#~?c^">
        <mutation delay_input="false"></mutation>
        <field name="OID">sonoff.0.4CH Pro.POWER2</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="dPL]A]lwN+@H;Sa^gxb2">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        <next>
        <block type="control" id="HTPJK3Kg#e?)X^I9n!b"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.4CH Pro.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="/+$e,){r*17x6L{;{gY">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        <next>
        <block type="control" id="0kneh8gS3Uek!XZ*{5?^">
        <mutation delay_input="true"></mutation>
        <field name="OID">hs100.0.192_168_178_57.state</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">5</field>
        <field name="UNIT">sec</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="lhA(QeZLj*?AES8lhti,">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        <next>
        <block type="control" id="=$oIq[G5jya@7NKD80p)">
        <mutation delay_input="true"></mutation>
        <field name="OID">sonoff.0.Wasserpumpe.POWER</field>
        <field name="WITH_DELAY">TRUE</field>
        <field name="DELAY_MS">5</field>
        <field name="UNIT">sec</field>
        <field name="CLEAR_RUNNING">FALSE</field>
        <value name="VALUE">
        <block type="logic_boolean" id="?JI/n4C-7f3h!Vy}A|hG">
        <field name="BOOL">FALSE</field>
        </block>
        </value>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </statement>
        </block>
        </xml>

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

          @Gerni sagte:

          Vermutlich das Timeout falsch gesezt; wo muss es hin?

          Prinzip:
          Blockly_temp.JPG

          Weshalb haben die Funktionen einen Übergabe-Parameter, wenn dieser nicht in der Funktion ausgewertet wird ?

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

            @paul53 verstehe ich nicht. Was soll ich wo auswerten? Zeig mal die eigentliche Funktion. Ich sage da ja, dass innerhalb der Funktion wahr oder falsch sein soll.
            Oder kann man das richtiger machen?

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

              @Gerni sagte:

              Ich sage da ja, dass innerhalb der Funktion wahr oder falsch sein soll.

              Ja eben, unabhängig vom übergebenen Parameter. Die Funktion braucht also keinen Parameter.

              Blockly_temp.JPG

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

                @paul53 Ach so und dann setze ich die Variable anstellen true/false auf der linken Seite. Probiere ich auch, setze auch den Timer anders. Und dann kann ich zudem auch manuell ein/aus schalten?

                Kurze Frage; in Deinem Screenshot beim ersten "Falls" steht ein "roter Wert". Was ist das? Das Feld habe ich gefunden aber was sagt das aus bzw. was ist das für eine Funktion?

                Und die Variable sagt ja "an/aus". Woher weiß das Gerät denn dann ob es an oder aus gehen soll? Auf der Linken Seite, also im Skript selbst wählt man ja auch die Variable "an/aus".

                Und woher kommt denn das "Pumpe an Ventile auf".

                022a54ec-c44c-47a1-8e5d-1fa97c169a74-image.png

                Ansonsten hätte ich das jetzt so:

                85a06b51-7db9-4835-886a-b458f00b79e6-image.png

                Sry für die vielen Fragen aber so einige Funktionen in Blockly kenne ich nicht bzw. finde sie auch nicht um das nachzubauen.

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

                  @Gerni sagte:

                  steht ein "roter Wert". Was ist das?

                  Das ist der Wert des Trigger-Datenpuktes (Blöcke "Trigger").

                  @Gerni sagte in Bewässerung - Ausführung/Verzögerung unterbrechen:

                  Ansonsten hätte ich das jetzt so:

                  Im mache-Zweig fehlt der Aufruf der oberen 3 Funktionen mit Übergabe von "wahr" an den Parameter "an/aus" der Funktionen, so wie Du es zuerst hattest. An die Funktion im sonst-Zweig muss der Wert "falsch" übergeben werden (wie ursprünglich).

                  @Gerni sagte in Bewässerung - Ausführung/Verzögerung unterbrechen:

                  Und woher kommt denn das "Pumpe an Ventile auf".

                  Das ist eine Zusammenfassung Deiner oberen 3 Funktionen in einer Funktion ohne Parameter.

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

                    @paul53 sagte in Bewässerung - Ausführung/Verzögerung unterbrechen:

                    Das ist der Wert des Trigger-Datenpuktes (Blöcke "Trigger").

                    Ok, nur verstehe ich nicht was "Falls Wert" bedeutet. Da muss doch noch eine Kennzahl bzw. ein State gefragt werden, oder? Oder ist es grad einfach zu warm und ich kann nicht denken?

                    Mache-Zweig: Also exakt so wie ich es vorher hatte? Bei Dir steht doch da "Pumpe an Ventile auf".

                    Und zum letzten Punkt; Du hast also (in meinem Bsp) eine 4. Funktion erstellt die die ersten 3 Funktionen beinhaltet jedoch ohne Parameter?

                    Logisch weiß ich zwar was das macht aber nicht wie ich das erstellen kann.

                    Wenn Du Zeit hast kannst Du das vielleicht mal nachstellen und Screenshoten?

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

                      @Gerni sagte:

                      Du hast also (in meinem Bsp) eine 4. Funktion erstellt die die ersten 3 Funktionen beinhaltet jedoch ohne Parameter?

                      Nicht ganz: 3 Funktionen zu einer zusammengefasst:

                      • steuere Wasserpumpe mit wahr
                      • steuere Ventile mit wahr 5 s verzögert
                      • steuere Linke Rasenfläche mit wahr 3 s verzögert
                      • steuere Rechte Rasenfläche mit wahr 1 min verzögert

                      @Gerni sagte in Bewässerung - Ausführung/Verzögerung unterbrechen:

                      Da muss doch noch eine Kennzahl bzw. ein State gefragt werden, oder?

                      Ja, es wird der Wert des Triggerdatenpunktes "Rasensprenger" abgefragt.
                      Blockly_DP_Props.JPG

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

                        @paul53 Ich glaube ich habe es. Hier mal komplett, ist doch leichter zu verstehen hoffe ich.

                        93abab04-c82e-40d3-8954-aa4bf7773e21-image.png

                        Was jetzt noch fehlt damit es für mich perfekt wäre:
                        einen Zeitplan laufen lassen jedoch nur wenn "Rasensprenger" true und über yr Adapter zB Niederschlag unter 10mm (yr Adapter ist vorhanden) ist. So müsste der Zeitplan nicht greifen. Steht also eine Gartenparty an, ich den "Rasensprenger" vorher auf false setze dürfen die Sprenger natürlich nicht laufen.

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

                          @Gerni sagte:

                          Hier mal komplett,

                          Die oberen 3 Funktionen können gelöscht werden, da sie nirgends verwendet (aufgerufen) werden.
                          Im sonst-Zweig false an den Parameter an/aus der Funktion übergeben !!

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

                            @paul53 ok vielen Dank für Deine Unterstützung, habe ich verstanden. Auch, dass die oberen drei nicht verwendet werden weil ich die ja mit letzter Funktion zusammengefasst werden.

                            Sieht nun so aus.
                            d6d2d541-a19e-4986-8ef4-804c565bfbd1-image.png

                            Wenn ich nun einen Zeitplan davor setze, prüft der dann ob "Rasensprenger" an und ob Regen "<10", wenn "true" und "<10" dann durchlaufe Skript, wenn "false" lasse alles ausgeschaltet?

                            Dann hätte ich mein Ziel erreicht. Wäre das so logisch korrekt aufgebaut?

                            49a6d191-3fe9-4759-af32-57e413c67d77-image.png

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

                              @Gerni sagte:

                              Wäre das so logisch korrekt aufgebaut?

                              Nein, keine Trigger (Falls Objekt) innerhalb von Triggern (Zeitplan) verwenden ! So wird jede Minute ein neuer Trigger erzeugt.

                              Vorschlag:
                              Blockly_temp.JPG

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

                                @paul53 Ah Trigger in Trigger muss ich mir merken. Habe ich nachgebaut, teste ich heute Abend bzw. Morgen und gebe Feedback.

                                1 Reply Last reply Reply Quote 0
                                • G
                                  Gerni last edited by

                                  Datenpunkt Rasensprenger steht auf true und Blockly hat funktioniert. Zeitplan läuft also.

                                  Lediglich an manuelles anschalten ist jetzt nicht möglich weil das ja erst startet wenn Die Zeit erreicht ist.

                                  Ansonsten schon mal top

                                  1 Reply Last reply Reply Quote 0
                                  • G
                                    Gerni last edited by

                                    Heute dann mal einfach gewartet; Skript läuft. Vielen Dank!

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

                                      Ich hoffe ich darf mich hier mal anhängen. Bin ein völliger Neuling und mit Skripten auf Kriegsfuß
                                      Ich hab ein Gardena Smart System.
                                      1x Water Control am Gartenwasseranschluss
                                      1x Smart Power Steckdose an einer Tauchpumpe in der Zisterne
                                      1x den Bodenfeuchtigkeitssensor
                                      An beiden "Pumpen" hängt ein 6xfach manueller Verteiler von Gardena (heisst ich lassen Kreislauf 1 20min laufen. Schließe das Ventil/bzw. Pumpe aus. Der Verteiler wechselt nach Druckabfall auf 2. Kreislauf und ich lass wieder laufen... wenn alles 20 läuft bin ich nach 2h mit dem Bewässern fertig (wahrscheinlich viel zuviel)

                                      Die nette Garden-App lässt eine Kopplung des Sensor nur mit dem Water Control am Wasserhahn zu.. ist der Boden feucht. Pumpt das Teil trotzdem Wasser.

                                      Meine Idee bzw Vorgehen wäre:
                                      Jeden Tag um 5:30 Uhr wird die Feuchtigkeit abgefragt.
                                      Ist der Wert kleiner als 40% so soll beregnet werden.
                                      Water Control an für 20min
                                      Pause 60 Sekunden
                                      Water Control an 20min
                                      usw.
                                      Parallel dazu soll die Steckdose der Pumpe an
                                      Steckdose an 20min
                                      Pause 60 Sekunden
                                      Steckdose an 20 min
                                      usw...
                                      bis alle Kreisläufe abgeleistet wurden
                                      Um 21 Uhr soll das Skript quasi nochmal laufen falls der Sommertag sehr heiß war.

                                      Ich habe die Objekte via Openhab in IOB übernommen, da ich keinen Gardena-Adapter gefunden hab.

                                      In den Skripten habe ich nun ein neuen Ordner erstellt "Gardena" und dort ein Blockly-Skript begonnen "Water Control"

                                      Trigger Zeitplan

                                      schedule('{"time":{"start":"06:00","end":"06:20","mode":"minutes","interval":1},"period":{"days":1}}', function () {
                                        on({id: 'openhab.0.items.gardena_sensor__humidity_humidity', change: "ne"}, function (obj) {
                                          var value = obj.state.val;
                                          var oldValue = obj.oldState.val;
                                          if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 40) {
                                          }
                                        });
                                      });
                                      
                                      true;
                                      

                                      Falls Der Wert von Feuchtigkeit kleiner als 40..
                                      mache... und dann?

                                      Ich bin grad am rätseln...

                                      Danke
                                      Gruß
                                      Dreamsleeper

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      780
                                      Online

                                      31.9k
                                      Users

                                      80.3k
                                      Topics

                                      1.3m
                                      Posts

                                      blockly
                                      4
                                      17
                                      1424
                                      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