NEWS
Meldung in Blockly: unsubscribe: empty name
-
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
Und hier das Blockly:
-
@Homoran sagte:
on({id: konstanter_Strom, change: "any"}, function (obj) {
Man kann nicht auf eine boolsche Variable triggern, sondern nur auf eine Datenpunkt-ID.
-
@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 -
@Homoran sagte:
Wie kann man denn in Blockly den lastValue nutzen?
Die vordefinierte Variable ist oldValue und muss beim Erstellen genau so geschrieben werden.
-
@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"
-
@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?
-
@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.
-
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?
-
@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.
-
Okay. Danke!