de KNX Node Configuration - Supergiovane/node-red-contrib-knx-ultimate GitHub Wiki
🌐 Language: EN | IT | DE | 简体中文
Navigation: Startseite Übersicht: Changelog • FAQ • Sicherheit • Doku: Sprachleiste KNX Geräteknoten: Gateway • Gerät • Knotenschutz Weitere KNX‑Knoten: Szenencontroller • WatchDog • Logger • Global Context • Alerter • Laststeuerung • Viewer • Auto‑Responder • HA‑Übersetzer HUE: Bridge • Licht • Batterie • Taster • Kontakt • Geräte‑SW‑Update • Lichtsensor • Bewegung • Szene • Tap Dial • Temperatur • Zigbee‑Konnektivität Beispiele: Logger • Switch Light • Dimming • RGB color • RGBW color + White • Command a scene actuator • Datapoint 213.x 4x Setpoint • Datapoint 222.x 3x Setpoint • Datapoint 237.x DALI diags • Datapoint 2.x 1 bit proprity • Datapoint 22.x RCHH Status • Datetime to BUS • Read Status • Virtual Device • Subtype decoded • Alexa • Apple Homekit • Google Home • Switch on/off POE port of Unifi switch • Set configuration by msg • Scene Controller node • WatchDog node • Global Context node • Alerter node • Load control node • Viewer node • MySQL, InfluxDB, MQTT Sample
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. |
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). |
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. |
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. |
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;
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; }
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.
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;
- Standardausgang:
payload
am PIN 1. - Fehler:
error
am PIN 2.
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>"
}
}
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.
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;