77 lines
1.9 KiB
Plaintext
77 lines
1.9 KiB
Plaintext
alias gas_sensor d0
|
|
alias thermostat d1 # Logic Switch, Dial variant (Max=30)
|
|
alias temp_variance d2 # Logic Memory, must be more than 0 (2 is a good value)
|
|
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 # Wall Heaters
|
|
define wall_coolers -739292323 # Wall Coolers (Gas)
|
|
define liquid_wall_coolers -1369060582 # Wall Coolers (Liquid)
|
|
define temp_convert 273
|
|
|
|
start:
|
|
# 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
|
|
|
|
# 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
|
|
|
|
yield
|
|
|
|
# Go to start again
|
|
j start
|
|
|
|
cooling:
|
|
# read ambient temp from sensor and convert to C
|
|
l curr_temp gas_sensor Temperature
|
|
sub curr_temp curr_temp temp_convert
|
|
|
|
# test if coolers need to be on or not
|
|
sgt cooling_active curr_temp target_temp
|
|
|
|
# send state to coolers
|
|
sb wall_coolers On cooling_active
|
|
sb liquid_wall_coolers On cooling_active
|
|
yield
|
|
|
|
# if curr_temp is lower than target, keep cooling
|
|
bgt curr_temp target_temp cooling
|
|
|
|
# ...if not, go to start again
|
|
j start
|
|
|
|
heating:
|
|
# read ambient temp from sensor and convert to C
|
|
l curr_temp gas_sensor Temperature
|
|
sub curr_temp curr_temp temp_convert
|
|
|
|
# test if heaters need to be on or not
|
|
slt heating_active curr_temp target_temp
|
|
|
|
# send state to heaters
|
|
sb wall_heaters On heating_active
|
|
yield
|
|
|
|
# if curr_temp is lower than target, keep heating
|
|
blt curr_temp target_temp heating
|
|
|
|
# ...if not, go to start again
|
|
j start |