Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Erstes Blockly und ich bin am scheitern!?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Erstes Blockly und ich bin am scheitern!?

    This topic has been deleted. Only users with topic management privileges can see it.
    • ub.privat
      ub.privat @Homoran last edited by

      @homoran

      Die Punkte sind selbst erstellt, werde das ändern:

      Schaut dann so aus:
      b70aa1d2-6764-4b55-857b-01d2ad9a4fe5-grafik.png

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

        @homoran
        Ist das wirklich relevant, ob man hier aktualisiere oder steure nimmt? So wie ich den Unterschied verstanden habe, gibts bei steuere noch quasi ein Enter hinterher und aktualisiere schreibt nur.

        @Ahnungsbefreit
        war auch kein Vorwurf 😉

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

          @jan1 sagte in Erstes Blockly und ich bin am scheitern!?:

          Ist das wirklich relevant, ob man hier aktualisiere oder steure nimmt?

          Hier nur kosmetisch. Dann gibt es keine roten Werte 😉

          bei Steuerung von Adaptern über deren Datenpunkte muss steuere genommen werden um dem Adapter zu sagen, dass dieser etwas tun soll.
          Nach getaner Arbeit setzt dieser dann das ACK-Flag auf true (was beim aktualisiere von vornherein gesetzt wird)

          J ub.privat 2 Replies Last reply Reply Quote 0
          • J
            Jan1 @Homoran last edited by

            @homoran
            Ok, so gesehen kommt das auf das Selbe raus wie ich es verstanden hatte, aber schön wenn mans dann doch genau weiß 🙂

            ub.privat 1 Reply Last reply Reply Quote 0
            • ub.privat
              ub.privat @Homoran last edited by

              @homoran

              Moin,moin! Da alles gestern so gut funktioniert hat, muss ich heute nochmals nachfragen.
              Bei einem weiteren Skript

              // VD_IMPULS - täglich 00:01Uhr
              schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"days":1}}', function () {
                setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Tageszähler"/*VD_IMPULS_Tageszähler*/, (getState("hpcontrol.0.values.057").val - getState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Tagesvariable").val), true);
              });
              schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"days":1}}', function () {
                setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Tagesvariable"/*VD_IMPULS_Tagesvariable*/, getState("hpcontrol.0.values.057").val, true);
              });
              // PV_Monatsertrag - monatlich letzter Tag
              schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"months":1}}', function () {
                setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Monatszähler"/*VD_IMPULS_Monatszähler*/, (getState("hpcontrol.0.values.057").val - getState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Monatsvariable").val), true);
              });
              schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"months":1}}', function () {
                setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Monatsvariable"/*VD_IMPULS_Monatsvariable*/, getState("hpcontrol.0.values.057").val, true);
              });
              // PV_Jahresertrag - jährlich letzter Monat
              schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () {
                setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Jahreszähler"/*VD_IMPULS_Jahreszähler*/, (getState("hpcontrol.0.values.057").val - getState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Jahresvariable").val), true);
              });
              schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () {
                setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Jahresvariable"/*VD_IMPULS_Jahresvariable*/, getState("hpcontrol.0.values.057").val, true);
              });
              

              Bekomme ich folgende Fehlermeldung:

              3.3.2021, 08:54:37.026	[info ]: javascript.0 (19908) Stop script script.js.common.PV_ERZEUGUNG
              3.3.2021, 08:54:37.086	[info ]: javascript.0 (19908) Start javascript script.js.common.PV_ERZEUGUNG
              3.3.2021, 08:54:37.104	[error]: javascript.0 (19908) script.js.common.PV_ERZEUGUNG: /opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330
              3.3.2021, 08:54:37.105	[error]: javascript.0 (19908)     at script.js.common.PV_ERZEUGUNG:9:1
              

              In Zeile 9 ist aber nichts anders als in den vorherigen Zeilen!?

              Wo und nach was muss ich suchen?

              1 Reply Last reply Reply Quote 0
              • ub.privat
                ub.privat @Jan1 last edited by

                @jan1

                Guten Morgen, ich muss nochmals um eure fachliche Hilfe bitten.
                Das mit "Blockly" wird so langsam. Die Logiken sind soweit verständlich, jedoch die Fehlermeldungen bereiten mir Kopfzerbrechen.

                Folgendes Script zeigt beim Speichern keinen Fehler:
                Es sollen die Tages-, Monats- und Jahreswerte ermittelt werden.

                / PV_Tagesertag - Tageswechsel
                schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}', function () {
                  setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tageszähler"/*PV_Tageszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tagesvariable").val), true);
                });
                schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', function () {
                  setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tagesvariable"/*PV_Tagesvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true);
                });
                // PV_Monatsertrag - monatlich letzter Tag
                schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"months":1},"valid":{"from":"05.03.2021","to":""}}', function () {
                  setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatszähler"/*PV_Monatszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatsvariable").val), true);
                });
                schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"months":1}}', function () {
                  setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatsvariable"/*PV_Monatsvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true);
                });
                // PV_Jahresertrag - jährlich letzter Monat
                schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"years":1,"yearDate":31,"yearMonth":12}}', function () {
                  setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahreszähler"/*PV_Jahreszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahresvariable").val), true);
                });
                schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () {
                  setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahresvariable"/*PV_Jahresvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true);
                });
                

                Doch das Fehlerlog bringt folgende Meldung:

                javascript.0	2021-03-05 08:10:38.797	error	(2079) at Script.runInContext (vm.js:130:18)
                javascript.0	2021-03-05 08:10:38.797	error	(2079) at script.js.common.PV_ERZEUGUNG:9:1
                javascript.0	2021-03-05 08:10:38.796	error	(2079) at schedule (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1183:52)
                javascript.0	2021-03-05 08:10:38.796	error	(2079) at Scheduler.add (/opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330:51)
                javascript.0	2021-03-05 08:10:38.796	error	(2079) TypeError: sch.period.months.map is not a function
                javascript.0	2021-03-05 08:10:38.796	error	(2079) ^
                javascript.0	2021-03-05 08:10:38.796	error	(2079) sch.period.months = sch.period.months.map(m => m - 1);
                javascript.0	2021-03-05 08:10:38.795	error	(2079) script.js.common.PV_ERZEUGUNG: /opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330
                

                In Zeile 5 wird der Fehler ausgewiesen, doch was mache ich hier verkehrt?

                J Homoran 2 Replies Last reply Reply Quote 0
                • J
                  Jan1 @ub.privat last edited by

                  @ub-privat
                  Poste mal den Blockly Export

                  ub.privat 1 Reply Last reply Reply Quote 0
                  • ub.privat
                    ub.privat @Jan1 last edited by

                    @jan1

                    Blockly:
                    065fe05d-ca56-456a-8b82-9411bbbf2fc0-grafik.png

                    Export:

                    // PV_Tagesertag - Tageswechsel
                    schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}', function () {
                      setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tageszähler"/*PV_Tageszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tagesvariable").val), true);
                    });
                    schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', function () {
                      setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tagesvariable"/*PV_Tagesvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true);
                    });
                    // PV_Monatsertrag - monatlich letzter Tag
                    schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"months":1},"valid":{"from":"05.03.2021","to":""}}', function () {
                      setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatszähler"/*PV_Monatszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatsvariable").val), true);
                    });
                    schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"months":1}}', function () {
                      setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatsvariable"/*PV_Monatsvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true);
                    });
                    // PV_Jahresertrag - jährlich letzter Monat
                    schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"years":1,"yearDate":31,"yearMonth":12}}', function () {
                      setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahreszähler"/*PV_Jahreszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahresvariable").val), true);
                    });
                    schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () {
                      setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahresvariable"/*PV_Jahresvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true);
                    });
                    
                    
                    J 1 Reply Last reply Reply Quote 0
                    • J
                      Jan1 @ub.privat last edited by

                      @ub-privat
                      Ok, dann kann ich nur vermuten, dass sich die DPs im Format beißen. Schau mal in den DPs mit denen Du rechnest, ob auch wirklich alle als Zahl deklariert sind.
                      Dann verwende ich beim Triggee wesentlich lieber CRON als diesen Zeitplan. Da gabs auch schon Probleme.

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @ub.privat last edited by

                        @ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:

                        was mache ich hier verkehrt?

                        @ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:

                        sch.period.months = sch.period.months.map(m => m - 1)

                        was bitte ist sch.period.months?

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        905
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        4
                        27
                        1537
                        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