NEWS
Alias - Datenpunkt Format anpassen
-
Hallo,
Kann man mit der Alias Funktion auf einen anderen Datenpunkt verweisen aber das Format des Alias Datenpunkt ändern?
z.B.: Original Datenpunkt Wert =15
Alias Datenpunkt Wert =
{
"value": 15
}Hier der Alias DP....wie müsste man den anpassen?
{ "common": { "name": "Power", "desc": "Manually created", "role": "state", "type": "json", "read": true, "write": true, "alias": { "id": "mqtt.1.solar.116181846424.1.power" } }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1666075262392, "_id": "mqtt.0.W.b827ebfd24b0.pvinverter.5.Ac.L3.Power", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@locke987
Konvertierungsfunktion?Wenn ich die Aufgabenstellung richtig verstanden habe, funktioniert das so einwandfrei:
-
@Codierknecht Danke für den Hinweis.
O, das war mir nicht klar, dass ich den DP unter alias.0 anlegen muss.
Ich habe mittlerweile geschaft einen neuen Alias DP unter alias.0 mit der Konvertierung auf den richtigen Wert zu ändern.
Wie kann ich diesen Wert allerdings jetzt einem anderen Datenpunkt zu ordnen?Wenn ich das wieder mit einem Alias versuche dann bekomme ich:
Error
Cannot write object: Aliases cannot be used as target for aliases -
@locke987
Du hast doch einen "Original-DP" eines bestehenden Adapters (oder einen eigenen), oder? In dem steht Deine "15".
Der Alias dient doch lediglich dazu, diesen DP zu lesen und daraus einen string in der gewünschten Formatierung zu basteln.Erklär doch mal genauer, wo diese "15" herkommt und was Du mit dem JSON dann anfangen möchtest.
-
@codierknecht es handelt sich um einen Datenpunkt der die aktuelle Erzeugung einer PV Anlage darstellt (Power in Watt, z.B.: 180,5), der Wert ändert sich im Sekundentakt. Ich möchte den Wert in meine Victron PV Anlage über mqtt publishing hinein bekommen. Im Prinzip ist dazu alles vorbereitet, ich habe über einen mqtt adapter die relevanten DP's sáls objecte bereits im iobroker drinnen, wenn ich manuelle Änderungen an diesen DP's mache funktioniert es dass diese im Victron auch angezeigt werden. Der mqtt broker von Victron erwartet sich den Power Wert nicht als 180,5 sondern als json, ich muss ihn daher vorher auf folgendes Format ändern:
{
"value": 180,5
}Ich hoffe das war halbwegs verständlich, unter umständen bin ich da auch komplett auf dem Holzweg und es gibt eine bessere Lösung als mit einem Alias zu arbeiten, das war für mich die offensichtlichste Lösung
-
@locke987
Ah, ich dachte da eher in Richtung Visualisierung.Warum dann nicht mit 'nem kleinen Script, das bei Änderung des Wertes denselben als JSON zusammenbaut und dann in den DP des Victron schreibt?
-
@codierknecht geht wahrscheinlich auch, ich dachte es geht einfacher direkt mit einem Alias....
-
@locke987 sagte: Der mqtt broker von Victron
Dann muss sicherlich auf einen Datenpunkt des MQTT-Adapters geschrieben werden? Das geht am einfachsten mit einem kleinen Skript.
const idSrc = 'mqtt.abc'; const idDst = 'mqtt.xyz'; on(idSrc, function(dp) { setState(idDst, JSON.stringify({value: dp.state.val})); });
-
@paul53 Ja so geht es, vielen Dank