Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Gelöst! Brauche Hilfe bei meinem Blockly Script

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Gelöst! Brauche Hilfe bei meinem Blockly Script

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

      Hallo,

      ich bräuchte mal Eure Hilfe zu meinem Blockly. Kämpfe schon seit ein paar Tagen, hab viel gelesen, aber irgendwie will es nicht klappen.
      Folgende Problemstellung:
      Ich möchte meine Rollos im Haus über einen Dämmerungs Schwellenwert (von meiner Homematic Wetterstation) schalten.
      In meiner VIS habe ich einen Selektor Zeitsteuerung/Dämmerung. Bei der Auswahl Dämmerung kann ich in der Vis einen Schwellenwert setzen, bei dem die Rollos runter fahren sollen. Und genau das will mir nicht gelingen. Hier mal ein Bild meines Blockly Scripts. Mache ich grundsätzlich was falsch? Eventuell kann mir jemand auf die Sprünge helfen.
      Danke schonmal!
      d7e4d403-2998-4436-a982-d9e0118d76a0-image.png

      haselchen 1 Reply Last reply Reply Quote 0
      • haselchen
        haselchen Most Active @fuso last edited by haselchen

        @fuso

        Hab den Rest jetzt nicht kontrolliert, aber Dir fehlt ganz oben schon ein Trigger.
        So ein Block den Du in der Mitte hast .... Falls Objekt.....
        @paul53 als SkriptGott kann Dir da bestimmt expliziter helfen.

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

          @haselchen sagte:

          Dir fehlt ganz oben schon ein Trigger.

          So ist es. Es fehlt ein Trigger auf Änderung der Helligkeit.
          Außerdem sollte man die Tageszeit auswerten für Rollos hoch (morgens) und Rollos runter (abends), etwa so:

          Blockly_temp.JPG

          <xml xmlns="http://www.w3.org/1999/xhtml">
           <block type="comment" id="XViJG2mMWB.j4a8+PD+w" x="62" y="12">
             <field name="COMMENT">BRIGHTNESS</field>
             <next>
               <block type="on_ext" id="xJK_O{B.)T?lpYAcnq-m">
                 <mutation items="1"></mutation>
                 <field name="CONDITION">ne</field>
                 <field name="ACK_CONDITION"></field>
                 <value name="OID0">
                   <shadow type="field_oid" id=")B`yp96a^D{}(]Tz]N)9">
                     <field name="oid">default</field>
                   </shadow>
                 </value>
                 <statement name="STATEMENT">
                   <block type="controls_if" id="@SGJ4,.w7K~mYyaDam`H">
                     <value name="IF0">
                       <block type="get_value" id="2q.Nb.EiqrjV?z+qfSQU">
                         <field name="ATTR">val</field>
                         <field name="OID">ID auswählen</field>
                       </block>
                     </value>
                     <statement name="DO0">
                       <block type="controls_if" id="Nj+0s1yN{vOUf;y*[*x?">
                         <mutation else="1"></mutation>
                         <value name="IF0">
                           <block type="time_compare" id="].4Y,{~*vtI_p9;rtbvr">
                             <mutation end_time="false"></mutation>
                             <field name="OPTION">&lt;</field>
                             <field name="START_TIME">12:00</field>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="controls_if" id="UZ]W,]k?Q`:DSsZEVz;F">
                             <value name="IF0">
                               <block type="logic_compare" id="g*a=Ydg?Q{?E}FRpAmbl">
                                 <field name="OP">GTE</field>
                                 <value name="A">
                                   <block type="on_source" id="ZQ`Y.mU![PO_kuvbm|R~">
                                     <field name="ATTR">state.val</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="get_value" id="7JE+1/c(OU@oS4kAH/@K">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ID auswählen</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="comment" id="CkOaf^F4:!eYr5FAWo#-">
                                 <field name="COMMENT">alle Rollos</field>
                                 <next>
                                   <block type="update" id="mc~-LbOT0:5cHE4(Lh@N">
                                     <mutation delay_input="false"></mutation>
                                     <field name="OID">Object ID</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="logic_boolean" id="`73uZct;o_gRvqS.fE8)">
                                         <field name="BOOL">TRUE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                           </block>
                         </statement>
                         <statement name="ELSE">
                           <block type="controls_if" id="x*fhKED*dkz.5J.^v_52">
                             <value name="IF0">
                               <block type="logic_compare" id="1eZ@h](1w-{B$dMAZHH}">
                                 <field name="OP">LTE</field>
                                 <value name="A">
                                   <block type="on_source" id="XV,_q_$5SrOjf=upI$xU">
                                     <field name="ATTR">state.val</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="get_value" id=",NG5N9))VQazI9j%]w+l">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ID auswählen</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="comment" id="mGAxCR@VOc#mU{o5!bTH">
                                 <field name="COMMENT">alle Rollos</field>
                                 <next>
                                   <block type="update" id="KU#d,5}vBr{xJIHV|Cfj">
                                     <mutation delay_input="false"></mutation>
                                     <field name="OID">Object ID</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="logic_boolean" id=".7:f5F^:z3ePJMn@yrBp">
                                         <field name="BOOL">FALSE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                           </block>
                         </statement>
                       </block>
                     </statement>
                   </block>
                 </statement>
                 <next>
                   <block type="comment" id="qVjmMOLch6Rh9k^jnYRg">
                     <field name="COMMENT">alle Rollos</field>
                     <next>
                       <block type="on_ext" id="K_6#A@,l]H:$5]b@!V,!">
                         <mutation items="1"></mutation>
                         <field name="CONDITION">ne</field>
                         <field name="ACK_CONDITION"></field>
                         <value name="OID0">
                           <shadow type="field_oid" id="AP/25R3Jbc@=X@npQGf|">
                             <field name="oid">default</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="controls_if" id=";?y92$eR?ltPAWMlt$%P">
                             <mutation else="1"></mutation>
                             <value name="IF0">
                               <block type="on_source" id="IpQ-hwff|@pIt`D.(Qfm">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="comment" id="[[]DvuL.UTc3(639$G6~">
                                 <field name="COMMENT">Rollos hoch</field>
                               </block>
                             </statement>
                             <statement name="ELSE">
                               <block type="comment" id=";IUXX`?aAo$XT5y{}#KN">
                                 <field name="COMMENT">Rollos runter</field>
                               </block>
                             </statement>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
           <block type="comment" id="Ias1iDR8q(PuBi@I$4?X" x="337" y="87">
             <field name="COMMENT">Dämmerung Ja/Nein</field>
           </block>
           <block type="comment" id="2Lr=pCPIzgHf3z03PJ/k" x="612" y="138">
             <field name="COMMENT">Grenzwert</field>
           </block>
           <block type="comment" id="G9/}V*VkS*k1tzmA8:uk" x="463" y="212">
             <field name="COMMENT">hoch</field>
           </block>
           <block type="comment" id="KD@[/2|hij~hCd={KM|#" x="462" y="337">
             <field name="COMMENT">runter</field>
           </block>
          </xml>
          

          1 Reply Last reply Reply Quote 1
          • F
            fuso last edited by

            Hi,

            danke für Eure Hilfestellung.
            Ja das mit dem fehlenden trigger habe ich nun schon verstanden und habe in der Zwischenzeit auch schon ganz schön was rumprobiert. Aber irgendwie will es doch noch nicht klappen.
            @paul53
            ich werde dein Blockly mal so ausprobieren, vielen dank für Deine Arbeit.
            Aber ich möchte trotzdem gerne wissen, warum mein zusammengebautes Blockly nicht funktioniert. Will ja noch lernen und nicht immer auf die Hilfe von Anderen hoffen müssen.

            Das Objekt "Schwellenwert_überschritten" ändert sich einfach nicht. Am fehlenden Trigger sollte es ja nicht liegen, oder?
            Der zustand sollte von false nach true wechseln, wenn der Schwellenwert der in der Visu eingegeben höher ist als der vom Helligkeitsmesser. das ist doch nicht so schwierig, dachte ich. Wenn ich meinen Trigger Wetterstation_Brightness auf aktualisieren stelle sollte der doch jedesmal die Bedingung prüfen? Oder verstehe ich das falsch? Wie kann ich eigentlich sicherstellen, daß das Ereignis nur einmal Erfolgt? Die Rollos sollen ja nicht minütlich, oder jedesmal wenn sich die Helligkeit ändert nach oben oder unten geschickt werden.
            Ach ja und für mein Test Script habe ich als Ausgang eine Schaltbare Steckdose angeschlossen, sodaß die Rollos nicht dauert losgeschickt werden

            Vielen dank nochmals für die Inputs
            f5cfd3ce-98ff-48c5-a2c8-809c7c661b00-image.png

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

              @fuso sagte:

              Am fehlenden Trigger sollte es ja nicht liegen, oder?

              Im Gegenteil: Trigger innerhalb eines Triggers funktioniert nicht. Deshalb wir in meinem Beispiel der Datenpunkt "Dämmerung Ja/Nein" innerhalb des Triggers "Helligkeit" geprüft.

              @fuso sagte in Brauche Hilfe bei meinem Blockly Script:

              Wie kann ich eigentlich sicherstellen, daß das Ereignis nur einmal Erfolgt?

              Damit bei schwankender Helligkeit um den Grenzwert der Zustand "Rollos hoch/runter" sich nicht ständig ändert, werte ich die Tageszeit aus. Der nachfolgende Trigger "alle Rollos" reagiert nur auf Wertänderung, also nur zweimal am Tag.

              1 Reply Last reply Reply Quote 0
              • F
                fuso last edited by

                Hallo Paul,

                so jetzt habe ich mal mein Blockly umgebaut, so wie Du´s mir in der hilfestellung gezeigt hast.
                d6faa308-76ca-4f8c-9462-b5d416d94d25-image.png

                Ja und jetzt habe ich gerade im log gesehen, daß ich noch ein anderes problem habe. Wie finde ich denn raus um welches Objekt es sich hier handelt?
                Ich habe nochmal nachgeschaut, eigentlich sollte alles richtig konfiguriert sein
                31db29a1-40f7-49d4-9f9a-3efda91cd6a9-image.png

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

                  @fuso sagte:

                  Wie finde ich denn raus um welches Objekt es sich hier handelt?

                  Man kann nicht auf "Wert von Objekt" Triggern, sondern man muss die Datenpunkt-ID an den Trigger übergeben: Auf default klicken und den Datenpunkt im Selektor-Fenster auswählen.

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

                    vertippt.

                    1 Reply Last reply Reply Quote 0
                    • F
                      fuso last edited by

                      Hallo Paul,

                      ja, das war der richtige Hinweis. Oh je, es gibt noch viel zu lernen. Es scheint zu laufen jetzt. Einzig mit dem trigger muss ich doch nochmal spielen, weil er jetzt bei jeder Helligkeitsänderung triggert und meine Rollos losschickt. Ist nur ein Schönheitsfehler, da beiß ich mich selber durch.
                      Vielen dank für die Hilfe

                      Fuso

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

                        @fuso sagte:

                        weil er jetzt bei jeder Helligkeitsänderung triggert und meine Rollos losschickt.

                        @paul53 sagte in Brauche Hilfe bei meinem Blockly Script:

                        Der nachfolgende Trigger "alle Rollos" reagiert nur auf Wertänderung, also nur zweimal am Tag.

                        1 Reply Last reply Reply Quote 0
                        • F
                          fuso last edited by

                          Hallo paul,
                          nochmals danke. Das habe ich natürlich in Deinem ersten post übersehen. Komme leider heute nicht mehr wirklich zum testen. Hab aber die Scripte gerade am laufen. Schau mer mal, ob das heute abend funktioniert.

                          Gruß

                          1 Reply Last reply Reply Quote 0
                          • F
                            fuso last edited by

                            Hallo zusammen,

                            möchte mal kurz Feedback zu meinem Thema geben. Also läuft alles.
                            Vielen dank nochmal

                            fuso

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            844
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            blockly
                            3
                            12
                            787
                            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