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] Wert um 1 erhöhen gibt Fehler

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Wert um 1 erhöhen gibt Fehler

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

      Ich finde den Fehler leider nicht. Der untere Block wo ich einen Wert -1 abziehe funktioniert. Beim oberen Teil, wo ich den Wert hinzuaddiere +1 bekomme ich eine Warnung und das Script macht hier nichts. Jemand eine Idee?

      2a2a1e48-8e61-4e60-979a-df3d7f8f1121-image.png

      5c0f6172-b202-44d6-84b1-55ce31224f75-image.png

      Fehlermeldung:

      javascript.0	2020-10-10 11:55:32.455	warn	(12933) at processImmediate (internal/timers.js:456:21)
      javascript.0	2020-10-10 11:55:32.455	warn	(12933) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
      javascript.0	2020-10-10 11:55:32.454	warn	(12933) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
      javascript.0	2020-10-10 11:55:32.454	warn	(12933) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1059:38)
      javascript.0	2020-10-10 11:55:32.454	warn	(12933) at Object.<anonymous> (script.js.common.Energie.Auto_Charge.PV_Go-echarger:15:5)
      javascript.0	2020-10-10 11:55:32.454	warn	(12933) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1362:20)
      javascript.0	2020-10-10 11:55:32.452	warn	(12933) You are assigning a string to the state "go-e.0.ampere" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in f
      javascript.0	2020-10-10 11:55:32.451	warn	(12933) script.js.common.Energie.Auto_Charge.PV_Go-echarger: ego-charger +1A
      

      Javascript:

      var Verzoegerung1, Verzoegerung2, timeout2, timeout;
      
      
      Verzoegerung1 = 0;
      // Überschuss, Ampere erhöhen
      on({id: 'sma-em.0.3006136297.psurplus', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : "") >= getState("0_userdata.0.Energy.Ueberschuss_MIN").val && getState("0_userdata.0.Energy.Go-echarger_mit_PV").val == true && Verzoegerung1 == 0 && getState("go-e.0.ampere").val <= 16) {
          console.warn('ego-charger +1A');
          Verzoegerung1 = 1;
          timeout = setTimeout(function () {
            Verzoegerung1 = 0;
          }, 15000);
          setState("go-e.0.ampere"/*Ampere for PWM (amp)*/, (getState("go-e.0.ampere").val + 1));
        }
      });
      
      Verzoegerung2 = 0;
      // Bezug, Ampere senken
      on({id: 'sma-em.0.3006136297.pregard', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : "") >= getState("0_userdata.0.Energy.Bezug_MAX").val && getState("0_userdata.0.Energy.Go-echarger_mit_PV").val == true && Verzoegerung2 == 0 && getState("go-e.0.ampere").val >= 6) {
          Verzoegerung2 = 1;
          timeout2 = setTimeout(function () {
            Verzoegerung2 = 0;
          }, 15000);
          setState("go-e.0.ampere"/*Ampere for PWM (amp)*/, (getState("go-e.0.ampere").val - 1));
        }
      });
      
      

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @lobomau last edited by Homoran

        @lobomau sagte in Wert um 1 erhöhen gibt Fehler:

        You are assigning a string to the state "go-e.0.ampere" which expects a number.

        du weist dem Datenpunkt einen String zu, der Datenpunkt scheint aber eine Zahl zu erwarten.

        Was ist denn der Datenpunkt go-e0.ampere für ein Typ?
        und wo im Skript nutzst du ihn?

        EDIT

        script.js.common.Energie.Auto_Charge.PV_Go-echarger:15:5
        

        also in Zeile 15, an Position 5

        Stell mal die Ansicht von Blockly auf javascript um und sieh an dieser Stelle nach

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

          @lobomau sagte:

          Der untere Block wo ich einen Wert -1 abziehe funktioniert. Beim oberen Teil, wo ich den Wert hinzuaddiere +1 bekomme ich eine Warnung

          Wenn der Datenpunkt "go-e.0.ampere" einen String enthält, wird bei +1 eine String-Verkettung gemacht und bei -1 erfolgt eine implizite Typwandlung in eine Zahl.

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

            @paul53 cool. Danke. Interessant ,dass das einen Unterschied macht. Ich Versuche das mal umzubauen.

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

              @Homoran Blockly in Javascript siehst du unter dem unteren Spoiler. Fehler ist inzwischen geklärt. An der Lösung bin ich dran... wenn das überhaupt mit Blockly geht....

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

                @lobomau sagte:

                wenn das überhaupt mit Blockly geht.

                Blockly_temp.JPG

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

                  @paul53 ja, vielen Dank! Bin parallel selbst drauf gekommen 🙂
                  So funktioniert es:
                  527da837-ddb2-4946-b923-27b943ca4537-image.png

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

                    @lobomau sagte:

                    So funktioniert es:

                    Die Zahl 1 muss nicht in eine Zahl gewandelt werden.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    875
                    Online

                    32.0k
                    Users

                    80.4k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    474
                    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