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? -
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(); }); -
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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden