NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
@apollon77 Vielen Dank, für deine ausführliche Darstellung. Im Grunde besteht dafür auch keine Notwendigkeit und ist, denke ich, keine Aufgabe von alias.
Im Zuge vom aufräumen, sortieren und optimieren meiner Struktur kam mir einfach der Gedanke
-
@apollon77
Hi,.
beim Anlegen von Ventil = valve kommt die Meldung unknown type.
Kann ich das selber beheben, oder muss ich auf eine neue Version warten?
Und wenn ja, wann kommt die? -
@mike-hellracer GitHub issues schauen ... wenn schon da bitte "thumbs up"
-
Hallo
Ist es möglich in einem Alias mehrere Ziel ID zu benutzen?
Ich habe einen Strip der von einer Farbe zu einer anderen Farbe um blenden kann.
Dazu muss ich im Ziel-Adapter 3 Objecte beschreiben. Dies würde ich gerne per Alias mittels einem boolean Object einschalten.
Meine Idee dazu 3 mal die "id" aufgeführt und entsprechend mit "write" beschreiben, leider geht es so einfach nicht.
Hier wie ich es versucht habe:{ "common": { "name": "SunSet", "desc": "Manuell erzeugt", "role": "state", "type": "boolean", "read": true, "write": true, "def": false, "alias": { "id": "tuya.0.bf85c016747f7b7b14jv41.21", "write": "2", "id": "tuya.0.bf85c016747f7b7b14jv41.25", "write": "c93d3d02000d01e003e8000000003d3d02002401f803e800000000", "id": "tuya.0.bf85c016747f7b7b14jv41.20", "write": "true" }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1671964199583, "_id": "alias.0.Küche.LED_Licht_Küche.SunSet", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Ist das was ich versuche mit einem Alias möglich, wenn ja wie?
-
@uwerlp sagte: Ist das was ich versuche mit einem Alias möglich, wenn ja wie?
Nein.
-
@uwerlp ich denke da wäre ein kleines JavaScriptchen mit einem User state am einfachsten
-
@apollon77 Ja, danke. Habe ich bisher auch so gehändelt. Wird aber bei mehreren "Funktionen" mit der Zeit unübersichtlich weil zu jedem ein User Object und Script gebraucht wird. Der Versuch mit dem Alias war halt alles unter einem Hut zu bringen
-
@uwerlp wenn es drei States sind die den gleichen Wert brauchen wie der den du setzt wären scenes noch eine Variante.
-
@apollon77 Sorry, verstehe jetzt nicht was du mir sagen möchtest.
-
@uwerlp grrrmpff. Ließ nochmal. Habe korrigiert
-
-
@uwerlp sagte: du meinst
@apollon77 meinte sicherlich den Szenen-Adapter?
-
@paul53 Exakt, müste man schauen ob das geht, weil es ja verschiedene werte sind die zu setzen sind
-
@apollon77 @paul53 Achso, also das hier
Ja das funktioniert auch
-
@uwerlp genau das
-
Verständnisfrage zur Wert-Behandlung von Aliassen:
Ich habe in meinem bereits seit längerem vorhandenen und gewachsenen ioBroker-/VIS-Projekt mit Hilfe des Aliasmanagers für etliche Datenpunkte Aliasse angelegt und dann nach und nach die bisher benutzten "originalen" Datenpunkte z. B. in VIS-Widgets, Skripten und flot-Definitionen durch die Aliasse ersetzt, um es bei einem etwaigen späteren Gerätewechsel dann einfacher zu haben. Künftig werde ich bei Erweiterungen dann gleich Aliasse nutzen.
Die jetzige Umstellung hat prima geklappt, mit einer Ausnahme:
Es handelt sich um einem Homematic-CuXD-Datenpunkt, der mir aus der Temperatur und der relativen Luftfeuchtigkeit eines Klimasensors die absolute Feuchte bereitstellt. Der Datenpunkt selber funktioniert seit Jahren und auch jetzt noch einwandfrei.Schaue ich mir die Werte des für die absolute Feuchtigkeit angelegten Aliasses im Objektreiter des ioBrokers an, paßt da auch noch alles.
Nun habe ich schon seit Jahren ein flot-Diagramm, in dem u. A. diese absolute Feuchtigkeit problemlos dargestellt wurde. Nachdem ich in der Definition des Diagramms die Datenpunktbezeichnung/-auswahl auf den Alias umgestellt habe, zeigt das Diagramm "sinnlose" Werte. Nach langer Ursachen-Suche vermute ich nun, daß das irgendwie mit den Werten für MIN und MAX in der Aliasdefinition zusammen hängt (obwohl/weil? ich dort gar keine Werte habe). Ich habe an diesen Werten bisher nie etwas geändert, sondern immer das gelassen, was der Aliasmanager automatisch da reingeschrieben hat, weil es ja für alle anderen Datenpunkte bisher offenbar funktioniert hat und ich das, was ich unter https://www.iobroker.net/#en/documentation/dev/aliases.md gefunden habe, auf meinen Fall zunächst nicht anzuwenden verstand:
"Alias make automatic conversion of the value if min/max settings for both (alias and target) objects is defined.
E.g. if alias has min=0,max=100 and target has min=0,max=255 so by the read the value 10 from target state will be converted to 3.9215686274509802 and written into alias 10 will will be converted to 25.5."Wo kann man denn bei einem Alias MIN/MAX für die Quelle angeben?
Ich habe den Alias (als Voraussetzung für das flot-Diagramm) im Objektbaum mit Hilfe des Zahnrades für die history definiert (so wie ich das für alle meine flot-Datenpunkte gemacht habe). Gehe ich nun auf das Zahnrad und dann auf den Reiter Verlaufsdaten, sehe ich im Rhymtmus von rund 3 Minuten (das ist das Intervall, in dem sich die Klimawerte aktualisieren) neue Werte reinkommen. Der Wert, der da reinkommt ist der, der auch im Objektbaum angezeigt wird und plausibel ist:
So weit, so gut, aber jetzt kommt das, was ich bisher nicht verstehe. Nach einigen Sekunden wird dieser Wert durch einen offenbar um genau den Faktor 5 (wo kommt dieser Faktor her?) kleineren Wert überschrieben:
Und das scheint dann auch der Wert zu sein, den die history speichert und flot im Diagramm anzeigt, obwohl der Wert im Objektbaum weiterhin korrekt angezeigt wird. OK, der Alias-Wert wird also nicht skaliert angezeigt, sondern nur beim Ein-/Auslesen skaliert. Das heißt, das man aus dem Wert im Objektbaum nicht erkennen kann, ob da skaliert wird oder nicht. Der Zeitverzug der Skalierung dürfte wohl von der Auslastung des Raspis abhängen. Das würde ich verstehen, wenn ich MIN/MAX-Werte in der Aliasdefinition hätte, habe ich aber nicht.
Als "Workaround" (soll nicht heißen, daß da ein Fehler vorhanden ist, aber mein Kopf kriegt das momentan nicht anders hin (;-() habe ich derzeit Lese-/Schreib-Skalierungsfunktionen definiert, die den Wert nicht verändern: fx val+0. weil etwas tiefer im obigen Dokument steht: "If convert functions are defined, so the automatic conversion will be deactivated." und das scheint zu funktionieren.
Kann mir jemand einen Tipp geben, wo ich genauer die Wirkungsweise der MIN/MAX-Parameter der Aliasse nachlesen kann, um herauszufinden, wo mein Denkfehler liegt?
Ich würde auch gerne verstehen, warum man den skalierten Wert des Aliasses nur beim Schreiben/Lesen "weitergibt" und nicht einfach dem Alias diesen Wert gibt und ihn im Objektbaum anzeigt. Dann könnte man doch eine etwaige Skalierung viel besser erkennen/kontollieren - oder?
-
@andersmacher Am Ende stelle sicher (weil du willst ja nichts ändern) das in/max von Quellobjekt und min/max vom Alias Objekt identisch sind. Quellobjekt ansehen: Objekte - in der zeile des Objekts den Stift rechts ... dann siehst Du common.min/max
-
@apollon77 Erst einmal vielen Dank für den Hinweis!
Genau da kommt offenbar der Faktor 5 her. In der Quelle steht 500. Im Ziel allerdings gar nichts und dann sollte ja die Skalierung angeblich deaktiviert sein.Auf den Gedanken war ich bisher noch nicht gekommen, weil ich gedacht hätte, daß der Aliasmanager nicht "von sich aus" das Ziel anders/gar nicht skaliert, als die Quelle. Hm, seltsam. In Zukunft also am besten nach dem Anlegen des Alias explizit kontrollieren.
-
@andersmacher ggf issue melden? Beim Alia’s Manager. Und gern auch im js-Controller wegen dem das er skaliert obwohl nichts da ist. Bitte mit den beiden Objekt Common als Info anlegen. Danke.
-
@apollon77 So, bevor ich auf github "Streß mache und Behauptungen aufstelle", wollte ich bei mir noch mal prüfen, was ich an Fakten vorweisen kann und was ich gemacht habe. Dazu gehe ich gerade noch einmal alle bisher angelegten Aliasse durch (das wird ein Weilchen dauern) und prüfe die MIN-/MAX-Werte von Quelle und Alias gemäß Deines Rates auf Gleichheit.
Dabei hatte ich ziemlich "zu Anfang" gleich folgenden Ungleichheitstreffer:
Der Alias wurde durch den Aliasmanager also ohne MIN angelegt, obwohl die Quelle ein MIN (das aber natürlich 0 ist, wegen %-"Einheit") hat.
Im Reiter Objektfaten des Alias gab es zu diesem Zeitpunkt keinen MIN-Eintrag (Ich hoffe, Du glaubst mir das, auch wenn ich da leider keinen Sreenshot von gemacht hatte).
Dann wollte ich den Alias auf den gleichen Stand wie die Quelle bringen und habe auf den "+ MIN"-Button geklick. Danach ergab sich folgender Vergleich:
Der angelegte MIN-Wert ist also im Reiter Objektdaten vorhanden, aber (wenn ich die Klammern richtig deute) ja wohl nicht für/unter "common:". Auch wenn ich bisher keine wirkliche Ahnung von der Wirkung der Klammerhierarchie habe und die erforderliche Syntax-in diesem Reiter (steht das da in JS?) nicht kenne, könnte ich mir vorstellen, daß das irgendwelche Auswirkungen auf die Nutzung des MIN-Wertes bei der Skalierung haben könnte?
Ist meine Beobachtung aus Deiner Sicht (ich gehe davon aus, daß Du da wesentlich mehr Ahnung von hast, als ich) für das github-issue relevant?Ich könnte jetzt natürlich hergehen, und den MIN-Eintrag in die "common"-Klammer verschieben, aber ist das schlau, wenn man da sozusagen nur via "Bildvergleich" und ohne wirkliches Hintergrundwissen editiert?