kiln-controller-max31856/docs/schedule.md

3.0 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. Start a kiln watcher 15 minutes later to give the kiln time to reach temperature so the watcher does not page me.

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
at 1:15am tomorrow <<END
source ~/kiln-controller/venv/bin/activate; ~/kiln-controller/watcher.jbruce.py
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