@paul53
Genau, wenn du sagst, dass ich diese ignorieren kann, dann werde ich mal
so weiterprobieren.
Vielen Dank schon mal.
NEWS
J
Latest posts made by js.au
-
RE: [Vorlage] Alias per Skript erzeugen
-
RE: [Vorlage] Alias per Skript erzeugen
@paul53 said in [Vorlage] Alias per Skript erzeugen:
"zwave2.0.Node_023.Binary_Switch.targetValue_001"
"zwave2.0.Node_023.Binary_Switch.targetValue_001" ist der Original Datenpunkt.
Die anderen Daten habe ich vom Beispielskript so belassen. -
RE: [Vorlage] Alias per Skript erzeugen
// Original-Datenpunkt const idOrigin = 'zwave2.0.Node_023.Binary_Switch.targetValue_001'; // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = ''; // Alias-Datenpunkt const idAlias = 'Wohnen.Licht.Esstisch'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Lampe Esstisch'; desc = 'per Script erstellt'; // typeAlias = 'boolean'; // oder 'number' // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? 'Ein' : 'Aus'"; // role = 'indicator'; // 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 ! 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 && getObject('enum.rooms.' + raum)) { let obj = getObject('enum.rooms.' + raum) obj.common.members.push(idDst); setObject('enum.rooms.' + raum, obj); } if(gewerk && getObject('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);
-
RE: [Vorlage] Alias per Skript erzeugen
@paul53 Hallo Paul53
ich versuche schon geraume Zeit mit deiner Script-Vorlage zur alias-Erstellung
Alias-Datenpunkte zu erzeugen.
Problem im Script: obj.common.alias kommt die Meldung "property alias does not exist on type StateCommon....."
Ich habe schon alles versucht, aber komme nicht weiter.
js-controller v.3.1.6 script-engine 4.6.17 node.js 12Kannst du mir bitte weiterhelfen?