I have a CT-30 Thermostat with the z-wave module. The problem I am having is that I cannot seem to get it to use anything other than Celsius. Is there a way for it to use Fahrenheit instead?
I tend to just go for the fix of least resistance.
The formula to convert from C to F is just
(C/5*9)+32=F from memory. Just apply that to the received value
How would I apply that where that is what the binding sees not just displays do to the echo I would need the item to be able to convert it.
I’d just have 2 items. On the first one receiving an update, have it run a rule that posts an update to the second item, using that formula.
Can anyone point me in a directions on how to do that?
I configured a rule to read as fahrenheit but when I set the rule to set the target temp it locks up the zwave radio on the ct-30. I figured that it might be the long decimal point so I set it to round but that didn’t seem to help.
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
rule "Convert ZwaveTempC to F"
when
Item ZwaveTempC changed
then
var Number temp
if (ZwaveTempC.state instanceof DecimalType) temp = ZwaveTempC.state as DecimalType
var Number temp2 = (temp * 1.8) + 32
ZwaveTempF.postUpdate(temp2)
end
rule "Convert_Temp_EG"
when
Item ThermostatSetTempF changed
then
var tempFahrenheit = (ThermostatSetTempF.state as DecimalType).doubleValue
var tempCelsius = (tempFahrenheit - 32) * 5/9
tempCelsius = Math::round(tempCelsius.floatValue())
postUpdate(ThermostatTargetTemperature, tempCelsius)
end```