mirror of
https://github.com/Crocmagnon/printer-raspberry-pi.git
synced 2024-11-21 17:48:02 +01:00
47 lines
1.5 KiB
Bash
Executable file
47 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Set default values for environment variables
|
|
: "${PRUSA_CONNECT_URL:=https://webcam.connect.prusa3d.com/c/snapshot}"
|
|
: "${WEBCAM_SNAPSHOT_URL:=http://127.0.0.1:8080/snapshot}"
|
|
: "${PRUSA_LINK_STATUS_URL:=http://192.168.0.130/api/v1/status}"
|
|
: "${DELAY_SECONDS:=10}"
|
|
: "${LONG_DELAY_SECONDS:=60}"
|
|
: "${IMG_PATH:=$HOME/output.jpg}"
|
|
|
|
# secrets
|
|
: "${PRUSA_CONNECT_CAMERA_FINGERPRINT:=FINGERPRINT}"
|
|
: "${PRUSA_CONNECT_CAMERA_TOKEN:=TOKEN}"
|
|
: "${PRUSA_LINK_KEY:=KEY}"
|
|
|
|
source secrets
|
|
|
|
while true; do
|
|
state=$(curl -m 5 -sSL $PRUSA_LINK_STATUS_URL -H "X-Api-Key: $PRUSA_LINK_KEY" | jq -r ".printer.state")
|
|
if [ $state == "PRINTING" ]; then
|
|
curl -k -sSL $WEBCAM_SNAPSHOT_URL -o $IMG_PATH
|
|
# If no error, upload it.
|
|
if [ $? -eq 0 ]; then
|
|
# POST the image to the HTTP URL using curl
|
|
curl -X PUT "$PRUSA_CONNECT_URL" \
|
|
-H "accept: */*" \
|
|
-H "content-type: image/jpg" \
|
|
-H "fingerprint: $PRUSA_CONNECT_CAMERA_FINGERPRINT" \
|
|
-H "token: $PRUSA_CONNECT_CAMERA_TOKEN" \
|
|
--data-binary "@$IMG_PATH" \
|
|
--no-progress-meter \
|
|
--compressed
|
|
|
|
# Reset delay to the normal value
|
|
DELAY=$DELAY_SECONDS
|
|
else
|
|
echo "FFmpeg returned an error. Retrying after ${LONG_DELAY_SECONDS}s..."
|
|
|
|
# Set delay to the longer value
|
|
DELAY=$LONG_DELAY_SECONDS
|
|
fi
|
|
else
|
|
echo "printer not printing. retrying after ${LONG_DELAY_SECONDS}s..."
|
|
DELAY=$LONG_DELAY_SECONDS
|
|
fi
|
|
sleep "$DELAY"
|
|
done
|