[SOLVED] Trouble with Temp Conversion

Hi all, having issues getting a rule for Celsius to Fahrenheit converted. This is where I am.
Items:

Number Greenhouse_GreenhouseOne_AirTemperatureCelcius "Air Temperature C" <temperature> (gGreenhouseGreenhouseOne, gAirTemperature) {mqtt="<[broker:miflora/GreenhouseOne:state:JSONPATH($.temperature)]"}
Number Greenhouse_GreenhouseOne_AirTemperatureFahrenheit "Air Temperature F" <temperature> (gGreenhouseGreenhouseOne, gAirTemperature)

rule:

rule "Convert to Fahrenheit"
when
	Item Greenhouse_GreenhouseOne_AirTemperatureCelcius received update
then
	var Number current =  Greenhouse_GreenhouseOne_AirTemperatureCelcius.state
	var Number currentInFahrenheit = (current as DecimalType * 1.8) + 32
	logInfo("Temperature", "Greenhouse_GreenhouseOne_AirTemperatureCelcius received update: " + current + " in Celsius = " + currentInFahrenheit + " in Fahrenheit.")
	Greenhouse_GreenhouseOne_AirTemperatureFahrenheit.sendCommand(currentInFahrenheit)
end

sitemap:

Text item=Greenhouse_GreenhouseOne_AirTemperatureFahrenheit label="Air Temperature [%s F]" valuecolor=[>77="orange",>59="green",<=59="blue"]

in the log i get:

[vent.ItemStateChangedEvent] - Greenhouse_GreenhouseOne_AirTemperatureCelcius changed from 13.8 to 13.9

i have in the rule to loginfo but it does not log the change to Fahrenheit nor does it present in the sitemap.

1 Like

[SOLVED] As soon as I post this it works! I’ll leave it up for others to find.

You could trigger the rule from changed instead of every update, to slightly reduce workload.

rule "Convert to Fahrenheit"
when
	Item Greenhouse_GreenhouseOne_AirTemperatureCelcius received update
then
	var current =  Greenhouse_GreenhouseOne_AirTemperatureCelcius.state as Number
	var Number currentInFahrenheit = (current * 1.8) + 32
	logInfo("Temperature", "Greenhouse_GreenhouseOne_AirTemperatureCelcius received update: " + current + " in Celsius = " + currentInFahrenheit + " in Fahrenheit.")
	Greenhouse_GreenhouseOne_AirTemperatureFahrenheit.sendCommand(currentInFahrenheit)
end

But if it is for display only the you can make use of the UoM

The item:

Number:Temperature Greenhouse_GreenhouseOne_AirTemperature "Air Temperature [%.1f °C]" <temperature> (gGreenhouseGreenhouseOne, gAirTemperature) { mqtt="<[broker:miflora/GreenhouseOne:state:JSONPATH($.temperature)]" }

The sitemap:

Text item=Greenhouse_GreenhouseOne_AirTemperature label="Air Temperature [%.1f °F]"

And the conversion will be done automagicaly