How arbeaman/octoprint-enclosureheatercontrol works
OctoPrint Enclosure Heater Control provides manual and automatic remote control of a printer enclosure heater. Users toggle it from the navbar, use the plugin API or CLI, or configure G-code triggers and idle timeout behavior; the plugin selects switching and sensing methods and publishes heater state back to clients. The README also documents GPIO, system-command, G-code, and sub-plugin integrations. The main implementation excerpt is partial, so edges are limited to relationships shown there or stated in the README.
Main entry points: __init__.py Plugin controller · enclosureheatercontrol.js Navbar controls · enclosureheatercontrol_subpluginexample.py Sub-plugin example · cli.py CLI commands
Components 15
User controls
- Navbar controls
octoprint_enclosureheatercontrol/static/js/enclosureheatercontrol.js - Settings UI
octoprint_enclosureheatercontrol/static/js/enclosureheatercontrol.js - CLI commands
octoprint_enclosureheatercontrol/cli.py
Automation and state
- Plugin controller
octoprint_enclosureheatercontrol/__init__.py - G-code triggers
octoprint_enclosureheatercontrol/__init__.py - Idle timeout
octoprint_enclosureheatercontrol/__init__.py - State sensing
octoprint_enclosureheatercontrol/__init__.py - Heater state
octoprint_enclosureheatercontrol/__init__.py
Heater integrations
- G-code commands
- System commands
- GPIO pins
- Sub-plugin example
extra/enclosureheatercontrol_subpluginexample.py
Other components
- OctoPrint user
- OctoPrint API
- Printer
Connections 19
- OctoPrint user → Navbar controls: uses
README.md - Navbar controls → OctoPrint API: sends API commands
octoprint_enclosureheatercontrol/static/js/enclosureheatercontrol.js - Navbar controls → Plugin controller: fetches state
octoprint_enclosureheatercontrol/static/js/enclosureheatercontrol.js - OctoPrint user → Settings UI: configures
README.md - CLI commands → OctoPrint API: posts commands
octoprint_enclosureheatercontrol/cli.py - OctoPrint API → Plugin controller: routes plugin API
- Plugin controller → Navbar controls: pushes state
octoprint_enclosureheatercontrol/__init__.py - Printer → G-code triggers: sends G-code
README.md - G-code triggers → Plugin controller: turns heater on
README.md - Idle timeout → Plugin controller: turns heater off
README.md - Plugin controller → Idle timeout: starts timer
octoprint_enclosureheatercontrol/__init__.py - Plugin controller → State sensing: polls state
octoprint_enclosureheatercontrol/__init__.py - State sensing → GPIO pins: reads pin
octoprint_enclosureheatercontrol/__init__.py - State sensing → Heater state: updates
octoprint_enclosureheatercontrol/__init__.py - Plugin controller → G-code commands: switches via
README.md - Plugin controller → System commands: switches via
README.md - Plugin controller → GPIO pins: switches via
README.md - Plugin controller → Sub-plugin example: registers integration
- Sub-plugin example → Plugin controller: registers at startup
extra/enclosureheatercontrol_subpluginexample.py