NEWS
Etwas nur tagsüber laufen lassen
-
Ich habs jetzt mal ausporbieren können und bekomme das Ding irgendwie nicht zum Fliegen.
Das beschert mir nur einen Fehler:
script.js.Tests.Test_Tageszeit Error by subscription (trigger): Wrong ID of type boolean or number.
Ich verstehe nicht, was für ein Problem er hat, denn der triggernde DP ist Boolean.
-
@bertderkleine Im Trigger den blauen Baustein entfernen und dann NUR die ObjektID auswählen
-
@bertderkleine
Den Fehler hat Dir @DJMarc75 genannt.Du kannst das aber auch noch vereinfachen:
- Du brauchst keine zwei "Falls". 1 Block mit "Falls/Sonst" tut's auch.
- Wenn der Trigger schon auf den richtigen DP zeigt, musst Du den Wert nicht nochmal lesen. Nimm aus dem Bereich "Trigger" den Block "Wert".
- Boolean muss man nicht mit "Falls Wert = True" oder "Falls Wert = False" prüfen.
Hier reicht ein "Falls Wert" bzw. "Falls Nicht Wert".
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps
Edit: Vorschlag:
-
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
Ich verstehe nicht, was für ein Problem er hat, denn der triggernde DP ist Boolean.
Was Du machst, ist gerade:
"Lieber JavaScript-Adapter, sag mir mal wann sich das hier ändert:
true
"Das ist der Wert des Datenpunktes (wie hier schon erläutert). Und damit gibt es keine Referenz mehr auf die Objekt-ID. Eigentlich hatte ich die Blöcke mal grün gefärbt, damit man sieht dass da ein String rein muss...
Da die Warnung für Dich scheinbar nicht verständlich ist: Wie hätte diese denn lauten müssen, damit Du weißt was falsch ist?
-
@codierknecht
Danke Dir.
Ich hoffe, so ist es nun richtig:
-
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
Ich hoffe, so ist es nun richtig:
Ja, würde zwar den Wert aus dem Trigger nehmen (siehe oben von @Codierknecht ), aber geht.
Hat nur das Problem, dass auf jeden Fall nach 5 Min das Licht ausgeht, auch wenn danach wieder eine neue Bewegung erkannt wird. Nur der "keine Bewegung mehr erkannt"-Zweig verlängert das um weitere 5min.
Ein manueller Timeout löst das Problem.
-
Wie @haus-automatisierung schon schreibt: Versuche es mit einem selbst hinzugefügten Timeout zu lösen.
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/9
-
@bertderkleine wie schon von @haus-automatisierung geschrieben würde ein Timeout das lösen:
-
@haus-automatisierung sagte in Etwas nur tagsüber laufen lassen:
Was Du machst, ist gerade:
"Lieber JavaScript-Adapter, sag mir mal wann sich das hier ändert:true
"Genau, und das klingt für mich erstmal richtig. Ich will prüfen, ob sich true auf false und umgekehrt ändert.
Das ist der Wert des Datenpunktes (wie hier schon erläutert). Und damit gibt es keine Referenz mehr auf die Objekt-ID.
Tatsächlich weiss ich nicht, was Du ausdrücken willst. Die Objekt ID steht da doch.
Eigentlich hatte ich die Blöcke mal grün gefärbt, damit man sieht dass da ein String rein muss...
Für jemanden wie mich ist das noch verwirrender, denn ich verstehe vollends nicht wie hier ein String ins Spiel kommt.
Da die Warnung für Dich scheinbar nicht verständlich ist: Wie hätte diese denn lauten müssen, damit Du weißt was falsch ist?
- Mir ergab sich aus der Formulierung nicht, ob der Fehler besagt, dass da irgendwo ein "boolean or number" hinmuss oder ob derlei irgendwo wegmuss.
- "Wrong ID" liest sich für mich auch erstmal so, als ob da ein anderer datenpunkt hinmuss oder umformatiert werden muss.
Ich würde mir theoretisch wohl sowas wie "object ID expected, not value of one" wünschen.
Am Ende sehe ich aber meinen Hauptfehler, denn in dem Blocklybaustein wird ja visuell genau eine ObjectID impliziert, die ich dann doof mit "Wert von" überschrieben habe.
Sorry dafür. -
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
Genau, und das klingt für mich erstmal richtig. Ich will prüfen, ob sich true auf false und umgekehrt ändert.
Geht aber nicht, weil Du dem System nicht mitteilst was das ist. Sondern nur den aktuellen Wert von "irgendwas".
Kannst mir bescheid sagen, wenn sich
42
ändert? -
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
Die Objekt ID steht da doch.
nein! da steht Wert von objectID
-
Weil ich eh gerade dran bin, gibts bald ein kleines Ausrufezeichen mit einer Warnung wenn man den Block dort verbindet
Ist erstmal nur ein Hinweis - könnte ja sein, dass der Wert eine Objekt-ID ist. Und dann würde es wieder gehen...