Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Meldung in Blockly: unsubscribe: empty name

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

Meldung in Blockly: unsubscribe: empty name

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
10 Beiträge 3 Kommentatoren 1.1k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich verzweifle an einer (jetzt anderen) Fehlermeldung.
    Ich habe ein Script geschrieben (bzw. bin noch dabei), das meinen Firmen-PlugIn Hybrid bei zu viel Solarüberschuss laden soll.

    Die gewünschten Meldungen kamen nicht, da habe ich weitere Debug-Blocklys eingebaut.
    Seitdem kam erst die Meldung: javascript.0 2020-02-21 17:06:50.130 error (11144) Error by subscription: empty ID defined. All states matched. (Vorher lief mit gleichem Blockly alles ohne Error)

    Diese stand nur im "richtigen" log, nicht im js-Editor-Log. ein debug brachte auch keine Erhellung
    Auch war nichts im Editor angemeckert.

    Ich fand dann etwas in dem js-code.
    Zu der Zeit hatte ich im Bereich "Meldung" noch aus früheren Versuchen einen Vergleich von value != lastValue drin.
    Deswegen auch das Konstrukt mit dem Trigger auf die Variable, wovon ich gar nicht weiß ob das erlaubt ist.

    Dann habe ich diese Bausteine rausgenommen, und der Fehler trat nicht mehr auf.
    Jedoch jetzt kommt beim Neustart der oben genannte Fehler.

    Hier der js-Code

    var Wolkentimer, _C3_9Cberschusszeit, konstanter_Strom;
    
    
    schedule("*/3 8-22 * * *", function () {
      // Ladesteuerung
      if (getState('hm-rpc.0.LTK0124430.1.STATE').val == false) {
        if (getState('smartmeter.0.1-0:16_7_0__255.value').val < -1500 && konstanter_Strom == true) {
          setState("hm-rpc.0.LTK0124430.1.STATE"/*Ladestrom_Auto:1.STATE*/, true);
        }
      } else if (getState('hm-rpc.0.LTK0124430.1.STATE').val == true) {
        if (getState('smartmeter.0.1-0:16_7_0__255.value').val > 500 && Wolkentimer < 3) {
          setState("hm-rpc.0.LTK0124430.1.STATE"/*Ladestrom_Auto:1.STATE*/, false);
        }
      }
    });
    // Not-Aus
    on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState('smartmeter.0.1-0:16_7_0__255.value').val > 1200) {
        setState("hm-rpc.0.LTK0124430.1.STATE"/*Ladestrom_Auto:1.STATE*/, false);
      }
    });
    // Meldung
    on({id: konstanter_Strom, change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      console.log((['---007--- Der Solarüberschuss ist seit ',konstanter_Strom ? ('' + (_C3_9Cberschusszeit * 3)) : ('' + (Wolkentimer * 3)),' Minuten',konstanter_Strom ? ' ' : ' nicht ',' über 1500 Watt, das Auto kann',konstanter_Strom ? ' ' : ' nicht ','geladen werden.',Wolkentimer > 0 ? ' Achtung wolkig!' : '',getState('hm-rpc.0.LTK0124430.1.STATE').val ? ' Das Auto wird geladen!' : '','Es ist schon seit ',('' + (Wolkentimer * 3)),' Minuten bewölkt.'].join('')));
    });
    
    Wolkentimer = 0;
    _C3_9Cberschusszeit = 0;
    konstanter_Strom = false;
    schedule("*/3 8-22 * * *", function () {
      // Wolkenwächter
      if (getState('hm-rpc.0.LTK0124430.1.STATE').val == false) {
        if (getState('smartmeter.0.1-0:16_7_0__255.value').val < -1500) {
          _C3_9Cberschusszeit = _C3_9Cberschusszeit + 1;
          if (_C3_9Cberschusszeit > 5) {
            konstanter_Strom = true;
            Wolkentimer = 0;
          }
        } else if (getState('smartmeter.0.1-0:16_7_0__255.value').val >= -1500) {
          Wolkentimer = Wolkentimer + 1;
          if (Wolkentimer > 3) {
            _C3_9Cberschusszeit = 0;
            konstanter_Strom = false;
          }
        }
      } else if (getState('hm-rpc.0.LTK0124430.1.STATE').val == true) {
        if (getState('smartmeter.0.1-0:16_7_0__255.value').val < 500) {
          _C3_9Cberschusszeit = _C3_9Cberschusszeit + 1;
          if (_C3_9Cberschusszeit > 5) {
            konstanter_Strom = true;
            Wolkentimer = 0;
          }
        } else if (getState('smartmeter.0.1-0:16_7_0__255.value').val >= 500) {
          Wolkentimer = Wolkentimer + 1;
          if (Wolkentimer > 3) {
            _C3_9Cberschusszeit = 0;
            konstanter_Strom = false;
          }
        }
      }
      console.log((['Der Solarüberschuss ist seit ',konstanter_Strom ? ('' + (_C3_9Cberschusszeit * 3)) : ('' + (Wolkentimer * 3)),' Minuten',konstanter_Strom ? ' ' : ' nicht ',' über 1500 Watt, das Auto kann',konstanter_Strom ? ' ' : ' nicht ','geladen werden.',Wolkentimer > 0 ? ' Achtung wolkig!' : '',getState('hm-rpc.0.LTK0124430.1.STATE').val ? ' Das Auto wird geladen!' : '','Es ist schon seit ',('' + (Wolkentimer * 3)),' Minuten bewölkt.',_C3_9Cberschusszeit].join('')));
    });
    

    Und hier das Blockly:


    Ladekontrolle.png

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    paul53P 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      Hallo zusammen,

      ich verzweifle an einer (jetzt anderen) Fehlermeldung.
      Ich habe ein Script geschrieben (bzw. bin noch dabei), das meinen Firmen-PlugIn Hybrid bei zu viel Solarüberschuss laden soll.

      Die gewünschten Meldungen kamen nicht, da habe ich weitere Debug-Blocklys eingebaut.
      Seitdem kam erst die Meldung: javascript.0 2020-02-21 17:06:50.130 error (11144) Error by subscription: empty ID defined. All states matched. (Vorher lief mit gleichem Blockly alles ohne Error)

      Diese stand nur im "richtigen" log, nicht im js-Editor-Log. ein debug brachte auch keine Erhellung
      Auch war nichts im Editor angemeckert.

      Ich fand dann etwas in dem js-code.
      Zu der Zeit hatte ich im Bereich "Meldung" noch aus früheren Versuchen einen Vergleich von value != lastValue drin.
      Deswegen auch das Konstrukt mit dem Trigger auf die Variable, wovon ich gar nicht weiß ob das erlaubt ist.

      Dann habe ich diese Bausteine rausgenommen, und der Fehler trat nicht mehr auf.
      Jedoch jetzt kommt beim Neustart der oben genannte Fehler.

      Hier der js-Code

      var Wolkentimer, _C3_9Cberschusszeit, konstanter_Strom;
      
      
      schedule("*/3 8-22 * * *", function () {
        // Ladesteuerung
        if (getState('hm-rpc.0.LTK0124430.1.STATE').val == false) {
          if (getState('smartmeter.0.1-0:16_7_0__255.value').val < -1500 && konstanter_Strom == true) {
            setState("hm-rpc.0.LTK0124430.1.STATE"/*Ladestrom_Auto:1.STATE*/, true);
          }
        } else if (getState('hm-rpc.0.LTK0124430.1.STATE').val == true) {
          if (getState('smartmeter.0.1-0:16_7_0__255.value').val > 500 && Wolkentimer < 3) {
            setState("hm-rpc.0.LTK0124430.1.STATE"/*Ladestrom_Auto:1.STATE*/, false);
          }
        }
      });
      // Not-Aus
      on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState('smartmeter.0.1-0:16_7_0__255.value').val > 1200) {
          setState("hm-rpc.0.LTK0124430.1.STATE"/*Ladestrom_Auto:1.STATE*/, false);
        }
      });
      // Meldung
      on({id: konstanter_Strom, change: "any"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        console.log((['---007--- Der Solarüberschuss ist seit ',konstanter_Strom ? ('' + (_C3_9Cberschusszeit * 3)) : ('' + (Wolkentimer * 3)),' Minuten',konstanter_Strom ? ' ' : ' nicht ',' über 1500 Watt, das Auto kann',konstanter_Strom ? ' ' : ' nicht ','geladen werden.',Wolkentimer > 0 ? ' Achtung wolkig!' : '',getState('hm-rpc.0.LTK0124430.1.STATE').val ? ' Das Auto wird geladen!' : '','Es ist schon seit ',('' + (Wolkentimer * 3)),' Minuten bewölkt.'].join('')));
      });
      
      Wolkentimer = 0;
      _C3_9Cberschusszeit = 0;
      konstanter_Strom = false;
      schedule("*/3 8-22 * * *", function () {
        // Wolkenwächter
        if (getState('hm-rpc.0.LTK0124430.1.STATE').val == false) {
          if (getState('smartmeter.0.1-0:16_7_0__255.value').val < -1500) {
            _C3_9Cberschusszeit = _C3_9Cberschusszeit + 1;
            if (_C3_9Cberschusszeit > 5) {
              konstanter_Strom = true;
              Wolkentimer = 0;
            }
          } else if (getState('smartmeter.0.1-0:16_7_0__255.value').val >= -1500) {
            Wolkentimer = Wolkentimer + 1;
            if (Wolkentimer > 3) {
              _C3_9Cberschusszeit = 0;
              konstanter_Strom = false;
            }
          }
        } else if (getState('hm-rpc.0.LTK0124430.1.STATE').val == true) {
          if (getState('smartmeter.0.1-0:16_7_0__255.value').val < 500) {
            _C3_9Cberschusszeit = _C3_9Cberschusszeit + 1;
            if (_C3_9Cberschusszeit > 5) {
              konstanter_Strom = true;
              Wolkentimer = 0;
            }
          } else if (getState('smartmeter.0.1-0:16_7_0__255.value').val >= 500) {
            Wolkentimer = Wolkentimer + 1;
            if (Wolkentimer > 3) {
              _C3_9Cberschusszeit = 0;
              konstanter_Strom = false;
            }
          }
        }
        console.log((['Der Solarüberschuss ist seit ',konstanter_Strom ? ('' + (_C3_9Cberschusszeit * 3)) : ('' + (Wolkentimer * 3)),' Minuten',konstanter_Strom ? ' ' : ' nicht ',' über 1500 Watt, das Auto kann',konstanter_Strom ? ' ' : ' nicht ','geladen werden.',Wolkentimer > 0 ? ' Achtung wolkig!' : '',getState('hm-rpc.0.LTK0124430.1.STATE').val ? ' Das Auto wird geladen!' : '','Es ist schon seit ',('' + (Wolkentimer * 3)),' Minuten bewölkt.',_C3_9Cberschusszeit].join('')));
      });
      

      Und hier das Blockly:


      Ladekontrolle.png

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @Homoran sagte:

      on({id: konstanter_Strom, change: "any"}, function (obj) {

      Man kann nicht auf eine boolsche Variable triggern, sondern nur auf eine Datenpunkt-ID.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      HomoranH O 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @Homoran sagte:

        on({id: konstanter_Strom, change: "any"}, function (obj) {

        Man kann nicht auf eine boolsche Variable triggern, sondern nur auf eine Datenpunkt-ID.

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #3

        @paul53 Danke!
        Hatte ich befürchtet, erst war es auch eine numerische Variable. Deshalb wollte ich auch den Wertevergleich zum lastValue machen.
        Lief aber jetzt drei Tage ohne Fehlermeldung.
        Lediglich die Meldungen blieben aus.
        Da aber in den letzten Tagen nie 15 Minuten lang die Sonne am Stück schien, hatte ich auch nichts erwartet.

        Mich wundert schon, dass das heutige Einfügen von einem Debug Baustein zu dem Auftauchen der Fehlermeldung(en) führte.

        Wie kann man denn in Blockly den lastValue nutzen?
        Da ich keine andere Möglichkeit fand, bin ich auf das Konstrukt mit dem Trigger auf eine Variable gekommen

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        paul53P 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @paul53 Danke!
          Hatte ich befürchtet, erst war es auch eine numerische Variable. Deshalb wollte ich auch den Wertevergleich zum lastValue machen.
          Lief aber jetzt drei Tage ohne Fehlermeldung.
          Lediglich die Meldungen blieben aus.
          Da aber in den letzten Tagen nie 15 Minuten lang die Sonne am Stück schien, hatte ich auch nichts erwartet.

          Mich wundert schon, dass das heutige Einfügen von einem Debug Baustein zu dem Auftauchen der Fehlermeldung(en) führte.

          Wie kann man denn in Blockly den lastValue nutzen?
          Da ich keine andere Möglichkeit fand, bin ich auf das Konstrukt mit dem Trigger auf eine Variable gekommen

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @Homoran sagte:

          Wie kann man denn in Blockly den lastValue nutzen?

          Die vordefinierte Variable ist oldValue und muss beim Erstellen genau so geschrieben werden.

          Blockly_temp.JPG

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          HomoranH 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Homoran sagte:

            Wie kann man denn in Blockly den lastValue nutzen?

            Die vordefinierte Variable ist oldValue und muss beim Erstellen genau so geschrieben werden.

            Blockly_temp.JPG

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #5

            @paul53 Klar, aber ich habe keine ID, sondern nur die Variable.

            Dann muss ich eben noch eine Variable erstellen, und da beim Cronaufruf immer erst den Wert reinschreiben, nachdem ich den alten zum Vergleich genommen habe.

            Dann ist der "neue" beim nächsten Aufruf der "alte" ;-)

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @Homoran sagte:

              on({id: konstanter_Strom, change: "any"}, function (obj) {

              Man kann nicht auf eine boolsche Variable triggern, sondern nur auf eine Datenpunkt-ID.

              O Offline
              O Offline
              oFbEQnpoLKKl6mbY5e13
              schrieb am zuletzt editiert von
              #6

              @paul53 sagte in Meldung in Blockly: unsubscribe: empty name:

              @Homoran sagte:

              on({id: konstanter_Strom, change: "any"}, function (obj) {

              Man kann nicht auf eine boolsche Variable triggern, sondern nur auf eine Datenpunkt-ID.

              Bin ich heute drüber gestolpert, weil ich beim Stoppen eines Skriptes folgenden Fehler erhalten habe:

              javascript.0	2022-04-27 14:50:33.650	warn	unsubscribe: empty name
              

              Ohne diesen Thread wäre ich nie darauf gekommen, woran das liegt. Komisch, dass der Fehler nur beim Stoppen des Skriptes kommt.

              Gerade stehe ich auf dem Schlauch, wie reagiere ich denn dann auf die Änderung einer Variable?

              paul53P 1 Antwort Letzte Antwort
              0
              • O oFbEQnpoLKKl6mbY5e13

                @paul53 sagte in Meldung in Blockly: unsubscribe: empty name:

                @Homoran sagte:

                on({id: konstanter_Strom, change: "any"}, function (obj) {

                Man kann nicht auf eine boolsche Variable triggern, sondern nur auf eine Datenpunkt-ID.

                Bin ich heute drüber gestolpert, weil ich beim Stoppen eines Skriptes folgenden Fehler erhalten habe:

                javascript.0	2022-04-27 14:50:33.650	warn	unsubscribe: empty name
                

                Ohne diesen Thread wäre ich nie darauf gekommen, woran das liegt. Komisch, dass der Fehler nur beim Stoppen des Skriptes kommt.

                Gerade stehe ich auf dem Schlauch, wie reagiere ich denn dann auf die Änderung einer Variable?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @ofbeqnpolkkl6mby5e13 sagte: wie reagiere ich denn dann auf die Änderung einer Variable?

                Man kann nur auf die Änderung eines Datenpunktes per Trigger reagieren. Eine Variable ändert sich nicht ohne Trigger.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                O 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @ofbeqnpolkkl6mby5e13 sagte: wie reagiere ich denn dann auf die Änderung einer Variable?

                  Man kann nur auf die Änderung eines Datenpunktes per Trigger reagieren. Eine Variable ändert sich nicht ohne Trigger.

                  O Offline
                  O Offline
                  oFbEQnpoLKKl6mbY5e13
                  schrieb am zuletzt editiert von
                  #8

                  @paul53

                  Wenn die Änderung eines Datenpunkts zur Änderung einer Variable führt und nach Ablauf einer Zeit (Timeout oder Pause) die Variable im Skript ohne Änderung des Datenpunkts geändert wird, dann eben schon.

                  Da ich mit Blockly unterwegs bin: sollte es dann nicht besser gar nicht erst möglich sein, eine Variable in einen Triggerblock stecken zu können?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • O oFbEQnpoLKKl6mbY5e13

                    @paul53

                    Wenn die Änderung eines Datenpunkts zur Änderung einer Variable führt und nach Ablauf einer Zeit (Timeout oder Pause) die Variable im Skript ohne Änderung des Datenpunkts geändert wird, dann eben schon.

                    Da ich mit Blockly unterwegs bin: sollte es dann nicht besser gar nicht erst möglich sein, eine Variable in einen Triggerblock stecken zu können?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @ofbeqnpolkkl6mby5e13 sagte: sollte es dann nicht besser gar nicht erst möglich sein, eine Variable in einen Triggerblock stecken zu können?

                    Die Variable kann auch eine Datenpunkt-ID enthalten, was funktioniert. Blockly kann das nicht überprüfen.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    O 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @ofbeqnpolkkl6mby5e13 sagte: sollte es dann nicht besser gar nicht erst möglich sein, eine Variable in einen Triggerblock stecken zu können?

                      Die Variable kann auch eine Datenpunkt-ID enthalten, was funktioniert. Blockly kann das nicht überprüfen.

                      O Offline
                      O Offline
                      oFbEQnpoLKKl6mbY5e13
                      schrieb am zuletzt editiert von
                      #10

                      @paul53

                      Okay. Danke!

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      837

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe