NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
@paul53 wir haben lange überlegt. Haben keinen besseren Typ gefunden ;-))
-
@apollon77
Könnte es Sinn machen - oder wäre es ein totaler Overkill? - wenn man optional sämtliche Datenpunkte von bestimmten Rollen (z.B. button, switch, level) automatisch als Alias anlegen lassen könnte?Bei dieser Automatik würde Start- und Ziel-Objekt natürlich identisch sein.
Anschließend wird dann - nach Bedarf - peu à peu ein tatsächlicher Alias eingetragen?!? -
@BBTown Ich denke, vor allem weil Du ja dann auch die Namen übernehmen müsstest, das das wenig sinn macht. Dann hast Du einen Alias mit der Homematic Seriennummer JEQ775765 im Alias und bleibst darauf auch wenn das später zu Sonoff oder Shelly umgebaut wird. Ich glaube die Grundidee ist da einmal etwas mehr Aufwand reinzustecken um ein sinnvolles "semantisches" Namensschema zu etablieren. Aber damit sind automatismen leider schwierig ...
Es sei denn man übernimmt die Namen, aber dann sind da wieder Zeichen drin die du nicht als IDs haben willst/darfst
-
@BBTown sagte in Fragen / Antworten rund um die neue Alias Funktion:
@apollon77
Könnte es Sinn machen - oder wäre es ein totaler Overkill? - wenn man optional sämtliche Datenpunkte von bestimmten Rollen (z.B. button, switch, level) automatisch als Alias anlegen lassen könnte?Bei dieser Automatik würde Start- und Ziel-Objekt natürlich identisch sein.
Anschließend wird dann - nach Bedarf - peu à peu ein tatsächlicher Alias eingetragen?!?Dann kann es aber sein, dass du wie beim UPNP einen ganzen Haufen von Alias´en hast die du vielleicht nicht willst und umständlich löschen musst.
IDEE: im Adapter Devices eine Konfigseite die alle Objekte listet und dann alle nötigen einzeln bzw. Adapter-, Funktions- oder Rollenweise markiert und anlegt.
Ist zwar auch nicht die "einfache Automatiklösung" aber vielleicht eine Idee. -
@apollon77 sagte:
Haben keinen besseren Typ gefunden
"meta" ist in Ordnung. Ich wollte nur darauf hinweisen, dass es kein Datenpunkt ist.
-
@apollon77 Auch mit der 2.0.35 scheint (fast) alles wunderbar zu funktionieren. Wo ich allerdings noch ein Problem habe, ist im IOT-Adapter. Wenn ich dort nun einen Alias als Gerät hinzufügen möchte, erhalte ich im Log:
"alias.0.XXX" not exists or no native part.
Native{} ist im Alias-Datenpunkt vorhanden. -
@sigi234 sagte in Fragen / Antworten rund um die neue Alias Funktion:
@NightWatcher sagte in Fragen / Antworten rund um die neue Alias Funktion:
Kurzes Feedback von meiner Seite: Auch hier sehen die Aliases nun gut aus Überall wird der korrekte aktuelle umgerechnete Wert angezeigt. Spitze. Ein Killerfeature meines Erachtens.
So Richtig verstehe ich die Alias noch nicht.
hi sigi , hier auch noch ein beispiel als nutzung für ein alias
-
@Seber Dann bitte Issue in iot öffnen dazu!. Danke
-
@apollon77 Erledigt! War mir nur nicht sicher, wo ich das jetzt eintüten soll
-
hi @apollon77
ich versuche gerade in einem script die aliase zu durchsuchen, um fehlende datenpunkt-zuweisungen herauszufinden
dazu lese ich die datenpunkte aus und vergleiche, ob in einem alias-datenpunkt unter alias.id der wert existiert
getObject(id).common.alias.id
mein problem - der durchlauf durch die datenpunkte:
$("controll-own.0.*").each(function (id, i) {.....
zeigt mir die im alias definierte id auch als datgenpunkte an
oder anders:
in einem alias habe ich einen datenpunkt als id angegeben, der nicht mehr existiert - scanne ich aber alle datenpunkte ($("controll-own.0.*").each(function (id, i) {.....) wird mir der nicht-existierende (aber im alias angegebe) datenpunkt angezeigt - will ich das object ansehen, existiert es natürlich nichthabe ich da einen denkfehler ? hoffe, es ist verständlich, was ich meine
-
Welche JavaScript version? Wann wurde der State gelöscht? Nicht latest JavaScript adapter hatten eine bug das ggf neue oder gelöschte Objekte nicht bekannt waren. Oder noch bekannt waren.
-
@apollon77 habe gestern upgedated - ist aktuell mit latest 4.3.1
da ich teste, habe ich den datenpunkt nie angelegt, sondern beim erstellen einfach einen nicht-existenden unter common.alias.id eingegeben - das ist nicht das problem
der selector beim durchlauf meint irgendwie einen datenpunkt zu finden - den gibt es aber nicht - bzw. hat es nie gegeben
-
@liv-in-sky naja es kann sein das durch die alias Nutzung der State ggf irgendwie da ist und auch einen Wert hat aber kein Objekt existiert. Damit an sich undefinierter Zustand.
-
@apollon77 hab jetzt mal mit einem anderen getestet
da hat es funktioniert - ..Start4 gibt es nicht als datenpunkt
irgendwie ist durch die testerei dieser rolladen4 im system hängen geblieben - keine ahnung wo - in der object.json ist er nicht drin
-
@apollon77 hallo,
jetzt muss ich nochmal nachfragen - wieder das selbe thema wie oben beschrieben
alias angelegt - aber die zuweisung ist falsch , da der zugewiesene datenpunkt nicht existiert ( ist also so, als ob ich ein alias angelegt hatte und nach einer woche den zugewiesenen dp lösche - kann ja vorkommen
das problem bzw verhalten ist folgendes :
beim ersten test, ob der zugewiesene datenpunkt im alias vorhanden ist, ist alles ok - das script scannt alias.0 nach datenpunkte , vergleicht den inhalt der alias.id und sucht den zugehörigen dp - ist er da, ist alles gut, existiert er nicht - kommt fehler (alias.0.dritterVersuch)
jetzt das eigenartige verhalten - nach einem neustart des iobrokers, wird beim scannen des alias.0 ordners , der aliasdatenpunkt nicht mehr gefunden OBWOHL er im object tab noch da ist. im ersten bild ist "derFehler2" sichtbar - im 3ten bild wird durch alias.0 gelaufen und ausgegeben - da kommt "derFehler2" nicht mehr vor obwohl sichtbar - ABER nur nach einem neustart von iobroker
nach 10-20 aliaswerten könnten sich dort "datenzombies" sammeln und man kann dann fehler im script nicht mehr richtig finden oder auch in der vis - der datenpunkt existiert ja noch und kann auch zb. in der vis ausgewählt werden
weißt du, ob da eine fehlerroutine kommen wird? oder ist es noch zu früh, danach zu fragen
-
@liv-in-sky am besten lege deine Erkenntnisse mal als issue im Controller an. Am Ende müssen wir immer beim setzen von zielstates von einem alias aus prüfen ob es zum Ziel ein Objekt gibt. Nicht bei der Anlage. Sondern beim Wert setzen.
Bzw dein Skript müsste neben der existiert von state Werten prüfen ob es auch ein passendes Objekt gibt.
Am Ende entstehen bei sowas gerade Geister State werte ohne Objekt. Und das spiegelt das gut wieder was du beschreibst.
Müssen wir mal überlegen wie wir das behandeln können am besten.
-
@apollon77 ich mach ein git auf
ich prüfe übrigends den state an dieser stelle nicht ab sondern ob es ein dp-object gibt
erst später bzw seperat wird überprüft, ob alle datenpunkte auch statewerte haben - aber nicht bei aliasen!
danke dir
-
@marcuskl sagte:
Ah jetzt hat sich es grad irgentwie aktualisiert und er ist da
KomischDer Wert eines neuen Datenpunktes wird nicht gleich im Admin, Reiter "Objekte" angezeigt. Am schnellsten kommt man zu einer Wertanzeige, wenn man den Admin in einem neuen Browser-Tab öffnet. Getestet habe ich es mit folgendem Beispiel, in dem ein String-Datenpunkt, der nur die Werte "Aus" und "Ein" hat, in einen Logikwert gewandelt wird.
"common": { "name": "Bad.Licht.Deckenlampe", "role": "switch", "type": "boolean", "desc": "Wandlung aus String Aus/Ein", "alias": { "id": "meineDP.0.ch2.on_off", "read": "val == 'Aus' ? false : true", "write": "val ? 'Ein' : 'Aus'" }, "read": true, "write": true, "def": false }, "native": {},
-
@paul53 "on"/"off" sollte automatisch konvertiert werden! Da brauchst Du an sich keine read/write function. Es reicht wenn die Datentypen boolean/string sind bei target/source
-
@apollon77 sagte:
Da brauchst Du an sich keine read/write function. Es reicht wenn die Datentypen boolean/string sind bei target/source
Ja, ich weiß, wollte es aber mal mit "read" und "write" testen - eigentlich mit einem Datenpunkt "Aus"/"Ein", den ich aber erst hätte erstellen müssen. Ich passe es mal in meinem Beispiel oben an.