NEWS
Doppelte Ausführung Philips Hue Fernbedienung Dimmen
-
@haselchen
damit hab ich tatsächlich gar keine Probleme mit
Vielen Dank für NodeRed, wollte aber nicht so gerne das Programm wechseln und die Abläufe alle zentral haben.Aber vielen Dank für dein schnelles Feedback
-
ein Traum, du bist mein Retter! Hat genau so geklappt, tatsächlich ist das Buttonevent so kurz das es oft garnicht auffällt, hatte aber einmal Glück.
Größer als eingestellt und schwupp, bei 30mal drücken, kein einziger Fehler :).
Musste tatsächlich nur den Trigger auf das Buttonevent ändern.
PS: In diesem Fall ist das "press" event etwas unzuverlässig - "release after press" funktioniert dort zu 100% zuverlässig .
@haselchen vllt. kam es deshalb bei dir zu Überschneidungen?
-
Hast du das aktuelle Blocky parat?
Dann würde ich mir das gerne mal ansehen. -
@haselchen
klaro, ist zwar sicherlich kein Meisterwerk, aber es funktioniertHabe mal nur einen Teil rausgenommen - heller per klick und mit gedrückt halten. Einziger Nachteil, er dimmt halt ca. alle 1 Sekunde, man kann die Intervalle nicht selbst einstellen, war mir jetzt aber egal
-
@nick-the-bird-92 sagte in [Doppelte Ausführung Philips Hue Fernbedienung Dimmen]
Dieser Teil des Skriptes ist Unsinn. Wenn das so geht dann ist das eher zufällig. Jedes mal wenn das Objekt "Hold" mit wahr aktualisiert wird fügst du eine neue Überwachung des Datenpunktes "eventduration" hinzu. Wenn das Skript lange genug läuft wirst Du damit ggf. den ioBroker zum Absturz bringen, da bei einer Änderung von "eventduration" gleichzeitig 100 oder 200 mal der gleiche Wert gelesen und geschrieben wird.
Unter der Bedingung das die Logik an sich passt:
Falls Objekt "Hold"
Baustein weg.- das
Falls Wert von Objekt ...
erweitern aufFalls
Wert von Objekt On/Off light 5 on
und
Wert von Objekt Hold
A.
-
@asgothian
Moin,
vielen Dank für den Einwand.
Hold wird nur einmal aktiviert.
Duration läuft nur so lange durch, wie der Knopf gedrückt wird. Sprich nach ca. 10 Sekunden ist die Lampe auf 100% - sind insgesamt auch nur 10 Aktualisierungen.Oder wie könnte man es sonst lösen? Man braucht leider zwei trigger:
- Hold = true (einmal für heller und einmal für dunkler) - ist nur kurz auf true
- Duration = Zähler fürs gedruckt halten (gibt nur einen) - zählt hoch
Grüße
Nick -
@nick-the-bird-92
Ich denke du hast den Einwand nicht verstanden.Ich versuche das mal zu veranschaulichen:
Das System hat eine Liste von "Zu überwachenden Datenpunkten". In diese Liste wird ein Datenpunkt, eine Bedingung und ein Verweis auf die auszulösende Aktion eingetragen. Dieses passiert durch die 'Falls Objekt' Bausteine. In dieser Liste gibt es keine Verifikation / Überwachung gegen doppelte Einträge.
Jedes mal wenn der Datenpunkt "hold" mit wahr aktualisiert wird fügt Dein Skript dieser Liste einen weiteren Eintrag hinzu. Da die Einträge nur gelöscht werden wenn
- das Skript angehalten wird
- der JS Adapter neu gestartet wird.
sammeln sich da ggf. viele Einträge.
A.
-
okay, verstehe
Vielen Dank für die Erklärung.
Wie könnte man das Problem denn lösen? Eine "und" Verknüpfung im Trigger würde nicht klappen, da Hold ja nur einmal kurz auf true geht und Duration ja hochzählt solange ich drücke.
LG
Nick -
@nick-the-bird-92
Ich würde folgendes Empfehlen:Einen Trigger auf "Hold", ist grösser als vorher. Darin:
- Eine Variable "Hold_set" auf wahr setzen.
- Einen Timeout (1.5 s), darin die Variable "Hold_set" auf falsch setzen.
Damit hast du zunächst ein Signal für Hold welches 1.5 s ansteht.
In dem Trigger auf "Duration" dann "Falls wert von ON/OFF light 5 on und Hold_set" mache:
- Steuere...
- stop Timeout
- Timeout (1.5s), darin die Variable "Hold_set" auf falsch setzen.
Dieses vorgehen beruht auf der Annahme das der Datenpunkt "Duration" wenn der Knopf gehalten wird 1x pro Sekunde hochgezählt wird. Sollte das langsamer sein, dann müsstest Du die Zeit im Timeout erhöhen.
A.
-
@asgothian
Okay, klingt gut, werde ich mir die Tage mal anschauen.Dankeschön