NEWS
Selber einen Dimmer programmieren (Wo ist der Fehler?)
-
Hallo,
das Ziel ist es, dass das Licht immer langsam hochgedreht wird, und später wieder langsam runter gedreht wird.
Warum geht mein Script nicht?

-
Danke.
Das funktioniert schon mal deutlich besser.
Ich werde das die Tage testen. Es soll schön hochfahren und danach wieder runter fahren.
Ich hab den Eindruck, dass es etwas "ruckelt". Eventuell liegt es an den Glühbirnen von Innr oder ioBroker kann nicht so viele Befehle in wenigen Millisekunden versenden.
Mal schauen. Ich möchte da etwas schönes hinbekommen.
Vermutlich, muss ich die Funktion dann in jedes Script reinkopieren, oder? Sowas wie die Funktion aufrufen und die Lampen mitgeben, geht über mehrere Skripte nicht?
-
Danke.
Das funktioniert schon mal deutlich besser.
Ich werde das die Tage testen. Es soll schön hochfahren und danach wieder runter fahren.
Ich hab den Eindruck, dass es etwas "ruckelt". Eventuell liegt es an den Glühbirnen von Innr oder ioBroker kann nicht so viele Befehle in wenigen Millisekunden versenden.
Mal schauen. Ich möchte da etwas schönes hinbekommen.
Vermutlich, muss ich die Funktion dann in jedes Script reinkopieren, oder? Sowas wie die Funktion aufrufen und die Lampen mitgeben, geht über mehrere Skripte nicht?
@dave83 sagte in Selber einen Dimmer programmieren (Wo ist der Fehler?):
Ich hab den Eindruck, dass es etwas "ruckelt". Eventuell liegt es an den Glühbirnen von Innr oder ioBroker kann nicht so viele Befehle in wenigen Millisekunden versenden.
Mal schauen. Ich möchte da etwas schönes hinbekommen.
Vermutlich, muss ich die Funktion dann in jedes Script reinkopieren, oder? Sowas wie die Funktion aufrufen und die Lampen mitgeben, geht über mehrere Skripte nicht?Mal dumm gefragt - über welchen Adapter hast du die Birnen von Innr angeschlossen ?
Sollte es der Zigbee Adapter sein, dann hast du zwei viel einfachere Möglichkeiten die Lampen langsam (und ohne zucken) zu dimmen:
-
Option 1:
-- Lampe auf Helligkeit 1
-- Lampe einschalten
--transitiontimeauf die Zeit in der sie hell werden soll
-- Lampe auf Helligkeit x
--transitiontimeauf den alten Wert (üblicherweise 0) setzen. -
Option 2:
-- Lampe auf Helligkeit 1
-- Lampe einschalten
-- Datenpunktbrightness_moveauf x (die Einheit von brightness_move sollte 1/255 s sein)
-- nach Ablauf der Dimm-Zeit:brightness_moveauf 0
Etwas äquivalentes sollte auch bei Nutzung von deconz bzw. des Hue Adapters gehen - zumindest der Trick mit der Transition Time.
A.
Nachtrag: Sofern eine bestimmte Lampe immer langsam dimmen soll kannst du die Transitiontime generell auf einen höheren Wert setzen.
-
-
Danke.
Das funktioniert schon mal deutlich besser.
Ich werde das die Tage testen. Es soll schön hochfahren und danach wieder runter fahren.
Ich hab den Eindruck, dass es etwas "ruckelt". Eventuell liegt es an den Glühbirnen von Innr oder ioBroker kann nicht so viele Befehle in wenigen Millisekunden versenden.
Mal schauen. Ich möchte da etwas schönes hinbekommen.
Vermutlich, muss ich die Funktion dann in jedes Script reinkopieren, oder? Sowas wie die Funktion aufrufen und die Lampen mitgeben, geht über mehrere Skripte nicht?
-
Danke.
Das funktioniert schon mal deutlich besser.
Ich werde das die Tage testen. Es soll schön hochfahren und danach wieder runter fahren.
Ich hab den Eindruck, dass es etwas "ruckelt". Eventuell liegt es an den Glühbirnen von Innr oder ioBroker kann nicht so viele Befehle in wenigen Millisekunden versenden.
Mal schauen. Ich möchte da etwas schönes hinbekommen.
Vermutlich, muss ich die Funktion dann in jedes Script reinkopieren, oder? Sowas wie die Funktion aufrufen und die Lampen mitgeben, geht über mehrere Skripte nicht?
@dave83 sagte: Sowas wie die Funktion aufrufen und die Lampen mitgeben, geht über mehrere Skripte nicht?
Doch: Wenn die Funktion in der Gruppe "global" erstellt wird. In Blockly benötigt man dann noch eine Javascript-Funktion, die wiederum die globale Funktion aufruft.
// globale Funktion async function langsamLichtAn(idParent) { setState(idParent + '.on', true); setState(idParent + '.ct', 500); let level = 1; while (level <= 100) { setState(idParent + '.level', level); level += 3; await wait(150); } } -
@Asgothian , Danke für den Tipp. Es war für mich nicht einfach, aber ich habe etwas hinbekommen.
So schaut es nun aus, und es funktioniert erstmal:

Ich habe herausgefunden, dass man die Lampen nicht einschalten muss, wenn man mit dem Level arbeitet. Aber beim herunterfahren, darf man nicht die 0 verwenden. Weil er dann nicht nimmt, sondern aus macht. Deswegen muss man zuerst auf 1% Level und danach manuell die Lampe aus setzen.
Danke für eure Hilfe. Ich werde das nun eine Woche mal laufen lassen. Es wird uns alle gefallen. Ist viel ruhiger. =)
Sonstiges:
So schauen alle Möglichkeiten aus:

Ich habe auch etwas mit "dimdown" , "dimup" und "dipspeed" gespielt, aber das habe ich nicht verstanden. Weder wie man das aktiviert, deaktiviert, oder verstellt. Was das genau macht, hat sich mir auch nicht erschlossen. Aber das mag auch sein, dass ich etwas anderes verstellt hatte. Diese beiden Knöpfe sind bei mir aktiviert, ich weiß gar nicht, was die machen, oder ob ich die jetzt wieder aus machen muss.
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
