NEWS
Gelöst: Warum wird dieses Skript bei Neustart ausgeführt?
-
Setze die Definition der Variablen in einen Timeout der die erst nach X Sekunden setzt.
EDIT: oder gleich alles. (wenn das mit Bloody geht)
-
@lemonbiter
hi, ok, habe mir das nochmal angeschaut.
Das Problem liegt daran, denke ich, das der letzte Wert. z.B. 1002 drin stehen bleibt und beim Start dann auch drin ist. somit geht auf aktualisieren und grösser... nicht.
zudem löst dann dein script aus, da 1002 schon drin steht und deine Bedingung stimmt. -
@lemonbiter
Warum wird das Skript beim Start des ioBroker ausgeführt ? Weil der deconz adapter alle States abfragt und aktualisiert.. Dann kommt der Trigger.Wenn du eine neue Version des Adapters (ab welcher genau kann ich nicht sagen) einsetzt solltest Du an Stelle des buttonevent den buttonpressed nutzen können, dann mit "Größer als letztes" an Stelle von "wurde geändert"
A.
-
Nicht geschrieben weil ich nicht weiß was was ist. Du hast bei Anerkannt als: egal stehen. Einer der beiden Werte könnte dein Problem auch lösen.
EDIT: Das Skript wird ausgeführt weil der Adapter sehr wahrscheinlich den Wert bei Neustart aktualisiert mit ack:true.
-
Vielen Dank. Ich denke ihr habt verdammt recht mit der Annahme, dass 1002 im Status steht und das Script deswegen triggert.
Ihr habt verdammt unrecht, wenn ihr glaubt, ich würde nun wissen was zu tun ist
Bin ja Anfänger... LOLAlso so verstehe ich Euch:
Erstens als Trigger "buttenpressed" abfragen, da gibt es tatsächlich 1002 und 1004
Zweitens "wurde aktualisiert" auf "wurde geändert" setzen. Demnach sollte das Skript so aussehen?Kanns grad mal wieder nicht testen. Chefin schläft...
Wenns morgen läuft faxe ich Euch ein BierDanke nochmals sehr und ich melde mich nach dem Test
LG
Lem -
@lemonbiter so sieht es gut aus
A.
-
Und wenns nicht geht versuche mal diese Einstellung aus:
Bild war nicht das was ich zeigen wollte. s.u.
-
@lemonbiter
Also, beim Neustart wird ja jedes Skript aktiviert.
Gibt es darin Blöcke, die nicht von einem Trigger umschlossen sind, werden diese ausgeführt.
Ist der Trigger erfüllt, wird er ausgeführt...Mal zwei Fragen:
Erstens, wieso nutzt Du überhaupt Variablen und vergleichst nicht direkt mit dem Wert? Also "falls Wert = 1002 mache"...
Finde es ein wenig "overkill", wenn der Wert einer Variablen nur einmal genutzt wird
Zweitens, kann das Objekt nur die Werte 1002 und 1004 haben?
Dann kannst Du Dir, meiner Meinung nach, das "sonst falls" sparen und es durch ein simples "sonst" ersetzen.Außerdem, Du vergleichst einmal auf "=0" und einmal auf ">=0", es wird also im Fall von "0" beides "wahr" sein.
Zum Schluss, denke der Trigger sollte auf "Aktualisierung" stehen, nicht auf "Änderung", sonst passiert nix, wenn Du nach einem Einfachklick nochmals einfach klickst.
Du könntest "Änderung" verwenden, dann müsstest Du aber dafür sorgen, dass der Wert, nachdem er genutzt wurde, z.B. auf "0" gesetzt wird (dann brauchst Du aber doch Dein "sonst falls" ). -
@lemonbiter
gerade nochmal nachgesehen war quark für den Schalter. Mein Hue Dimmer sendet nur Werte mit ack:true. -
@Alex-0
@ticaki
@Asgothian
@padrinoSo, getestet, läuft so wie oben. Ich danke Euch sehr, der Familienfriede ist zunächst wieder hergestellt
LG
Lem -
Das mit den Variablen ist ein Test gewesen. Ist eines der ersten Skripte und da wollte ich mal schauen ob ich was verstanden habe von den Schulungsvideos... HA!
Das Objekt "butonevent" kann insgesamt 1001, 1002, 1003 und 1004 haben.
Der Vergleich 0 und größer 0 rührt daher, dass der Taster (buttonevent) einen Homematic Dimmer steuert, und wenn beispielsweise die Lampe am Dimmer selbst auf 20% gestellt wurde, würde es in meinen Augen nicht funktionieren mit 1001 auszuschalten. Ebenso dimmt ja der Doppeklick auf 50% Helligkeit. Dann wäre der Dimmwert ergo nicht auf 0 und 1001 würde nicht ausschalten... Das Problem ist, dass der HM Dimmer kein Toggle kann.
Kann ich, mal abgesehen von der Variable also wirklich was einsparen?
Danke Dir für Deine Tipps
LG
Lem -
@lemonbiter
soweit ich das sehe könntest du auf > 0 testen und dann "sonst" verwenden.Im Moment testes du erst auf = 0 und dann auf >=0
-
@ticaki
Danke, werde ich gleich morgen mal testen!LG
Lem -
Darauf hab' ich doch oben auch schon hingewiesen.
@padrino sagte:
Außerdem, Du vergleichst einmal auf "=0" und einmal auf ">=0", es wird also im Fall von "0" beides "wahr" sein.