3.4 KiB
		
	
	
	
	
			
		
		
	
	Scheduling a Kiln Run
Our lives are busy. Sometimes you'll want your kiln to start at a scheduled time. This is really easy to do with the at command. Scheduled events persist if the raspberry pi reboots.
Install the scheduler
This installs and starts the at scheduler.
sudo apt-get update
sudo apt-get install at
Verify Time Settings
Verify the date and time and time zone are right on your system:
date
If yours looks right, proceed to Examples. If not, you need to execute commands to set it. On a raspberry-pi, this is easiest by running...
sudo raspi-config
Localisation Options -> Timezone -> Pick one -> Ok
Examples
Start a biscuit firing at 5am Friday morning:
at 5:00am friday <<END
curl -d '{"cmd":"run", "profile":"cone-05-long-bisque"}' -H "Content-Type: application/json" -X POST http://0.0.0.0:8081/api
END
Start a glaze firing in 15 minutes and start a kiln watcher. This is really useful because the kiln watcher should page you in slack if something is wrong with the firing:
at now +15 minutes <<END
curl -d '{"cmd":"run", "profile":"cone-6-long-glaze"}' -H "Content-Type: application/json" -X POST http://0.0.0.0:8081/api
source ~/kiln-controller/venv/bin/activate; ~/kiln-controller/watcher.jbruce.py
END
Start a biscuit fire at 1a tomorrow, but skip the first two hours [120 minutes] of candling because I know my wares are dry. One interesting thing to note about this example is that I am not starting a kiln watcher here. If I did, the watcher would page me at the start of the run because skipping the first two hours means that we are asking the kiln to immediately be at 200F... which it cannot immediately do. It would page me every 60s until it reaches temp. This is easily addressed by creating a new profile that does not include candling, but starts at room temp and heats at a rate which the kiln is capable. Another possibility would be to schedule the start of the watcher say ten or fifteen minutes after the biscuit firing starts which gives the kiln time to heat up. options.
at 1am tomorrow <<END
curl -d '{"cmd":"run", "profile":"cone-05-long-bisque","startat":120}' -H "Content-Type: application/json" -X POST http://0.0.0.0:8081/api
END
Stop any running firing at 3pm tomorrow:
at 3pm tomorrow <<END
curl -d '{"cmd":"stop"}' -H "Content-Type: application/json" -X POST http://0.0.0.0:8081/api
END
Start a 15 hour long glaze firing in 5 minutes and schedule for graphs from kiln-stats to be created on the raspberry-pi afterward and make the graphs available via a web server running on port 8000. You can do all kinds of interesting things with this. You could create a single job for the webserver and a job per hour to update the graphs. This way you can see detailed graphs of PID params and how the system is responding to them.
at now + 5 minutes <<END
curl -d '{"cmd":"run", "profile":"cone-6-long-glaze"}' -H "Content-Type: application/json" -X POST http://0.0.0.0:8081/api
END 
at now + 16 hours <<END
source ~/kiln-stats/venv/bin/activate; cd ~/kiln-stats/scripts/; cat /var/log/daemon.log |~/kiln-stats/scripts/log-splitter.pl |grep ^1>~/kiln-stats/input/daemon.log; ~/kiln-stats/scripts/go; cd ~/kiln-stats/output; python3 -m http.server
END
List scheduled jobs...
atq
Remove scheduled jobs...
atrm jobid
where jobid is an integer that came from the atq output