home-assistant.io/source/_integrations/pi_hole.markdown

74 lines
2.7 KiB
Markdown

---
title: Pi-hole
description: Instructions on how to integrate Pi-hole with Home Assistant.
ha_category:
- Sensor
- Switch
- System monitor
- Update
ha_iot_class: Local Polling
ha_config_flow: true
ha_release: 0.28
ha_codeowners:
- '@shenxn'
ha_domain: pi_hole
ha_platforms:
- binary_sensor
- diagnostics
- sensor
- switch
- update
ha_integration_type: integration
---
The Pi-hole integration allows you to retrieve statistics and interact with a
[Pi-hole](https://pi-hole.net/) system.
{% include integrations/config_flow.md %}
During the setup, it will ask for the following:
| Item | Description | Example |
| ---- | ----------- | ------- |
| `Host` | The IP or domain name to Pi-Hole. | 192.168.1.1 |
| `Port` | Port used to get to the admin page, typically `80` for `http` connections and `443` for `https` connections. | 80 |
| `Name` | Name to for this Pi-Hole. | Pi-Hole |
| `Location` | the path to the admin page. In the version 6 API this will be ignored. | /admin |
| `API Key or App Password` | This can be found in your Pi-hole's **Settings** > **API (expert mode)**. | `585a2fe...` |
| `Uses an SSL certificate` | Whether your Pi-hole has an Certificate, typically true for `https` connections and false for `http`. | {% icon "openmoji:check-mark" %} |
| `Verify SSL certificate` | Whether to use verify your Pi-hole's certificate, ignored in Pi-hole API version 5. | {% icon "openmoji:check-mark" %} |
The combined host, port and location should take you to the login page of Pi-Hole. Using the example above, it would be `http://192.168.1.1:80/admin`.
To find your App Password, log into your Pi-Hole and go to **Settings** > **Web Interface/API**. Switch from **Basic** to **Expert** mode, then select **Configure app password**.
Versions of Pi-hole before version 6 (released in Feb 2025) use an API Key if the Pi-hole was password protected, this can be found in _Settings > API Tab_ and clicking **Show API token**
## Actions
The platform provides the following actions to interact with your Pi-hole. Use switch entities when calling the actions.
### Action `pi_hole.disable`
Disables configured Pi-hole(s) for the specified amount of time.
| Data attribute | Required | Type | Description |
| ---------------------- | -------- | -------- | ----------- |
| `entity_id` | `False` | string | Target switch entity. Use `all` to target all Pi-hole services. |
| `duration` | `True` | timedelta | Time for which Pi-hole should be disabled. `'0'` will enable blocking indefinitely. |
Example action:
```yaml
# Example action to disable Pi-Hole for 30 minutes
action: pi_hole.disable
data:
duration: '00:30'
target:
entity_id: all
```
## Switches
The integration creates a switch for the Pi-hole allowing you to toggle the Pi-hole on and off.