Um meine KWL zu steuern muss ich quasi binär per serieller Schnittstelle schreiben. Die Befehle habe ich als HexString vorliegen.
Allerdings bekomme ich es nicht hin, sie richtig zu senden, da xtend bockig ist
Das Casten von int zu char schlägt fehl: Cannot cast java.lang.Integer to char
Hat jemand Tipps hierzu parat?
Leider gibt es m. E. keinen anderen Weg zur Umwandlung. Byte::ParseByte will nicht funktionieren, da es nur signed Werte erwartet. Von Hand umzurechnen auf diese Darstellung habe ich keine Lust
Am liebsten wäre es mir, wenn das SerialBinding auch binär arbeiten könnte und man ByteArray bekommen würde. Ich weiß aber nicht ob ByteArray überhaupt ein möglicher Typ in Openhab ist.
Danke,
Christoph
Allerdings bekomme ich es nicht hin, sie richtig zu senden, da xtend bockig ist

Code:
var commandHex = "" var commandString = "" if(kwlOnOff.state == ON) { commandHex = "012020a38165012010a38155012011a3815656" } else { commandHex = "012020a38064012010a38054012011a3805555" } var i = 0; while(i < commandHex.length()) { val str = commandHex.substring(i, i+2); commandString = commandString + (Integer::parseInt(str,16).intValue() as char) i = i+2 } logDebug("kwl", commandString); kwl.sendCommand(commandString)
Hat jemand Tipps hierzu parat?
Leider gibt es m. E. keinen anderen Weg zur Umwandlung. Byte::ParseByte will nicht funktionieren, da es nur signed Werte erwartet. Von Hand umzurechnen auf diese Darstellung habe ich keine Lust

Am liebsten wäre es mir, wenn das SerialBinding auch binär arbeiten könnte und man ByteArray bekommen würde. Ich weiß aber nicht ob ByteArray überhaupt ein möglicher Typ in Openhab ist.
Danke,
Christoph
Kommentar