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.
    • 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
                          • oberfragger
                            oberfragger @dslraser last edited by

                            @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

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

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

                                @oberfragger sagte: Habs hinbekommen.

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

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

                                  @paul53 Verdammt! Und danke für den Hinweis. Dachte der ist bei Scriptstart immer auf 0.
                                  Ich änder das mal lieber sonst läuft die Zisterne über 😉

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

                                    @oberfragger sagte: Dachte der ist bei Scriptstart immer auf 0.

                                    Nach Skriptstart schon, aber nicht, nachdem die Schleife einmal durchlaufen wurde (nächster Trigger).

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

                                      @paul53 said in [geloest] While Schleife mit mehreren Objekten?:

                                      Nach Skriptstart schon, aber nicht, nachdem die Schleife einmal durchlaufen wurde (nächster Trigger).

                                      Okay. Den Fall hatte ich glatt wieder verdrängt.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      304
                                      Online

                                      31.7k
                                      Users

                                      79.8k
                                      Topics

                                      1.3m
                                      Posts

                                      5
                                      26
                                      1385
                                      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