alias gas_sensor d0 # d1= Logic Switch, Dial variant (Max=30) alias thermostat d1 # d2 = Logic Memory, must be more than 0 alias temp_variance d2 # d3 = Console, LED Display variant, optional alias temp_disp d3 alias curr_temp r0 alias target_temp r1 alias variance r2 alias min_temp r3 alias max_temp r4 alias cooling_active r5 alias heating_active r6 define wall_heaters 24258244 define wall_coolers -739292323 define liquid_wall_coolers -1369060582 define temp_convert 273.15 start: yield # establish min- and max-temps to registry l variance temp_variance Setting l min_temp thermostat Setting sub min_temp min_temp variance l max_temp thermostat Setting add max_temp max_temp variance # initiate target temperature l target_temp thermostat Setting # read ambient temp from sensor and convert to C l curr_temp gas_sensor Temperature sub curr_temp curr_temp temp_convert # update display brdns temp_disp 2 jal display # compare current temp to max/min temp and # initiate cooling or heating if needed bgt curr_temp max_temp cooling blt curr_temp min_temp heating j start display: s temp_disp Setting curr_temp j ra cooling: # test if coolers need to be on or not sgt cooling_active curr_temp target_temp # update display brdns temp_disp 2 jal display # send state to coolers sb wall_coolers On cooling_active sb liquid_wall_coolers On cooling_active bgtz cooling_active cooling j start heating: # test if heaters need to be on or not slt heating_active curr_temp target_temp # update display brdns temp_disp 2 jal display # send state to heaters sb wall_heaters On heating_active bgtz heating_active heating j start