NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
@apollon77 habe den Fehler gefunden.
Ich muss die Variable zuerst multiplizieren und dann teilen und nicht anders herum.
vorher:
"write": "JSON.stringify({brightness: val/100*254 })"
nachher:
"write": "JSON.stringify({brightness: val*254/100 })"
Alles zusammen:
"alias": { "id": { "read": "mqtt.0.zigbee2mqtt.Licht", "write": "mqtt.0.zigbee2mqtt.Licht.set" }, "read": "Math.round((JSON.parse(val)).brightness/254*100)", "write": "JSON.stringify({brightness: val*254/100 })" },
-
@apollon77
HI, ich habe einen DP welcher mit eine anderem DP Multipliziert werden muss.
Kann ich so etwas auch in der Alias Read Funktion abbilden?
bzw. so hatte ich es versucht...
-
@mike-hellracer sagte: DP welcher mit eine anderem DP Multipliziert werden muss. Kann ich so etwas auch in der Alias Read Funktion abbilden?
Nein, dafür benötigt man ein Skript. Ein Alias spiegelt einen Datenpunkt.
-
@paul53
Danke Script habe ich schon.
So muss ich aber den Umweg über einen zusätzlichen dp für das Ergebnis gehen und dann den Alias auf das Ergebnis verweisen lassen.
Hatte gehofft das über die read Funktion des alias abbilden zu können und mir diesen Umweg sparen zu können.
Trotzdem Danke für die Info -
@mike-hellracer sagte: dann den Alias auf das Ergebnis verweisen lassen.
Wozu der Alias auf einen eigenen Datenpunkt?
-
@paul53
wenn ich es richtig verstanden habe muss ich erst das Ergebnis DP1 * DP2 in einem Script erzeugen, diesen in einen Userdata DP schreiben und dann den Alias auf den DP verweisen lassen.
Oder kann/darf ich einen Alias ohne Target-ID erstellen? -
@mike-hellracer
Wenn Du schon einen eigenen DP in0_userdata
hast, brauchst Du ja keinen Alias mehr.
Du lässt dann halt alles auf Deinen DP "gucken" - fertig! -
Hallo zusammen ich entdecke gerade den Alias adapter.
Ich habe eine Frage gibt es eine Doku zur Konvertierungsfunktion ich rufe Werte über mqtt ab.
Dort bekomme ich diese Ausgabe{"value": 22200.0}
Kann ich es direkt über den alias als Zahl abspeichern?
-
@jacke sagte: Kann ich es direkt über den alias als Zahl abspeichern?
Ja, per Lesekonvertierung:
JSON.parse(val).value
-
super danke damit kann ich mehrere skripte und Nod Red befehle ersetzen ersetzen
-
Hallo Leute,
ich versuche mich gerade an einer Konvertierung, aber ich bekomme es nicht hin. Vielleicht könnt ihr mir helfen:
ich habe zwei Datenpunkte, einer davon wird beschrieben mit true / false .
Diese Werte möchte ich gerne mit JSON Stringify konvertieren, sodass es am ende so rauskommt true = {"state": "ON"}
und bei false = {"state": "OFF"}
kann man das irgendwie mit einem alias relalisieren?
Was müsste ich wo eintragen?Vielen Dank
-
@kuchn sagte: true = {"state": "ON"} und bei false = {"state": "OFF"}
Versuche mal die Schreibkonvertierung
JSON.stringify(val ? {state: 'ON'} : {state: 'OFF'})
-
@paul53 da passiert leider gar nichts
-
-
Eine Frage: Der VW Adapter setzt zum Teil für numerische Werte "Null". Das scheint ein Bug zu sein. Ich möchte deshalb einen Alias definieren, der "Null" und "undefined" im ursprünglichen Datenpunkt ignoriert.
Kann mir da jemand helfen. Ich habe mal einen Vorschlag gemacht, aber ich bin mir nicht sicher, ob der OK.
Und einfach ausprobieren möchte ich nicht, weil ich diese Alias Burst Errors habe und nicht Fehler provozieren möchte durch falsche Syntax.{ "common": { "name": "Odometer", "type": "number", "unit": "", "alias": { "id": "vw-connect.0.TMBJC7NYXMF025168.status.vehicle-status.remote.mileageInKm", "read": "if (val <> Null) val" }, "role": "indicator" }, "native": {}, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1690006032176, "_id": "alias.0.Auto.Mileage", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@marty56 sagte: Alias definieren, der "Null" und "undefined" im ursprünglichen Datenpunkt ignoriert.
Das kann ein Alias nicht, denn er wird immer aktualisiert, wenn der Original-DP aktualisiert wird. Wenn nicht aktualisiert werden soll, benötigt man ein Skript.
EDIT: Sollen null oder undefined durch 0 ersetzt werden, ist die richtige Syntax:
"read": "val == null ? 0 : val"
-
@paul53 Danke
-
Hey zusammen,
ich brauche experten Hilfe ich stehe auf dem Schlauch und bekomme es einfach nicht hin...
Ich würde gern über ein Alias von String werten in eine Boolean wandeln wollen.
Konkret von den Strings:
OPEN = true
CLOSED = falsekann mir jemand sagen wie die " Alias Funktion" dafür aussieht..
Vielen Dank
-
-
Scotty89 vor 16 Minuten
Hey zusammen,ich brauche experten Hilfe ich stehe auf dem Schlauch und bekomme es einfach nicht hin...
Ich würde gern über ein Alias von String werten in eine Boolean wandeln wollen.
Konkret von den Strings:
OPEN = true
CLOSED = falsekann mir jemand sagen wie die " Alias Funktion" dafür aussieht..
Vielen Dank