Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [FEHLER] Blockly findet Objekte nicht mehr

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [FEHLER] Blockly findet Objekte nicht mehr

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

      Hallo,

      nachdem nach langer Zeit meine Berechnungen für die PV-Anlage ändern muss, habe ich festgestellt, dass Blockly die angegebene Objekt-ID nicht mehr findet.

      javascript.0	2017-06-09 14:20:57.995	info	Start javascript script.js.PV-Anlage.PV-Berechnungen
      javascript.0	2017-06-09 14:20:57.845	error	unsubscribe: invalid type of id - number
      javascript.0	2017-06-09 14:20:57.844	error	unsubscribe: invalid type of id - number
      javascript.0	2017-06-09 14:20:57.843	error	unsubscribe: invalid type of id - number
      javascript.0	2017-06-09 14:20:57.840	info	Stop script script.js.PV-Berechnungen
      
      

      Wenn ich sie auswähle, dann nimmt er sie. Im Log kommt dann aber obiger Fehler und die Werte werden auch nicht gesetzt.
      721_objektid.jpg

      Was nun?

      Gruß Marco

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

        JS Code?

        1 Reply Last reply Reply Quote 0
        • M
          Marcolotti last edited by

          // PV-Leistung berechnen
          on({id: getState("modbus.0.inputRegisters.30775_PVLeistung").val || getState("modbus.1.inputRegisters.30775_PV-Leistung").val, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            setState("javascript.0.PV_Anlage.Werte.PVLeistung"/*PVLeistung*/, (getState("modbus.0.inputRegisters.30775_PVLeistung").val + getState("modbus.1.inputRegisters.30775_PV-Leistung").val));
          });
          on({id: getState("modbus.0.inputRegisters.30531_Gesamtertrag").val || getState("modbus.1.inputRegisters.30531_Gesamtertrag").val, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            setState("javascript.0.PV_Anlage.Gesamtertrag"/*Gesamtertrag*/, (getState("modbus.0.inputRegisters.30531_Gesamtertrag").val + getState("modbus.1.inputRegisters.30531_Gesamtertrag").val), true);
          });
          on({id: getState("modbus.0.inputRegisters.30537_Tagesertrag").val || getState("modbus.1.inputRegisters.30537_Tagesertrag").val, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            setState("javascript.0.PV_Anlage.Tagesertrag"/*Tagesertrag*/, (getState("modbus.0.inputRegisters.30537_Tagesertrag").val + getState("modbus.1.inputRegisters.30537_Tagesertrag").val), true);
          });
          
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Marcolotti:

            // PV-Leistung berechnen
            on({id: getState("modbus.0.inputRegisters.30775_PVLeistung").val || 
            ```` `  
            

            Das ist keine ID, sondern eine Funktion. Eine Oder-Verknüpfung bei on(id,…) funktioniert nicht. Vorschlag:

            // PV-Leistung berechnen
            var leistung0 = getState("modbus.0.inputRegisters.30775_PVLeistung").val;
            var leistung1 = getState("modbus.1.inputRegisters.30775_PVLeistung").val;
            var gesamt0 = getState("modbus.0.inputRegisters.30531_Gesamtertrag").val;
            var gesamt1 = getState("modbus.1.inputRegisters.30531_Gesamtertrag").val;
            var tag0 = getState("modbus.0.inputRegisters.30537_Tagesertrag").val;
            var tag1 = getState("modbus.1.inputRegisters.30537_Tagesertrag").val;
            
            on("modbus.0.inputRegisters.30775_PVLeistung", function(obj) {
               leistung0 = obj.state.val;
               setState("javascript.0.PV_Anlage.Werte.PVLeistung", leistung0 + leistung1);
            });
            on("modbus.1.inputRegisters.30775_PVLeistung", function(obj) {
               leistung1 = obj.state.val;
               setState("javascript.0.PV_Anlage.Werte.PVLeistung", leistung0 + leistung1);
            });
            on("modbus.0.inputRegisters.30531_Gesamtertrag", function(obj) {
               gesamt0 = obj.state.val;
               setState("javascript.0.PV_Anlage.Werte.Gesamtertrag", gesamt0 + gesamt1);
            });
            on("modbus.1.inputRegisters.30531_Gesamtertrag", function(obj) {
               gesamt1 = obj.state.val;
               setState("javascript.0.PV_Anlage.Werte.Gesamtertrag", gesamt0 + gesamt1);
            });
            on("modbus.0.inputRegisters.30537_Tagesertrag", function(obj) {
               tag0 = obj.state.val;
               setState("javascript.0.PV_Anlage.Werte.Tagesertrag", tag0 + tag1);
            });
            on("modbus.1.inputRegisters.30537_Tagesertrag", function(obj) {
               tag1 = obj.state.val;
               setState("javascript.0.PV_Anlage.Werte.Tagesertrag", tag0 + tag1);
            });
            
            
            1 Reply Last reply Reply Quote 0
            • M
              Marcolotti last edited by

              Hallo Paul,

              das blöde ist, nutze ich ein altes Blockly-Script und baue die Funktion dort genauso ein, dann funktioniert es. Erstelle ich ein neues Script, gehts nicht.

              Gruß Marco

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

                @Marcolotti:

                nutze ich ein altes Blockly-Script und baue die Funktion dort genauso ein, dann funktioniert es. `
                Das kann nicht sein !

                1 Reply Last reply Reply Quote 0
                • M
                  Marcolotti last edited by

                  So Paul,

                  ich gebe dir in der Sache recht. Das mit "UND" und "ODER" funktioniert nicht. Trotzdem ist der Fehler bei neuen Blockly Scripts da, dass er die Objekte nicht findet. Bei alten Scripts "vor JS-Controller 1.0.3" geht es. Das ist jetzt nur eine Vermutung mit dem JS-Controller, weil es zeitlich genau in dem Rahmen liegt.

                  Gruß Marco

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  658
                  Online

                  32.0k
                  Users

                  80.5k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  882
                  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