NEWS
Abgreifen des Schaltzustandes eines Markenschalters in JavaScript
-
Hallo,
ich habe ein Skript für einen Schalter HM-LC-Sw1PBU-FM angelegt, welches folgende Funktionen durchführen soll. Die Wipprichtung zum Einschalten soll für eine Lampe verwendet werden, die andere Wipprichtung für eine andere Lampe. Dabei möchte ich nur die Auslösung abgreifen und nicht über den Schalter direkt die Schaltung durchführen.
Also
-Wippenrichtung Schalter an => Steuerung eines seperaten Funkaktors 1
-Wippenrichtung Schalter aus => Steuerung eines seperaten Funkaktors 2
Bisher habe ich folgendes verwendet:
// Auslösung mit Homematic Hardware-Taster
on({
id: "hm-rpc.1.NEQ0XXXXX1.1.STATE",
val: true
}, function(obj)
{ LogikHier }
}
);
// Auslösung mit Homematic Hardware-Taster
on({
id: "hm-rpc.1.NEQ0XXXXX1.1.STATE",
val: false
}, function(obj)
{ LogikHier }
}
);
Jedoch bekomme ich immer nur den intialen Wechsel von AN=>US oder AUS=>AN mit und nicht wenn jemand von AUS noch einmal AUS drückt. Muß ich hier noch eine weitere Bedingung in den Header der Funktion einfügen (oldval, ack, change, etc.) ?
Danke und Grüße, Jens
-
Muß ich hier noch eine weitere Bedingung in den Header der Funktion einfügen (oldval, ack, change, etc.) ? `
Korrekt! change: "any" erfasst auch Aktualisierungen des Zustands. Siehe die Tabelle https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state (ein bisschen runter scrollen)Du kannst auch beide Trigger zu einem zusammenfassen, wenn du nicht im "Header" auf val: true/false filterst, sondern das im Callback erledigst:
on({ id: "hm-rpc.1.NEQ0XXXXX1.1.STATE", change: "any" }, function(obj) { if (obj.state.val) { // Aktionen bei Druck auf "AN" ausführen } else { // Aktionen bei Druck auf "AUS" ausführen } });P.S.: Bitte Code-Tags benutzen für Code ;)
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