NEWS
Alias-Datenpunkt anlegen - kein zusätzliches Ziel
-
Hallo Leute.
Ich habe einen virtuellen Datenpunkt (Counter) für ein Alias Device (zählt die Anzahl der Schalter Aktivierungen und schaltet abhängig von der momentanen Nummer eine bestimmte Szene ein).
Bisher habe ich in Userdata.o.*** immer einen Punkt angelegt, danach den Datenpunkt im Alias.0.**** verlinkt. Da ich den Datenpunkt nur im Alias Bereich nutze und er (meiner Meinung nach) auch nur dort logisch hingehört, würde ich gerne nur den Datenpunkt dort anlegen, anstatt immer doppelt in Alias und userdata. Sonst habe ich einfach immer die doppelte Anzahl an Punkten und die doppelte Arbeit, obwohl eine 1:1 Beziehung besteht.
Wenn ich das tue (Anlegen funktioniert), dann bekomme ich beim Eintragen von Daten jedoch den Fehler, dass der Datenpunkt kein Ziel hat.
Meine Frage: wie kann ich in Alias.0.xxx einen Vollwertigen Datenpunkt anlegen, keinen Link auf einen bestehenden Datenpunkt?Danke.
-
@tableautin Meines Erachtens gar nicht - weil eben ein Alias per Definition nur ein Verweis auf einen anderen Datenpunkt hat.
Im Prinzip ist es auch egal wenn Du das an unterschiedlichen Stellen hast, wenn Du alles unter einer Struktur haben willst, dann nur unter 0_userdata.0 und falls Du dort Punkte verlinken willst, dann musst Du das halt mit Deiner Logikmaschine selbst machen.
Vollwertige DP unter Alias widersprechen der kompletten Objektstruktur im iobroker. Schließlich sind auch Datenpunkte unter einem Adapter immer mit bestimmten Funktionen verbunden.
Es gibt einzig und alleine einen Bereich, wo man sich austoben darf - 0_userdata.0 und nirgendwo anders. Und wenn Du da bestimmte Funktionalitäten haben willst, dann musst Du die halt selbst implementieren.
-
@tableautin alias.0. ist nach meinem wissen dafür da, um sie in der Programmierung vernünftiger zu verwenden.
Sprich, sagen wir du hast shellys und legst dafür ein Script an, dann ist es sinnvoller einen alias zu verwenden, denn sollte dieser mal kaputt werden oder durch ein anderen Hersteller ersetzt werden, muss nur der alias angepasst werden, und nicht alle Scripte angepasst werden. -
@mickym Das ist genau mein Logikproblem. Der Datenpunkt steht an der Stelle, wo er mit den Gerät verbunden ist. Und dieser soll eben nur mit diesem virtuellen Gerät verbunden sein. Daher würde ich gerne ihn genau dort anlegen.
Aber ich hatte es bereits befürchtet, dass ich nun meine Struktur doppelt machen muss
Heißt immer parallel anlegen, ohne dass es überhaupt einen Sinn macht, diese Sachen in Userdata zu speichern (da ja im Gegensatz zu anderen Stellen niemals ein Adapter oder ein Script oder ähnliches auf userdata.0 zugreifen wird)userdata.0.GESCHOSS.ZIMMER.GEWERK.Datenpunkt
alias.0.GESCHOSS.ZIMMER.GEWERK.Datenpunkt -
@maximal1981 Genau, und es wird bei mir auch verwendet, um virtuelle Geräte anzulegen. Zum Beispiel ist ein Shelly (Detached Mode) in zwei virutelle Geräte geteilt: Lampe die gesteuert werden kann und Schalter der Befehle an iobroker gibt.
Und zum Schalter würde ich gerne einfach Daten speiechern ohne den Speicherort doppelt anzulegen (Alias und Userdata)
-
@tableautin Nochmal - Du brauchst keine Aliase - wenn Du ggf. Deine Logikmaschine einsetzt. Nimm halt nur 0_userdata.0 und verzichte komplett auf Aliase - auch für Deine Struktur. Ich arbeite teilweise auch ohne Aliase - da es die in dieser Form noch gar nicht so lange gibt.
Mit Deiner Logikmaschine reagierst Du auf den Shelly Adapter und schreibst in Deine 2 Datenpunkte unter 0_userdata.0
-
@mickym Dann habe ich die dazugehörigen Daten wieder an 2 Stellen stehen: alles was aus normalen Datenpunkten steht, alle virtuellen Daten (Counter etc.) die dazugehören nur in Userdata. Das macht die Wartbarkeit in ein paar Monaten / Jahren (wenn man nicht mehr alles im Kopf hat) doppelt schwierig. Dann lieber beim Anlegen die komplette Struktur in Alias + extern verlinkte Datenpunkte.
Ich habe beruflich genug mit Strukturen zu tun, wo niemand nach einiger Zeit mehr einen Überblick hat, und so etwas versuche ich möglichst überall zu vermeiden (alle Daten an einem Punkt bzw. virtuell verlinkt) Damit man nicht immer eine Checkliste benötigt (checke Position1 1, weitere Daten stehen an Pos2,...)
ich hatte einfach gehofft, dass es eine Möglichkeit gibt, vollwertige Datenpunkte anzulegen. Da es nicht geht, muss ich damit klarkommen und die zusätzliche Arbeit machen