Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blocky Script Probleme

    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

    Blocky Script Probleme

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

      Hallo,

      Ich habe ein Blocky für meine Terrarium beregnungsanlage gestellt.

      Nur irgendwie funktioniert das nicht wie ich will..

      Unzwar, soll als erstes Überprüft werden mit einen Datenpunkt der im VIS gesetzt wird, ob Sommer oder Winterzeit ist.

      Jetzt im Winter soll um 8 und um 13 Uhr jeden Tag der GPIO Pin 14 auf falsch gesetzt werden um das Relais zu schalten.

      (Zurzeit ist es ein Low Level Relais. Quasi um die Beregnungsanlage auszuschalten muss das Signal 1 stehen, da es ein schließer ist), neues Relais mit High Level Trigger ist bestellt.

      Nun das Phänomen, ein Tag stand ich früh auf und das Relais ging die ganze zeit an und aus..
      Danach hat er es nicht mehr gemacht.

      Ich wollte heut von unterwegs den Log prüfen doch hatte keine Verbindung mehr zum Pi, ab um dreiviertel 11 ging es wieder, aber siehe log. Was mach ich falsch?!

      Screenshot_20191203-105742_Chrome.jpg

      Screenshot_20191203-105728_Chrome.jpg

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @Lucas Stiefel last edited by AlCalzone

        @Lucas-Stiefel Du solltest bei Problemen erst mal klären, was da genau im Log steht. Die Zeilen mit WARN sind leider auf dem Screenshot nicht komplett drauf.

        Zweitens (und ist die Ursache für merkwürdiges Verhalten):
        Du erzeugst alle 3 Sekunden (Intervall) zwei neue Trigger (pinke Blöcke). Nach einer Minute sind das dann schon 2x20 = 40, nach einer Stunde 2x1200 = 2400!!!

        Das bedeutet, dass zu den angegebenen Zeitpunkten die jeweiligen Aktionen jeweils mehrere tausend Mal ausgeführt werden.

        Grundsätzlich: Trigger-Blöcke NIEMALS in andere Blöcke schachteln. Stattdessen innerhalb der Trigger prüfen, ob die gewünschte Bedingung erfüllt ist, und nur dann die gewünschten Aktionen ausführen.

        Lucas Stiefel 1 Reply Last reply Reply Quote 0
        • Lucas Stiefel
          Lucas Stiefel @AlCalzone last edited by

          @AlCalzone

          Screenshot_20191203-123014_Chrome.jpg

          Screenshot_20191203-123003_Chrome.jpg

          Hier die Logs, das Warning : Beregnung an und aus, hab ich ja gesetzt.
          Das er sich abgeschalten hat ist vom system.

          Er sollte eig. 8:00 den Pin aus setzten und in die Log : Beregnung an schreiben.

          Um 8:00:30 sollte sie wieder ausgehen und : Beregnung aus schreiben.

          Wie man sieht haut irgendwas mitn Skript nicht hin weil er tausend mal aus schreibt..

          AlCalzone 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @Lucas Stiefel last edited by

            @Lucas-Stiefel Habe meinen obigen Post editiert

            Lucas Stiefel 2 Replies Last reply Reply Quote 0
            • Lucas Stiefel
              Lucas Stiefel @AlCalzone last edited by Lucas Stiefel

              @AlCalzone

              Ich sehe schon, in der log sendet er alle ms auch Beregnung aus.

              Screenshot_20191203-124124_JuiceSSH.jpg

              Wie kann ich das umbauen das es richtig funktioniert?
              Stehe leider bissel aufm Schlauch

              Mag einfach wenn die Winterzeit oben gegeben ist das er jeden Tag um 8 und 13 uhr für 30sekunden mein GPIO Schaltet

              Edit: müsste es nicht funktionieren wenn ich im Zeitblock die Sekunden noch angebe?

              1 Reply Last reply Reply Quote 0
              • Lucas Stiefel
                Lucas Stiefel @AlCalzone last edited by

                @AlCalzone habs mir nun mal so überlegt weiß aber nicht ob das so stimmt.

                1. Kommentar wäre die Prüfung ob Winterzeit
                2. Kommentar die 30000ms für die abschaltung

                Screenshot_20191203-144956_Chrome.jpg

                1 Reply Last reply Reply Quote 0
                • J.A.R.V.I.S.
                  J.A.R.V.I.S. Developer last edited by J.A.R.V.I.S.

                  @Lucas-Stiefel

                  du solltest erst den Schedule ausführen und darin prüfen, ob die Bedingungen erfüllt sind.

                  Jetzt werden dennoch jeden Tag mehrere neue Schedules erzeugt. Somit werden morgen wieder mehrfach die Werte gesetzt werden.

                  5dbab0af-a6f3-4ca1-aced-75871ce26f72-grafik.png

                  <xml xmlns="http://www.w3.org/1999/xhtml">
                   <block type="schedule" id="x#]K(.$e8oCmue7V|}4K" x="112" y="63">
                     <field name="SCHEDULE">0 8,13 * * *</field>
                     <statement name="STATEMENT">
                       <block type="controls_if" id="N0N!45OOe,Y#m?WU^,$p">
                         <value name="IF0">
                           <block type="get_value_var" id="b%/,]H_XD73G6433EhIG">
                             <field name="ATTR">val</field>
                             <value name="OID">
                               <shadow type="text" id="NE7t3#pId|[D9*9*-^c6">
                                 <field name="TEXT">Winterzeitprüfung</field>
                               </shadow>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="control_ex" id="yk=){e_t%SwQ,0%c8t$C">
                             <field name="TYPE">false</field>
                             <field name="CLEAR_RUNNING">FALSE</field>
                             <value name="OID">
                               <shadow type="field_oid" id="eEp60rHhxkAdJS?Q:(9c">
                                 <field name="oid">Object ID</field>
                               </shadow>
                             </value>
                             <value name="VALUE">
                               <shadow type="logic_boolean" id="2^eSME`LANQ{Z$Igv%Jj">
                                 <field name="BOOL">TRUE</field>
                               </shadow>
                             </value>
                             <value name="DELAY_MS">
                               <shadow type="math_number" id="V|{1?eT#THxS.g3d#R!}">
                                 <field name="NUM">0</field>
                               </shadow>
                             </value>
                             <next>
                               <block type="control_ex" id="6FpvKlNdW^z{Sj)+K|#6">
                                 <field name="TYPE">false</field>
                                 <field name="CLEAR_RUNNING">FALSE</field>
                                 <value name="OID">
                                   <shadow type="field_oid" id="ww?ENW;hbsq;.0,}puU,">
                                     <field name="oid">Object ID</field>
                                   </shadow>
                                 </value>
                                 <value name="VALUE">
                                   <shadow type="logic_boolean" id="bFn%+Aq{B;!GRfbK@3qi">
                                     <field name="BOOL">TRUE</field>
                                   </shadow>
                                 </value>
                                 <value name="DELAY_MS">
                                   <shadow type="math_number" id="lcct{PW}Y;i0,CK@R@n3">
                                     <field name="NUM">30000</field>
                                   </shadow>
                                 </value>
                               </block>
                             </next>
                           </block>
                         </statement>
                       </block>
                     </statement>
                   </block>
                  </xml>
                  

                  Ich habe da mal was kleines zusammengebastelt. Du musst es natürlich noch auf deine DPs und co anpassen.

                  Damit wird täglich um 08:00 und 13:00 Uhr das Skript ausgeführt.

                  Lucas Stiefel 1 Reply Last reply Reply Quote 0
                  • Lucas Stiefel
                    Lucas Stiefel @J.A.R.V.I.S. last edited by

                    @J-A-R-V-I-S genau so hatte ich es am anfang, aber iwie hat er das Schedule einmal ausgeführt.
                    Egal ob ich jeden Tag angewählt hab.
                    Deswegen der Intervall

                    Ich teste es nochmal so. Danke erstmal:)

                    1 Reply Last reply Reply Quote 0
                    • Lucas Stiefel
                      Lucas Stiefel last edited by

                      So Skript läuft soweit.

                      Werd dann für die Beleuchtung 2 Shedules machen (an und aus)

                      Screenshot_20191204-082439_Chrome.jpg

                      Ich danke für die Hilfe 🙂

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      679
                      Online

                      31.8k
                      Users

                      79.9k
                      Topics

                      1.3m
                      Posts

                      blockly
                      3
                      9
                      556
                      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