CLI client for the CyberQ Wifi Temperature Controller — a WiFi-connected BBQ/smoker temperature controller with PID control.
- Read live temperatures — all 4 probes (1 cook + 3 food)
- Set temperature setpoints — cook probe, food probes, and hold temperature
- Configure system settings — LCD backlight, contrast, alarm/key beeper
- Email alert management — SMTP config, test emails, alert intervals
- WiFi scanning — discover nearby networks with signal strength
- WiFi configuration — set SSID, encryption, static IP, DHCP
- PID control tuning — hold temp, ramp targets, cycle time, proportional band
- Timer — set countdown timer in seconds
- Probe naming — name your cook and food probes
- Device reboot — safely reboot the controller
- JSON output — pipe and process data programmatically
pip install cyberq-cliOr install from source:
git clone https://github.com/rmkraus/cyberq-cli.git
cd cyberq-cli
pip install -e .No external dependencies — pure Python stdlib only (argparse, urllib, xml.etree).
# Check current status
cyberq status --host 192.168.4.238
# Set cook probe to 225°F
cyberq cook-temp --host 192.168.4.238 --temp 225
# Set food probe 1 to 165°F
cyberq food-temp --host 192.168.4.238 --probe 1 --temp 165
# Scan for WiFi networks
cyberq scan-wifi --host 192.168.4.238
# Output as JSON for scripting
cyberq status --host 192.168.4.238 --jsonSet CYBERQ_HOST environment variable to skip --host on every command:
export CYBERQ_HOST=192.168.4.238
cyberq status| Command | Description |
|---|---|
status |
Display full device status (temps, probes, system) |
email-status |
Display email configuration and alert stats |
cook-temp |
Set cook probe temperature setpoint (°F) |
food-temp |
Set food probe temperature setpoint (°F) |
hold-temp |
Set hold temperature (°F) |
system-settings |
LCD backlight, contrast, beeper settings |
email-settings |
Configure SMTP, recipients, alert intervals |
reboot |
Reboot the device |
scan-wifi |
Scan for available WiFi networks |
wifi-settings |
Configure WiFi (SSID, encryption, static IP) |
control-settings |
PID tuning: hold, ramp, cycle time, band |
probe-name |
Name a cook or food probe |
timer |
Set countdown timer (seconds) |
| Flag | Description |
|---|---|
--host, -h |
Device IP or hostname (default: CYBERQ_HOST env or 192.168.4.238) |
--json, -j |
Output raw JSON instead of formatted text |
| Code | Description |
|---|---|
| 0 | OK |
| 1 | HIGH |
| 2 | LOW |
| 3 | DONE |
| 4 | ERROR |
| 5 | HOLD |
| 6 | ALARM |
| 7 | SHUTDOWN |
- Temperatures from the device come in tenths of °F (e.g., 2250 = 225.0°F)
- CLI accepts standard °F values (float/int) and converts internally
- C↔F conversion: °F = °C × 9/5 + 32
# Set a probe name
cyberq probe-name --type cook --name "Pit Boss" --host 192.168.4.238
# Set a 4-hour timer
cyberq timer --seconds 14400 --host 192.168.4.238
# Configure email alerts
cyberq email-settings \
--host 192.168.4.238 \
--smtp-host smtp.gmail.com \
--smtp-port 587 \
--smtp-user [email protected] \
--smtp-pwd "secret" \
--smtp-to [email protected] \
--smtp-subject "CyberQ Alert" \
--smtp-interval 15
# Scan WiFi and output JSON
cyberq scan-wifi --host 192.168.4.238 --json | jq '.networks[]'
# Set PID parameters
cyberq control-settings \
--host 192.168.4.238 \
--hold-temp 200 \
--ramp-target 2 \
--cycle-time 10 \
--prop-band 15.0pytest tests/ -vpip install -e ".[dev]"
pytest tests/ -vMIT © Ryan Kraus