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.



-
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.

-
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.



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.
-
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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden