NEWS
Datenpunkte triggern sich gegenseitig
-
Hallo zusammen!
Ich habe folgendes Problem: Ich benötige insgesamt 7 Datenpunkte: jeweils einen für einen der drei RGB-Kanäle mit einem Wertebereich von 0-255, jeweils einen der frei RGB-Kanäle mit dem prozentualen Wert von 0-100 und einmal den vollständigen RGB-Wert im HEX-Format. Beispiel: Rot: 255, 100%; Grün: 25, 9.8%; Blau: 33, 13%; RGB: #FF1921
Ich habe nun ein Skript erstellt, dass diese 7 Datenpunkte überwacht und bei Aktualisierung umrechnet und abhängige Datenpunkte aktualisiert. Ändere ich z.B. Grün auf 100% wird der grüne RGB-Wert auf 255 und der HEX-Wert auf FFFF21 gesetzt. Bei Änderungen am HEX-Wert ebenfalls. Allerdings habe ich das Problem, dass durch die Änderungen der anderen Datenpunkte diese ebenfalls triggern und somit findet das kein Ende. Eine Änderung löst 2 Trigger aus, diese zwei wieder jeweils 2 und so weiter. Wie erreiche ich es nun, dass bei einer Änderung durch das Skript der Trigger feuert? -
Hallo zusammen!
Ich habe folgendes Problem: Ich benötige insgesamt 7 Datenpunkte: jeweils einen für einen der drei RGB-Kanäle mit einem Wertebereich von 0-255, jeweils einen der frei RGB-Kanäle mit dem prozentualen Wert von 0-100 und einmal den vollständigen RGB-Wert im HEX-Format. Beispiel: Rot: 255, 100%; Grün: 25, 9.8%; Blau: 33, 13%; RGB: #FF1921
Ich habe nun ein Skript erstellt, dass diese 7 Datenpunkte überwacht und bei Aktualisierung umrechnet und abhängige Datenpunkte aktualisiert. Ändere ich z.B. Grün auf 100% wird der grüne RGB-Wert auf 255 und der HEX-Wert auf FFFF21 gesetzt. Bei Änderungen am HEX-Wert ebenfalls. Allerdings habe ich das Problem, dass durch die Änderungen der anderen Datenpunkte diese ebenfalls triggern und somit findet das kein Ende. Eine Änderung löst 2 Trigger aus, diese zwei wieder jeweils 2 und so weiter. Wie erreiche ich es nun, dass bei einer Änderung durch das Skript der Trigger feuert? -
@Zeebo
Das ist ganz einfach. Du triggers auf Wertänderungen „mit acknowledge“, und setzt die Updates ohne acknowledge, wenn deine scripte die Werte umrechnen.A.
@Asgothian
Verstehe ich jetzt nicht ganz.
Hier mal der Code:
Wenn ich zb. den Datenpunkt dp_r ändere, wird u.a. mit setHex() der Hex-Wert aktualisiert, dadurch wird dann dp_hex getriggert, in dem wieder die drei States gesetzt werden. Das soll ja nicht.
Das mit dem ACK habe ich wohl noch nicht ganz verstanden (auch nicht anhand der Doku) -
Hallo zusammen!
Ich habe folgendes Problem: Ich benötige insgesamt 7 Datenpunkte: jeweils einen für einen der drei RGB-Kanäle mit einem Wertebereich von 0-255, jeweils einen der frei RGB-Kanäle mit dem prozentualen Wert von 0-100 und einmal den vollständigen RGB-Wert im HEX-Format. Beispiel: Rot: 255, 100%; Grün: 25, 9.8%; Blau: 33, 13%; RGB: #FF1921
Ich habe nun ein Skript erstellt, dass diese 7 Datenpunkte überwacht und bei Aktualisierung umrechnet und abhängige Datenpunkte aktualisiert. Ändere ich z.B. Grün auf 100% wird der grüne RGB-Wert auf 255 und der HEX-Wert auf FFFF21 gesetzt. Bei Änderungen am HEX-Wert ebenfalls. Allerdings habe ich das Problem, dass durch die Änderungen der anderen Datenpunkte diese ebenfalls triggern und somit findet das kein Ende. Eine Änderung löst 2 Trigger aus, diese zwei wieder jeweils 2 und so weiter. Wie erreiche ich es nun, dass bei einer Änderung durch das Skript der Trigger feuert?@Zeebo sagte:
durch die Änderungen der anderen Datenpunkte diese ebenfalls triggern und somit findet das kein Ende.
Das kann man mit fromNe in jedem Trigger verhindern. Hier für den ersten Trigger:
const js = 'system.adapter.javascript.0'; on({id: dp_r, change: "ne", fromNe: js}, function (obj) {
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