NEWS
Wie current werte und in target werte schreiben
-
@Flopsi sagte:
Das habe ich mal probiert
Daraus kann ich leider keine IDs erkennen, sondern nur Namen. Poste bitte die beiden IDs zu Node_24.
-
Statt "steuere" müsste mindestens "aktualisiere" verwendet werden. Sonst löst nachher jedes Update von currentValue einen neuen Schaltvorgang aus.
@paul53 Die Überlegung war, das durch einen Alias wegzukapseln, da es für @Flopsi ein Anzeigeproblem in VIS darstellt. Lesen immer aus
currentValue, Schreiben immer intargetValue. -
@Flopsi
Das folgende Script in das Javascript-Editor-Fenster kopieren und starten:// Original-Datenpunkt const idOrigin = 'zwave2.0.Node_24.Binary_Switch.targetValue_002'; // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = 'zwave2.0.Node_24.Binary_Switch.currentValue_002'; // Alias-Datenpunkt const idAlias = 'Wohnzimmer.Fernseher'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Fernseher Wohnzimmer'; desc = 'per Script erstellt'; // typeAlias = 'boolean'; // oder 'number' // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? true : true"; // role = 'value'; // 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);Für weitere Alias-Datenpunkte müssen idOrigin, idRead, idAlias und nameAlias angepasst werden.
-
@AlCalzone Ne nicht im VIS sondern im Datenpunkt selber.....da steht dann bei Current der Wert
true
und im targte steht
(null)
kann man zwei alias skripte laufen lassen wie gesagt habe ich schon ein am laufen ...
@Flopsi Das ist doch vollkommen egal, wenn der Alias so konfiguriert ist, dass er den currentValue liest und den targetValue schreibt!
Das Alias-Skript ist auch nur zum Anlegen des Alias-Datenpunkts. Diesen Alias-DP nutzt du dann in VIS etc.
-
@AlCalzone Ne nicht im VIS sondern im Datenpunkt selber.....da steht dann bei Current der Wert
true
und im targte steht
(null)
kann man zwei alias skripte laufen lassen wie gesagt habe ich schon ein am laufen ...
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden


