NEWS
Hilfe zu einem Datenpunkt!
-
Hilfe zu einem Datenpunkt!
Hallo,
als blutiger Anfänger bräuchte ich mal Hilfe zu einem Datenpunkt.
Szenario: Ich habe an einer Tür ein Enocean hängen welcher mitr den Datenpunkt 0 für zu bzw. 1 für offen anzeigt.
Jetzt habe ich versucht den in Vis mir dem Türwidget (Material) zu verbinden. Ich habe aber keine Ahnung wie das hinbekomme da dort false oder true benutzt wird.
Wie kann ich dies aber über die 0 oder1 bewerkstelligen!?Danke.
VG
BLRD
-
Hilfe zu einem Datenpunkt!
Hallo,
als blutiger Anfänger bräuchte ich mal Hilfe zu einem Datenpunkt.
Szenario: Ich habe an einer Tür ein Enocean hängen welcher mitr den Datenpunkt 0 für zu bzw. 1 für offen anzeigt.
Jetzt habe ich versucht den in Vis mir dem Türwidget (Material) zu verbinden. Ich habe aber keine Ahnung wie das hinbekomme da dort false oder true benutzt wird.
Wie kann ich dies aber über die 0 oder1 bewerkstelligen!?Danke.
VG
BLRD
-
-
Ok über Alias. Habe auch den Link gelesen, verstehe aber icht wo ich den Alias erstellen kann.
Gibte es dazu einen weiterführenden Hinweis?
Danke
@BLRD sagte:
wo ich den Alias erstellen kann.
Per Script nach Anpassung von idOrigin, idAlias und nameAlias.
// Original-Datenpunkt const idOrigin = 'homee.0.WindowHandle-191.WindowPosition-952'; // 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 = 'Wohnung.Tuer'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Wohnungstür'; desc = 'per Script erstellt'; typeAlias = 'boolean'; // oder 'number' // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? true : true"; role = 'sensor.door'; // 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); -
@BLRD sagte:
wo ich den Alias erstellen kann.
Per Script nach Anpassung von idOrigin, idAlias und nameAlias.
// Original-Datenpunkt const idOrigin = 'homee.0.WindowHandle-191.WindowPosition-952'; // 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 = 'Wohnung.Tuer'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Wohnungstür'; desc = 'per Script erstellt'; typeAlias = 'boolean'; // oder 'number' // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? true : true"; role = 'sensor.door'; // 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); -
Hi paul 53,
auch wenn es etwas frech ist, ich bräuchte dies auf die schnelle wegen fehlender Zeit dies zu ausprobieren, bzw. zu erstellen, bitte ich ich dazu:

den Skript zu ertsellen!?Danke.
BLRD
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