NEWS
[Gelöst] Taster doppelt drücken
-
Hallo,
um einen Befehl und die Rückmeldung für die Vis in ein Objekt zu bekommen, habe ich hier im Forum für meine Rolläden das folgende Skript gefunden und entsprechend angepasst.//Esszimmer const idCmd4 = 'knx.0.Rollo_EG_Neubau.Esszimmer.Positionierung'; // Datenpunkt-ID für Kommando const idStat4 = 'knx.0.Rollo_EG_Neubau.Esszimmer.Position'; // Datenpunkt-ID für Status const idVis4 = 'javascript.0.scriptEnabled.Rolladen.Rolladen_Esszimmer'; // Datenpunkt für gleichzeitige Anzeige / Bedienung const js4 = 'system.adapter.javascript.' + instance; createState(idVis4, getState(idStat4).val, {type: 'boolean'}); // Datenpunkt erzeugen on({id: idVis4, change: 'ne', fromNe: js4}, function(dp) { setState(idCmd4, dp.state.val); }); on(idStat4, function(dp) { setState(idVis4, dp.state.val, true); });
Dies funktioniert auch tadellos.
Da ich dies auch mit den Tastern machen muss, habe ich das gleiche Skript genommen.
Hier muss ich aber zum Ein und Ausschalten je zweimal drücken
Die Rückmeldung in der Vis stimmt aber so weit.//Büro const idCmd1 = 'modbus.0.coils.12458_Taster_Kind 2 Licht Decke AB'; // Datenpunkt-ID für Kommando const idStat1 = 'modbus.0.coils.582_KL12_DO7'; // Datenpunkt-ID für Status const idVis1 = 'Licht.0.Licht_Büro_Altbau'; // Datenpunkt für gleichzeitige Anzeige / Bedienung const js1 = 'system.adapter.javascript.' + instance; createState(idVis1, getState(idStat1).val, {type: 'boolean'}); // Datenpunkt erzeugen on({id: idVis1, change: 'ne', fromNe: js1}, function(dp) { setState(idCmd1, dp.state.val); }); on(idStat1, function(dp) { setState(idVis1, dp.state.val, true); });
-
@Daytona-Saar sagte:
Da ich dies auch mit den Tastern machen muss
Welche Datenpunkte sind Taster und wie verhalten sich diese ?
-
Hier die RAW von der Variable für gleichzeitige Anzeige / Bedienung.
Meintest du das ?{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1563563853037, "common": { "name": "Taster_Büro_Altbau", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "javascript.0.scriptEnabled.Taster.Taster_Büro_Altbau", "type": "state" }
Vom Verhalten her ist sie TRUE beim drücken und FALSE beim loslassen
-
@Daytona-Saar sagte:
"_id": "javascript.0.scriptEnabled.Taster.Taster_Büro_Altbau",
Ist das der Tasten-Datenpunkt oder heißt das Skript "Taster.Taster_Büro_Altbau" ? Dieser Datenpunkt ist im obigen Skript nicht enthalten.
-
sorry... zwischenzeitlich umbenannt. Orientiere dich an den idCmd1 idStat1 und idVis
-
@Daytona-Saar sagte:
Orientiere dich an den idCmd1 idStat1 und idVis
Und welcher davon ist Taster ?
-
Na, Taster_Kind 2 Licht Decke AB.
Also IdCmd -
@Daytona-Saar
Der toggled das Licht ? Dann ändere Zeile 8 insetState(idCmd1, true);
-
Hi,
vielen Dank erst mal für die schnelle Antwort.
Habe das mal geändert.
Kann dann das Licht einmal einschalten und nie wieder aus.
Rückmeldung funktioniert dann auch nicht mehr. -
@Daytona-Saar sagte:
Kann dann das Licht einmal einschalten und nie wieder aus.
Dann muss wohl der Taster auf false zurück gesetzt werden.
setState(idCmd1, true); setStateDelayed(idCmd1, false, 100);
-
Du bist mein Held vielen vielen Dank für die Hilfe
Licht an und aus schalten mit passender Rückmeldung funktioniert jetzt in allen möglichen Situationen.
Egal ob von Alexa, KNX-Taster im Raum oder Visualisierung!