NEWS
state per script ändern klappt nicht
-
Hallo,
habe eine Gosund WB4 RGBW LED Lampe mit Tamota 8.3.1 geflasht und per MQTT in den sonoff Adapter übernommen.
Möchte nun per script die RGB Werte ändern. Script läuft und im iobroker log sieht man wie die states geändert werden. In der Objektliste sieht man auch den entsprechenden Wert. Leider werden die Änderungen nicht an die Lampe übergeben.
Wenn ich in der Objektliste den Datenpunkt von Hand änderen (Wert eingebe und Häckchen setzte) klappts. Die Farbe ändert sich entsprechend und im console log von Tasmota sieht man wie der Befehl verarbeitet wird.
Was mache ich falsch? -
@quinti sagte in state per script ändern klappt nicht:
Leider werden die Änderungen nicht an die Lampe übergeben.
setzst du ack = true oder false?
@quinti sagte in state per script ändern klappt nicht:
Wert eingebe und Häckchen setzte
Das wäre ack=true, was für einen Datenpunkt eines Adapters absolut untypisch wäre
-
habs mit einem script versucht (soll so dann auch laufen) , und zum testen mit einem einfachem blockly, geht beides nicht:
const idTemp = 'javascript.0.temptest'/*temptest*/; const idRot = 'sonoff.0.LED27_Zapfstelle.Red'/*LED27 Zapfstelle Red*/; const idGruen = 'sonoff.0.LED27_Zapfstelle.Green'/*LED27 Zapfstelle Green*/; const idBlau = 'sonoff.0.LED27_Zapfstelle.Blue'/*LED27 Zapfstelle Blue*/; const tmin = -15; // minimale Temperatur const tmax = 35; // maximale Temperatur const tg = 10; // Temperatur für 100% grün const maxFarbe = 100; // max. Farbwert var t = getState(idTemp).val; function farbe() { if(t < tmin) t = tmin; if(t > tmax) t = tmax; if(t < tg){ setState(idRot, 0, true); setState(idGruen, maxFarbe * (t - tmin) / (tg - tmin), true); setState(idBlau, maxFarbe * (tg - t) / ( tg - tmin), true); } else { setState(idRot, maxFarbe * (t - tg) / (tmax - tg), true); setState(idGruen, maxFarbe * (tmax - t) / ( tmax - tg), true); setState(idBlau, 0, true); } } farbe(); // Skriptstart on(idTemp, function(dp) { t = dp.state.val; farbe(); });
-
@quinti
Die Werte für die Datenpunkte idRot, idGruen und idBlau müssen mit Ack = false / Block "steuere" geschrieben werden. -
Danke das wars!!!