Hallo,
ich versuche aktuell die RGB-Daten aus dem Colorpicker umzuformattieren in einem userReading und das dann via MQTT zu publishen.
Hier erstmal mein Device:
Internals:
IODev MQTT
NAME esp01_LEDStripe
NR 29
STATE state
TYPE MQTT_DEVICE
qos 0
retain 0
Readings:
2017-05-20 23:52:21 RGB ffe29e
2017-05-20 23:52:22 commandRGB rgb,255,226,158
2017-05-20 23:52:22 transmission-state outgoing publish sent
Publishsets:
Rgb:
topic /esp01/cmd
values:
Commandrgb:
topic /esp01/cmd
values:
Sets:
RGB
commandRGB
subscribe:
subscribeExpr:
Attributes:
IODev MQTT
alias LED Stripe
group Licht
icon light_led_stripe_rgb
publishSet_RGB /esp01/cmd
publishSet_commandRGB /esp01/cmd
room Zimmer,MQTT
stateFormat state
userReadings commandRGB { getRGBCommand(ReadingsVal($name, 'RGB', '000000')) }
webCmd RGB
widgetOverride RGB:colorpicker,RGB
Wenn ich die Farben verändere, wird die RGB-Variable direkt gepublished. Daraufhin wird auch direkt das Reading commandRGB umformatiert, aber nicht gepublished.
Gibt es ein Eveent, welches ich feuern muss?
Vielen Dank im Voraus,
Cludch
Edit:
Ich habe nun den Colorpicker in ein dummy device verlegt und per notify device in dem MQTT device gepublished.
push.
Niemand der eine Idee hat? Oder undeutlich geschildert?
Edit: Problem gelöst, s. Startpost.
Baue dir doch ein notify auf das Userreading!? Nicht schön, sollte aber funktionen!
Moin,
stehe gerade an gleicher Stelle. Habe mir ebenfalls ein userreading (RGBTEST) zusammengebaut. Wenn ich mir nun das attr <Device> publishSet_RGBTEST /Topic setze, verändert sich zwar bei Farbauswahl das reading, es wird aber nicht gepublished.
Warum funktioniert das ganze mit dem "RGB-Reading" und nicht mit dem was ich gestellt habe und wie funktioniert das mit dem notify
push. Unklar ausgedrückt oder keiner eine Lösung :)
der publish passiert bevor das reading upgedatet wird.
lässt sich eventuell mit einer eventmap lösen.
attr LED_DEVICE eventMap { dev=>{}, usr=>{'.*'=>'".getRGBCommand(ReadingsVal('LED_DEVICE', 'RGB', '000000'))."'} }