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. |
| Group Addr. | Zu steuernde Gruppenadresse. Mit importierter ETS kannst du den Gerätenamen tippen. Kann leer bleiben, wenn du sie per msg.setConfig setzt. |
| Datapoint | 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, bitlenght in 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. Bei Update_NoWrite geben alle Nodes mit derselben GA eine Meldung mit event: '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 (auch 9, "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;