Mal wieder virtuelle Geräte - jetzt aber richtig!

Vielen Dank für deine Antwort, ich injecte in beiden Fällen ein Json:

Ein Wert aktualisieren:

{
    "id": 1001,
    "value": 1
}

Mehrere Werte auf ein mal aktualisieren:

{
    "0": {
        "id": 1001,
        "value": 1
    },
    "1": {
        "id": 1002,
        "value": 66
    },
    "2": {
        "id": 1003,
        "value": 71
    }
}

Nein so geht das nicht. Das Node wandelt keinen Array um in einzelne Werte.
Du musst die separat hintereinander senden.
VG

ok, danke habs mit fast gedacht.

Man kann das so lösen:

var Aussentemp = global.get(‘Aussentemp’);
var Aussenfeuchte = global.get(‘Aussenfeuchte’);
var Luftdruck = global.get(‘Luftdruck’);
var RegenAktuell = global.get(‘RegenAktuell’);
var RegenHeute = global.get(‘RegenHeute’);
var Windgeschwindigkeit = global.get(‘Windgeschwindigkeit’);
var Himmelsrichtung = global.get(‘Himmelsrichtung’);
var Windboe = global.get(‘Windboe’);

if (RegenAktuell === 0)
var RegenEin = 0;
else
var RegenEin = 1;

node.send ({payload:{“id”:1451,“value”:Aussentemp}});
node.send ({payload:{“id”:1452,“value”:Aussenfeuchte}});
node.send ({payload:{“id”:1455,“value”:Luftdruck}});
node.send ({payload:{“id”:1461,“value”:Windgeschwindigkeit}});
node.send ({payload:{“id”:1462,“value”:Himmelsrichtung}});
node.send ({payload:{“id”:1463,“value”:Windboe}});
node.send ({payload:{“id”:1467,“value”:RegenEin}});
node.send ({payload:{“id”:1468,“value”:RegenAktuell}});
node.send ({payload:{“id”:1469,“value”:RegenHeute}});

Bei mir sieht der Function-Node für ne Wetterstation so aus.

1 „Gefällt mir“

Dann kommen die Nachrichten nacheinander.

Hallo zusammen,

mir ist ein Fehler bei den virtuellen Geräten in Verbindungen mit den Automationen aufgefallen.
Ich habe bei meinen Lampen zwei mal einen Schalter “Dimmwert”, einmal um den tatsächlichen Dimmwert festzulegen und einmal um die Farbsättigung zu verändern.

Wenn ich in einem Homeegramm jetzt sage setze den Dimmwert auf 100%

werden beide Schalter auf 100% gesetzt.

Dadurch wechselt sich im Konkreten Fall die Farbe der Lampen, weil der zweite Dimmwert für die Sättigung und damit für die Farben ist.

Gibt es eine Möglikchkeit das zu umgehen?

Ja mit node.send geht das Problemlos aus einer Funktion heraus.
:grinning::+1:

1 „Gefällt mir“

Top. Danke.

Hast du auf die Instanzen geachtet ?
Das scheint hier das Problem zu sein.
Ich konnte das noch nicht feststellen.

VG

Das Beispiel von @SteffenTM funktioniert zwar, aber es gibt einen eleganteren Weg der in der Node-RED Doku beschrieben wird: https://nodered.org/docs/user-guide/writing-functions#multiple-messages

Gerade beim Schreiben von Funktionen lohnt es sich, dort mal einen Blick reinzuwerfen.

3 „Gefällt mir“

Auch nicht schlecht, versuche ich bei der nächsten Anwendung mal. Danke für die Info.

ja hab ich, deswegen zeigt er ja “Dimmwert” und “Dimmwert 1” an.
Wenn die Instanzen gleich wären, würde er bei beiden nur “Dimmwert” anzeigen

Hast du die IDs nochmal geprüft? Evtl doppelt vergeben?

Das geht ja eigentlich nicht. Da muss es noch einen anderen Fehler geben.
Wie Sieht denn hier deine Gruppe aus ?
Habe es gerade probiert nachzustellen und bei mir klappt das nicht.

so sieht meine Gruppe aus

Die 4 Geräte sind über HiH eingefügt und haben im node red die IDs 40 - 70 und die attribute ids dann jeweils 4x / 5x / 6x / 7x

Fürs Dimmen benutze ich den attribute type 2 und die habe ich jeweils mit instance 0 und 1 versehen. In allen Geräten kann ich auch jeweils “Dimmwert” und “Dimmwert 1” schalten

Nachdem ich den Modus auf “Zuhause” setze, sieht meine Lampe wie folgt aus

er hat beide Dimmwerte auf 100% gesetzt. Hier die Details von dem entsprechenden Gerät in node red

[
    {
        "id": 70,
        "node_id": 70,
        "instance": 0,
        "minimum": 0,
        "maximum": 1,
        "current_value": 0,
        "target_value": 0,
        "last_value": 0,
        "unit": "",
        "step_value": 1,
        "editable": 1,
        "type": 1,
        "state": 1,
        "last_changed": 12345555,
        "changed_by": 1,
        "changed_by_id": 0,
        "based_on": 1,
        "data": ""
    },
    {
        "id": 71,
        "node_id": 70,
        "instance": 0,
        "minimum": 0,
        "maximum": 100,
        "current_value": 0,
        "target_value": 0,
        "last_value": 0,
        "unit": "%25",
        "step_value": 1,
        "editable": 1,
        "type": 2,
        "state": 1,
        "last_changed": 12345555,
        "changed_by": 1,
        "changed_by_id": 0,
        "based_on": 1,
        "data": ""
    },
    {
        "id": 72,
        "node_id": 70,
        "instance": 0,
        "minimum": 2500,
        "maximum": 9000,
        "current_value": 0,
        "target_value": 0,
        "last_value": 0,
        "unit": "K",
        "step_value": 1,
        "editable": 1,
        "type": 42,
        "state": 1,
        "last_changed": 12345555,
        "changed_by": 1,
        "changed_by_id": 0,
        "based_on": 1,
        "data": ""
    },
    {
        "id": 73,
        "node_id": 70,
        "instance": 0,
        "minimum": 0,
        "maximum": 16777215,
        "current_value": 0,
        "target_value": 0,
        "last_value": 0,
        "unit": "",
        "step_value": 1,
        "editable": 1,
        "type": 23,
        "state": 1,
        "last_changed": 12345555,
        "changed_by": 1,
        "changed_by_id": 0,
        "based_on": 1,
        "data": "7001020%3B16419669%3B12026363%3B16525995"
    },
    {
        "id": 74,
        "node_id": 70,
        "instance": 1,
        "minimum": 0,
        "maximum": 100,
        "current_value": 0,
        "target_value": 0,
        "last_value": 0,
        "unit": "%25 Sättigung",
        "step_value": 1,
        "editable": 1,
        "type": 2,
        "state": 1,
        "last_changed": 12345555,
        "changed_by": 1,
        "changed_by_id": 0,
        "based_on": 1,
        "data": ""
    }
]

Da ist doch dann das Problem.
Dadurch das beide Slider vom selben Type sind (2) werden sich dann bei allen Geräten in der Gruppe die Dimmwerte ändern, natürlich dann auch die Farbsättigung.

Das funktioniert dann so nicht.

VG

Ja aber ich kann ja nicht ohne weiteres einen slider von einem anderen Typ nehmen, weil der dann nicht mit dem entsprechenden geräteprofil funktioniert

Es gibt z.B. diese Typen:

CAAttributeTypeDimmingLevel: 2,
CAAttributeTypeColor: 23,
CAAttributeTypeSaturation: 24,
CAAttributeTypeColorTemperature: 42,
CAAttributeTypeColorWhite: 206,

Weiß allerdings gerade nicht, ob das alles Slider sind :wink:

Edit: Ich würde sagen bei deiner ID74 ist der Typ falsch. Muss hier 24 sein und nicht 2.

1 „Gefällt mir“

Ne da hat schon jemand von CA gesagt, dass es das Attribut gar nicht mehr gibt :wink:

Fakt ist, wie @Micha auch schon zuvor sagte, dass der Fehler in dem zweifach verwendeten Typ liegt.
Dann guck halt, ob du ein anderen Typ nutzen kannst, je nachdem, was der 2. Slider steuern soll.