KNX-ULTIMATE GERĂTE-NODE EINSTELLUNGEN
Dieser Node steuert eine KNX-Gruppenadresse und ist der am hÀufigsten verwendete.
Konfiguration
| Eigenschaft | Beschreibung |
|---|---|
| Gateway | Zu verwendendes KNX-Gateway auswÀhlen |
| GA-Typ (Dropdown) | Typ der Gruppenadresse. 3-Ebenen ist Standard (Eingabe der 3-stufigen GA oder GA-Bezeichnung, sofern ETS importiert). Global liest die GA beim Start aus einer globalen Variablen, Flow analog auf Flow-Ebene. $Env variable liest die GA aus einer Umgebungsvariable. Universeller Modus (alle GAs abhören) reagiert auf ALLE Gruppenadressen. |
| Gruppenadresse | Zu steuernde Gruppenadresse. Mit importierter ETS kannst du den GerÀtenamen tippen. Kann leer bleiben, wenn du sie per msg.setConfig setzt. |
| Datenpunkt | Der zum Node gehörende Datapoint. |
Manueller Befehlsbutton
Im Editor kann pro Node ein kleiner Button angezeigt werden, ĂŒber den du KNX-Telegramme ohne zusĂ€tzlichen Inject-Knoten auslösen kannst.
| Eigenschaft | Beschreibung |
|---|---|
| Manuellen Button anzeigen | Blendet den Button im Workspace und in der Knotenliste ein bzw. aus. |
| SchaltflĂ€chenaktion | Legt fest, was beim Klick geschieht. KNX-Leseanforderung senden erzeugt ein normales Read-Telegramm. Boolean umschalten (Schreiben) steht bei DPT 1.x zur VerfĂŒgung und wechselt zwischen true und false. Benutzerdefinierten Wert schreiben sendet den angegebenen Wert (muss zum eingestellten Datapoint passen). |
| Initialer Toggle-Status | (Nur fĂŒr boolesche Datapoints) Startwert der Toggle-Funktion. Der Zustand bleibt mit den ankommenden KNX-Telegrammen synchron. |
| Benutzerdefinierter Wert | Wert fĂŒr den Modus âBenutzerdefinierten Wert schreibenâ. Erlaubt sind JSON-Literale wie 42, true, "Text" oder { "red": 255 }. |
Der Button wird nur eingeblendet, wenn die Option aktiv ist. Im Universalmodus ist die Leseaktion deaktiviert, da keine feste Gruppenadresse vorhanden ist.
TAB Erweiterte Optionen
| Eigenschaft | Beschreibung |
|---|---|
| Â | Allgemein |
| Node-Name | Anzeigename. |
| Topic | Topic der Ausgabe. Leer lassen, um die Gruppenadresse zu verwenden. |
| Passthrough | Leitet die Eingangs-Nachricht an den Ausgang weiter. |
| Â | Vom Node-EINGANG zum KNX-BUS |
| Telegrammtyp | write zum Senden eines Schreib-Telegramms (ĂŒblich), alternativ Reaktion auf andere Typen. |
| RBE-Filter | âReport by changeâ. Wenn aktiv, sendet nur geĂ€nderte Werte zum BUS. FĂŒr identische Wiederholungen deaktivieren. Bei Aktivierung wird ârbeâ dem Nodename hinzugefĂŒgt. |
| Â | Vom KNX-BUS zum Node-AUSGANG |
| Status beim Start lesen | Liest den GA-Status bei Editorstart und jeder Wiederverbindung. Werte werden in einer Datei gepuffert, Quelle wÀhlbar (Datei/BUS). |
| RBE-Filter | Wie oben, aber fĂŒr Ausgaben zum Flow. |
| Auf Schreib-Telegramme reagieren | Sendet bei eingehendem Write eine Nachricht an den Flow. |
| Auf Response-Telegramme reagieren | Sendet bei Response eine Nachricht an den Flow. |
| Auf Lese-Telegramme reagieren | Sendet bei Read eine Nachricht an den Flow (z. B. um eigene Werte zu liefern). |
| Multiply/Decimals/Negatives | Skaliert, rundet und behandelt negative Werte (nur numerische Werte). |
TAB KNX Function
Mit JavaScript kannst du das Verhalten eingehender Nachrichten (vom Flow) und ausgehender Telegramme (zum BUS) anpassen. Der Editor stellt Hilfsobjekte und -funktionen bereit, um GA-Werte zu lesen - mit ETS (ohne DPT) oder ohne ETS (mit DPT). Der Code lĂ€uft bei jeder Eingangs-Nachricht und bei jedem BUS-Telegramm. Bei Aktivierung erscheint âf(x)â im Nodename.
| Eigenschaft | Beschreibung |
|---|---|
| Search GA | Nur mit importierter ETS: tippen, GA wĂ€hlen und das Feld in getGAValue einfĂŒgen. |
VerfĂŒgbare Objekte/Funktionen
| Objekt/Funktion | Beschreibung |
|---|---|
msg |
Aktuelle Nachricht. |
getGAValue(GA, DPT?) |
Liest den Wert einer GA, z. B. '1/0/1' oder '1/0/1 Bed table light' (Text nach Leerzeichen wird ignoriert). DPT nur ohne ETS erforderlich. |
setGAValue(GA, value, DPT?) |
Setzt den Wert der GA; DPT wie oben. |
self(value) |
Setzt den eigenen Node-Wert und sendet ihn an den BUS (Achtung Schleifen). |
toggle() |
Toggeln wie self. |
node, RED, return(msg) |
Node-Objekt, RED-Objekt, RĂŒckgabe der Nachricht. |
Beispiele (Flow â BUS)
const statusGA = getGAValue('0/0/09','1.001');
if (msg.payload !== statusGA){ return msg; } else { return; }
if (msg.payload){
setGAValue('0/1/8', true)
setTimeout(function(){ self(off); }, 2000);
}
return msg;
Beispiele (BUS â Ausgang)
msg.externalTemperature = getGAValue('0/0/10'); // ohne ETS: getGAValue('0/0/10','9.001')
return msg;
if (msg.payload === false && getGAValue('0/0/11','1.001') === false){ return; } else { return msg; }
Inputs
- destination (string): 3-stufige GA, z. B.
1/1/0 - payload (any): zu sendender Wert
- event (string):
GroupValue_Write,GroupValue_Response,Update_NoWrite(nur interner Wert, kein BUS-Senden) - readstatus (boolean): Leseauftrag an den BUS
- dpt (string): z. B.
1.001 - writeraw (buffer) + bitlenght (int): RAW-Senden;
bitlenghtin Bit - resetRBE (boolean): RBE-Filter zurĂŒcksetzen
- setConfig (json): GA/DPT des Nodes per Nachricht Àndern
setConfig Details
var config= { setGroupAddress: "0/1/2", setDPT: "1.001" };
msg.setConfig = config; return msg;
var config= { setGroupAddress: "0/1/2", setDPT: "auto" };
msg.setConfig = config; return msg;
Outputs
- Standardausgang:
payloadam PIN 1. - Fehler:
erroram PIN 2.
Ausgehende Nachricht (Beispiel)
msg = {
topic: "0/1/2",
payload: false,
previouspayload: true,
payloadmeasureunit: "%",
payloadsubtypevalue: "Start",
devicename: "Esstischlampe",
gainfo: {
maingroupname: "Light actuators",
middlegroupname: "First flow lights",
ganame: "Table Light",
maingroupnumber: "1",
middlegroupnumber: "1",
ganumber: "0"
},
echoed: true,
knx: {
event: "GroupValue_Write",
dpt: "1.001",
dptdesc: "Humidity",
source: "15.15.22",
destination: "0/1/2",
rawValue: "<buffer>"
}
}
EINGANGS-NACHRICHT AUS DEM FLOW
KNX-GerÀte steuern
Der Node nimmt Nachrichten entgegen und sendet sie auf den KNX-BUS; eingehende BUS-Telegramme werden als Nachrichten an den Flow ausgegeben. Alle Eigenschaften optional, auĂer payload.
- msg.destination: z. B.
0/0/1 - msg.payload: z. B.
true/false/21/"Hello" - msg.event:
GroupValue_Write/GroupValue_Response/Update_NoWrite(beiUpdate_NoWritegeben alle Nodes mit derselben GA eine Meldung mitevent: 'Update_NoWrite'aus)
FĂŒr Read statt event bitte msg.readstatus = true verwenden.
- msg.readstatus = true: Read an den BUS
- msg.dpt: z. B.
1.001(auch9,"9","DPT9.001") - msg.writeraw + msg.bitlenght: RAW-Senden; ignoriert den am Node gesetzten DPT
- msg.resetRBE = true: RBE-Filter zurĂŒcksetzen
Konfiguration per Nachricht Àndern
QUICK HOW TO
Weitere Beispiele hier
LAMPE EINSCHALTEN
msg.payload = true; return msg;
ABSOLUTES DIMMEN
msg.payload = 30; return msg;
TEXT AN DISPLAY
msg.payload = "Output Tem. 35°C"; return msg;
STATUS LESEN
msg.readstatus = true; return msg;
RAW AN BUS SENDEN
msg.writeraw = Buffer.from('01','hex');
msg.bitlenght = 1; return msg;
// Temperatur (DPT9): 18.4 °C = <0730>
// msg.writeraw = Buffer.from('0730','hex'); return msg;