NEWS
[Vorlage] Alias per Skript erzeugen
-
@garfonso ja, nur die xxx habe ich hier anonymisiert. Die Aliase funktioneren ansonsten auch. Kommt halt nur dieser Fehler. Bzw. ich hab in log grad geschaut und heute war der Fehler noch nicht.
kann man zb unter einem Alias Ordner, wo von einem Device Alias-Datenpunkte liegen auch einen nicht Alias anlegen, dem ich einen Namen vergeben kann, den ich auch verwenden kann?
-
kann man zb unter einem Alias Ordner, wo von einem Device Alias-Datenpunkte liegen auch einen nicht Alias anlegen, dem ich einen Namen vergeben kann, den ich auch verwenden kann?
@homecineplexx kann man erstmal machen. Ob es funktioniert und welche Nachteile es hat kann ich nicht sagen. Eigentlich hat man dafür ja "0_userdata".
Mal testweise angelegt:

admin warnt natürlich dass hier ein Alias ohne Ziel ist:
admin.0 2022-02-18 10:00:46.889 warn Alias alias.0.Neuer_Ordner.Test has no target 9 -
@homecineplexx kann man erstmal machen. Ob es funktioniert und welche Nachteile es hat kann ich nicht sagen. Eigentlich hat man dafür ja "0_userdata".
Mal testweise angelegt:

admin warnt natürlich dass hier ein Alias ohne Ziel ist:
admin.0 2022-02-18 10:00:46.889 warn Alias alias.0.Neuer_Ordner.Test has no target 9@lobomau said in [Vorlage] Alias per Skript erzeugen:
"0_userdata".
ja mag schon sein, aber ich hab ehrlich gesagt keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata, was aus meiner Sicht auch keinen Sinn ergibt, wenn ich was suche.
also per JavaScript konnte ich zwar so ein Objekt anlegen, aber keinen Wert zuweisen
-
@lobomau said in [Vorlage] Alias per Skript erzeugen:
"0_userdata".
ja mag schon sein, aber ich hab ehrlich gesagt keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata, was aus meiner Sicht auch keinen Sinn ergibt, wenn ich was suche.
also per JavaScript konnte ich zwar so ein Objekt anlegen, aber keinen Wert zuweisen
@homecineplexx sagte: keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata,
Das lässt sich nicht vermeiden. Möglichst identische Ordner-Strukturen für beides verwenden.
-
@lobomau said in [Vorlage] Alias per Skript erzeugen:
"0_userdata".
ja mag schon sein, aber ich hab ehrlich gesagt keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata, was aus meiner Sicht auch keinen Sinn ergibt, wenn ich was suche.
also per JavaScript konnte ich zwar so ein Objekt anlegen, aber keinen Wert zuweisen
@homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:
keine lust
ist mal keine gute einstellung...
aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon? -
@homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:
keine lust
ist mal keine gute einstellung...
aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon? -
@da_woody sagte: machst dann einen alias davon?
Ist auch eine Variante, die allerdings Ressourcen verschwendet.
-
@homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:
keine lust
ist mal keine gute einstellung...
aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon?@da_woody said in [Vorlage] Alias per Skript erzeugen:
@homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:
keine lust
ist mal keine gute einstellung...
aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon?das ist vielleicht eine gute Idee....ab und zu ist man so verbissen in eine Idee, dass man das rundherum nicht sieht...danke
-
@Troya sagte:
Kannst du dein Script damit erweitern?
Versuche es bitte selbst mit folgenden Erweiterungen:
var raum, gewerk; // Zeile 6 ergänzen // raum = 'EG_Flur'; // Zeile 18 // gewerk = 'Licht'; // Zeile 19 // am Ende der Funktion createAlias() ergänzen (hinter setObject()) 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); }let obj = getObject('enum.functions.' + gewerk) obj.common.members.push(idDst); setObject('enum.functions.' + gewerk, obj);das setzen des Gewerks (Function) mit setObject funktioniert ! - aber wie kann ich es via script wieder entfernen?
bei dem Versuch mit delete object löscht es mir das komplette Gewerk -
let obj = getObject('enum.functions.' + gewerk) obj.common.members.push(idDst); setObject('enum.functions.' + gewerk, obj);das setzen des Gewerks (Function) mit setObject funktioniert ! - aber wie kann ich es via script wieder entfernen?
bei dem Versuch mit delete object löscht es mir das komplette Gewerk -
let obj = getObject('enum.functions.' + gewerk) obj.common.members.push(idDst); setObject('enum.functions.' + gewerk, obj);das setzen des Gewerks (Function) mit setObject funktioniert ! - aber wie kann ich es via script wieder entfernen?
bei dem Versuch mit delete object löscht es mir das komplette Gewerk@cbmod sagte: wie kann ich es via script wieder entfernen?
Objekt einlesen, Element im Array obj.common.members löschen und Objekt schreiben.
@da_woody sagte in [Vorlage] Alias per Skript erzeugen:
warum verwendest du nicht den Alias Manager?
Ja, mittlerweile gibt es Adapter zum Alias erzeugen.
-
@cbmod sagte: wie kann ich es via script wieder entfernen?
Objekt einlesen, Element im Array obj.common.members löschen und Objekt schreiben.
@da_woody sagte in [Vorlage] Alias per Skript erzeugen:
warum verwendest du nicht den Alias Manager?
Ja, mittlerweile gibt es Adapter zum Alias erzeugen.
-
@paul53 ich denke, du kannst damit leben. ich hab ja auch mit deinem script angefangen, darum "in allen ehren" :)
mit dem adapter ist aber auch das bearbeiten der aliase viel einfacher...
trotzdem danke für dein script damals! -
@cbmod das script in allen ehren, aber warum verwendest du nicht den Alias Manager?
@da_woody Mit dem Alias Manager kann ich auch mit EINEM Mausklick, in meinem Fall, 90 Aliase erstellen?:thinking_face:
Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden.
-
@da_woody Mit dem Alias Manager kann ich auch mit EINEM Mausklick, in meinem Fall, 90 Aliase erstellen?:thinking_face:
Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden.
@fuxxz2 mit einem mausklick? wie stellst du dir das vor?
in meinem Fall, 90 Aliase erstellen?
90? :D sparsamst hast du 4-6 aliase pro gerät, außer du willst nur schalten und keine anderen infos.
du musst dir mal eine struktur überlegen. dann nimmst du ein gerät in deinen objekten, z.b.

trägst da deine struktur ein

suchst dir die DP aus, die du brauchst und bekommst

-
@fuxxz2 mit einem mausklick? wie stellst du dir das vor?
in meinem Fall, 90 Aliase erstellen?
90? :D sparsamst hast du 4-6 aliase pro gerät, außer du willst nur schalten und keine anderen infos.
du musst dir mal eine struktur überlegen. dann nimmst du ein gerät in deinen objekten, z.b.

trägst da deine struktur ein

suchst dir die DP aus, die du brauchst und bekommst

@da_woody Ich muss dann wohl leider mit dem Umstand leben, der Einzige zu sein, der mit dem Alias-Manager so gar nicht klar kommt.
Egal was ich da drin mache, danach geht bei mir immer gar nix mehr. Da hilft meist nur, alle Aliase löschen und dann das Script für Aliase erstellen einmal neu zu starten. Dann habe ich zumindest alles wieder da :)Erstelle ich nun einen Alias automatisch, ein Shelly z.B.
Dann kann ich irgendwie keine Ordner anlegen, zudem möchte ich einfach nur den shelly.0.SHSW-1#40F5201DDADA#1.Relay0.Switch Datenpunkt als Alias.
Und zwar in diesem Format:
alias.0.Licht.KZ-Spiel_Wandlampe

Bei einem Sonoff das gleiche Spiel, er nennt den Alias dann XX POWER

Das heißt, obwohl ich nur einen Datenpunkt als Alias pro Gerät möchte, muss ich manuell den Ordner anpassen und den Namen.
Daher zu meiner ursprünglichen Frage:
Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden. -
@da_woody Ich muss dann wohl leider mit dem Umstand leben, der Einzige zu sein, der mit dem Alias-Manager so gar nicht klar kommt.
Egal was ich da drin mache, danach geht bei mir immer gar nix mehr. Da hilft meist nur, alle Aliase löschen und dann das Script für Aliase erstellen einmal neu zu starten. Dann habe ich zumindest alles wieder da :)Erstelle ich nun einen Alias automatisch, ein Shelly z.B.
Dann kann ich irgendwie keine Ordner anlegen, zudem möchte ich einfach nur den shelly.0.SHSW-1#40F5201DDADA#1.Relay0.Switch Datenpunkt als Alias.
Und zwar in diesem Format:
alias.0.Licht.KZ-Spiel_Wandlampe

Bei einem Sonoff das gleiche Spiel, er nennt den Alias dann XX POWER

Das heißt, obwohl ich nur einen Datenpunkt als Alias pro Gerät möchte, muss ich manuell den Ordner anpassen und den Namen.
Daher zu meiner ursprünglichen Frage:
Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden. -
@fuxxz2

wo ist das problem? hab gerade testweise ein raumlicht (shelly1) genommen. ist der selbe wie der:

funktioniert astrein... -
@da_woody Wenn ich eine ID auswähle, zb. shelly.0.SHSW-1#40F5201DDADA#1.Relay0
Dann schlägt erzeugt er folgenden Alias
alias.0.Channel Relay0.SwitchDer Alias sollte aber alias.0.Licht.KZ-Wandlampe sein
-
@fuxxz2

eintragen als pfad. einfach nur
den switch anhaken. die anderen musst du wegnehmen die automatisch hakerl haben... ergebniss:

@da_woody Also müsste ich dann bei jedem Alias den Ordner anpassen, oder kann ich ihm irgendwie sagen, dass er direkt in einem Unterordner den Alias erstellen soll?
Übrigens erstellt er nun diesen hier
alias.0.Licht1.KZ-Wandlampe.Switch
Ziel wäre
alias.0.Licht1.KZ-Spiel_Wandlampe
Zudem legt er einen falschen Typ an, es kommt direkt eine Meldung im Log
2022-10-23 14:26:51.567 warn Object alias.0.Licht1.Switch is invalid: obj.common.min has an invalid type! Expected "number", received "string"