NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
Ich denke, dass zu der neuen Funktion, die ja gerade bei Adapterübergreifenden Werten sehr wichtig sein wird, doch einige Fragen im Laufe der Nutzung entstehen könnten.
Ich habe versucht, Anhand der Doku und der Github Readme, die Funktion zu verstehen und umzusetzen, doch leider kam mir Bereits konkret ein Problem auf:
**Leider wird mir aber weder in der Vis, noch in den Objekten der Value beim Alias angezeigt.
Sollte der sich nicht eigentlich auch aktualisieren, wenn das dazugehörige Objekt sich ändert?
Wenn ich aber einen Set Befehl über den Alias absetze, so wird der Umgerechnete wird auch an das original Objekt korrekt übergeben.**
Der Wert 255 kommt vom original Objekt, der NaN vom Alias. -
@NightWatcher sagte:
Der Wert 255 kommt vom original Objekt
Sicher, dass es eine Zahl enthält oder vielleicht einen String ?
-
Das ursprüngliche Objekt ist ein "Typ" Number.
-
@NightWatcher sagte:
Das ursprüngliche Objekt ist ein "Typ" Number.
Was leider nicht bedeutet, dass der tatsächliche Wert auch vom Typ "number" ist. Mit einem kurzen Testscript kann man es feststellen.
console.log('Typ: ' + typeof getState('modbus.0.xyz').val);
-
Hier zwei Links zu Dokumentationen rund um "alias.0"
Doku: https://www.iobroker.net/#en/documentation/dev/aliases.md
ReadMe: https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#object-and-state-aliases -
@NightWatcher sagte in Fragen / Antworten rund um die neue Alias Funktion:
Sollte der sich nicht eigentlich auch aktualisieren, wenn das dazugehörige Objekt sich ändert?
Ja sollte er. muss ich bei gelegenheit mal testen
-
@NightWatcher
Probiere es mal mit"read": "parseFloat(val) / 2.55"
-
Ich habe den JS-controller auf 2.0.29 aktualisiert, aber die alias.0-Instanz hat er nicht angelegt - aber vlt suche ich auch falsch. Wo müsste ich sie finden?
-
@sigi234 sagte in Fragen / Antworten rund um die neue Alias Funktion:
@paul53 sagte in Fragen / Antworten rund um die neue Alias Funktion:
@NightWatcher sagte:
Das ursprüngliche Objekt ist ein "Typ" Number.
Was leider nicht bedeutet, dass der tatsächliche Wert auch vom Typ "number" ist. Mit einem kurzen Testscript kann man es festellen.
console.log('Typ: ' + typeof getState('modbus.0.xyz').val);
Geht das auch wenn ich alle States zB. number testen will?
Ist Type number
Dein Vorschlag, den Wert beimr eading zu invertieren, hat leider auch keinen Erfolg gebracht. Ergebnis das gleiche.
-
@NightWatcher sagte:
Ist Type number
Hast Du es mal mit einem Datenpunkt versucht, der keine Leerzeichen in der ID hat ?
-
@steimi sagte in Fragen / Antworten rund um die neue Alias Funktion:
Ich habe den JS-controller auf 2.0.29 aktualisiert, aber die alias.0-Instanz hat er nicht angelegt - aber vlt suche ich auch falsch. Wo müsste ich sie finden?
schau mal hier rein (ich habe es auch noch nicht ganz kapiert)
-
Ja, auch schon. Das Ergebnis bleibt das gleiche.
Komisch ist, dass wenn ich im vis Editor ein neues Widget (z.b. number) irgendwo platziere und als Wert den alis hole, zeigt er mir den Wert im vis Editor an. Im Frontend dann aber wiederrum nicht.
Und noch eine neue Erkenntnis. Wenn ich über das original Objekt den Wert ändere, dann sehe ich im Objektbaum im Admin beim alias den neuen Wert (auch umgerechnet). Aktualisiere ich aber diese Seite, ist der alias wieder leer.
-
Hallo zusammen,
bei mir ist das Verhalten mit den Aliasen leider genau das gleiche.
Habe es mit verschiedenen Typen versucht, die verlinkten Objekte und Werte sind auch wirklich vom richtigen Typ, es wird allerdings nichts angezeigt.
Ein log(getState("alias.0.Licht.Kueche").val); bringt mir im Log ein getState "alias.0.Licht.Kueche" not found (3) states[id]=falseBeim Ändern des Werts erscheint dieser kurz, verschwindet dann aber beim Aktualisieren der Seite wieder.
Habe es auf einer Test-VM mit JS-Controller 2.0.33 versucht und allen Adaptern auf aktuellem Stand aus dem latest-Repo.
-
@dslraser @steimi ich hatte bis gerade eben auch keinen alias.0.
Bei keinen Versionen vom Js-Controller wurde irgendwas angelegt. aktuell bin ich auf 2.0.34 und hatte alle beta nacheinander.
Nun wollte ich eigentlich gerade auf redis umstellen und vergessen in den Ordner /opt/iobroker zu wechseln.
mit iobroker setup costum kam dann folgendesroot@IoBroker:~# iobroker setup costum object alias.0 created object system.certificates yet exists object system.repositories yet exists object system.config yet exists object enum.functions yet exists object enum.rooms yet exists object system.group.user yet exists object system.group.administrator yet exists object _design/system yet exists
-
@crunchip Jupp ... das wird in der nächsten Version gefixt das es bei allen noch angelegt wird.
-
@Seber kannSt du das mal irgendwie mit einem Video der "Screenfilm" visualisieren? Ich habe geradegetestet und bei mir geht alles wie es soll in beide richtungen
-
@apollon77 habe mir mal erlaubt, ein entsprechendes Video zu machen
https://drive.google.com/file/d/1Uok5MzubHqxthappPBwGLdoFLhngBz_c/view
-
Danke sehen wir uns an. Die Integration von alias im Admin ist effektiv noch nicht voll gegeben. Siehe auch Infos zum alias feature. Alias ist nur „Technology preview“
Wichtig ist aber das die Adapter die den Datenpunkt lesen wie visu den korrekten Wert haben?!
-
@apollon77 Sorry, war leider unterwegs und bin erst eben wieder angekommen. Bei mir sieht es aber gleich aus wie in dem Video von NightWatcher. Der "Darstellungsfehler" im Admin würde mich nicht großartig stören, nur das getState "alias.0.Licht.Kueche" not found (3) states[id]=false macht die Verwendung etwas schwer
Was mir allerdings eben aufgefallen ist, als ich wieder getestet habe, mittlerweile scheinen die Aliase zu funktionieren, da sie einen Wert zurückgeben. Ein eben neu erstellter liefert jedoch wieder die gleiche Fehlermeldung.
Danach habe ich zum Testen die Javascript-Instanz neugestartet und die vor dem Neustart noch funktionierenden Aliase liefern auch wieder die gleiche Fehlermeldung.
Wenn ich nun jedoch den Wert von einem Datenpunkt ändere, scheint dieser auch wieder zu funktionieren, bei mir wird also scheinbar nur beim erstellen des Alias, oder beim Neustart der JS-Instanz der aktuelle Wert nicht übernommen zu werden, sondern erst bei Änderung. -
@apollon77 wenn ich den alias in der vis benutzen möchte, so wird dort nur NaN ausgeben.