NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
Sorry, aber ich verstehe noch immer nicht wie man überhaupt ein Alias anlegt.
Geht das händisch über den Scriptteil?Und was bringt dann ein Alias Eintrag im History?
-
@hg6806 sagte in Fragen / Antworten rund um die neue Alias Funktion:
Alias anlegt.
Geht das händisch über den Scriptteil?Ja, das geht manuell im Tab "Objekte". Dann muss man unter common noch den alias-Teil hinzufügen. Beispiel:
"common": { "name": "Licht Haustür", "role": "switch", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false, // Das Komma hinter false und die folgende alias.id nachträglich hinzugefügt "alias": { "id": "sonoff.0.Licht-Haustuere.POWER" }
Einfacher ist es sicherlich mit der Script-Vorlage.
-
Dann ist der Aufwand für mich viel zu groß.
Interessant wäre es halt beim Smartmeter Adapter gewesen, aber wenn ich händisch den Alias erst erstellen muss, dann noch an allen Stellen den Smartmeter Datenpunkt gegen den Alias auszutauschen ist es doch einfacher direkt den alten Smartmeter Datenpkt gegen den neuen auszutauschen.
Und es ist doch (hoffentlich) sehr unwahrscheinlich dass durch ein Update des Smartmeter Adapters sich nochmal die Datenpunkte ändern.Ich verstehe halt von Software nicht so viel und müsste mich zudem erstmal in das einzufügende Script eindenken.
-
Noch eine Sache die ich nicht verstanden habe.
Wenn ich nun für einen Datenpunkt ein Alias erstelle und sich der Datenpunkt dann ändert (aber der Alias soll gleich bleiben) muss ich doch für den neuen Datenpunkt das Alias-Script rüberkopieren in den neuen Datenpunkt, oder?
Weil hier immer nur steht dass man die ID ändern muss. -
@hg6806 sagte:
Alias erstelle und sich der Datenpunkt dann ändert (aber der Alias soll gleich bleiben) muss ich doch für den neuen Datenpunkt das Alias-Script rüberkopieren in den neuen Datenpunkt, oder?
Wenn sich der Original-Datenpunkt (die ID) ändert, muss nur die ID im Alias-Datenpunkt angepasst werden.
"alias": { "id": "sonoff.0.Licht-Haustuere.POWER" // Nach Gerätetausch anpassen }
-
Aber ich dachte das trägt man in den Datenpunkt des Geräts ein hinten bei RAW?
Denn ich habe ja noch gar kein Alias Datenpunkt.
-
@hg6806 sagte:
Aber ich dachte das trägt man in den Datenpunkt des Geräts ein hinten bei RAW?
Nein, das ist so beim Adapter ioBroker.linkeddevices, nicht aber beim Alias.
-
@paul53 sagte in Fragen / Antworten rund um die neue Alias Funktion:
ioBroker.linkeddevices
Was ist das denn?
Dann habe ich noch immer nicht verstanden wie man überhaupt ein Alias Datenpunkt anlegt.
-
@hg6806 sagte:
nicht verstanden wie man überhaupt ein Alias Datenpunkt anlegt.
Zeige mal einen Datenpunkt zu dem Du einen Alias erstellen möchtest.
-
Hier sind zwei Screenshots:
-
@hg6806
Dann kopiere das Script, passe die Alias-ID und den Namen an und starte das Script.// Original-Datenpunkt const idOrigin = 'smartmeter.0.1-0:1_8_0_255.value'; // Alias-Datenpunkt const idAlias = 'smartmeter.zaehler_1.bezug_total'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Zähler 1 Bezug total'; 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(idSrc, idDst) { if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); else { var obj = {}; obj.type = 'state'; obj.common = getObject(idSrc).common; obj.common.alias = {}; 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(idOrigin, 'alias.0.' + idAlias);
Anschließend die Instanz admin.0 neu starten (nicht stoppen !).
-
@paul53
Danke, aber wohin kopieren? Als normales Javascript? -
-
Danke, hat soweit geklappt.
Nun habe ich doch angefangen alle Smartmeterwerte in Alias zu schreiben.
Damit ich einen Überblick bekomme habe ich sogar mal eine Excel Übersicht darüber erstellt.Fragen dazu, kann man hier die Alias-Werte auch runden, bzw die Nachkommastellen angeben?
Ich habe mit den original Smartmeterwerten immer das Problem, dass durch die vielen Nachkommastellen die History-Werte immer sehr groß werden.Noch etwas off-topic. Kann man bei den Datenwerten irgendwie herausfinden wo die Werte überall benutzt werden? Vis, Flot, Javascript, etc.
-
@hg6806 sagte:
kann man hier die Alias-Werte auch runden, bzw die Nachkommastellen angeben?
Ja, siehe hier.
-
Moin!
Hat soweit alles geklappt, habe für die meisten Smartmeter Werte Aliases angelegt.
Doch seltsamerweise werden dieses irgendwann nicht mehr aktualisiert.
Aber alle Wert zur gleichen Zeit.
Wenn ich den Admin neu starte geht wieder alles für ein paar Stunden, dann stoppt das Ganze wieder.Woran liegt das und wie kann ich das fixen?
-
Nach einem 2. Neustart läuft nun alles stabil für einige Tage.
Noch eine Frage zu Alias. Kann man von einem Datenpunkt zwei Aliase erstellen oder gibt das irgendwo einen Konflikt.
Der Monteur hat leider den Stromzähler falsch deklariert und jetzt wollte ich ein 2. Alias erstellen und dann wenn Sourceanalytix mit diesem Punkt parallel läuft und genügend Daten vorhanden sind den alten löschen.
Sollte doch gehen, oder? -
@hg6806
Du kannst beliebig viele aliase für einen Datenpunkt erstellen.
Es kann sogar Sinn machen, das zu tun und zwar, wenn du verschiedene Funktionen in read/write hast. So könntest du für einen Tür-Kontakt, nur einen Datenpunkt closed=true, wenn geschlossen ist zwei aliase machen, einen einfach für closed und einen für opened mir read: !val -> schon hättest du beide.Das ist sehr hilfreich, wenn man seine Geräte auf diese Weise etwas angleicht. (habe ich bei einigen Schließkontakten bereits gemacht und ich habe zwei Dachfenster, die unterschiedlicher Meinung waren ob sie jetzt bei 100% offen oder zu sind -> habe ich im vis irgendwie immer falsch gemacht, jetzt sind sie gleich und ich kriege es endlich hin, yeah. ).
-
Ok, danke für die Info.
Hatte das parallel schon gestartet und läuft auch.
Manchmal muss man aber komischerweise den Admin 2x restarten. -
Hi, ich würde gerne einen alias für den fibaro RGWB adapter anlegen. der benötigt einen string mit #RRGGBBWW und ich würde das gerne jeweils auf einen alias für R/G/B/W getrennt und jeweils einem integer im range 0-100 mappen.
hat das schon jemand von euch probiert?