de KNX Node Configuration - Supergiovane/node-red-contrib-knx-ultimate GitHub Wiki

🌐 Language: EN | IT | DE | 简体中文

Navigation: Startseite Übersicht: ChangelogFAQSicherheitDoku: Sprachleiste KNX Geräteknoten: GatewayGerätKnotenschutz Weitere KNX‑Knoten: SzenencontrollerWatchDogLoggerGlobal ContextAlerterLaststeuerungViewerAuto‑ResponderHA‑Übersetzer HUE: BridgeLichtBatterieTasterKontaktGeräte‑SW‑UpdateLichtsensorBewegungSzeneTap DialTemperaturZigbee‑Konnektivität Beispiele: LoggerSwitch LightDimmingRGB colorRGBW color + WhiteCommand a scene actuatorDatapoint 213.x 4x SetpointDatapoint 222.x 3x SetpointDatapoint 237.x DALI diagsDatapoint 2.x 1 bit proprityDatapoint 22.x RCHH StatusDatetime to BUSRead StatusVirtual DeviceSubtype decodedAlexaApple HomekitGoogle HomeSwitch on/off POE port of Unifi switchSet configuration by msgScene Controller nodeWatchDog nodeGlobal Context nodeAlerter nodeLoad control nodeViewer nodeMySQL, InfluxDB, MQTT Sample


KNX‑ULTIMATE GERÄTE‑NODE EINSTELLUNGEN

Dieser Node steuert eine KNX‑Gruppenadresse und ist der am häufigsten verwendete.

Beispiele findest du hier

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.


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

  1. Standardausgang: payload am PIN 1.
  2. Fehler: error am 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

Siehe Beispielseite.


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;
⚠️ **GitHub.com Fallback** ⚠️