diff --git a/source/_integrations/octoprint.markdown b/source/_integrations/octoprint.markdown index 33fb1da55a8..73eaa686e04 100644 --- a/source/_integrations/octoprint.markdown +++ b/source/_integrations/octoprint.markdown @@ -1,13 +1,17 @@ --- title: OctoPrint -description: Instructions on how to setup the OctoPrint in Home Assistant. +description: Integration between OctoPrint and Home Assistant. ha_category: - - Hub - Binary Sensor - Sensor +ha_config_flow: true ha_release: 0.19 +ha_codeowners: + - '@rfleming71' ha_iot_class: Local Polling ha_domain: octoprint +ha_zeroconf: true +ha_ssdp: true ha_platforms: - binary_sensor - sensor @@ -15,119 +19,30 @@ ha_platforms: [OctoPrint](https://octoprint.org/) is a web interface for your 3D printer. This is the main integration to integrate OctoPrint sensors. -There is currently support for the following device types within Home Assistant: +{% include integrations/config_flow.md %} -- [Binary Sensor](#binary-sensor) -- [Sensor](#sensor) +### API Key -## Configuration +The Octoprint integration will attempt to register itself via the [application keys plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt. -To get started with the OctoPrint API, please follow the directions on their [site](https://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`. +## Binary Sensor -```yaml -octoprint: - host: YOUR_OCTOPRINT_HOST - api_key: YOUR_API_KEY -``` +The OctoPrint integration provides the following binary sensors: -{% configuration %} -host: - description: IP address or hostname of Octoprint host. - required: true - type: string -api_key: - description: The retrieved API key. - required: true - type: string -name: - description: The name for this printer, must be unique if multiple printers are defined. - required: false - type: string - default: OctoPrint -port: - description: The port of the Octoprint server. - required: false - type: integer - default: 80 -path: - description: The URL path of the Octoprint instance. - required: false - type: string - default: / -ssl: - description: Enable or disable SSL/TLS. - required: false - type: boolean - default: false -bed: - description: If the printer has a heated bed. - required: false - type: boolean - default: false -number_of_tools: - description: Number of temperature adjustable tools, e.g., nozzle. - required: false - type: integer - default: 0 -sensors: - description: Configuration for the sensors. - required: false - type: map - keys: - monitored_conditions: - description: The sensors to activate. - type: list - default: all (`Current State`, `Temperatures`, `Job Percentage`, `Time Elapsed`, `Time Remaining`) - keys: - "Current State": - description: Text of current state. - "Temperatures": - description: Temperatures of all available tools, e.g., `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device. - "Job Percentage": - description: Percentage of the job. - "Time Elapsed": - description: Time elapsed on current print job, in seconds. - "Time Remaining": - description: Time remaining on current print job, in seconds. -binary_sensors: - description: Configuration for the binary sensors. - required: false - type: map - keys: - monitored_conditions: - description: The sensors to activate. - type: list - default: all (`Printing`, `Printing Error`) - keys: - "Printing": - description: State of the printer. - "Printing Error": - description: Error while printing. -{% endconfiguration %} +- Printing +- Print Error -
+## Sensor -If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup. +The OctoPrint integration lets you monitor various states of your 3D printer and its print jobs. +Supported sensors: -
+- Current Printer State +- Job Completed Percentage +- Estimated Finish Time +- Estimated Start Time -Example with multiple printers: - -```yaml -octoprint: - - host: YOUR_OCTOPRINT_HOST - api_key: YOUR_API_KEY - name: PRINTER_NAME_1 - number_of_tools: 2 - sensors: - monitored_conditions: - - 'Current State' - - 'Job Percentage' - - host: YOUR_OCTOPRINT_HOST - api_key: YOUR_API_KEY - name: PRINTER_NAME_2 - number_of_tools: 1 -``` +## Camera If the OctoPrint host is equipped with a web camera it is possible to add this as well. @@ -138,38 +53,3 @@ camera: still_image_url: http://YOUR_OCTOPRINT_HOST_IP/webcam/?action=snapshot mjpeg_url: http://YOUR_OCTOPRINT_HOST_IP/webcam/?action=stream ``` - -## Binary Sensor - -The `octoprint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error. - -To set it up, add the following information to your `configuration.yaml` file: - -```yaml -binary_sensor: - - platform: octoprint - monitored_conditions: - - Printing - - Printing Error -``` - -{% configuration %} -monitored_conditions: - description: States to monitor. - required: true - type: list - keys: - printing: - description: State of the printer. - printing error: - description: Error while printing. -name: - description: The name of the sensor. - required: false - type: string - default: OctoPrint -{% endconfiguration %} - -## Sensor - -The `octoprint` sensor platform let you monitor various states of your 3D printer and its print jobs. diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown index 182df4edf55..ff4b94aa29d 100644 --- a/source/_integrations/ssdp.markdown +++ b/source/_integrations/ssdp.markdown @@ -37,6 +37,7 @@ The following integrations are automatically discovered by the SSDP integration: - [Keenetic NDMS2 Router](/integrations/keenetic_ndms2/) - [Konnected.io](/integrations/konnected/) - [Logitech Harmony](/integrations/harmony/) + - [OctoPrint](/integrations/octoprint/) - [Philips Hue](/integrations/hue/) - [Roku](/integrations/roku/) - [Samsung SyncThru Printer](/integrations/syncthru/)