NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
@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.
-
@paul53 ;.) "Ein"/"Aus" geht auch automatisch gg
-
@apollon77 sagte:
"Ein"/"Aus" geht auch automatisch
Wirklich ?
if (state.val === 'off' || state.val === 'OFF' || state.val === 'AUS' || state.val === 'aus' || state.val === 0 || state.val === '0') {
-
@paul53 ooooojhkkk ... "Aus" nicht ... ich baue es noch in ein lowercase um
-
@apollon77
Die Abfragestate.val === 0
kann man weglassen, denn der Fall wird abgedeckt durch
else state.val = !!state.val;
-
@paul53 korrekt
-
Ich habe nach dem Update auf den JS-Controller 2.1 einige meiner Skripte umgestellt, so dass jetzt 0_userdata.0 sowie die Alias (anstatt der LinkedDevices Adapter) genutzt wird.
0_userdata.0 funktioniert genau wie erwartet; Alias praktisch gar nicht.
Im Objektbaum werden die richtigen Werte angezeigt und auch bei Änderungen funktioniert es in beide Richtungen (schreiben auf Alias, sowie schreiben auf Originaldatenpunkt). Sobald aber ein Skript einen Aliasdatenpunkt nutzen soll funktioniert es nicht mehr. Die Trigger lösen nicht aus, wenn ein Skript versucht einen Aliasdatenpunkt zu lesen (gewählt via Objektbaum-Popup im Blockly), den es definitiv gibt, so schlägt es fehl mit folgendem Log:
-
Welche Version des JavaScript Adapters ist im Einsatz?
-
@apollon77 Script engine ist in Version 4.1.14 installiert.
Edit: falscher Adaptername -
@Xyolyp Ich meine den "Javascript" ("Script Engine" seit neuestem) Adapter
-
@apollon77 den meinte ich auch. Habe nur den falschen Namen geschrieben
-
@Xyolyp Update mal auf was aktuelles bitte ... der ist recht alt. Könnte mir vorstellen das es ggf mit daran liegt
-
@apollon77 im stable ist 4.1.12 der aktuellste. Aktuell bewege ich mich mit meinem System immer mehr in Richtung "nur noch stable", da mein Verständnis von stable ist, dass da keine Experimente passieren, sondern die Funktionalität, die vom Adapterentwickler in der Version beworben wird funktioniert.
Auf welche Version sollte ich denn aktualisieren, damit es funktioniert? -
@Xyolyp Ich sage es mal so: Wir haben währendder Entwicklung üblicherweise mit javascript 4.3.x getestet was aktuell "latest". Müsste man halt jetzt mal checken ob es da tut.Dann muss das noch fix ins Stable
-
@apollon77 mit der Script Engine v 4.3.2 haben die ersten zwei, drei Tests funktioniert.
-
@Xyolyp Also müssen wir wohl doch für Alias noch javascript im Stable updaten ... hm .... ok!!
-
auch wenn das hier schon ein paar Tage alt ist, ich finde keinen passenderen Thread.
Mein Geräte-Tab macht bisher mehr Probleme als das er nützt....
Mein System
Poblem 1: Beim einstellen vom Gerätetyp wir dieser teilweise falsch angezeigt. Typ Medien wurde in der Übersicht als Typ Info angezeigt. (Im Objekte-Tab stehts aber richtig)
Problem 2: Hatte beim Gerätetyp aus versehen auf Typ Instanz geklickt, danach hängte sich der Komplette Adapter auf und ich hatte nur noch einen weißen Bildschirm vor mir....
Problem 3: Neu erstellte Geräte werden teilweise erst nach wegwechseln und wieder hin wechseln vom Gerätetab angezeigt...
Problem 4: und auch das schlimmste Problem: Nachdem ich die angelegten Geräte in ein Blockly einbinden wollte, fuhr sich ioBroker komplett fest. Auf alle geöffnetten Tabs sah ich nur noch den bunten, drehenden Kreis.
Laut top hatten sowohl der Admin-Adapter und der js-controller wechselseitig immer so um die 50-60% CPU-Auslastung. Das Problem war mehrfach reproduzierbar. Immer in der Objektauswahl vom js-Controller ging nix mehr, sobald ich im alias.0 Ordner irgendein Gerät angeklickt habe.Nachdem ich alle Geräte aus dem Geräte-Tab entfernt habe, läuft wieder alles normal...
Leider kann und will ich das nicht nochmal reproduzieren, da ich nur ein Produktivsystem habe und mir das nicht zerschießen will...
Aber vielleicht hilfts ja trotzdem.Log hat übrigens nix angezeigt.
-
@Supermicha Leg das doch am besten als Issue beim "devices" Adapter im GitHub an