NEWS
[Neuer Adapter] LinkedDevices
-
ich erkläre mal der Reihe nach...
ich habe den mqqt DP, alles Super
jetzte erstelle ich mir im Alias die notwenidgen DP, damit ich von dort aus alles an einem zentralen Punkt habe
ab hier beginnt mein Kopfkopten:
mir fehlen mir Infos aus dem "INFO" DP der das json enthält. dort will ich die IP Adresse etc.
jetzt nehme ich node red (Dank Dir) und baue mir mir die DP der Info Json Struktur nach 0.userdata.mqttDa ich ja Aliase haben will ich die IP und andere Infos ja dort zusammen haben.
Also erstelle ich einen Alias die auf 0.userdata.mqtt zeigen.Warum die DP nicht gleich im Alias Ordner anlegen??
das ist meine Frage -
ok, das klappt.
ich brauche ja nur 2-3 Werte, die würde ich mir manuell da raus holen und hätte dann an zentraler stelle alle DP die für mich relevant sind.
-
@dos1973 In meinen Augen dienen Alias nur dazu, um Datenpunkte geräteunabhängig schalten zu können. Ansonsten sind unter Alias die Datenpunkte - eben keine normalen Datenpunkte. Jeder Datenpunkt unter Alias muss zwingend mit einem "Originaldatenpunkt" verbunden sein.
Sonst bekommst Du solche Fehlermeldungen:
admin.0 2022-09-18 15:51:37.243 warn cannot subscribe on alias "alias.0.licht.wohnzimmer.tischlampe.brightness": Alias alias.0.licht.wohnzimmer.tischlampe.brightness has no target 12 admin.0 2022-09-18 15:51:37.240 warn Alias alias.0.licht.wohnzimmer.tischlampe.brightness has no target 12 admin.0 2022-09-18 15:51:36.696 warn Alias alias.0.licht.wohnzimmer.tischlampe.brightness has no target 9 javascript.0 2022-09-18 15:51:36.698 warn Alias alias.0.licht.wohnzimmer.tischlampe.brightness has no target 9 javascript.0 2022-09-18 15:51:36.689 warn Could not add alias subscription: Alias alias.0.licht.wohnzimmer.tischlampe.brightness has no target 12 javascript.0 2022-09-18 15:51:36.687 warn Alias alias.0.licht.wohnzimmer.tischlampe.brightness has no target 12
Es würde also gar keinen Sinn machen - diese Datenpunkte mit irgendwas in den Alias Datenbaum zu schreiben, da die Verknüpfung zu einem Original fehlt.
Wenn Du Dir wirklich die Mühe machen willst - all möglichen Infos zu "aliasen" - dann musst Du wie gesagt - Verzeichnisse für jedes Device machen und jede Eigenschaft dann als Alias-Datenpunkt definieren. Das ist im iobroker soweit ich verstanden habe auch gewollt. Das heißt - Du machst eigentlich statt eines Verzeichnisses ein "Gerät" - als Folder und darunter die einzelnen States.
-
@mickym sagte in [Neuer Adapter] LinkedDevices:
statt eines Verzeichnisses ein "Gerät" - als Folder
ohhhjjeeee, mir schwant böses...
-
@dos1973 sagte in [Neuer Adapter] LinkedDevices:
@mickym sagte in [Neuer Adapter] LinkedDevices:
statt eines Verzeichnisses ein "Gerät" - als Folder
ohhhjjeeee, mir schwant böses...
Habs Dir gerade gepostet - wie das aussehen soll - siehe Tischlampe.
Falls Du Verzeichnisse - Folder gemacht hast - kann man das ggf. leicht wieder beheben:
Allerdings fehlen dann ein paar Attribute unter common.
Besser also wenn man statt Verzeichnis
Geräte anlegt.
Eventuell ist es SINNVOLLER alles über den Geräte-Manager anzulegen und ggf. noch eigene Eigenschaften dazu anzulegen.
-
Edot: Quatsch geschrieben
-
@dos1973 Also - ich sehe gerade - am besten man nimmt wohl den Geräte-Manager - wobei der mir ein Problem mit dem DropDown macht.
-
@mickym
weiß gar nicht was das ist, der geräte manger ... ?!ich habe noch nicht verstanden, was mir das bringt.
Also warum Gerät anstelle Folder? -
@dos1973 Also die iobroker Jungs wollen - das es quasi für jeden Gerätetyp immer eine standardisierte Auswahl von Zuständen (states) gibt. So kann man eine Lampe ein und ausschalten, vielleicht noch dimmen etc. - Nicht standard wird WLAN sein, da es ja auch Zigbee und andere Lampen gibt. Die Idee, die wohl dahinter steht ist, dass man für bestimmte Gerätetypen dann auch ein bestimmtes Verhalten global vordefinieren kann. Eine Lampe wird also in der Regel keine Werte für die Luftfeuchtigkeit liefern.
-
@mickym
ok, das hört sich sinnvol an.
Aber meine jetztige Struktur kann ich doch mit Folder lassen.... und schiess mir dadurch kein Eigentor. Noch ist die Alias Struktur nirgends eingebunden... möchte das nich nochmals machen müssenwo finde ich den Geräte manager?
Edit:
d.h diese ganzen Verzeichnisse müssten Geräte sein?
-
@dos1973 Also ehrlich gesagt - würde ich es nochmal neu machen - wenn Du das konform machen willst.
Du musst Dir erst mal den Geräte-Manager installieren - habe ich auch gerade gemacht - um das auszuprobieren. Hab zwar schon einen unschönen Bug entdeckt - aber kann man mit leben.
Du findest dann im Menü einen neuen Punkt Geräte
Darunter legst Du dann deine Geräte neu an.
Bei mir funktionieren nur die DropDowns nicht richtig.
Du musst die markieren und dann mit ESC den Dialog verlassen oder über einen Button im übergeordneten Fenster - ein blöder - umständlicher Bug.
EDIT:
Hab mal Issue aufgemancht.
https://github.com/ioBroker/ioBroker.devices/issues/182 -
nicht dein Ernst... -
@dos1973 sagte in [Neuer Adapter] LinkedDevices:
nicht dein Ernst...Ich probier es ja nur aus - und ich sehe halt, wenn man das nicht mit dem Teil macht - dann fehlen bestimmte Ding. Ich probiere das mal mit meiner Lampe durch zu exerzieren. Aber was sind denn schon ein paar Stunden, im Verhältnis zu Deiner Lebenszeit. ....
-
@mickym sagte in [Neuer Adapter] LinkedDevices:
im Verhältnis zu Deiner Lebenszeit
-
Die Zustände scheint man nur direkt dort zu definieren:
Eigene Zustände mit + eigene States definieren -
Das set muss man dann aber noch in boolean verwandeln sonst geht der Schalter nicht.
Jedenfalls erzeugt Dir ein solch erzeugtes Gerät dann automatisch diese Struktur in Alias:
Da wird es als Channel - anstatt Device angelegt. Keine Ahnung warum.
-
@dos1973 sagte in [Neuer Adapter] LinkedDevices:
@mickym sagte in [Neuer Adapter] LinkedDevices:
im Verhältnis zu Deiner Lebenszeit
Ehrlich gesagt hat mir dieser DEVICE Manager noch zu viele Bugs - ich kann nachträglich keine Funktionen mehr ändern - und das mit dem DropDown nervt auch.
ich hab Änderungen in der Konvertierungsfunktion gemacht - kann das aber nicht speichern.
Button ist deaktiviert - bei sowas schmeisse ich das alles wieder weg. Also mach es so wie Du meinst. Ich nutz das erst mal nicht.
-
@mickym
wollte das eben schreiben...ich ändere evtl noch die Verzeicnisse und mache geräte daraus.
kann ich daseinfach
"type": "folder",in
"type": "device",
{ "common": { "name": "wandschalter" }, "type": "folder", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1663452796963, "_id": "alias.0.Home.bad.licht.wandschalter", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@dos1973 Im Prinzip ja - aber deswegen erkennt der Device Manager das nicht. Wenn Du den nicht benutzt - dann kannst das auch als folder lassen.
Der Device Manager macht unter common noch ein paar Einträge
{ "_id": "alias.0.licht.wohnzimmer.tischlampe", "common": { "name": { "de": "tischlampe" }, "role": "light", "icon": "", "color": null }, "native": {}, "type": "channel", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1663512523071, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Wobei wie gesagt - das Teil funktioniert nicht richtig - ich habe gerade in der Alias Funktion die Konvertierungsfunktion geändert und das wird gar nicht ausgelesen:
Da steht immer noch das alte Zeug drin:
und bekomm das auch nicht im Device Manager geändert und im Alias schaut das so aus:
Also im Prinzip - wenn Du Device Manager konform arbeiten willst - fehlen bestimmte Dinge noch im common Objekt. Aber wie gesagt - für mich hat das noch zuviele Bugs.
Zumindest ein leeres native objekt und eine Rolle unter common sind wohl nötig - aber wie gesagt - ich bin da nun wieder eher enttäuscht und werde das wohl nicht machen.
-
@mickym
Kannst du mir die beiden letzen konvertierungsfunktionen aus dem bild rauskopieren… sehe es nicht komplettAlso das on/ off in true/ false
Das will ich mir aufheben….
Danke -
@dos1973 Aha - nachdem ich es im Alias geändert hab - hat der Device Manager wohl doch eine neuen Eigenschaft generiert - namens ON-SET
Also im Admin ist es true und false - zum Lampe schalten brauchst aber ON und OFF - dann kannst Du für den Alias folgende Konvertierung verwenden:
Lesen:
JSON.parse(val).state == "ON" ? true : false
Schreiben:
JSON.stringify({ state : val ? "ON" : "OFF"})
aber irgendwie kann ich das in dem Gerätemanager nicht mehr bearbeiten - ist irgendwie ReadOnly geworden. - Der Alias wird dann von dem Geräte-Manager als Boolean oder Logikwert definiert.
Die Symbole werden bei mir im Device Manager auch nicht angezeigt: