ich habe eine Bluetooth-Mesh Lampe. Über ein Gateway bekomme ich per MQTT (und somit potenziell auch in Loxone vom Loxberry) Strings (payloads des Mesh Protokolls) der Form "c409XXYYZZ", wobei "XXYYZZ" 3 byte in Hex sind, die ich in einen uint24-Wert umwandeln möchte. Die Werte "XXYYZZ"stellen Lightness-Level dar, bzw. Illuminance-Werte in einem Valid Range von 0.00 bis 167772.14.
Beispiele:
"payload": "c409000000" → 0 x 00 00 00 (dunkel)
"payload": "c409dc0500" → 0 x 00 05 dc (etwas heller)
"payload": "c409a40600" → 0 x 00 06 a4 (noch heller)
"payload": "c409905f01" → 0 x 01 5f 90
"payload": "c409d05f02" → 0 x 02 5f d0
"payload": "c409400d03" → 0 x 03 0d 40 (sehr hell)
Kann mir vllt. jemand helfen oder einen Tipp geben, wie ich diese Strings "XXYYZZ", die man wohl nach little-endian-manier umsortieren muss (der XX-byte "wackelt" bei etwas Licht zuerst und stets, dann der YY-byte, zuletzt bei viel Licht erst der ZZ-Wert), in eine Zahl bzw. Prozent (0-100) umwandeln kann?
Vielen Dank!
. Das wird wohl nicht ganz leicht.
Kommentar