Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]_Blockly Script - Fehlermeldung im Log

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]_Blockly Script - Fehlermeldung im Log

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

      Hallo,

      Ich habe mich mal an ein erstes eigenes Blockly-Script gewagt - u. es auch hinbekommen dass es funktioniert.

      Der Haken an der Sache hab noch eine blöde Fehlermeldung für die ich den Grund nicht erkennen kann:

      javascript.1 2017-08-23 09:55:30.321 info script.js.TEST.Hauswasserpumpe_mit_Zeit: registered 2 subscriptions and 0 schedules

      javascript.1 2017-08-23 09:55:30.320 info Start javascript script.js.TEST.Hauswasserpumpe_mit_Zeit

      javascript.1 2017-08-23 09:55:29.949 error unsubscribe: invalid type of id - boolean

      javascript.1 2017-08-23 09:55:29.946 info Stop script script.js.TEST.Hauswasserpumpe_mit_Zeit

      javascript.1 2017-08-23 09:55:12.788 info script.js.TEST.Hauswasserpumpe_mit_Zeit: registered 2 subscriptions and 0 schedules

      javascript.1 2017-08-23 09:55:12.788 info script.js.TEST.Hauswasserpumpe_mit_Zeit: setInterval(ms=900000)

      javascript.1 2017-08-23 09:55:12.788 info script.js.TEST.Hauswasserpumpe_mit_Zeit: subscribe: {"pattern":

      Hier noch das Script:
      686_unbenannt.png

      Vielleicht hat jemand eine Idee ?!

      Grüße

      crepp

      1 Reply Last reply Reply Quote 0
      • D
        dna909 last edited by

        Nimm mal oben den Vergleich weg und stattdessen nur das Objekt, da wo du auf Änderung prüfst.

        dna909

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

          Interval habe ich selbst noch nicht ausprobiert.

          Aber so würde ich anfangen:
          1146_unbenannt.jpg
          Licht_Kueche machst du entsprechend den Uni.schalter. Brauchst nicht den Umweg über Lampe EIN / AUS.

          Die "1" habe ich aus dem Mathematik-Bereich… vielleicht geht "Text" genauso.

          Blockly Import:

          ! ````
          <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="U%/c~}R5Nm|qv^w|]Q}+" x="-63" y="63"><mutation items="1"></mutation>
          <field name="CONDITION">ne</field>

          <value name="OID0"><shadow type="field_oid" id="A=r*%tJ+RWq^Dbn%58Ei"><field name="oid">default</field></shadow> 
            <block type="get_value" id="ac%T6U,/6?N/L}v]_rwY"><field name="ATTR">val</field>
              <field name="OID">hm-rpc.0.LEQ0183615.2.POWER</field></block></value> 
          <statement name="STATEMENT"><block type="controls_if" id="Fxr!SM9(4USywceEXgOb"><value name="IF0"><block type="logic_compare" id="S!Y.4HLQK!9=xzgpMrW`"><field name="OP">LTE</field>
                  <value name="A"><block type="get_value" id="_mTde=TtB`hDJ37BOj)H"><field name="ATTR">val</field>
                      <field name="OID">hm-rpc.0.LEQ0183615.2.POWER</field></block></value> 
                  <value name="B"><block type="math_number" id="*9wtxmuP2X-GB_lu+J`j"><field name="NUM">1</field></block></value></block></value> 
              <statement name="DO0"><block type="timeouts_setinterval" id="MB2]:kl84~dCeL,77l~C"><field name="NAME">Intervall</field>
                  <field name="INTERVAL">15</field>
                  <field name="UNIT">min</field>
                  <statement name="STATEMENT"><block type="control" id="G;#hP6(R#~_dyCk:+b.,"><mutation delay_input="false"></mutation>
                      <field name="OID">hm-rpc.0.KEQ0198416.1.STATE</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="logic_boolean" id=";gRg,c#0Pg+Q%2c!e:|G"><field name="BOOL">TRUE</field></block></value> 
                      <next><block type="control" id="vB9~6GT0CvVkI%ROKUfP"><mutation delay_input="true"></mutation>
                          <field name="OID">hm-rpc.0.KEQ0198416.1.STATE</field>
                          <field name="WITH_DELAY">TRUE</field>
                          <field name="DELAY_MS">10</field>
                          <field name="UNIT">sec</field>
                          <field name="CLEAR_RUNNING">TRUE</field>
                          <value name="VALUE"><block type="logic_boolean" id="%+^msqfudBKC9J(|gP-e"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></statement></block></xml> 
          
          1 Reply Last reply Reply Quote 0
          • C
            crepp last edited by

            Habe jetzt den Vergleich rausgenommen, Die Fehlermeldung im Log kommt aber immer noch…

            686_unbenannt.png

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

              Nachtrag:

              Sie kommt allerdings nur beim Speichern des Scripts - während der Ausführung alle 15min kommt kein Fehler …

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

                @crepp:

                Habe jetzt den Vergleich rausgenommen, Die Fehlermeldung im Log kommt aber immer noch…

                Unbenannt.PNG `
                Nee, gemeint war der Vergleich oben im Trigger.

                Im Trigger schaust du nur ob sich der Wert ändert. Da drunter prüfst du ob der geänderte Wert Power < 1 ist. Und bei der "1" kannst mal testen den Wert von "Mathematik" anstatt "Text" zu nehmen.

                Edit: der ursprüngliche Vergleich macht auch nicht wirklich Sinn… es sei denn es soll in den zwei Minuten nichts passieren... also 00:00 bis 00:01 und 23:59 bis 24:00 Uhr.

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

                  @crepp:

                  Die Fehlermeldung im Log kommt aber immer noch… ` Du fragst nach Unterstützung, und dennoch setzt du <u>NICHTS</u> von dem um was dir von lobomau empfohlen wird …

                  "1" ist noch immer ein "String" und keine "Zahl"

                  Dein timeout ist <u>nicht Bestandteil</u> deines Triggers, sondern hängt teilnahmslos unterhalb des selbigen.

                  Du legst Variablen an, anstatt die Kommandos direkt umzusetzen …

                  :oops:

                  ich verstehe dich nicht :!: :oops:

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

                    Ich bin noch ein Anfänger im scripten mit Blockly. das sei hier gesagt…

                    Das die Zeiteingrenzung sinnlos war habe ich selbst gemerkt und deswegen auch rausgenommen.

                    Das mit dem Trigger habe ich nicht richtig verstanden zugegeben.

                    Ansonsten bemühe ich mich schon die Tipps umzusetzen. Werde heute abend nochmal rangehen und dann hier berichten.

                    Trotzdem erstmal vielen Dank für Eure Tipps.

                    Gruß

                    crepp

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      Hallo crepp!
                      @crepp:

                      Ich bin noch ein Anfänger im scripten mit Blockly `
                      Das macht doch nichts, dafür helfen wir ja, damit sich das ändert.

                      @crepp:

                      Das mit dem Trigger habe ich nicht richtig verstanden `
                      Dann bitte sofort nachfragen, ansonsten müssen wir glauben, das alles klar ist, und umso größer ist dann die Verwunderung wenn du Dinge tust, die wir dann nicht nachvollziehen können.

                      Bitte in Zukunft Schritt für Schritt genau das (und nur das) machen, was gesagt wird.

                      Alles was unklar ist bitte sofort nachfragen.

                      Gruß

                      Rainer

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

                        @crepp:

                        Das mit dem Trigger habe ich nicht richtig verstanden zugegeben. `
                        Mit einem Trigger reagiert man auf Zustandsänderungen.

                        Suche hier mal im Forum nach Blockly, da gibt es schon genügend Beispiele und Erklärungen.
                        @crepp:

                        Ansonsten bemühe ich mich schon die Tipps umzusetzen. Werde heute abend nochmal rangehen und dann hier berichten.

                        Trotzdem erstmal vielen Dank für Eure Tipps. `
                        Drann bleiben. Wir helfen gerne.

                        Grüße

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

                          Hab jetzt so, wie ich Eure Anleitung verstanden habe, umgesetzt, jetzt funkt das Script jedoch nicht mehr und die Fehlermeldung im Log ist immer noch da.

                          Gruß

                          crepp
                          686_unbenannt.png

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

                            Hallo crepp

                            Nicht eine Bedingung/Verkleich triggern!

                            Sondern einen Datenpunkt Deines Aktors.

                            Ist "Power" ein Datenpunkt bei dem Aktor?

                            Welche Zustände kann der annehmen? true/false 0/1.

                            Das kannst Du im Reiter "Objekte" überprüfen.

                            Bei meinem Beispiel wird der Datenpunkt ".State" einer Steckdose überwacht/getriggert.

                            Dieser Datenpunkt kann wahr/true oder unwahr/false sein.
                            147_beispiel.png

                            Schreibe uns doch die Datenpunke von dem Adapter oder was das für einer ist.

                            Grüße

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

                              Hallo,

                              Der Datenpunkt ist der Stromstärke-Messkanal meiner Steckdose. Ich frage damit ab, ob die angeschlossene Pumpe läuft (unter 1mA) oder nicht. Wenn nicht, schalte ich die Steckdose aus und nach 10sec wieder an. Damit reseste ich die Pumpe die evtl. mit einer Fehlermeldung steht. Dies will ich zukünftig in Abständen von 10-15min machen.

                              Hier mein jetziges Script mit den von dir empfohlenen Änderungen:
                              686_unbenannt.png
                              Läuft aber trotzdem nicht.

                              Hier meine Version die komischerweise (?) funktioniert:
                              686_unbenannt1.png

                              Die Fehlermeldung ist bei beiden Versionen identisch:
                              686_2.png

                              Gruß

                              crepp

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

                                Sorry, aber das kann nicht funktionieren.

                                Bzw. nur 1x beim Starten des Scripts.

                                Dann wird Dein Intervall gestartet. Diese Bausteine liegen außerhalb des Triggers.

                                Bausteine ausserhalb eines Triggers (ausser Funktionen) werden NUR bei Scriptstart EINMALIG ausgeführt.

                                Mach doch bitte einmal was wir Dir schon vorgeschlagen haben.

                                Trigger Deinen Datenpunkt.

                                Einfach auf das "ID Objekt" des Triggers klicken.

                                Dann kannst Du den gewünschten Datenpunkt auswählen.

                                Trigger auf "wurde geändert" setzen. NICHT auf "ist wahr"

                                Die Bedingung <= mit der ZAHL aus Mathematik NICHT TEXT nehmen.

                                Hier als Beispiel.
                                147_beispiel.png

                                Grüße

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

                                  @crepp:

                                  Dies will ich zukünftig in Abständen von 10-15min machen. `

                                  Dann wird das Blockly aber völlig anders aussehen 🙂

                                  Jetzt machen wir aber erst mal das erste Problem 😉

                                  [EDIT] Noch ein Tipp. Gib Deinen Aktoren auf der CCU "sprechende" Namen. 😉

                                  Grüße

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

                                    Hab jetzt den letzten Vorschlag umgesetzt:
                                    686_beispiel.png

                                    Damit läuft es jetzt. Allerdings wird alle 10sec geschaltet (timeout fürs wieder anschalten) und nicht wie ich wollte alle 60sec.

                                    Zur Erklärung hab ich die Objekte rausgesucht die beteiligt sind, vielleicht wird es so klarer was ich möchte:
                                    686_beispiel_1.png

                                    Ich möchte den Trigger "Power" verwenden, wenn unter 1W, dann schalte "State" auf true.

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

                                      Seltsam, habe jetzt zwischenzeitlich an einer anderen Version gebastelt, und das obenstehende Script inaktiv geschaltet.

                                      Jetzt habe ich es wieder aktiv geschaltet und es läuft nicht mehr.

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

                                        @crepp:

                                        Damit läuft es jetzt. Allerdings wird alle 10sec geschaltet (timeout fürs wieder anschalten) und nicht wie ich wollte alle 60sec. `
                                        Beobachte doch mal den Power State.

                                        Wie oft ändert der sich und ist dabei <=1?

                                        Wenn die Bedingung erfüllt ist, wird JEDESMAL ein "Intervall" gestartet.

                                        Der Intervall schaltet alle 60 Sek eine Lampe aus (egal ob sie schon aus ist).

                                        Und das UNENDLICH!

                                        Zudem wird durch den Intevall alle 60 Sek. ein Timer von 10 Sek. gestartet, der die Lampe einschaltet (egal ob sie schon an ist)

                                        Wenn man 10x einen Intervall startet laufen auch 10 Intevalle.

                                        Wenn man 10x einen Timer startet laufen auch 10 Timer.

                                        Und bei Dir potenziert sich das!!!

                                        (Bei mir hätte eigentlich eine Alarmglocke klingeln müssen :oops: ,sorry)

                                        Du solltest Dein Konzept noch mal überdenken bzw. uns ausführlich erklären was Du möchtest.

                                        Setze auf JEDENFALL "Stop Intervall" und "Stop Timer" ein.

                                        Sonst bricht Dein System, wegen Überlastung zusammen.
                                        147_beispiel.png

                                        Grüße

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

                                          Hallo,

                                          Danke die Info war sehr wichtig, ich versuche das jetzt mal selber hinzubekommen und werde die CPU und den Speicher dabei im Auge behalten.

                                          Was ich möchte ist:

                                          Schalte die Pumpe in regelmäßigen Abständen aus, wenn sie nicht gerade arbeitet (Reset einer evtl. Fehlermeldung)

                                          Warte 10sec

                                          Schalte dann wieder ein

                                          Danke

                                          Gruß

                                          Torsten

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

                                            Habe bei Wert <1 genommen, da die Pumpe im Standby ca. 0,4W zieht.

                                            Ansonsten habe ich alles von Dir übernommen:
                                            686_beispiel.png

                                            Leider stimmt irgendwas mit der Syntax nicht 😢

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            842
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            53
                                            6324
                                            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