NEWS
Alias-Manager Adapter
-
@s-bormann Vielen Dank für diesen Adapter. Ich kam mit dem devices Adapter irgendwie nicht klar, mit deinem komme ich gut zurecht. Auch das Auto erstellen klappt super
-
0.1.1 (2021-03-28)
- (sbormann) Added alias-manager as tab to the ioBroker side menu.
- (sbormann) Added list of aliases to main tab.
- (sbormann) Enhanced open all / close all function for collapsibles.
- (sbormann) Added translations.
-
@s-bormann sieht gut aus!
-
@s-bormann hab ich gerade mal geladen, funktioniert bei mir allerdings nicht. hab auch nochmal ein upload angestoßen
$ ./iobroker upload alias-manager upload [9] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/words.js words.js application/javascript upload [8] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/type-detector.js type-detector.js application/javascript upload [7] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/style.css style.css text/css upload [6] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/index_m.js index_m.js application/javascript upload [5] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/index_m.html index_m.html text/html upload [4] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/img/info-big.png img/info-big.png image/png upload [3] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/alias-manager_big.png alias-manager_big.png image/png upload [2] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/alias-manager.png alias-manager.png image/png upload [1] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/admin.d.ts admin.d.ts video/mp2t upload [0] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/adapter-settings.js adapter-settings.js application/javascript INFO: Directory "/opt/iobroker/node_modules/iobroker.alias-manager/www" was not found! Nothing was uploaded or deleted. process exited with code 0
-
Alle Neuerungen funktionieren.
-
@crunchip jup, da haste recht! auf das hab ich gar nicht geschaut. bei seinem screenie steht auch nur Alias-Manager,
bei uns noch .0 dazu... -
@crunchip sagte in Alias-Manager Adapter:
@s-bormann hab ich gerade mal geladen, funktioniert bei mir allerdings nicht. hab auch nochmal ein upload angestoßen
$ ./iobroker upload alias-manager upload [9] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/words.js words.js application/javascript upload [8] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/type-detector.js type-detector.js application/javascript upload [7] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/style.css style.css text/css upload [6] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/index_m.js index_m.js application/javascript upload [5] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/index_m.html index_m.html text/html upload [4] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/img/info-big.png img/info-big.png image/png upload [3] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/alias-manager_big.png alias-manager_big.png image/png upload [2] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/alias-manager.png alias-manager.png image/png upload [1] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/admin.d.ts admin.d.ts video/mp2t upload [0] alias-manager.admin /opt/iobroker/node_modules/iobroker.alias-manager/admin/adapter-settings.js adapter-settings.js application/javascript INFO: Directory "/opt/iobroker/node_modules/iobroker.alias-manager/www" was not found! Nothing was uploaded or deleted. process exited with code 0
Hi, danke für die Meldung. Habe die Einstellungen noch mal überarbeitet. Bitte teste es noch mal mit der 0.1.3.
-
-
@s-bormann yo baby, yo!
-
@s-bormann
Hi, bin durch Zufall auf deinen Adapter gestoßen. Was habe ich mich gequält mit dem Geräte Adapter von ioB - aber irgendwie werde ich nicht warm damit und über Scripte geht es zwar ist aber nicht intuitiv.Dein Adapter dagegen funktioniert und ist zugleich übersichtlich (gerade wenn man nicht regelmäßig mit Aliasen arbeitet hat man schnell wieder Anschluss an das Thema).
Sehr schön gemacht
Vielen Dank! -
@micklafisch said in Alias-Manager Adapter:
über Scripte geht es zwar ist aber nicht intuitiv
nach 200 stk gehts schon...
aber hast recht, wenn man das grundgerüst mal verstanden hat erleichtet der adapter das leben ungemein... -
@micklafisch
Ich kann mich Deiner Meinung nur anschließen - für mich war das viel zu unflexibel auch wenn ich erkenne, dass man hier ein Gerüst für bestimmte Gerätetypen vorgegeben werden soll.Insofern fand ich die Entwicklung des Aliasadapters gut.
@s-bormann Beim Einlesen habe ich nur festgestellt, dass die bedingte Zuweisung bei einem Read oder Write nicht richtig erkannt wird.
Hier mal meine Orginaldefinition des Alias:
{ "_id": "alias.0.schalter.sz_schrankbeleuchtung.on", "type": "state", "common": { "name": "on", "role": "", "type": "boolean", "read": true, "write": true, "desc": "Manuell erzeugt", "def": false, "alias": { "id": "mqtt.1.tasmota.szSchrankbeleuchtung.stat.POWER", "read": "val === 'ON' ? true : false" } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1597497847675, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Die Zuweisung; "read": "val === 'ON' ? true : false" wird vom Adapter leider nicht richtig übernommen:
-
@mickym sagte in Alias-Manager Adapter:
Orginaldefinition
Deine Quell DP hast doch read und write = true, wie dein Alias. Was soll da falsch sein? Habe ich deine Frage missverstanden?
-
"read": "val === 'ON' ? true : false"
Der Read ist mit einer bedingten Zuweisung verknüpft, die wird im Adapter aber abgeschnitten:
da steht nur noch
val ===
Der Adapter hat aber zum Glück nicht die Orginaldefinition überschrieben.
Das heißt irgendwie kommt der Adapter mit der bedingten Zuweisung
'ON' ? true : false"
nicht zurecht.
Das heißt im Orginalpunkt seht ON/OFF (und nicht true und false), dann soll im Alias true stehen, andernfalls false.
-
@mickym sagte in Alias-Manager Adapter:
"read": "val === 'ON' ? true : false"
Der Read ist mit einer bedingten Zuweisung verknüpft, die wird im Adapter aber abgeschnitten:
da steht nur noch
val ===
Der Adapter hat aber zum Glück nicht die Orginaldefinition überschrieben.
Das heißt irgendwie kommt der Adapter mit der bedingten Zuweisung
'ON' ? true : false"
nicht zurecht.
Das heißt im Orginalpunkt seht ON/OFF (und nicht true und false), dann soll im Alias true stehen, andernfalls false.
Stimmt, es liegt an dem Anführungszeichen.
Ein Bugfix lädt gerade hoch.
Danke für die Rückmeldung! -
Moin. Cooler adapter, sehr brauchbar, vielen Dank für die Arbeit!
Allerdings sind mir zwei, drei Dinge aufgefallen:
-
wenn man auf solch einen adapter umsteigt, müssen alle Datenpunkte in allen anderen adaptern entsprechend angepasst werden, z.B. in den ganzen JavaScripts/Blocklys, in allen Visualisierungen usw. Diese Anpassungen macht dieser adapter hier jedoch nicht automatisch sondern müssen manuell vorgenommen werden, oder täusche ich mich?
-
wenn mal ein Quellgerät ausfällt, möchte man ja ggf. dieses auf einfache Weise durch ein neues ersetzen. Wenn ich es richtig verstehe, muss dazu jeder Datenpunkt des Gerätes einzeln erneuert werden oder gibt es auch eine Möglichkeit, alle Datenpunkte nach Austausch des Quellgerätes automatisch auf einmal aktualisieren zu lassen?
-
ich habe versucht, eine Ordnerstruktur in die Aliase hineinzubekommen. Dieses habe ich manuell versucht, durch anlegen von Datenpunkten mit "Unternamen", z.B. alias.0.Keller.Decklicht, wobei es da zu einem Bug kam, bei dem sich der Unterordner bzw. die gesamte Struktur nicht mehr löschen ließen. Ist eine Ordnerstruktur nicht gewollt?
Ansonsten nochmal hertlichen Dank für die super Arbeit an diesem Adapter!
Grüße.
-
-
@smartnoob sagte in Alias-Manager Adapter:
Moin. Cooler adapter, sehr brauchbar, vielen Dank für die Arbeit!
Allerdings sind mir zwei, drei Dinge aufgefallen:
- wenn man auf solch einen adapter umsteigt, müssen alle Datenpunkte in allen anderen adaptern entsprechend angepasst werden, z.B. in den ganzen JavaScripts/Blocklys, in allen Visualisierungen usw. Diese Anpassungen macht dieser adapter hier jedoch nicht automatisch sondern müssen manuell vorgenommen werden, oder täusche ich mich?
Richtig - das ist einmalig ein ziemlicher Umstellungsaufwand.
- wenn mal ein Quellgerät ausfällt, möchte man ja ggf. dieses auf einfache Weise durch ein neues ersetzen. Wenn ich es richtig verstehe, muss dazu jeder Datenpunkt des Gerätes einzeln erneuert werden oder gibt es auch eine Möglichkeit, alle Datenpunkte nach Austausch des Quellgerätes automatisch auf einmal aktualisieren zu lassen?
Ja und Nein eigentlich musst Du nur den Link zum Quellgerät erneuern. Das ist ja der Sinn des Alias. Der Vorteil ist aber das, was DU oben beschrieben hast, Du musst dann Deinen JavaScripts und Blocklies nicht mehr anfassen, da die ja auf den Alias-Datenpunkt verweisen. Allerdings JA DU musst jeden Link zu jedem Datenpunkt des Gerätes erneuern. Ist aber vielleicht einfacher oder übersichtlicher es an dieser Stelle zu tun, als sämtliche Scripts zu durchsuchen.
- ich habe versucht, eine Ordnerstruktur in die Aliase hineinzubekommen. Dieses habe ich manuell versucht, durch anlegen von Datenpunkten mit "Unternamen", z.B. alias.0.Keller.Decklicht, wobei es da zu einem Bug kam, bei dem sich der Unterordner bzw. die gesamte Struktur nicht mehr löschen ließen. Ist eine Ordnerstruktur nicht gewollt?
Doch sowas habe ich auch. Du legest den Alias an - das kann auch ein Ordner sein - schaut bei mir so aus:
Wenn Du so einen Alias angelegt hast, kannst Du einzelne Datenpunkte unter dem alias anlegen:
Das geht mit dem 2. Menüpunkt Alias editieren - da kann man dann eigene Datenpunkte anlegen.
-
@mickym sagte in Alias-Manager Adapter:
@smartnoob sagte in Alias-Manager Adapter:
- wenn mal ein Quellgerät ausfällt, möchte man ja ggf. dieses auf einfache Weise durch ein neues ersetzen. Wenn ich es richtig verstehe, muss dazu jeder Datenpunkt des Gerätes einzeln erneuert werden oder gibt es auch eine Möglichkeit, alle Datenpunkte nach Austausch des Quellgerätes automatisch auf einmal aktualisieren zu lassen?
Ja und Nein eigentlich musst Du nur den Link zum Quellgerät erneuern. Das ist ja der Sinn des Alias. Der Vorteil ist aber das, was DU oben beschrieben hast, Du musst dann Deinen JavaScripts und Blocklies nicht mehr anfassen, da die ja auf den Alias-Datenpunkt verweisen. Allerdings JA DU musst jeden Link zu jedem Datenpunkt des Gerätes erneuern. Ist aber vielleicht einfacher oder übersichtlicher es an dieser Stelle zu tun, als sämtliche Scripts zu durchsuchen.
Hi,
hierzu noch eine kleine Ergänzung: Mit dem ButtonAlias umbenennen
öffnet sich dieser Dialog:
Hier kann man unten, bei (3) eine "suchen und ersetzen"-Funktion nutzen, mit der man mit einem Klick in allen Datenpunkten des Aliases die ID des alten (kaputten) Gerätes mit der neuen ID tauschen lassen kann.
LG
-
Zu 1) Eigentlich schade, dass die Umstellung dann nicht automatisch geht. Müsste doch eigentlich iwie machbar sein. Letztendlich ist doch im Hintergund eh alles string/text-artig in irgendwelchen Dateien gespeichert. Vom Ablauf wäre es dann etwa so:
- Alias manuell anlegen
- Alle Datenpunkte.desaltenGerätename durch Datenpunkte.desneuenAlias in allen ioBroker-Dateien austauschen.
Aber das wäre das sicherlich eine Zusatzherausforderung für den Entwickler des Alias-Managers
Zu 2) Wäre doch auch iwie toll, wenn man alle zugehörigen Datenpunkte automatisch ausgetauscht bekäme, wenn man ein altes (zb defektes) Quellgerät durch ein neues ausgetauscht bekäme. Man würde z.B. auf "Quellgerät-Austausch" klicken; der Adapter würde dann einfach alle Datenpunkte des Alias Gerätes austauschen durch Verweis auf das neue (z.b. nicht mehr defekte Gerät). Dann müsste man nicht alle Datenpunkte anpassen, sondern lediglich dem Adapter einen Hinweis durch "Austausch" oder "Reparatur" darauf geben, dass ein Quellgerät ausgetausch wurde.
Sicher auch ne Zusatzherausforderung für den Coder, lol.
Zu 3) Ich habe es nun mit der Ordnerstruktur hinbekommen. Allerdings stellt sich mir hier eine Frage: Teilweise haben meine Altgeräte (wegen der Geräteanmeldung über Phoscon) zweigeteilte Namen, z.B. "Decke Schlaf" oder "Bettlampe links". Diese Namen wurden so ja noch nie in ioBroker verwendet sondern waren lediglich "Name". Der Alias-Manager allerdings übernimmt jetzt für den neuen Gerätedatenpunkt den alten Geräte-"Namen", was dazu führt, dass es dann Pfade wie z.B. "alias.0.Schlaf.Decke Schlaf.level" gibt, mit einem LEERZEICHEN in der Pfadangabe. Das führt doch im weiteren Verlauf sicher zu Problemen, oder?
-
@smartnoob sagte in Alias-Manager Adapter:
Zu 1) Eigentlich schade, dass die Umstellung dann nicht automatisch geht. Müsste doch eigentlich iwie machbar sein. Letztendlich ist doch im Hintergund eh alles string/text-artig in irgendwelchen Dateien gespeichert. Vom Ablauf wäre es dann etwa so:
- Alias manuell anlegen
- Alle Datenpunkte.desaltenGerätename durch Datenpunkte.desneuenAlias in allen ioBroker-Dateien austauschen.
Aber das wäre das sicherlich eine Zusatzherausforderung für den Entwickler des Alias-Managers
Zu 2) Wäre doch auch iwie toll, wenn man alle zugehörigen Datenpunkte automatisch ausgetauscht bekäme, wenn man ein altes (zb defektes) Quellgerät durch ein neues ausgetauscht bekäme. Man würde z.B. auf "Quellgerät-Austausch" klicken; der Adapter würde dann einfach alle Datenpunkte des Alias Gerätes austauschen durch Verweis auf das neue (z.b. nicht mehr defekte Gerät). Dann müsste man nicht alle Datenpunkte anpassen, sondern lediglich dem Adapter einen Hinweis durch "Austausch" oder "Reparatur" darauf geben, dass ein Quellgerät ausgetausch wurde.
Sicher auch ne Zusatzherausforderung für den Coder, lol.
Zu 3) Ich habe es nun mit der Ordnerstruktur hinbekommen. Allerdings stellt sich mir hier eine Frage: Teilweise haben meine Altgeräte (wegen der Geräteanmeldung über Phoscon) zweigeteilte Namen, z.B. "Decke Schlaf" oder "Bettlampe links". Diese Namen wurden so ja noch nie in ioBroker verwendet sondern waren lediglich "Name". Der Alias-Manager allerdings übernimmt jetzt für den neuen Gerätedatenpunkt den alten Geräte-"Namen", was dazu führt, dass es dann Pfade wie z.B. "alias.0.Schlaf.Decke Schlaf.level" gibt, mit einem LEERZEICHEN in der Pfadangabe. Das führt doch im weiteren Verlauf sicher zu Problemen, oder?
Ja, Punkt 1) und 2) wäre sehr wünschenswert, allerdings kaum umsetzbar, da es ja beliebig viele Adapter gibt, die auf die Daten zugreifen können. Wäre es von Anfang an eine Core-Funktion von ioBroker gewesen, die alle Adapter hätten implementieren müssen, wäre das sicher anders gewesen. Aber so ist das eben mit gewachsenen Systemen. Ich denke, hier ist die (ja noch recht junge) Alias-Funktion von ioBroker ein sehr guter Kompromiss. Und mit der Suchen und Ersetzen-Funktion des Alias-Managers ist ein Gerätetausch binnen weniger Sekunden erledigt.
Zu 3) Ich nutze viele Pfade mit Leerzeichen - bislang ohne Probleme. LG