Configuration Reference¶
Complete reference for all OctoPrint-TempETA configuration options.
This page provides the complete reference for plugin configuration. For implementation details, see Settings Architecture.
Configuration File¶
Settings are stored in OctoPrint's config.yaml:
Location: ~/.octoprint/config.yaml (Linux/Mac) or %APPDATA%\OctoPrint\config.yaml (Windows)
plugins:
temp_eta:
# Configuration here
Complete Configuration Example¶
plugins:
temp_eta:
# === General Settings ===
enabled: true
algorithm: "linear"
update_interval: 1.0
min_rate: 0.1
max_eta: 3600
# === Heating Settings ===
heating_enabled: true
heating_threshold: 1.0
heating_sound_enabled: false
heating_sound_file: "default"
heating_notification_enabled: true
# === Cooling Settings ===
cooling_enabled: true
cooling_threshold: 1.0
cooling_sound_enabled: false
cooling_sound_file: "default"
cooling_notification_enabled: true
# === Display Settings ===
show_in_graph: true
show_in_sidebar: true
show_in_navbar: false
time_format: "auto"
show_rate: true
show_percentage: false
# === MQTT Settings ===
mqtt_enabled: false
mqtt_broker: "localhost"
mqtt_port: 1883
mqtt_username: ""
mqtt_password: ""
mqtt_tls_enabled: false
mqtt_tls_insecure: false
mqtt_ca_cert: ""
mqtt_topic_prefix: "octoprint/temp_eta"
mqtt_retain: false
mqtt_qos: 0
mqtt_keepalive: 60
# === Advanced Settings ===
history_max_age: 60
history_max_samples: 120
exponential_window: 30
linear_window: 10
exponential_max_tau: 300
calculation_interval: 0.5
cleanup_interval: 5.0
debug_logging: false
Setting Details¶
enabled¶
Enable or disable the plugin globally.
- Type: Boolean
- Default:
true - Example:
enabled: false
algorithm¶
ETA calculation algorithm.
- Type: String
- Default:
"linear" - Options:
"linear","exponential" - Example:
algorithm: "exponential"
Linear: Fast, simple, works well for constant heating. Exponential: More accurate near target, requires more data.
update_interval¶
How often to send UI updates (seconds).
- Type: Float
- Default:
1.0 - Range:
0.5-5.0 - Example:
update_interval: 2.0
Lower values = more responsive, higher CPU usage.
min_rate¶
Minimum temperature change rate to show ETA (°C/s).
- Type: Float
- Default:
0.1 - Range:
0.01-1.0 - Example:
min_rate: 0.05
If rate is lower, ETA shows "stalled".
max_eta¶
Maximum ETA to display (seconds).
- Type: Integer
- Default:
3600(1 hour) - Range:
60-7200 - Example:
max_eta: 1800
Longer ETAs show "calculating".
heating_enabled¶
Show ETA for heating.
- Type: Boolean
- Default:
true - Example:
heating_enabled: false
heating_threshold¶
Temperature difference to start showing heating ETA (°C).
- Type: Float
- Default:
1.0 - Range:
0.1-10.0 - Example:
heating_threshold: 2.0
Prevents showing ETA for tiny temperature changes.
heating_sound_enabled¶
Play sound when heating completes.
- Type: Boolean
- Default:
false - Example:
heating_sound_enabled: true
heating_sound_file¶
Sound file to play on heating complete.
- Type: String
- Default:
"default" - Example:
heating_sound_file: "chime.mp3"
Place custom sounds in octoprint_temp_eta/static/sounds/.
cooling_enabled¶
Show ETA for cooling.
- Type: Boolean
- Default:
true - Example:
cooling_enabled: false
cooling_threshold¶
Temperature difference to start showing cooling ETA (°C).
- Type: Float
- Default:
1.0 - Range:
0.1-10.0 - Example:
cooling_threshold: 2.0
show_in_graph¶
Display ETA in temperature graph.
- Type: Boolean
- Default:
true - Example:
show_in_graph: false
show_in_sidebar¶
Display ETA in sidebar widget.
- Type: Boolean
- Default:
true - Example:
show_in_sidebar: false
time_format¶
ETA display format.
- Type: String
- Default:
"auto" - Options:
"auto","seconds","minutes","hours","hms" -
Example:
time_format: "hms" -
auto: Chooses best format based on time seconds: "90s"minutes: "1.5m"hours: "0.5h"hms: "01:30:00"
show_rate¶
Show temperature change rate.
- Type: Boolean
- Default:
true - Example:
show_rate: false
Displays rate like "+1.5°C/s".
mqtt_enabled¶
Enable MQTT publishing.
- Type: Boolean
- Default:
false - Example:
mqtt_enabled: true
mqtt_broker¶
MQTT broker hostname or IP.
- Type: String
- Default:
"localhost" - Example:
mqtt_broker: "192.168.1.100"
mqtt_port¶
MQTT broker port.
- Type: Integer
- Default:
1883 - Range:
1-65535 - Example:
mqtt_port: 8883(SSL/TLS)
mqtt_username¶
MQTT username (optional).
- Type: String
- Default:
"" - Example:
mqtt_username: "octoprint"
mqtt_password¶
MQTT password (optional).
- Type: String
- Default:
"" - Example:
mqtt_password: "secret123"
Security: Store securely, don't commit to git.
mqtt_tls_enabled¶
Use TLS/SSL for MQTT.
- Type: Boolean
- Default:
false - Example:
mqtt_tls_enabled: true
mqtt_topic_prefix¶
MQTT topic prefix.
- Type: String
- Default:
"octoprint/temp_eta" - Example:
mqtt_topic_prefix: "3dprinter/eta"
Full topics: {prefix}/tool0, {prefix}/bed, etc.
mqtt_retain¶
Set retain flag on MQTT messages.
- Type: Boolean
- Default:
false - Example:
mqtt_retain: true
Retained messages persist on broker.
mqtt_qos¶
MQTT Quality of Service level.
- Type: Integer
- Default:
0 - Options:
0,1,2 -
Example:
mqtt_qos: 1 -
0: At most once 1: At least once2: Exactly once
history_max_age¶
Maximum age of temperature history (seconds).
- Type: Integer
- Default:
60 - Range:
10-300 - Example:
history_max_age: 120
Older data is automatically deleted.
history_max_samples¶
Maximum number of samples per heater.
- Type: Integer
- Default:
120 - Range:
10-1000 - Example:
history_max_samples: 200
Limits memory usage.
exponential_window¶
Time window for exponential fitting (seconds).
- Type: Integer
- Default:
30 - Range:
10-60 - Example:
exponential_window: 45
Only used with exponential algorithm.
linear_window¶
Time window for linear calculation (seconds).
- Type: Integer
- Default:
10 - Range:
5-30 - Example:
linear_window: 15
Only used with linear algorithm.
debug_logging¶
Enable debug logging.
- Type: Boolean
- Default:
false - Example:
debug_logging: true
Increases log verbosity. Useful for troubleshooting.
Environment Variables¶
Some settings can be overridden via environment variables (for testing):
export OCTOPET_ALGORITHM=exponential
export OCTOPET_MIN_RATE=0.05
export OCTOPET_DEBUG=1
Programmatic Access¶
Python¶
# Get setting
algorithm = self._settings.get(["algorithm"])
# Set setting
self._settings.set(["algorithm"], "exponential")
# Save
self._settings.save()
REST API¶
# Get settings
curl http://octopi.local/api/settings
# Update settings
curl -X POST \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"plugins": {"temp_eta": {"algorithm": "exponential"}}}' \
http://octopi.local/api/settings
Validation¶
Settings are validated on save:
- Type checking
- Range validation
- Enum validation
- Cross-setting validation
Invalid settings are rejected with error message.
Migration¶
Settings are automatically migrated between versions:
def on_settings_migrate(self, target, current):
if current < 2:
# Migrate v1 to v2
self._settings.set(["new_setting"], default_value)
Backup¶
Backup configuration:
cp ~/.octoprint/config.yaml ~/.octoprint/config.yaml.backup
Reset to Defaults¶
Via UI: Settings → Temperature ETA → Reset to Defaults
Via config file: Delete plugins.temp_eta section
Via API:
curl -X DELETE \
-H "X-Api-Key: YOUR_KEY" \
http://octopi.local/api/settings/plugins/temp_eta
Next Steps¶
- Settings Architecture - Implementation details
- OctoPrint Integration - Settings plugin
- Python API - Programmatic access