alias GasSensor d0 # d1= Logic Switch, Dial variant (Max=30) alias Thermostat d1 # d2 = Logic Memory, must be more than 0 alias TempVariance d2 # d3 = Console, LED Display variant, optional alias TempDisplay d3 # d4 = Wall Cooler alias WallCooler d4 # d5 = Wall Heater alias WallHeater d5 alias CurrentTemp r0 alias TargetTemp r1 alias Variance r2 alias MinTemp r3 alias MaxTemp r4 alias CoolingActive r5 alias HeatingActive r6 alias Cooler r7 alias Heater r8 define TEMPCONVERT 273.15 move CoolingActive 0 move HeatingActive 0 l Cooler WallCooler PrefabHash l Heater WallHeater PrefabHash start: yield # establish min- and max-temps to registry l Variance TempVariance Setting l MinTemp Thermostat Setting sub MinTemp MinTemp Variance l MaxTemp Thermostat Setting add MaxTemp MaxTemp Variance l TargetTemp Thermostat Setting # get current temperature jal temp_read # update display brdns TempDisplay 2 jal display # compare current temp to max/min temp and # initiate cooling or heating if needed bgt CurrentTemp MaxTemp cooling blt CurrentTemp MinTemp heating sb Cooler On CoolingActive sb Heater On HeatingActive j start temp_read: l CurrentTemp GasSensor Temperature sub CurrentTemp CurrentTemp TEMPCONVERT j ra display: s TempDisplay Setting CurrentTemp j ra cooling: yield jal temp_read # test if coolers need to be on or not sgt CoolingActive CurrentTemp TargetTemp brdns TempDisplay 2 jal display # send state to coolers sb Cooler On CoolingActive bgtz CoolingActive cooling j start heating: yield jal temp_read # test if heaters need to be on or not slt HeatingActive CurrentTemp TargetTemp brdns TempDisplay 2 jal display # send state to heaters sb Heater On HeatingActive bgtz HeatingActive heating j start