Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Erstes eigenes Blockly Script - funktioniert plötzlich nicht mehr

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Erstes eigenes Blockly Script - funktioniert plötzlich nicht mehr

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

      Hallo Leute,

      Ich habe vor einiger Zeit mitbekommen das mit Blockly "visuelles Scripting" möglich ist und habe mich sogleich damit beschäftigt d.h. ein Script mit Wenn/Dann Verknüpfung angelegt. Hat auch fast auf Anhieb funktioniert, worauf ich natürlich sehr stolz war. Nun ist es aber so das (wie immer) aus unerklärlichen Gründen das Teil nicht mehr läuft und ich schon gerätselt habe woran es liegen könnte.

      Stelle den Code mal rein:

       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="XRVe4HX:v:8|%E;}@Q-*" x="13" y="-887"><mutation items="1"></mutation>
          <field name="CONDITION">true</field>
      
          <value name="OID0"><shadow type="field_oid" id="*Nm6y6qBl7(2[_Z^xaD4"><field name="oid">default</field></shadow> 
            <block type="logic_compare" id="?AJ:-DL?|JTpCas=tFAD"><field name="OP">LT</field>
              <value name="A"><block type="get_value" id="L#aunzA)lUvQVa[*TYsm"><field name="ATTR">val</field>
                  <field name="OID">hm-rpc.0.NEQ0320690.1.BRIGHTNESS</field></block></value> 
              <value name="B"><block type="text" id="Cw05_9bH8h#O%3A?^9)f"><field name="TEXT">30</field></block></value></block></value> 
          <statement name="STATEMENT"><block type="control" id="}YIu]#}K)Z=LjbI3ehG("><mutation delay_input="false"></mutation>
              <field name="OID">hm-rpc.0.MEQ1438874.1.STATE</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE"><block type="logic_boolean" id="S:yt)o=J8^Q-S7Q)thfr"><field name="BOOL">TRUE</field></block></value> 
              <next><block type="control" id="f/S/Ei|kY^%.82Opu-0m"><mutation delay_input="true"></mutation>
                  <field name="OID">hm-rpc.0.MEQ1438874.1.STATE</field>
                  <field name="WITH_DELAY">TRUE</field>
                  <field name="DELAY_MS">7200000</field>
                  <field name="CLEAR_RUNNING">TRUE</field>
                  <value name="VALUE"><block type="logic_boolean" id="Qvkr`(o:od:W?m8=yWTq"><field name="BOOL">FALSE</field></block></value></block></next></block></statement> 
          <next><block type="pushover" id="AY;G(Wxxxxx5.V[{z]{"><field name="INSTANCE">.0</field>
              <field name="SOUND">bugle</field>
              <field name="PRIORITY">0</field>
      
              <value name="MESSAGE"><shadow type="text" id="Z{dLen%l-7%egHK={q8Z"><field name="TEXT">Kugellampen bei Dämmerung für 2h an (< 30)</field></shadow></value> 
              <value name="URL"><block type="text" id="CTQcG;Pq4(J-rdW(#(am"><field name="TEXT">http://xxxx:8082/vis/#Tablet_Final</field></block></value> 
              <next><block type="email" id="3H9OWJf3/vDSiJwX-.eA"><field name="INSTANCE">.0</field>
                  <field name="IS_HTML">TRUE</field>
      
                  <value name="TO"><shadow type="text" id="hx,z}JE_`sT0O;UA1E0H"><field name="TEXT">xxxx@gmail.com</field></shadow></value> 
                  <value name="TEXT"><shadow type="text" id="(K+=P`xf=Nm!cx,,=lJp"><field name="TEXT">Kugellampen bei Dämmerung für 2h an (< 30)</field></shadow></value> 
                  <value name="SUBJECT"><shadow type="text" id="DVkB8}Al:alQL-ewpYQg"><field name="TEXT">http://xxxxx:8082/vis/#Tablet_Final</field></shadow></value></block></next></block></next></block></xml> 
      
      

      Vielleicht hat jemand eine Idee, wo der Haken an der Sache ist,

      Wie gesagt, hat funktioniert.

      Das einzige was nicht funktioniert hat war die Leuchtdauer der Lampen. Nach zwei Stunden wurde nicht ausgeschalten.

      Das wurde erst, nachdem die Helligkeit wieder über 30 stieg.

      Vielen Dank im Voraus für Eure Hilfe !

      crepp

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        ähm…

        entweder echten Skript Export oder ein Screenshot deines Blockly "Codes" würde ich vorschlagen.

        Das da oben ist ja kaum zu lesen mit den ganzen tags.

        1 Reply Last reply Reply Quote 0
        • C
          crepp last edited by

          Sorry hier ist er.

          on({id: getState("hm-rpc.0.NEQ0320690.1.BRIGHTNESS").val < '30', val: true}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            setState("hm-rpc.0.MEQ1438874.1.STATE"/*Kugellampe.STATE*/, true);
            setStateDelayed("hm-rpc.0.MEQ1438874.1.STATE"/*Kugellampe.STATE*/, false, 7200000, true);
          });
          sendTo("pushover.0", "send", {
             message: 'Kugellampen bei Dämmerung für 2h an (< 30)',
             sound: "bugle",
             url: 'http://xxxx:8082/vis/#Tablet_Final'
          });
          sendTo("email.0", "send", {
             html: 'Kugellampen bei Dämmerung für 2h an (< 30)',
             to: 'xxxx@gmail.com',
             subject: 'http://xxxx:8082/vis/#Tablet_Final'
          });
          
          

          Gruß

          crepp

          1 Reply Last reply Reply Quote 0
          • rantanplan
            rantanplan last edited by

            @tempestas:

            ähm…

            entweder echten Skript Export oder ein Screenshot deines Blockly "Codes" würde ich vorschlagen.

            Das da oben ist ja kaum zu lesen mit den ganzen tags. `
            ähm… Das ist ein richtiger Export.

            @crepp

            Was mir so auf die Schnelle auffällt.

            Pushover und Email werden nur 1x beim starten des Scripts ausgeführt.

            Die Bausteine befinden sich nicht innerhalb des Triggers.

            Was willst Du denn mit dem Script bewirken?

            Momentan wird der Trigger JEDESMAL ausgeführt wenn es kleiner (dunkler) als 30 wird.

            z.B.

            Bei 29 wird der Trigger ausgeführt.

            Lampe wird eingeschaltet, Timeout für 2 Std. gestartet um Lampe wieder auszuschalten.

            Soweit OK.

            Jetzt wird es innerhalb der 2 Std. dunkler (was ja auch zu erwarten ist)

            Bei 28 wird der Trigger wieder ausgeführt.

            Lampe wird eingeschaltet, obwohl sie schon eingeschaltet ist. (sollte man grundsätzlich vermeiden, DutyCycle)

            Dann wird der Timer gelöscht und wieder auf 2 Std. gesetzt.

            Das gleiche bei 27, 26, 25......

            Jetzt wird es wieder heller 0, 1, 2.........

            Das Script wird wieder jedes mal ausgeführ. Der Wert ist immer noch <30.

            Das Konzept würde ich noch mal überdenken.

            Grüße

            1 Reply Last reply Reply Quote 0
            • T
              tempestas last edited by

              @rantanplan:

              also ich fand Variante zwei irgendwie lesbarer.

              Ich gebe zu, meine Formulierung war nicht ideal. Letztlich ging es aber darum, die Wahrscheinlichkeit für Feedback zu erhöhen (also eine freundliche Absicht). Und ich glaube, dass mehr Leute die wenigen Zeilen lesen als sich durch die lange Variante zu quälen.

              Aber das ist jetzt OT.

              1 Reply Last reply Reply Quote 0
              • rantanplan
                rantanplan last edited by

                @tempestas:

                @rantanplan:

                also ich fand Variante zwei irgendwie lesbarer. `
                [OT: ON]

                Du bist ja auch wahrscheinlich ein echter Scriptler. 😉

                Für uns kleine Blocklyler sind Export und Bildchen am schönsten 😄

                [OT: OFF]

                Grüße

                1 Reply Last reply Reply Quote 0
                • C
                  crepp last edited by

                  Danke für die Tipps, werde ich Mal überprüfen

                  Gesendet von meinem HUAWEI MT7-L09 mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • C
                    crepp last edited by

                    Ziel des Scripts ist das Anschalten der Lampen bei Erreichen von Helligkeit 30 für 2h. Den Rest der Nacht sollen diese ausbleiben.

                    Gesendet von meinem HUAWEI MT7-L09 mit Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • rantanplan
                      rantanplan last edited by

                      @crepp:

                      Ziel des Scripts ist das Anschalten der Lampen bei Erreichen von Helligkeit 30 für 2h. Den Rest der Nacht sollen diese ausbleiben. `
                      Als Beispiel habe ich Dein Blockly mal etwas umgebaut. (nicht getestet)

                      Da ich Deine Datenpunkte nicht habe, musst Du die an zwei Stellen selbst einsetzen.
                      147_beispiel_crepp.png

                      Hier der Export:

                      ! ````
                      <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="0pHZ{vcW)lJY`fb6pck" x="37" y="-1113"><field name="COMMENT">BRIGHTNESS triggern</field>
                      <next><block type="on_ext" id="d;BVWqU
                      Doaqqfnc}A8a"><mutation items="1"></mutation>
                      <field name="CONDITION">ne</field>

                          <value name="OID0"><shadow type="field_oid" id="wiw3!IYQfI[=?G_KN(-R"><field name="oid">default</field></shadow></value> 
                          <statement name="STATEMENT"><block type="comment" id="*)u)s01(+a.^cr=YjEo)"><field name="COMMENT">gewünschte Werte eingrenzen</field>
                              <next><block type="controls_if" id="HqdptKMJmdh*Qg^n-Fl+"><value name="IF0"><block type="logic_operation" id="?XTdy!]m,h@ucSm:WV`0" inline="false"><field name="OP">AND</field>
                                      <value name="A"><block type="logic_compare" id="pg^]I{[Ho-W)E8vojt_?"><field name="OP">LTE</field>
                                          <value name="A"><block type="get_value" id="^1b23It8Qy^3y%h]Y!T^"><field name="ATTR">val</field>
                                              <field name="OID">hm-rpc.0.NEQ0320690.1.BRIGHTNESS</field></block></value> 
                                          <value name="B"><block type="text" id="k(.Y_+6=0aNO!;?q=Z30"><field name="TEXT">30</field></block></value></block></value> 
                                      <value name="B"><block type="logic_compare" id="LAdEMDDHWXKMWh:VjwS4"><field name="OP">GTE</field>
                                          <value name="A"><block type="get_value" id="Z?j,,misEqa[_VT]7d.T"><field name="ATTR">val</field>
                                              <field name="OID">hm-rpc.0.NEQ0320690.1.BRIGHTNESS</field></block></value> 
                                          <value name="B"><block type="text" id="91yN)@K1c=n`1S?L)qY#"><field name="TEXT">25</field></block></value></block></value></block></value> 
                                  <statement name="DO0"><block type="comment" id="+S?0|pZATaMz1}CzX^~."><field name="COMMENT">Nur ausführen wenn Lampe aus ist</field>
                                      <next><block type="controls_if" id="YJb4cCS+,@jNK9CWFz?z"><value name="IF0"><block type="logic_compare" id=";|)#0MYE[E5#(0=JzXk/"><field name="OP">EQ</field>
                                              <value name="A"><block type="get_value" id="u)L61t7Dh0@VPRfs!8EF"><field name="ATTR">val</field>
                                                  <field name="OID">ID auswählen</field></block></value> 
                                              <value name="B"><block type="logic_boolean" id="qqvtv]*tRZ7sgB^2V3bE"><field name="BOOL">FALSE</field></block></value></block></value> 
                                          <statement name="DO0"><block type="procedures_callnoreturn" id="b}b7X}%mxQ2/i!je]A0%"><mutation name="LampeEin"></mutation>
                                              <next><block type="procedures_callnoreturn" id=":~}9e0W4xmofiGxnwW]l"><mutation name="LampeAus"></mutation></block></next></block></statement></block></next></block></statement></block></next></block></statement></block></next></block> 
                      

                      <block type="procedures_defnoreturn" id="8_KqmQLaVS6L(-X%G}i" x="-288" y="-763"><field name="NAME">LampeEin</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      <statement name="STACK"><block type="control" id="d],9gsKL`X1f:(FjP
                      ,5"><mutation delay_input="false"></mutation>
                      <field name="OID">hm-rpc.0.MEQ1438874.1.STATE</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="logic_boolean" id=")=Xq?8E}6QPPtq~+D3w!"><field name="BOOL">TRUE</field></block></value>
                      <next><block type="pushover" id="AY;G(Wxxxxx5.V[{z]{"><field name="INSTANCE">.0</field>
                      <field name="SOUND">bugle</field>
                      <field name="PRIORITY">0</field>

                              <value name="MESSAGE"><shadow type="text" id="Z{dLen%l-7%egHK={q8Z"><field name="TEXT">Kugellampen bei Dämmerung für 2h an (< 30)</field></shadow></value> 
                              <value name="URL"><block type="text" id="CTQcG;Pq4(J-rdW(#(am"><field name="TEXT">http://xxxx:8082/vis/#Tablet_Final</field></block></value></block></next></block></statement></block> 
                      

                      <block type="procedures_defnoreturn" id="|OJe]Y-?I7fd!m[GI]S" x="312" y="-763"><field name="NAME">LampeAus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="timeouts_settimeout" id="%?YX2J)iGt#;:Hg3@9!("><field name="NAME">timeout</field> <field name="DELAY">7200000</field> <statement name="STATEMENT"><block type="control" id="f/S/Ei|kY^%.82Opu-0m"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.MEQ1438874.1.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Qvkr(o:od:W?m8=yWTq"><field name="BOOL">FALSE</field></block></value>
                      <next><block type="email" id="3H9OWJf3/vDSiJwX-.eA"><field name="INSTANCE">.0</field>
                      <field name="IS_HTML">TRUE</field>

                                  <value name="TO"><shadow type="text" id="hx,z}JE_`sT0O;UA1E0H"><field name="TEXT">xxxx@gmail.com</field></shadow></value> 
                                  <value name="TEXT"><shadow type="text" id="(K+=P`xf=Nm!cx,,=lJp"><field name="TEXT">Kugellampen AUS</field></shadow></value> 
                                  <value name="SUBJECT"><shadow type="text" id="DVkB8}Al:alQL-ewpYQg"><field name="TEXT">http://xxxxx:8082/vis/#Tablet_Final</field></shadow></value></block></next></block></statement></block></statement></block></xml> 
                      

                      ! ````

                      Bei Fragen fragen 😉

                      Grüße

                      1 Reply Last reply Reply Quote 0
                      • C
                        crepp last edited by

                        Hab es gerade probiert und hat auf Anhieb funktioniert. Das Script hat mir auch geholfen die Logik dahinter zu verstehen. Vielen Dank für deine Hilfe!

                        Gruß crepp

                        1 Reply Last reply Reply Quote 0
                        • rantanplan
                          rantanplan last edited by

                          Danke für die Rückmeldung, gern geschehen.

                          Würdest Du bitte noch den Betreff in Deinem ersten Beitrag mit [gelöst] ändern.

                          Weitere Infos findest Du hier. http://forum.iobroker.net/viewtopic.php?f=8&t=2451

                          Grüße

                          1 Reply Last reply Reply Quote 0
                          • C
                            crepp last edited by

                            Klar

                            1 Reply Last reply Reply Quote 0
                            • C
                              crepp last edited by

                              Wie ich jetzt festgestellt habe funktioniert das Script grundsätzlich, allerdings schaltet die Lampe abends mit Einbruch der Dämmerung wie gewollt, am morgen zwischen den eingestellten Triggerwerten jedoch auch. Das ist natürlich so nicht gewollt. Ich habe dann damit experimentiert den Zeitbereich einzugrenzen (zw, 18:00 und 22:00) Dann hat das Script aber nicht mehr funktioniert. Weiss jemand Rat ? Ich möchte die Lampe auch nicht die ganze Nacht leuchten lassen …

                              MfG

                              crepp

                              Im Anhang noch mal die aktuelle Version.
                              686_unbenannt.png

                              1 Reply Last reply Reply Quote 0
                              • rantanplan
                                rantanplan last edited by

                                @crepp:

                                Ich habe dann damit experimentiert den Zeitbereich einzugrenzen (zw, 18:00 und 22:00) Dann hat das Script aber nicht mehr funktioniert. Weiss jemand Rat ? Ich möchte die Lampe auch nicht die ganze Nacht leuchten lassen … `

                                Hallo

                                Zeige doch mal Deine Versuche.

                                Grüße

                                1 Reply Last reply Reply Quote 0
                                • C
                                  crepp last edited by

                                  686_unbenannt.png Hallo,

                                  Das war die Version die überhaupt nicht funktioniert hat.

                                  Ich habe diese Version aber leider gelöscht, nachdem ich tagelang verschieden Sachen getestet hatte.

                                  Ich hatte hier an der Stelle mit dem Pfeil eine Zeitfunktion nach der Art "und nur zwischen 16.00 und 22:00"

                                  Ich finde aber den entsprechenden Baustein nicht mehr.

                                  Ich dachte mit der Zeitfunktion kann ich die Schaltung beeinflussen …

                                  War das programmlogisch nicht richtig ?

                                  Gruß

                                  crepp

                                  1 Reply Last reply Reply Quote 0
                                  • rantanplan
                                    rantanplan last edited by

                                    Hallo crepp

                                    Der Baustein den Du suchst ist der 2. unter "Datum und Zeit".

                                    Klick mal auf den Pfeil hinter "kleiner als".

                                    Viele Wege führen nach Rom.

                                    Deine Lösung könnte jetzt so aussehen.
                                    147_teil-1.png

                                    Grüße

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      crepp last edited by

                                      Ah ok, ich hatte den Zeitbaustein unter den Trigger Helligkeit gesetzt, ich probier das jetzt mal so.

                                      Danke für die schnelle Hilfe

                                      crepp

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        Stormbringer last edited by

                                        Bin gerade auf der Suche wie man "und" und "oder" Bedingungen gruppiert in Blockly und bin dabei auf eueren schönen "und" mit 2 Ausgängen gestoßen. Wenn man den auf "oder" umstellen kann wäre das sicher die Lösung von meinem Problem aber ich finde und kenne nur den einfachen "und/oder" Block mit einem Ein- und Ausgang. Wo ist denn der versteckt?

                                        1 Reply Last reply Reply Quote 0
                                        • rantanplan
                                          rantanplan last edited by

                                          @Stormbringer:

                                          Bin gerade auf der Suche wie man "und" und "oder" Bedingungen gruppiert in Blockly und bin dabei auf eueren schönen "und" mit 2 Ausgängen gestoßen. Wenn man den auf "oder" umstellen kann wäre das sicher die Lösung von meinem Problem aber ich finde und kenne nur den einfachen "und/oder" Block mit einem Ein- und Ausgang. Wo ist denn der versteckt? `
                                          Hallo

                                          Eine Frage stellen, die mit dem Thema dieses Thread nicht zutun hat, der zudem mit [gelöst] gekennzeichnet ist, macht nicht viel Sinn!

                                          Aber sei es drum. Klick doch einfach mal auf das Pfeilchen hinter dem "und"…....

                                          Grüße

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            Stormbringer last edited by

                                            So offtopic fand ich es gar nicht aber sorry. Ich finde den Block ja erst gar nicht 😉 Den einzigen "und" Block den ich finde ist der in Logik und der schaut ganz anders aus. Soll ich einen neuen Thread aufmachen und hierher verlinken um den "und" Block zu beschreiben den ich suche?
                                            2548_bildschirmfoto_2017-05-21_um_13.18.50.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            612
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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