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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [geloest] While Schleife mit mehreren Objekten?

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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

                        936
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

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