NEWS
[gelöst]error (3377) unsubscribe: invalid type of id
-
Hallo, Ich wollte ein Skript in Blockly machen welches auf den Verbrauch einer Steckdose schaut. Wenn dieser unter 20W für 10 Sekunden ist, soll es einen Wert steuern. Nun habe ich leider wie im Titel einen error im Log verstehe aber meinen Fehler nicht. Hoffe jemand erkennt meinen Fehler.
-
@kitkattee Trigger in Trigger geht nicht und dazu ist auch die Wert-Abfrage falsch. Ich habe auf die schnelle versucht es darzustellen, wie man es machen muss.
-
Du machst 2 Fehler:
- Trigger in Trigger (im Trigger im Trigger). Das geht nicht.
- Trigger auf eine Logik Abfrage. Das geht auch nicht.
Das was Du tun willst ist sehr einfach zu realisieren:
Dabei ist zu beachten: Die Bausteine "previous value" und "state value" nutzen den gleichen Baustein mit unterschiedlicher Auswahl - den mit Objekt ID vorgelegten Baustein aus dem Folgenden Screenshot:
Wie funktioniert das und warum ?
- Der Trigger löst bei jeder Wertänderung aus.
- Wenn der Wert <= 20 ist wird (sofern denn aktiv) der 'Timeout' angehalten.
- Wenn der Wert > 20 ist, wird nur dann wenn der vorherige Wert kleiner oder gleich 20 war, also genau wenn der Wert das erste mal über 20 steigt ein Timeout gestartet.
Die Variante mit Abfragen alle 5 Sekunden ist generell nicht gut, müsste aber so aussehen:
Das ist aber deutlich aufwändiger und liefert schlechtere Ergebnisse.
Als letztes noch eine kurze Erklärung was der Unterschied zwischen diesen 2 Bausteinen ist:
Mit dem oberen Baustein weist Du den ioBroker an den State dessen ID du bei "object ID" auswählst / Einträgst zu überwachen, und jedes mal wenn die Bedingung (im Beispiel "ist wahr") zutrifft die in der Klammer eingehängten Bausteine auszuführen.
Mit dem unteren Baustein wird wenn das Skript diesen Baustein ausführt die Bedingung (die ich nicht angehängt habe) überprüft. Ist diese "wahr" werden die in der Klammer eingehängten Bausteine ausgeführt.
Damit sollte auch klar sein warum ein "trigger im trigger", i.e. das ineinanderschachteln der ersten Blöcke zumeist nicht funktioniert.
-
@asgothian Danke dir