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. Blockly
  5. [geloest] While Schleife mit mehreren Objekten?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    524

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

[geloest] While Schleife mit mehreren Objekten?

Geplant Angeheftet Gesperrt Verschoben Blockly
26 Beiträge 5 Kommentatoren 2.2k Aufrufe 5 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 MCU

    @oberfragger

    680f81be-cc1e-42b5-995c-2eb3248889d9-image.png

    oberfraggerO Offline
    oberfraggerO Offline
    oberfragger
    schrieb am zuletzt editiert von
    #4

    @MCU Danke. Das ist ja clever. EInfach ne Variable hoch/ runterzählen.
    Danke. Das werde ich so mal bauen!

    AsgothianA 1 Antwort Letzte Antwort
    0
    • oberfraggerO oberfragger

      @MCU Danke. Das ist ja clever. EInfach ne Variable hoch/ runterzählen.
      Danke. Das werde ich so mal bauen!

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von Asgothian
      #5

      @oberfragger
      Ich hab da mal ein wenig dran optimiert.

      Was mir an dem Skript von @MCU nicht gefallen hat:

      • bei jeder Änderung eines einzelnen Ventils werden alle Ventile in einer Schleife abgefragt. Das ist unnötig da wir ja wissen das sich genau 1 Ventil geaendert hat, alle anderen sind wie vorher.
      • Es wird immer die gesamte Liste abgearbeitet
      • der Selektor wird mehrfach benutzt - zum Hintergrund - wenn der Selektor benutzt wird muss einmal komplett über alle Objekte im Baum gelaufen werden. Einmal bei Skriptstart ist das problemlos. Jedes mal wenn ein Ventil sich ändert ist das was anderes.

      Heraus gekommen ist das hier. Dabei bin ich davon ausgegangen das das Objekt mit dem die Befuellung gestartet wird über eine "true" oder "false" aktiviert / deaktiviert werden kann. Wenn nicht müsste der Wert der Variable "Befuellung" entsprechend angepasst werden.

      Entscheidender Unterschied: Ich erzeuge 2 Listen - eine Liste mit den ganzen ID's, eine 2. in der die Werte der Objekte zwischengespeichert werden. Beim Trigger kann ich den Index des Objektes in der 1. Liste finden und als Index für die 2. Liste nehmen.

      In der Folge muss ich dann nur so lange durch die 2. Liste gehen bis ich den ersten finde der eine Befuellung anfordert. Welchen Wert die anderen haben ist dabei unwichtig.

      Auch auf den Timeout kann ich da verzichten. Das ganze sollte so fix gehen das es keine Probleme gibt. Ansonsten könnte die Ansteuerung mit einem "mit Verzögerung" und "löschen falls läuft" abgesichert werden.

      Screenshot 2020-11-05 at 11.57.28.png

      XML zum Importieren hinter im Spoiler.

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</variable>
         <variable id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</variable>
         <variable id="#wUTp7}-{=1Xw_V@C]m4">Index</variable>
         <variable id="*FQnOzM3h+|WCgkwH_.!">list</variable>
         <variable id="*V[)w;B{m];9sw7WHrd)">Befuellung</variable>
         <variable id="0^;L~0ktR8?,?y;:^PS[">i</variable>
       </variables>
       <block type="variables_set" id="M3[*C!*iU=a~.;w[O#hN" x="63" y="63">
         <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
         <value name="VALUE">
           <block type="selector" id="t.l2|UUi=U+YvUD=mzNd">
             <field name="TEXT">channel[state.id=adapter.0.*.activity_value]</field>
           </block>
         </value>
         <next>
           <block type="variables_set" id="t@@Fr!y:R39#=k$V;S|u">
             <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
             <value name="VALUE">
               <block type="lists_repeat" id="]}p;75%pufdCj{Q0{_{O">
                 <value name="ITEM">
                   <block type="text" id="|r]8B?VefB6[z^uRVBO}">
                     <field name="TEXT"></field>
                   </block>
                 </value>
                 <value name="NUM">
                   <shadow type="math_number" id="aqE_ofyyvWlSVmFYAMWN">
                     <field name="NUM">5</field>
                   </shadow>
                   <block type="lists_length" id="Uf33^~X9.Di!~EUG1%F}">
                     <value name="VALUE">
                       <block type="variables_get" id="piTaSg@/:jvk;b|DXbP{">
                         <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </value>
             <next>
               <block type="on_ext" id="$Ag5y!5Z3-hN-EIK^ofg">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                 <field name="CONDITION">ne</field>
                 <field name="ACK_CONDITION"></field>
                 <value name="OID0">
                   <shadow type="field_oid" id="#ZXf^+~J~%RUH4`-=[ZT">
                     <field name="oid">default</field>
                   </shadow>
                   <block type="variables_get" id="M;$PLj#-fEc@gj;LEa`#">
                     <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                   </block>
                 </value>
                 <statement name="STATEMENT">
                   <block type="variables_set" id="QJi#$ZGmhhYQ2P3es#or">
                     <field name="VAR" id="#wUTp7}-{=1Xw_V@C]m4">Index</field>
                     <value name="VALUE">
                       <block type="lists_indexOf" id="z-(E:6:)x^-2RBXordZV">
                         <field name="END">FIRST</field>
                         <value name="VALUE">
                           <block type="variables_get" id="s1Gt$]zE;)/Ec,86^6(a">
                             <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                           </block>
                         </value>
                         <value name="FIND">
                           <block type="on_source" id="zgZ?*H;8)F@zf;Qa;Nx3">
                             <field name="ATTR">id</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="lists_setIndex" id="kj^I,[zrpkK#xPdxT)yG">
                         <mutation at="true"></mutation>
                         <field name="MODE">SET</field>
                         <field name="WHERE">FROM_START</field>
                         <value name="LIST">
                           <block type="variables_get" id="1JZ;K3nEJuM-@tc1aEB!">
                             <field name="VAR" id="*FQnOzM3h+|WCgkwH_.!">list</field>
                           </block>
                         </value>
                         <value name="AT">
                           <block type="variables_get" id="dX6,AR8]{BDx72O?YZhY">
                             <field name="VAR" id="#wUTp7}-{=1Xw_V@C]m4">Index</field>
                           </block>
                         </value>
                         <value name="TO">
                           <block type="on_source" id="@?/9ne-@#7SneCuU)(XJ">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="xa$QgI0F6Te)PLJ(?+TH">
                             <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="R6Han-}y{VgpWbT=ca{K">
                                 <field name="BOOL">FALSE</field>
                               </block>
                             </value>
                             <next>
                               <block type="controls_forEach" id="57DsFQZJF?,Ju:U(Kf)A">
                                 <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                                 <value name="LIST">
                                   <block type="variables_get" id="jkkb!OO;cJ{lQc^xe]ZX">
                                     <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                                   </block>
                                 </value>
                                 <statement name="DO">
                                   <block type="controls_if" id="?^G^JW04%|gv9j9QEf7M">
                                     <value name="IF0">
                                       <block type="logic_compare" id="tND-WWI%1L![ewlnkN.Y">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="variables_get" id="yE(la$l5ZVt~gjdD5;6]">
                                             <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="text" id="NOVzs49O-y0p|#+=^m^o">
                                             <field name="TEXT">Manual_Watering</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="comment" id="=QXS;Mdo$vQc4cfSwZ5y">
                                         <field name="COMMENT">Fuellstandswerte abfragen</field>
                                         <next>
                                           <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                                             <value name="IF0">
                                               <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                                 <field name="OP">EQ</field>
                                               </block>
                                             </value>
                                             <statement name="DO0">
                                               <block type="variables_set" id="F2Q([r,tfeIg7rT/lRP_">
                                                 <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                                 <value name="VALUE">
                                                   <block type="logic_boolean" id="]P4%whKAw(6MbpQ/Gy0E">
                                                     <field name="BOOL">TRUE</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                                     <field name="FLOW">BREAK</field>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                   </block>
                                 </statement>
                                 <next>
                                   <block type="control" id="eZn@Aud!J$.mo6-j.;AK">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">Object ID</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="variables_get" id="PQe*hE?QP3G8)r_]zxl%">
                                         <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      oberfraggerO paul53P 2 Antworten Letzte Antwort
      2
      • AsgothianA Asgothian

        @oberfragger
        Ich hab da mal ein wenig dran optimiert.

        Was mir an dem Skript von @MCU nicht gefallen hat:

        • bei jeder Änderung eines einzelnen Ventils werden alle Ventile in einer Schleife abgefragt. Das ist unnötig da wir ja wissen das sich genau 1 Ventil geaendert hat, alle anderen sind wie vorher.
        • Es wird immer die gesamte Liste abgearbeitet
        • der Selektor wird mehrfach benutzt - zum Hintergrund - wenn der Selektor benutzt wird muss einmal komplett über alle Objekte im Baum gelaufen werden. Einmal bei Skriptstart ist das problemlos. Jedes mal wenn ein Ventil sich ändert ist das was anderes.

        Heraus gekommen ist das hier. Dabei bin ich davon ausgegangen das das Objekt mit dem die Befuellung gestartet wird über eine "true" oder "false" aktiviert / deaktiviert werden kann. Wenn nicht müsste der Wert der Variable "Befuellung" entsprechend angepasst werden.

        Entscheidender Unterschied: Ich erzeuge 2 Listen - eine Liste mit den ganzen ID's, eine 2. in der die Werte der Objekte zwischengespeichert werden. Beim Trigger kann ich den Index des Objektes in der 1. Liste finden und als Index für die 2. Liste nehmen.

        In der Folge muss ich dann nur so lange durch die 2. Liste gehen bis ich den ersten finde der eine Befuellung anfordert. Welchen Wert die anderen haben ist dabei unwichtig.

        Auch auf den Timeout kann ich da verzichten. Das ganze sollte so fix gehen das es keine Probleme gibt. Ansonsten könnte die Ansteuerung mit einem "mit Verzögerung" und "löschen falls läuft" abgesichert werden.

        Screenshot 2020-11-05 at 11.57.28.png

        XML zum Importieren hinter im Spoiler.

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</variable>
           <variable id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</variable>
           <variable id="#wUTp7}-{=1Xw_V@C]m4">Index</variable>
           <variable id="*FQnOzM3h+|WCgkwH_.!">list</variable>
           <variable id="*V[)w;B{m];9sw7WHrd)">Befuellung</variable>
           <variable id="0^;L~0ktR8?,?y;:^PS[">i</variable>
         </variables>
         <block type="variables_set" id="M3[*C!*iU=a~.;w[O#hN" x="63" y="63">
           <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
           <value name="VALUE">
             <block type="selector" id="t.l2|UUi=U+YvUD=mzNd">
               <field name="TEXT">channel[state.id=adapter.0.*.activity_value]</field>
             </block>
           </value>
           <next>
             <block type="variables_set" id="t@@Fr!y:R39#=k$V;S|u">
               <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
               <value name="VALUE">
                 <block type="lists_repeat" id="]}p;75%pufdCj{Q0{_{O">
                   <value name="ITEM">
                     <block type="text" id="|r]8B?VefB6[z^uRVBO}">
                       <field name="TEXT"></field>
                     </block>
                   </value>
                   <value name="NUM">
                     <shadow type="math_number" id="aqE_ofyyvWlSVmFYAMWN">
                       <field name="NUM">5</field>
                     </shadow>
                     <block type="lists_length" id="Uf33^~X9.Di!~EUG1%F}">
                       <value name="VALUE">
                         <block type="variables_get" id="piTaSg@/:jvk;b|DXbP{">
                           <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="on_ext" id="$Ag5y!5Z3-hN-EIK^ofg">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="#ZXf^+~J~%RUH4`-=[ZT">
                       <field name="oid">default</field>
                     </shadow>
                     <block type="variables_get" id="M;$PLj#-fEc@gj;LEa`#">
                       <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                     </block>
                   </value>
                   <statement name="STATEMENT">
                     <block type="variables_set" id="QJi#$ZGmhhYQ2P3es#or">
                       <field name="VAR" id="#wUTp7}-{=1Xw_V@C]m4">Index</field>
                       <value name="VALUE">
                         <block type="lists_indexOf" id="z-(E:6:)x^-2RBXordZV">
                           <field name="END">FIRST</field>
                           <value name="VALUE">
                             <block type="variables_get" id="s1Gt$]zE;)/Ec,86^6(a">
                               <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                             </block>
                           </value>
                           <value name="FIND">
                             <block type="on_source" id="zgZ?*H;8)F@zf;Qa;Nx3">
                               <field name="ATTR">id</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="lists_setIndex" id="kj^I,[zrpkK#xPdxT)yG">
                           <mutation at="true"></mutation>
                           <field name="MODE">SET</field>
                           <field name="WHERE">FROM_START</field>
                           <value name="LIST">
                             <block type="variables_get" id="1JZ;K3nEJuM-@tc1aEB!">
                               <field name="VAR" id="*FQnOzM3h+|WCgkwH_.!">list</field>
                             </block>
                           </value>
                           <value name="AT">
                             <block type="variables_get" id="dX6,AR8]{BDx72O?YZhY">
                               <field name="VAR" id="#wUTp7}-{=1Xw_V@C]m4">Index</field>
                             </block>
                           </value>
                           <value name="TO">
                             <block type="on_source" id="@?/9ne-@#7SneCuU)(XJ">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                           <next>
                             <block type="variables_set" id="xa$QgI0F6Te)PLJ(?+TH">
                               <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                               <value name="VALUE">
                                 <block type="logic_boolean" id="R6Han-}y{VgpWbT=ca{K">
                                   <field name="BOOL">FALSE</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="controls_forEach" id="57DsFQZJF?,Ju:U(Kf)A">
                                   <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                                   <value name="LIST">
                                     <block type="variables_get" id="jkkb!OO;cJ{lQc^xe]ZX">
                                       <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                                     </block>
                                   </value>
                                   <statement name="DO">
                                     <block type="controls_if" id="?^G^JW04%|gv9j9QEf7M">
                                       <value name="IF0">
                                         <block type="logic_compare" id="tND-WWI%1L![ewlnkN.Y">
                                           <field name="OP">EQ</field>
                                           <value name="A">
                                             <block type="variables_get" id="yE(la$l5ZVt~gjdD5;6]">
                                               <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="text" id="NOVzs49O-y0p|#+=^m^o">
                                               <field name="TEXT">Manual_Watering</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="comment" id="=QXS;Mdo$vQc4cfSwZ5y">
                                           <field name="COMMENT">Fuellstandswerte abfragen</field>
                                           <next>
                                             <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                                               <value name="IF0">
                                                 <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                                   <field name="OP">EQ</field>
                                                 </block>
                                               </value>
                                               <statement name="DO0">
                                                 <block type="variables_set" id="F2Q([r,tfeIg7rT/lRP_">
                                                   <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                                   <value name="VALUE">
                                                     <block type="logic_boolean" id="]P4%whKAw(6MbpQ/Gy0E">
                                                       <field name="BOOL">TRUE</field>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                                       <field name="FLOW">BREAK</field>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </statement>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                     </block>
                                   </statement>
                                   <next>
                                     <block type="control" id="eZn@Aud!J$.mo6-j.;AK">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">Object ID</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="variables_get" id="PQe*hE?QP3G8)r_]zxl%">
                                           <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        oberfraggerO Offline
        oberfraggerO Offline
        oberfragger
        schrieb am zuletzt editiert von oberfragger
        #6

        @Asgothian WOW! Das ist mal schlank!

        Vielen Dank auf jeden Fall. Ich hoffe dass ich dieses Wochenende dazu komme, das einzubauen und melde mich dann.

        Und jetzt mit ner Minute mehr habe ich den Selektor verstanden...
        ...ziemlich cool. Iteriert einfach über alle Adapter/ objekte "activity_value". Das bedeutet- ziemlich ehal ob 1, 2, oder 300 Ventile :)

        paul53P 1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @oberfragger
          Ich hab da mal ein wenig dran optimiert.

          Was mir an dem Skript von @MCU nicht gefallen hat:

          • bei jeder Änderung eines einzelnen Ventils werden alle Ventile in einer Schleife abgefragt. Das ist unnötig da wir ja wissen das sich genau 1 Ventil geaendert hat, alle anderen sind wie vorher.
          • Es wird immer die gesamte Liste abgearbeitet
          • der Selektor wird mehrfach benutzt - zum Hintergrund - wenn der Selektor benutzt wird muss einmal komplett über alle Objekte im Baum gelaufen werden. Einmal bei Skriptstart ist das problemlos. Jedes mal wenn ein Ventil sich ändert ist das was anderes.

          Heraus gekommen ist das hier. Dabei bin ich davon ausgegangen das das Objekt mit dem die Befuellung gestartet wird über eine "true" oder "false" aktiviert / deaktiviert werden kann. Wenn nicht müsste der Wert der Variable "Befuellung" entsprechend angepasst werden.

          Entscheidender Unterschied: Ich erzeuge 2 Listen - eine Liste mit den ganzen ID's, eine 2. in der die Werte der Objekte zwischengespeichert werden. Beim Trigger kann ich den Index des Objektes in der 1. Liste finden und als Index für die 2. Liste nehmen.

          In der Folge muss ich dann nur so lange durch die 2. Liste gehen bis ich den ersten finde der eine Befuellung anfordert. Welchen Wert die anderen haben ist dabei unwichtig.

          Auch auf den Timeout kann ich da verzichten. Das ganze sollte so fix gehen das es keine Probleme gibt. Ansonsten könnte die Ansteuerung mit einem "mit Verzögerung" und "löschen falls läuft" abgesichert werden.

          Screenshot 2020-11-05 at 11.57.28.png

          XML zum Importieren hinter im Spoiler.

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</variable>
             <variable id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</variable>
             <variable id="#wUTp7}-{=1Xw_V@C]m4">Index</variable>
             <variable id="*FQnOzM3h+|WCgkwH_.!">list</variable>
             <variable id="*V[)w;B{m];9sw7WHrd)">Befuellung</variable>
             <variable id="0^;L~0ktR8?,?y;:^PS[">i</variable>
           </variables>
           <block type="variables_set" id="M3[*C!*iU=a~.;w[O#hN" x="63" y="63">
             <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
             <value name="VALUE">
               <block type="selector" id="t.l2|UUi=U+YvUD=mzNd">
                 <field name="TEXT">channel[state.id=adapter.0.*.activity_value]</field>
               </block>
             </value>
             <next>
               <block type="variables_set" id="t@@Fr!y:R39#=k$V;S|u">
                 <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                 <value name="VALUE">
                   <block type="lists_repeat" id="]}p;75%pufdCj{Q0{_{O">
                     <value name="ITEM">
                       <block type="text" id="|r]8B?VefB6[z^uRVBO}">
                         <field name="TEXT"></field>
                       </block>
                     </value>
                     <value name="NUM">
                       <shadow type="math_number" id="aqE_ofyyvWlSVmFYAMWN">
                         <field name="NUM">5</field>
                       </shadow>
                       <block type="lists_length" id="Uf33^~X9.Di!~EUG1%F}">
                         <value name="VALUE">
                           <block type="variables_get" id="piTaSg@/:jvk;b|DXbP{">
                             <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
                 <next>
                   <block type="on_ext" id="$Ag5y!5Z3-hN-EIK^ofg">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                     <field name="CONDITION">ne</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="#ZXf^+~J~%RUH4`-=[ZT">
                         <field name="oid">default</field>
                       </shadow>
                       <block type="variables_get" id="M;$PLj#-fEc@gj;LEa`#">
                         <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                       </block>
                     </value>
                     <statement name="STATEMENT">
                       <block type="variables_set" id="QJi#$ZGmhhYQ2P3es#or">
                         <field name="VAR" id="#wUTp7}-{=1Xw_V@C]m4">Index</field>
                         <value name="VALUE">
                           <block type="lists_indexOf" id="z-(E:6:)x^-2RBXordZV">
                             <field name="END">FIRST</field>
                             <value name="VALUE">
                               <block type="variables_get" id="s1Gt$]zE;)/Ec,86^6(a">
                                 <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                               </block>
                             </value>
                             <value name="FIND">
                               <block type="on_source" id="zgZ?*H;8)F@zf;Qa;Nx3">
                                 <field name="ATTR">id</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="lists_setIndex" id="kj^I,[zrpkK#xPdxT)yG">
                             <mutation at="true"></mutation>
                             <field name="MODE">SET</field>
                             <field name="WHERE">FROM_START</field>
                             <value name="LIST">
                               <block type="variables_get" id="1JZ;K3nEJuM-@tc1aEB!">
                                 <field name="VAR" id="*FQnOzM3h+|WCgkwH_.!">list</field>
                               </block>
                             </value>
                             <value name="AT">
                               <block type="variables_get" id="dX6,AR8]{BDx72O?YZhY">
                                 <field name="VAR" id="#wUTp7}-{=1Xw_V@C]m4">Index</field>
                               </block>
                             </value>
                             <value name="TO">
                               <block type="on_source" id="@?/9ne-@#7SneCuU)(XJ">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="xa$QgI0F6Te)PLJ(?+TH">
                                 <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="R6Han-}y{VgpWbT=ca{K">
                                     <field name="BOOL">FALSE</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="controls_forEach" id="57DsFQZJF?,Ju:U(Kf)A">
                                     <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                                     <value name="LIST">
                                       <block type="variables_get" id="jkkb!OO;cJ{lQc^xe]ZX">
                                         <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                                       </block>
                                     </value>
                                     <statement name="DO">
                                       <block type="controls_if" id="?^G^JW04%|gv9j9QEf7M">
                                         <value name="IF0">
                                           <block type="logic_compare" id="tND-WWI%1L![ewlnkN.Y">
                                             <field name="OP">EQ</field>
                                             <value name="A">
                                               <block type="variables_get" id="yE(la$l5ZVt~gjdD5;6]">
                                                 <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="text" id="NOVzs49O-y0p|#+=^m^o">
                                                 <field name="TEXT">Manual_Watering</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <statement name="DO0">
                                           <block type="comment" id="=QXS;Mdo$vQc4cfSwZ5y">
                                             <field name="COMMENT">Fuellstandswerte abfragen</field>
                                             <next>
                                               <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                                                 <value name="IF0">
                                                   <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                                     <field name="OP">EQ</field>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="variables_set" id="F2Q([r,tfeIg7rT/lRP_">
                                                     <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                                     <value name="VALUE">
                                                       <block type="logic_boolean" id="]P4%whKAw(6MbpQ/Gy0E">
                                                         <field name="BOOL">TRUE</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                                         <field name="FLOW">BREAK</field>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="control" id="eZn@Aud!J$.mo6-j.;AK">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">Object ID</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="variables_get" id="PQe*hE?QP3G8)r_]zxl%">
                                             <field name="VAR" id="*V[)w;B{m];9sw7WHrd)">Befuellung</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                 </next>
               </block>
             </next>
           </block>
          </xml>
          

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #7

          @Asgothian sagte:

          eine 2. in der die Werte der Objekte zwischengespeichert werden.

          Die ValueList sollte bei Skriptstart in einer for-Schleife mit den tatsächlichen Werten gefüllt werden.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • oberfraggerO oberfragger

            @Asgothian WOW! Das ist mal schlank!

            Vielen Dank auf jeden Fall. Ich hoffe dass ich dieses Wochenende dazu komme, das einzubauen und melde mich dann.

            Und jetzt mit ner Minute mehr habe ich den Selektor verstanden...
            ...ziemlich cool. Iteriert einfach über alle Adapter/ objekte "activity_value". Das bedeutet- ziemlich ehal ob 1, 2, oder 300 Ventile :)

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #8

            @oberfragger sagte:

            Iteriert einfach über alle Adapter/ objekte "activity_value".

            Nein, "adapter.0" ist ein Platzhalter für den uns unbekannten, tatsächlichen Adapternamen.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            oberfraggerO 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @oberfragger sagte:

              Iteriert einfach über alle Adapter/ objekte "activity_value".

              Nein, "adapter.0" ist ein Platzhalter für den uns unbekannten, tatsächlichen Adapternamen.

              oberfraggerO Offline
              oberfraggerO Offline
              oberfragger
              schrieb am zuletzt editiert von oberfragger
              #9

              @paul53
              @Asgothian
              Sorry für die späte Rückmeldung. Habe das Theam leider aufgrund von privaten Herausforderungen pausieren müssen.

              Ich habe das Script von @Asgothian importiert und angepasst. Läuft natürlich nicht bzw. wirft Fehler bei Start und Ende der Bewässerung.

              <block xmlns="https://developers.google.com/blockly/xml" type="controls_forEach" id="57DsFQZJF?,Ju:U(Kf)A" x="84" y="323">
               <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
               <value name="LIST">
                 <block type="variables_get" id="jkkb!OO;cJ{lQc^xe]ZX">
                   <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                 </block>
               </value>
               <statement name="DO">
                 <block type="controls_if" id="?^G^JW04%|gv9j9QEf7M">
                   <value name="IF0">
                     <block type="logic_compare" id="tND-WWI%1L![ewlnkN.Y">
                       <field name="OP">EQ</field>
                       <value name="A">
                         <block type="variables_get" id="yE(la$l5ZVt~gjdD5;6]">
                           <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="text" id="NOVzs49O-y0p|#+=^m^o">
                           <field name="TEXT">MANUAL_WATERING</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="comment" id="=QXS;Mdo$vQc4cfSwZ5y">
                       <field name="COMMENT">Fuellstandswerte abfragen</field>
                       <next>
                         <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                           <value name="IF0">
                             <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                               <field name="OP">GT</field>
                               <value name="A">
                                 <block type="get_value" id="jCD(:CCb,WKeL~OZLqn#">
                                   <field name="ATTR">val</field>
                                   <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                 </block>
                               </value>
                               <value name="B">
                                 <block type="math_number" id=":J?8[_WhiTRi4FfW#oha">
                                   <field name="NUM">105</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <statement name="DO0">
                             <block type="control" id="5Qb.wHu|lc;MewZq/nHs">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="text" id="tYK|/!cUyD/`2.04p@]N">
                                   <field name="TEXT">MANUAL_WATERING</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                   <field name="FLOW">BREAK</field>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </statement>
              </block>
              

              Das bedeutet aus meiner Sicht das der Start&Stop funktioniert.

              Zur zusätzlichen Erklärung (und leider wird das Problem nicht kleiner).
              Ich habe 6 zu steuernde Gardena/ smartgarden.0 Ventile. Diese kann ich natürlich genau benennen.
              Das 7. Ventil soll die Zisterne dann füllen, wenn eins der 6 Ventile geöffnet wird und der Füllstand der Zisterne >105 ist.
              Es soll erst schließen, wenn alle 6 Ventile wieder auf "CLOSED" stehen.

              Der Fehler den ich bekomme:

              javascript.0
              2021-06-11 22:33:40.480	error	at processImmediate (internal/timers.js:461:21)
              
              javascript.0
              2021-06-11 22:33:40.480	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5555:41)
              
              javascript.0
              2021-06-11 22:33:40.479	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29)
              
              javascript.0
              2021-06-11 22:33:40.479	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38)
              
              javascript.0
              2021-06-11 22:33:40.479	error	at Object.<anonymous> (script.js.common.Gardena_Zisterne_fuellen:18:21)
              
              javascript.0
              2021-06-11 22:33:40.479	error	script.js.common.Gardena_Zisterne_fuellen: TypeError: Cannot set property '3' of undefined
              

              Sorry, so richtig weiss ich nicht wie ich richtig mit dem bugfixen starten kann. In Zeile 18 steht "<value name="B">"... bzw. in JavaScript ist es die Zeile:

                list[(Index - 1)] = (obj.state ? obj.state.val : "");
              

              Wenn ich auf den "Käfer" klicke, bleibt er hier hängen- Zeile 21:

                for (var i_index in ValueList) {
              
              paul53P AsgothianA 2 Antworten Letzte Antwort
              0
              • oberfraggerO oberfragger

                @paul53
                @Asgothian
                Sorry für die späte Rückmeldung. Habe das Theam leider aufgrund von privaten Herausforderungen pausieren müssen.

                Ich habe das Script von @Asgothian importiert und angepasst. Läuft natürlich nicht bzw. wirft Fehler bei Start und Ende der Bewässerung.

                <block xmlns="https://developers.google.com/blockly/xml" type="controls_forEach" id="57DsFQZJF?,Ju:U(Kf)A" x="84" y="323">
                 <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                 <value name="LIST">
                   <block type="variables_get" id="jkkb!OO;cJ{lQc^xe]ZX">
                     <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                   </block>
                 </value>
                 <statement name="DO">
                   <block type="controls_if" id="?^G^JW04%|gv9j9QEf7M">
                     <value name="IF0">
                       <block type="logic_compare" id="tND-WWI%1L![ewlnkN.Y">
                         <field name="OP">EQ</field>
                         <value name="A">
                           <block type="variables_get" id="yE(la$l5ZVt~gjdD5;6]">
                             <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="text" id="NOVzs49O-y0p|#+=^m^o">
                             <field name="TEXT">MANUAL_WATERING</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <statement name="DO0">
                       <block type="comment" id="=QXS;Mdo$vQc4cfSwZ5y">
                         <field name="COMMENT">Fuellstandswerte abfragen</field>
                         <next>
                           <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                             <value name="IF0">
                               <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                 <field name="OP">GT</field>
                                 <value name="A">
                                   <block type="get_value" id="jCD(:CCb,WKeL~OZLqn#">
                                     <field name="ATTR">val</field>
                                     <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id=":J?8[_WhiTRi4FfW#oha">
                                     <field name="NUM">105</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="control" id="5Qb.wHu|lc;MewZq/nHs">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="text" id="tYK|/!cUyD/`2.04p@]N">
                                     <field name="TEXT">MANUAL_WATERING</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                     <field name="FLOW">BREAK</field>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                 </statement>
                </block>
                

                Das bedeutet aus meiner Sicht das der Start&Stop funktioniert.

                Zur zusätzlichen Erklärung (und leider wird das Problem nicht kleiner).
                Ich habe 6 zu steuernde Gardena/ smartgarden.0 Ventile. Diese kann ich natürlich genau benennen.
                Das 7. Ventil soll die Zisterne dann füllen, wenn eins der 6 Ventile geöffnet wird und der Füllstand der Zisterne >105 ist.
                Es soll erst schließen, wenn alle 6 Ventile wieder auf "CLOSED" stehen.

                Der Fehler den ich bekomme:

                javascript.0
                2021-06-11 22:33:40.480	error	at processImmediate (internal/timers.js:461:21)
                
                javascript.0
                2021-06-11 22:33:40.480	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5555:41)
                
                javascript.0
                2021-06-11 22:33:40.479	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29)
                
                javascript.0
                2021-06-11 22:33:40.479	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38)
                
                javascript.0
                2021-06-11 22:33:40.479	error	at Object.<anonymous> (script.js.common.Gardena_Zisterne_fuellen:18:21)
                
                javascript.0
                2021-06-11 22:33:40.479	error	script.js.common.Gardena_Zisterne_fuellen: TypeError: Cannot set property '3' of undefined
                

                Sorry, so richtig weiss ich nicht wie ich richtig mit dem bugfixen starten kann. In Zeile 18 steht "<value name="B">"... bzw. in JavaScript ist es die Zeile:

                  list[(Index - 1)] = (obj.state ? obj.state.val : "");
                

                Wenn ich auf den "Käfer" klicke, bleibt er hier hängen- Zeile 21:

                  for (var i_index in ValueList) {
                
                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #10

                @oberfragger
                Die Variable ValueList enthält den Wert undefined. Wie sieht die ID-Struktur der 6 Ventile aus?

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                dslraserD 1 Antwort Letzte Antwort
                0
                • oberfraggerO oberfragger

                  @paul53
                  @Asgothian
                  Sorry für die späte Rückmeldung. Habe das Theam leider aufgrund von privaten Herausforderungen pausieren müssen.

                  Ich habe das Script von @Asgothian importiert und angepasst. Läuft natürlich nicht bzw. wirft Fehler bei Start und Ende der Bewässerung.

                  <block xmlns="https://developers.google.com/blockly/xml" type="controls_forEach" id="57DsFQZJF?,Ju:U(Kf)A" x="84" y="323">
                   <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                   <value name="LIST">
                     <block type="variables_get" id="jkkb!OO;cJ{lQc^xe]ZX">
                       <field name="VAR" id=")B(w]d^:Nv*x]L*Ocw?h">ValueList</field>
                     </block>
                   </value>
                   <statement name="DO">
                     <block type="controls_if" id="?^G^JW04%|gv9j9QEf7M">
                       <value name="IF0">
                         <block type="logic_compare" id="tND-WWI%1L![ewlnkN.Y">
                           <field name="OP">EQ</field>
                           <value name="A">
                             <block type="variables_get" id="yE(la$l5ZVt~gjdD5;6]">
                               <field name="VAR" id="0^;L~0ktR8?,?y;:^PS[">i</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="text" id="NOVzs49O-y0p|#+=^m^o">
                               <field name="TEXT">MANUAL_WATERING</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO0">
                         <block type="comment" id="=QXS;Mdo$vQc4cfSwZ5y">
                           <field name="COMMENT">Fuellstandswerte abfragen</field>
                           <next>
                             <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                               <value name="IF0">
                                 <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                   <field name="OP">GT</field>
                                   <value name="A">
                                     <block type="get_value" id="jCD(:CCb,WKeL~OZLqn#">
                                       <field name="ATTR">val</field>
                                       <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <block type="math_number" id=":J?8[_WhiTRi4FfW#oha">
                                       <field name="NUM">105</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="control" id="5Qb.wHu|lc;MewZq/nHs">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="text" id="tYK|/!cUyD/`2.04p@]N">
                                       <field name="TEXT">MANUAL_WATERING</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                       <field name="FLOW">BREAK</field>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </statement>
                  </block>
                  

                  Das bedeutet aus meiner Sicht das der Start&Stop funktioniert.

                  Zur zusätzlichen Erklärung (und leider wird das Problem nicht kleiner).
                  Ich habe 6 zu steuernde Gardena/ smartgarden.0 Ventile. Diese kann ich natürlich genau benennen.
                  Das 7. Ventil soll die Zisterne dann füllen, wenn eins der 6 Ventile geöffnet wird und der Füllstand der Zisterne >105 ist.
                  Es soll erst schließen, wenn alle 6 Ventile wieder auf "CLOSED" stehen.

                  Der Fehler den ich bekomme:

                  javascript.0
                  2021-06-11 22:33:40.480	error	at processImmediate (internal/timers.js:461:21)
                  
                  javascript.0
                  2021-06-11 22:33:40.480	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5555:41)
                  
                  javascript.0
                  2021-06-11 22:33:40.479	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29)
                  
                  javascript.0
                  2021-06-11 22:33:40.479	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38)
                  
                  javascript.0
                  2021-06-11 22:33:40.479	error	at Object.<anonymous> (script.js.common.Gardena_Zisterne_fuellen:18:21)
                  
                  javascript.0
                  2021-06-11 22:33:40.479	error	script.js.common.Gardena_Zisterne_fuellen: TypeError: Cannot set property '3' of undefined
                  

                  Sorry, so richtig weiss ich nicht wie ich richtig mit dem bugfixen starten kann. In Zeile 18 steht "<value name="B">"... bzw. in JavaScript ist es die Zeile:

                    list[(Index - 1)] = (obj.state ? obj.state.val : "");
                  

                  Wenn ich auf den "Käfer" klicke, bleibt er hier hängen- Zeile 21:

                    for (var i_index in ValueList) {
                  
                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  schrieb am zuletzt editiert von
                  #11

                  @oberfragger sagte in While Schleife mit mehreren Objekten?:

                  Ich habe das Script von @Asgothian importiert und angepasst. Läuft natürlich nicht bzw. wirft Fehler bei Start und Ende der Bewässerung.

                  • Warum "Natürlich" ?
                  • Wie sieht das gesamte Skript aus ?

                  Die Fehlermeldung deutet darauf hin das du die Variablen nicht sauber (garnicht) initialisierst.

                  A.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  dslraserD oberfraggerO 2 Antworten Letzte Antwort
                  0
                  • AsgothianA Asgothian

                    @oberfragger sagte in While Schleife mit mehreren Objekten?:

                    Ich habe das Script von @Asgothian importiert und angepasst. Läuft natürlich nicht bzw. wirft Fehler bei Start und Ende der Bewässerung.

                    • Warum "Natürlich" ?
                    • Wie sieht das gesamte Skript aus ?

                    Die Fehlermeldung deutet darauf hin das du die Variablen nicht sauber (garnicht) initialisierst.

                    A.

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #12

                    @asgothian
                    ich bekomme den gleichen Fehler.
                    Ich habe debug Bausteine ausserhalb des Triggers gesetzt. Da werden die Ventile gefunden.

                    Bildschirmfoto 2021-06-12 um 11.20.04.png

                    11:17:35.380	info	javascript.0 (1404) Start javascript script.js.09_Gardena.Test_2021
                    11:17:35.420	info	javascript.0 (1404) script.js.09_Gardena.Test_2021: ['smartgarden.0.LOCATION_xxx-2Ddc5a-xxx-2D9adc-2Dc3ae3cf5f5b4.DEVICE_79c54164-xxx-2D48ce-2Db9f1-2D9bb3bc59d84e.SERVICE_VALVE_79c54164-xxx-2D48ce-2Db9f1-2D9bb3bc59d84e-3A1.activity_value','smartgarden.0.LOCATION_2c47d688-xxx-2D45e8-2D9adc-xxx.DEVICE_79c54164-2D4963-xxxx-2Db9f1-2D9bb3bc59d84e.SERVICE_VALVE_79c54164-2D4963-xxx-2Db9f1-2D9bb3bc59d84e-3A2.activity_value','smartgarden.0.LOCATION_2c47d688-2Ddc5a-xxx-2D9adc-2Dc3ae3cf5f5b4.DEVICE_79c54164-2D4963-xxxx-2Db9f1-2D9bb3bc59d84e.SERVICE_VALVE_79c54164-xxx-2D48ce-xxxx-2D9bb3bc59d84e-3A3.activity_value','smartgarden.0.LOCATION_2c47d688-2Ddc5a-xxx-2D9adc-2Dc3ae3cf5f5b4.DEVICE_79c54164-2D4963-2D48ce-2Db9f1-2D9bb3bc59d84e.SERVICE_VALVE_79c54164-2D4963-2D48ce-xxx-2D9bb3bc59d84e-3A4.activity_value','smartgarden.0.LOCATION_2c47d688-xxx-xxxx-2D9adc-2Dc3ae3cf5f5b4.DEVICE_79c54164-xxx-2D48ce-2Db9f1-2D9bb3bc59d84e.SERVICE_VALVE_79c54164-2D4963-2D48ce-xxxx-2D9bb3bc59d84e-3A5.activity_value','smartgarden.0.LOCATION_2c47d688-2Ddc5a-xxx-2D9adc-2Dc3ae3cf5f5b4.DEVICE_79c54164-2D4963-2D48ce-2Db9f1-2D9bb3bc59d84e.SERVICE_VALVE_79c54164-xxx-xxxx-xxx-2D9bb3bc59d84e-3A6.activity_value']
                    11:17:35.420	info	javascript.0 (1404) script.js.09_Gardena.Test_2021: ['','','','','','']
                    11:17:35.420	info	javascript.0 (1404) script.js.09_Gardena.Test_2021: registered 6 subscriptions and 0 schedules
                    

                    einmal ein Ventil eingeschaltet und dann wieder ausgeschaltet.

                    11:17:46.409	error	javascript.0 (1404) script.js.09_Gardena.Test_2021: TypeError: Cannot set property '2' of undefined
                    11:17:46.409	error	javascript.0 (1404) at Object.<anonymous> (script.js.09_Gardena.Test_2021:20:21)
                    11:17:50.617	error	javascript.0 (1404) script.js.09_Gardena.Test_2021: TypeError: Cannot set property '2' of undefined
                    11:17:50.617	error	javascript.0 (1404) at Object.<anonymous> (script.js.09_Gardena.Test_2021:20:21)
                    

                    Bildschirmfoto 2021-06-12 um 11.25.28.png

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @oberfragger
                      Die Variable ValueList enthält den Wert undefined. Wie sieht die ID-Struktur der 6 Ventile aus?

                      dslraserD Offline
                      dslraserD Offline
                      dslraser
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von dslraser
                      #13

                      @paul53 sagte in While Schleife mit mehreren Objekten?:

                      @oberfragger
                      Die Variable ValueList enthält den Wert undefined. Wie sieht die ID-Struktur der 6 Ventile aus?

                      Bildschirmfoto 2021-06-12 um 11.27.07.png

                      Bildschirmfoto 2021-06-12 um 11.28.05.png

                      EDIT: Das muss schon mal groß geschrieben sein MANUAL_WATERING

                      Fehler bleibt aber.

                      Bildschirmfoto 2021-06-12 um 11.35.09.png

                      AsgothianA paul53P 2 Antworten Letzte Antwort
                      0
                      • dslraserD dslraser

                        @paul53 sagte in While Schleife mit mehreren Objekten?:

                        @oberfragger
                        Die Variable ValueList enthält den Wert undefined. Wie sieht die ID-Struktur der 6 Ventile aus?

                        Bildschirmfoto 2021-06-12 um 11.27.07.png

                        Bildschirmfoto 2021-06-12 um 11.28.05.png

                        EDIT: Das muss schon mal groß geschrieben sein MANUAL_WATERING

                        Fehler bleibt aber.

                        Bildschirmfoto 2021-06-12 um 11.35.09.png

                        AsgothianA Offline
                        AsgothianA Offline
                        Asgothian
                        Developer
                        schrieb am zuletzt editiert von
                        #14

                        @dslraser 1623489951432-bildschirmfoto-2021-06-12-um-11.25.28.png

                        Der Fehler ist gelb umrahmt.

                        An Stelle einer Variable "List" die du nicht definiert hast muss "ValueList" gewählt werden.

                        A.

                        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                        oberfraggerO 1 Antwort Letzte Antwort
                        1
                        • dslraserD dslraser

                          @paul53 sagte in While Schleife mit mehreren Objekten?:

                          @oberfragger
                          Die Variable ValueList enthält den Wert undefined. Wie sieht die ID-Struktur der 6 Ventile aus?

                          Bildschirmfoto 2021-06-12 um 11.27.07.png

                          Bildschirmfoto 2021-06-12 um 11.28.05.png

                          EDIT: Das muss schon mal groß geschrieben sein MANUAL_WATERING

                          Fehler bleibt aber.

                          Bildschirmfoto 2021-06-12 um 11.35.09.png

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #15

                          @dslraser sagte: Fehler bleibt aber.

                          Versuche es mal so:

                          Bild_2021-06-12_141022.png

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          oberfraggerO 1 Antwort Letzte Antwort
                          0
                          • AsgothianA Asgothian

                            @oberfragger sagte in While Schleife mit mehreren Objekten?:

                            Ich habe das Script von @Asgothian importiert und angepasst. Läuft natürlich nicht bzw. wirft Fehler bei Start und Ende der Bewässerung.

                            • Warum "Natürlich" ?
                            • Wie sieht das gesamte Skript aus ?

                            Die Fehlermeldung deutet darauf hin das du die Variablen nicht sauber (garnicht) initialisierst.

                            A.

                            oberfraggerO Offline
                            oberfraggerO Offline
                            oberfragger
                            schrieb am zuletzt editiert von
                            #16

                            @asgothian Natürlich wegen- das war mir klar dass ich nicht einfach copy&paste machen kann - auf deutsch "Asche auf mein Haupt und ist mir gerade voll peinlich".

                            Bin ja echt dankbar für die Hilfe. Falls etwas anderes angekommen ist - sorry.

                            1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @dslraser sagte: Fehler bleibt aber.

                              Versuche es mal so:

                              Bild_2021-06-12_141022.png

                              oberfraggerO Offline
                              oberfraggerO Offline
                              oberfragger
                              schrieb am zuletzt editiert von
                              #17

                              @paul53

                              Ich habe das jetzt wie folgt gemacht

                              09b75496-1166-4d2c-9e5f-8c4c0c035940-image.png
                              Bekomme leider direkt bei Scriptstart einen Fehler:

                              23:49:18.580	info	javascript.0 (1050) Start javascript script.js.common.Gardena_Zisterne_fuellen
                              23:49:18.584	error	javascript.0 (1050) script.js.common.Gardena_Zisterne_fuellen: script.js.common.Gardena_Zisterne_fuellen:15
                              23:49:18.585	error	javascript.0 (1050) at script.js.common.Gardena_Zisterne_fuellen:21:3
                              

                              Hier ist mein Script:

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <variables>
                                 <variable id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</variable>
                               </variables>
                               <block type="variables_set" id="M3[*C!*iU=a~.;w[O#hN" x="63" y="63">
                                 <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                                 <value name="VALUE">
                                   <block type="selector" id="t.l2|UUi=U+YvUD=mzNd">
                                     <field name="TEXT">channel[state.id=smartgarden.0.*.*.*.activity_value]</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="on_ext" id="$Ag5y!5Z3-hN-EIK^ofg">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                     <field name="CONDITION">ne</field>
                                     <field name="ACK_CONDITION"></field>
                                     <value name="OID0">
                                       <shadow type="field_oid" id="#ZXf^+~J~%RUH4`-=[ZT">
                                         <field name="oid">default</field>
                                       </shadow>
                                       <block type="variables_get" id="M;$PLj#-fEc@gj;LEa`#">
                                         <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                                       </block>
                                     </value>
                                     <statement name="STATEMENT">
                                       <block type="debug" id="[;Payw+#!rr-NRRBt*Xs">
                                         <field name="Severity">log</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="./T:zhrosIxNAii:7P1Z">
                                             <field name="TEXT">VentilListe geaendert</field>
                                           </shadow>
                                         </value>
                                         <next>
                                           <block type="control" id="v5n(v^D575)2=t)lBQ?y">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="text" id=",]Ooz3-Ppco9OU;#BA[t">
                                                 <field name="TEXT">CLOSED</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="_;cw}ugS3aUD4G_{]BC,">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="~0#w9@Z[mN|iGkwQ#m7=">
                                                     <field name="TEXT">Zisternenbefuellung auf "CLOSED"</field>
                                                   </shadow>
                                                 </value>
                                                 <next>
                                                   <block type="debug" id="v]O7TgC@o6~Cd#t3bHAf">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="]`OS2mAyDBt-akr,a2v-">
                                                         <field name="TEXT">SR</field>
                                                       </shadow>
                                                       <block type="text_join" id="M3D$:7-yk2K*v*ji~sZ1">
                                                         <mutation items="2"></mutation>
                                                         <value name="ADD0">
                                                           <block type="text" id="y-eW4FjnKGL?EbUzIKB5">
                                                             <field name="TEXT">SR04 Distance = </field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD1">
                                                           <block type="get_value" id="(6O;5+BRzS1r#u4tKUl)">
                                                             <field name="ATTR">val</field>
                                                             <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                                                         <value name="IF0">
                                                           <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                                             <field name="OP">GT</field>
                                                             <value name="A">
                                                               <block type="get_value" id="jCD(:CCb,WKeL~OZLqn#">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <block type="math_number" id=":J?8[_WhiTRi4FfW#oha">
                                                                 <field name="NUM">105</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="debug" id="sljG:^;`/.l{dH0V!z=c">
                                                             <field name="Severity">log</field>
                                                             <value name="TEXT">
                                                               <shadow type="text" id="3#7ozj#K2g2Fx(XKNIof">
                                                                 <field name="TEXT">Schleife betreten</field>
                                                               </shadow>
                                                             </value>
                                                             <next>
                                                               <block type="control" id="5Qb.wHu|lc;MewZq/nHs">
                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                 <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                                                 <field name="WITH_DELAY">FALSE</field>
                                                                 <value name="VALUE">
                                                                   <block type="text" id="tYK|/!cUyD/`2.04p@]N">
                                                                     <field name="TEXT">MANUAL_WATERING</field>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                                                     <field name="FLOW">BREAK</field>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="control" id="s7k@e(S25x|sB_QjP[7A">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="text" id="o|V+6RXEQ61dQ;E4L8C*">
                                             <field name="TEXT">CLOSED</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                              </xml>
                              

                              Objekt der Zisternenbefüllung:
                              "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value"

                              Beispielobjekt eines Ventils:
                              "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_e8990271-2D7615-2D4807-2D864b-2D2505dc75699a.SERVICE_VALVE_e8990271-2D7615-2D4807-2D864b-2D2505dc75699a-3A1.activity_value",

                              Wo liegt mein Fehler?

                              dslraserD 1 Antwort Letzte Antwort
                              0
                              • oberfraggerO oberfragger

                                @paul53

                                Ich habe das jetzt wie folgt gemacht

                                09b75496-1166-4d2c-9e5f-8c4c0c035940-image.png
                                Bekomme leider direkt bei Scriptstart einen Fehler:

                                23:49:18.580	info	javascript.0 (1050) Start javascript script.js.common.Gardena_Zisterne_fuellen
                                23:49:18.584	error	javascript.0 (1050) script.js.common.Gardena_Zisterne_fuellen: script.js.common.Gardena_Zisterne_fuellen:15
                                23:49:18.585	error	javascript.0 (1050) at script.js.common.Gardena_Zisterne_fuellen:21:3
                                

                                Hier ist mein Script:

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <variables>
                                   <variable id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</variable>
                                 </variables>
                                 <block type="variables_set" id="M3[*C!*iU=a~.;w[O#hN" x="63" y="63">
                                   <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                                   <value name="VALUE">
                                     <block type="selector" id="t.l2|UUi=U+YvUD=mzNd">
                                       <field name="TEXT">channel[state.id=smartgarden.0.*.*.*.activity_value]</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="on_ext" id="$Ag5y!5Z3-hN-EIK^ofg">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                       <field name="CONDITION">ne</field>
                                       <field name="ACK_CONDITION"></field>
                                       <value name="OID0">
                                         <shadow type="field_oid" id="#ZXf^+~J~%RUH4`-=[ZT">
                                           <field name="oid">default</field>
                                         </shadow>
                                         <block type="variables_get" id="M;$PLj#-fEc@gj;LEa`#">
                                           <field name="VAR" id="kOPQJ]S}yV|$_f]Oqd(J">VentilListe</field>
                                         </block>
                                       </value>
                                       <statement name="STATEMENT">
                                         <block type="debug" id="[;Payw+#!rr-NRRBt*Xs">
                                           <field name="Severity">log</field>
                                           <value name="TEXT">
                                             <shadow type="text" id="./T:zhrosIxNAii:7P1Z">
                                               <field name="TEXT">VentilListe geaendert</field>
                                             </shadow>
                                           </value>
                                           <next>
                                             <block type="control" id="v5n(v^D575)2=t)lBQ?y">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="text" id=",]Ooz3-Ppco9OU;#BA[t">
                                                   <field name="TEXT">CLOSED</field>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="debug" id="_;cw}ugS3aUD4G_{]BC,">
                                                   <field name="Severity">log</field>
                                                   <value name="TEXT">
                                                     <shadow type="text" id="~0#w9@Z[mN|iGkwQ#m7=">
                                                       <field name="TEXT">Zisternenbefuellung auf "CLOSED"</field>
                                                     </shadow>
                                                   </value>
                                                   <next>
                                                     <block type="debug" id="v]O7TgC@o6~Cd#t3bHAf">
                                                       <field name="Severity">log</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="]`OS2mAyDBt-akr,a2v-">
                                                           <field name="TEXT">SR</field>
                                                         </shadow>
                                                         <block type="text_join" id="M3D$:7-yk2K*v*ji~sZ1">
                                                           <mutation items="2"></mutation>
                                                           <value name="ADD0">
                                                             <block type="text" id="y-eW4FjnKGL?EbUzIKB5">
                                                               <field name="TEXT">SR04 Distance = </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD1">
                                                             <block type="get_value" id="(6O;5+BRzS1r#u4tKUl)">
                                                               <field name="ATTR">val</field>
                                                               <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="controls_if" id="@aQzk(;^XM7lHL^Vq#lD">
                                                           <value name="IF0">
                                                             <block type="logic_compare" id="[rdAMw0QCENLXI/O^{oT">
                                                               <field name="OP">GT</field>
                                                               <value name="A">
                                                                 <block type="get_value" id="jCD(:CCb,WKeL~OZLqn#">
                                                                   <field name="ATTR">val</field>
                                                                   <field name="OID">sonoff.0.Zisterne.SR04_Distance</field>
                                                                 </block>
                                                               </value>
                                                               <value name="B">
                                                                 <block type="math_number" id=":J?8[_WhiTRi4FfW#oha">
                                                                   <field name="NUM">105</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                           <statement name="DO0">
                                                             <block type="debug" id="sljG:^;`/.l{dH0V!z=c">
                                                               <field name="Severity">log</field>
                                                               <value name="TEXT">
                                                                 <shadow type="text" id="3#7ozj#K2g2Fx(XKNIof">
                                                                   <field name="TEXT">Schleife betreten</field>
                                                                 </shadow>
                                                               </value>
                                                               <next>
                                                                 <block type="control" id="5Qb.wHu|lc;MewZq/nHs">
                                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                   <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                                                   <field name="WITH_DELAY">FALSE</field>
                                                                   <value name="VALUE">
                                                                     <block type="text" id="tYK|/!cUyD/`2.04p@]N">
                                                                       <field name="TEXT">MANUAL_WATERING</field>
                                                                     </block>
                                                                   </value>
                                                                   <next>
                                                                     <block type="controls_flow_statements" id="}Hjmz^iFduo2^a3i4|aL">
                                                                       <field name="FLOW">BREAK</field>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </statement>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                       <next>
                                         <block type="control" id="s7k@e(S25x|sB_QjP[7A">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="text" id="o|V+6RXEQ61dQ;E4L8C*">
                                               <field name="TEXT">CLOSED</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                                </xml>
                                

                                Objekt der Zisternenbefüllung:
                                "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value"

                                Beispielobjekt eines Ventils:
                                "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_e8990271-2D7615-2D4807-2D864b-2D2505dc75699a.SERVICE_VALVE_e8990271-2D7615-2D4807-2D864b-2D2505dc75699a-3A1.activity_value",

                                Wo liegt mein Fehler?

                                dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von dslraser
                                #18

                                @oberfragger sagte in While Schleife mit mehreren Objekten?:

                                "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value"

                                Dieser DP ist read only. Was willst Du steuern ?
                                Willst Du die Bewässerung starten ? Das geht anders....

                                https://github.com/jpgorganizer/ioBroker.smartgarden#for-service_valve_set

                                oberfraggerO 2 Antworten Letzte Antwort
                                0
                                • dslraserD dslraser

                                  @oberfragger sagte in While Schleife mit mehreren Objekten?:

                                  "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value"

                                  Dieser DP ist read only. Was willst Du steuern ?
                                  Willst Du die Bewässerung starten ? Das geht anders....

                                  https://github.com/jpgorganizer/ioBroker.smartgarden#for-service_valve_set

                                  oberfraggerO Offline
                                  oberfraggerO Offline
                                  oberfragger
                                  schrieb am zuletzt editiert von oberfragger
                                  #19

                                  @dslraser Wow.
                                  Ich Depp. Stimmt. Ganz vergessen. Das muss man über die Zeit machen.
                                  Ich habe 1 Gardena-Ventil (so ein Teil mit Batterien) direkt am Wasserhahn. Der befüllt mir die Zisterne, wenn diese zu leer ist (> 105 cm Wasserhöhe). Die Bewässerung zieht das Wasser immer aus der Zisterne und ich brauch nichts manuell umstellen.

                                  Ich mache morgen mal weiter. Jetzt Bett. Ich melde mich.

                                  1 Antwort Letzte Antwort
                                  0
                                  • AsgothianA Asgothian

                                    @dslraser 1623489951432-bildschirmfoto-2021-06-12-um-11.25.28.png

                                    Der Fehler ist gelb umrahmt.

                                    An Stelle einer Variable "List" die du nicht definiert hast muss "ValueList" gewählt werden.

                                    A.

                                    oberfraggerO Offline
                                    oberfraggerO Offline
                                    oberfragger
                                    schrieb am zuletzt editiert von
                                    #20

                                    @asgothian Habs geändert und richtige Liste eingesetzt. Hatte mich bei Import auch gewundert, welche Liste das ist...

                                    Da das Ventil welches die Zisterne befüllen soll, Teil der Liste geworden ist, bin ich nun in einer Schleife. Der ioBroker mag das garnicht:
                                    2e15dc10-a909-4db8-964d-c37da45812d7-image.png

                                    Ich teste morgen mal weiter. Denke der Weg ist der richtige und ich bin nicht weit weg von einer vollautomatischen Bewässerung, inkl. Befüllung der Zisterne wenn leer.

                                    1 Antwort Letzte Antwort
                                    0
                                    • dslraserD dslraser

                                      @oberfragger sagte in While Schleife mit mehreren Objekten?:

                                      "_id": "smartgarden.0.LOCATION_09fda3bb-2Dddb4-2D468b-2Dab8a-2Dbdb83b0f1c9f.DEVICE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.SERVICE_VALVE_2be886f7-2D6553-2D4308-2D80f8-2D0c504c0d1227.activity_value"

                                      Dieser DP ist read only. Was willst Du steuern ?
                                      Willst Du die Bewässerung starten ? Das geht anders....

                                      https://github.com/jpgorganizer/ioBroker.smartgarden#for-service_valve_set

                                      oberfraggerO Offline
                                      oberfraggerO Offline
                                      oberfragger
                                      schrieb am zuletzt editiert von
                                      #21

                                      @dslraser und
                                      @Asgothian

                                      Ich habe jetzt mal mein Script etwas angepasst. Leider wirds nun nicht mehr getriggert (der Debu´g-Outpunkt kommt nicht und das Ventil zur Befüllung springt nicht an)... AARGH!

                                      1. Die Werte aller 6 Ventile direkt in die Liste geschrieben. Damit möchte ich vermeiden, dass das Scipt auf das Gardena Smart Water Control reagiert. Dieser schreibt den Wert ja auch unter Activity_Value rein
                                      2. Vor Eintritt in die Schleife wird auf den Füllstand der Zisterne geachtet
                                      3. In der Schleife wird nun gezählt, wie oft "CLOSED" vorkommt. Wenn 6 Ventile geschlossen sind, dann soll auch kein Wasser mehr in die Zisterne laufen. Wenn mindestens 1Mal KEIN "CLOSED" steht, dann soll Wasser in die Zisterne geleitet werden.

                                      Aber warum triggert das nicht, die Liste verändert sich doch, sobald ich die Bewässerung starte...?

                                      f890d8c6-3c70-4349-86cf-d541e6e2c907-image.png

                                      oberfraggerO 1 Antwort Letzte Antwort
                                      0
                                      • oberfraggerO oberfragger

                                        @dslraser und
                                        @Asgothian

                                        Ich habe jetzt mal mein Script etwas angepasst. Leider wirds nun nicht mehr getriggert (der Debu´g-Outpunkt kommt nicht und das Ventil zur Befüllung springt nicht an)... AARGH!

                                        1. Die Werte aller 6 Ventile direkt in die Liste geschrieben. Damit möchte ich vermeiden, dass das Scipt auf das Gardena Smart Water Control reagiert. Dieser schreibt den Wert ja auch unter Activity_Value rein
                                        2. Vor Eintritt in die Schleife wird auf den Füllstand der Zisterne geachtet
                                        3. In der Schleife wird nun gezählt, wie oft "CLOSED" vorkommt. Wenn 6 Ventile geschlossen sind, dann soll auch kein Wasser mehr in die Zisterne laufen. Wenn mindestens 1Mal KEIN "CLOSED" steht, dann soll Wasser in die Zisterne geleitet werden.

                                        Aber warum triggert das nicht, die Liste verändert sich doch, sobald ich die Bewässerung starte...?

                                        f890d8c6-3c70-4349-86cf-d541e6e2c907-image.png

                                        oberfraggerO Offline
                                        oberfraggerO Offline
                                        oberfragger
                                        schrieb am zuletzt editiert von oberfragger
                                        #22

                                        Ok, Korrektur.
                                        Habs hinbekommen.

                                        Jetzt muss ich nur noch rausfinden, wie ich die Bewässerung stoppen kann. Die GardenaAPI mag irgendwie die EIngabe(n) nicht. Das sollte ich auch noch rausbekommen.

                                        JUHU! Gute Doku ist doch alles!

                                        a9299a68-33d4-409d-b19e-eb27bd36028a-image.png

                                        Dank an Euch! WIeder was dazugelernt.

                                        paul53P 1 Antwort Letzte Antwort
                                        1
                                        • oberfraggerO oberfragger

                                          Ok, Korrektur.
                                          Habs hinbekommen.

                                          Jetzt muss ich nur noch rausfinden, wie ich die Bewässerung stoppen kann. Die GardenaAPI mag irgendwie die EIngabe(n) nicht. Das sollte ich auch noch rausbekommen.

                                          JUHU! Gute Doku ist doch alles!

                                          a9299a68-33d4-409d-b19e-eb27bd36028a-image.png

                                          Dank an Euch! WIeder was dazugelernt.

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #23

                                          @oberfragger sagte: Habs hinbekommen.

                                          Nicht ganz: Der Zähler muss vor der Schleife auf 0 initialisiert werden.

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          oberfraggerO 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

                                          886

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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