Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [geloest] While Schleife mit mehreren Objekten?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [geloest] While Schleife mit mehreren Objekten?

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

      Moin,

      ich möchte für meine Gartenbewässerung die Zisterne nur füllen, wenn ein oder mehrere Ventile geöffnet wurde. Da es sicht um 6 Ventile handelt, kann ich im Prinzip 6 mal den gleichen Code verwenden... Das ist aber langweilig und geht bestimmt besser, auch um mein Blockly möglichst klein zu halten.

      Also- 6 Ventile, der Datenpunkt, ob die laufen oder nicht steht auf null (laufen nicht), oder werden geschlossen ("closed") oder bewässern (Manual_Watering).

      Wenn also 1nes der 6 Ventile auf "Manual_Watering" geht, soll die Zisterne befüllt werden (wenn der Füllstand entsprechend niedrig ist).

      Wenn alle 6 Ventile auf "null" oder "closed" stehen, dann soll die Befüllung aufhöhren.

      Hab ihr eine gute Idee wie ich das schlank regeln kann?

      9134c6d8-585f-4981-a7eb-e247b80017ac-image.png

      paul53 M 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @oberfragger last edited by

        @oberfragger
        Suche im Forum nach Selektor.

        1 Reply Last reply Reply Quote 0
        • M
          MCU @oberfragger last edited by

          @oberfragger

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

          oberfragger 1 Reply Last reply Reply Quote 0
          • oberfragger
            oberfragger @MCU last edited by

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

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @oberfragger last edited by 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>
              

              oberfragger paul53 2 Replies Last reply Reply Quote 2
              • oberfragger
                oberfragger @Asgothian last edited by 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 🙂

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

                  @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.

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

                    @oberfragger sagte:

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

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

                    oberfragger 1 Reply Last reply Reply Quote 0
                    • oberfragger
                      oberfragger @paul53 last edited by 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) {
                      
                      paul53 Asgothian 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @oberfragger last edited by

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

                        dslraser 1 Reply Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @oberfragger last edited by

                          @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.

                          dslraser oberfragger 2 Replies Last reply Reply Quote 0
                          • dslraser
                            dslraser Forum Testing Most Active @Asgothian last edited by

                            @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 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @paul53 last edited by 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

                              Asgothian paul53 2 Replies Last reply Reply Quote 0
                              • Asgothian
                                Asgothian Developer @dslraser last edited by

                                @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.

                                oberfragger 1 Reply Last reply Reply Quote 1
                                • paul53
                                  paul53 @dslraser last edited by paul53

                                  @dslraser sagte: Fehler bleibt aber.

                                  Versuche es mal so:

                                  Bild_2021-06-12_141022.png

                                  oberfragger 1 Reply Last reply Reply Quote 0
                                  • oberfragger
                                    oberfragger @Asgothian last edited by

                                    @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 Reply Last reply Reply Quote 0
                                    • oberfragger
                                      oberfragger @paul53 last edited by

                                      @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?

                                      dslraser 1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @oberfragger last edited by 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

                                        oberfragger 2 Replies Last reply Reply Quote 0
                                        • oberfragger
                                          oberfragger @dslraser last edited by oberfragger

                                          @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 Reply Last reply Reply Quote 0
                                          • oberfragger
                                            oberfragger @Asgothian last edited by

                                            @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 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            843
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            26
                                            1369
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo