NEWS
Erstellen eines eigenen Objekt
-
Hallo,
ich habe mal eine Anfängerfrage zu eigenen Objekten, wie erstelle ich eigene Objekte, Beispiel ich habe diese Objekte erstellt und möchte gerne, daß der Eintrag vom unteren Beispiel erscheint
diesen Lx Wert
![Anmerkung 2020-08-25 112014.png]
(/assets/uploads/files/1598347683423-anmerkung-2020-08-25-112014.png)
Danke im voraus, lg Oskar -
@Oskar da ist wohl irgendetwas schief gelaufen
-
@Homoran
Hallo, ja das stimmt, da ist einiges schief gelaufen, deshalb nochmals:
ich habe mal eine Anfängerfrage zu eigenen Objekten, wie erstelle ich eigene Objekte, Beispiel ich habe dieses Objekte erstellt und will gerne, dass der Eintrag vom unteren Beispiel erscheint
diesen Lx Wert, daß er den Luxwert übernimmt
Der Luxwert sollte in dem eigenen Objekt übernommen werden,ich hoffe jetzt ist es verständlich und es kann mir jemand einen Tip geben, lg Oskar
-
@Oskar sagte:
Der Luxwert sollte in dem eigenen Objekt übernommen werden,
Dann benötigt man ein Script / Blockly.
Ohne Script geht es mit Alias-Datenpunkt. -
@paul53
Hallo, gibt es da noch eine Erklärung wie man den Alias-Datenpunkt erstellen kann,lg Oskar
-
@Oskar sagte:
wie man den Alias-Datenpunkt erstellen kann
Du kannst das folgende Script verwenden, nachdem Du idOrigin und idAlias angepasst hast.
// Original-Datenpunkt const idOrigin = 'knx.0.Wohnen.Licht.Esstisch_Taster'; // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = ''; //'knx.0.Wohnen.Licht.Esstisch_Status'; // Alias-Datenpunkt const idAlias = 'Beleuchtung.Buero'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Beleuchtungsstärke'; desc = 'per Script erstellt'; // typeAlias = 'boolean'; // oder 'number' // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? true : true"; // role = 'switch'; // min = 0; // nur Zahlen // max = 100; // nur Zahlen // unit = '%'; // nur für Zahlen // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein) // custom = []; // verhindert doppelte Ausführung von history, ... // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten ! // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten ! // Ab hier nichts ändern !! function createAlias(idDst, idSrc, idRd) { if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); else { var obj = {}; obj.type = 'state'; obj.common = getObject(idSrc).common; obj.common.alias = {}; if(idRd) { obj.common.alias.id = {}; obj.common.alias.id.read = idRd; obj.common.alias.id.write = idSrc; obj.common.read = true; } else obj.common.alias.id = idSrc; if(typeAlias) obj.common.type = typeAlias; if(obj.common.read !== false && read) obj.common.alias.read = read; if(obj.common.write !== false && write) obj.common.alias.write = write; if(nameAlias) obj.common.name = nameAlias; if(role) obj.common.role = role; if(desc) obj.common.desc = desc; if(min !== undefined) obj.common.min = min; if(max !== undefined) obj.common.max = max; if(unit) obj.common.unit = unit; if(states) obj.common.states = states; if(custom && obj.common.custom) obj.common.custom = custom; obj.native = {}; setObject(idDst, obj); if(raum && existsObject('enum.rooms.' + raum)) { let obj = getObject('enum.rooms.' + raum) obj.common.members.push(idDst); setObject('enum.rooms.' + raum, obj); } if(gewerk && existsObject('enum.functions.' + gewerk)) { let obj = getObject('enum.functions.' + gewerk) obj.common.members.push(idDst); setObject('enum.functions.' + gewerk, obj); } } } createAlias('alias.0.' + idAlias, idOrigin, idRead);
-
@paul53
Hallo, das habe ich leider noch nicht verstanden, gibt es eine einfachere Erklärung?Lg Oskar
-
@Oskar sagte:
das habe ich leider noch nicht verstanden
Kopiere das Script aus dem Forum in den Javascript-Editor und passe die IDs für idOrigin und idAlias an. Danach starte das Script (kann anschließend wieder gestoppt werden) und der Alias-Datenpunkt wird erstellt.
Alternativ kann man Alias-Datenpunkte auch manuell erstellen, was aber viel mehr Kenntnisse voraussetzt.