Node Red: 4 Dimmer gleichzeitig setzen

Ich habe 4 LED Streifen, die ich mit einem einzigen Dimmer steuere, und möchte darum 4 Dimmer quasi gleichzeitig auf einen anderen Wert setzen. Zunächst stellt sich die Frage, welchen anderen Befehl ich dafür verwenden soll. Weil es für mich am einfachsten schien, habe ich einfach 4 HTTP Requests abgesetzt.

Resultat: Es wird nur der Wert des ersten Dimmers gesetzt.

Wenn ich den ersten HTTP Request lösche, dann wird wiederum nur der Wert des zweiten Dimmers gesetzt. Dies könnte ein Hinweis darauf sein, dass das HTTP API Requests ignoriert, wenn mehrere Request gleichzeitig eintreffen.

Ist das so? Vielleicht ist es nicht eine gute Idee das HTTP API für Schaltvorgänge zu verwenden? Gibt es einen direkteren Weg?

Gruss Matthias

Das sollte kein Problem, zeig mal bitte deine Function und was in den http Nodes drinsteht

Die gewünschte Dimmer Helligkeit wird einfach im payload übergeben, somit sind meine HTTP Nodes wie folgt:

Mein erster HTTP Request:

[
	{
		"id": "2361fe531fcd5e42",
		"type": "http request",
		"z": "a586258b339819cf",
		"name": "",
		"method": "PUT",
		"ret": "txt",
		"paytoqs": "ignore",
		"url": "localhost:1880/dimmer/1/{{{payload}}}",
		"tls": "",
		"persist": false,
		"proxy": "",
		"insecureHTTPParser": false,
		"authType": "",
		"senderr": false,
		"headers": [],
		"credentials": {},
		"x": 2150,
		"y": 360,
		"wires": [
			[]
		]
	}
]

Der zweite:

[
	{
		"id": "a80b462f39d1c75c",
		"type": "http request",
		"z": "a586258b339819cf",
		"name": "",
		"method": "PUT",
		"ret": "txt",
		"paytoqs": "ignore",
		"url": "localhost:1880/dimmer/2/{{{payload}}}",
		"tls": "",
		"persist": false,
		"proxy": "",
		"insecureHTTPParser": false,
		"authType": "",
		"senderr": false,
		"headers": [],
		"credentials": {},
		"x": 2150,
		"y": 400,
		"wires": [
			[]
		]
	}
]

Mir ist noch etwas aufgefallen: Wenn ich die Werte der Dimmer im WebUI beobachte, dann sind die Werte wie sie sein sollen und die vier Slider Controls im GUI bewegen sich synchron nach links und rechts.
Obwohl aber die richtigen Werte im GUI angezeigt werden, ist der tatsächliche PWM Output des Dimmys nicht korrekt und nur der erste Dimmer wird verändert.

Wenn ich nun aber meinen Flow umbaue und die 4 HTTP Requests sequentiell abschicke, dann funzt es wie es soll. Leider ist dann aber die Helligkeitsänderung im 2. LED Streifen zeitlich verzögert, was nicht so toll aussieht.

@Vincent : Ich glaube, ich habe das Problem gefunden. Im “Dimmer Controller” gibt es einen Node der ein Rate Limit von 10 Messages / sec setzt, dazu noch mit der Option “Drop Intermediate Messages”. Dies passiert direkt vor dem Schreiben des Wertes auf den PCA 9865. Somit wird zwar das UI auf den neuen Wert gesetzt, aber der Wert auf dem I2C Bus wird nie gesetzt. Das ist nicht optimal. Ich habe das Rate Limit probehalber umkonfiguriert und auf “Queue intermediate messages” gesetzt, dann funktioniert alles wunderbar.
Allerdings möchte ich grundsätzlich keine Änderungen an flows vornehmen, die von euch geliefert werden, sonst sind ja meine Änderungen beim nächsten Update wieder weg.

@maettel Ja stimmt, das ist uns neulich auch schon aufgefallen, allerdings aus anderen Gründen.

Ist aktuell eine Baustelle an der wir arbeiten.