Add Home Assistant custom integration and ESP availability tracking
- Add custom HA integration (config flow, switch, water_for service) - Add MQTT Last Will & Testament for offline detection - Publish 'online' on successful MQTT connect - Update README with integration docs
This commit is contained in:
124
irrigation/homeassistant/README.md
Normal file
124
irrigation/homeassistant/README.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# Greenhousino Irrigation — Home Assistant Integration
|
||||
|
||||
Custom Home Assistant integration for the Greenhousino ESP8266/ESP32 irrigation controller.
|
||||
|
||||
## Features
|
||||
|
||||
- **Pump switch** — Turn the irrigation pump on/off from Home Assistant
|
||||
- **State tracking** — Real-time pump state via MQTT
|
||||
- **Availability** — Shows online/offline status
|
||||
- **`water_for` service** — Water for a specific duration (1–3600 seconds)
|
||||
- **Config flow** — Set up via Home Assistant UI (Settings → Devices & Services → Add Integration)
|
||||
- **Device registry** — Appears as a proper device with manufacturer/model info
|
||||
|
||||
## Installation
|
||||
|
||||
### Option 1: HACS (recommended)
|
||||
|
||||
1. Install [HACS](https://hacs.xyz/) in Home Assistant
|
||||
2. Add this repository as a custom repository
|
||||
3. Search for "Greenhousino Irrigation" and install
|
||||
4. Restart Home Assistant
|
||||
|
||||
### Option 2: Manual installation
|
||||
|
||||
1. Copy the `greenhousino` folder to your Home Assistant config directory:
|
||||
|
||||
```bash
|
||||
cp -r greenhousino /config/custom_components/
|
||||
```
|
||||
|
||||
2. Restart Home Assistant
|
||||
|
||||
3. Go to **Settings → Devices & Services → Add Integration** and search for "Greenhousino Irrigation"
|
||||
|
||||
## Configuration
|
||||
|
||||
The config flow will guide you through two steps:
|
||||
|
||||
### Step 1: Host
|
||||
- **Host IP address** — The IP of your ESP device (e.g., `192.168.178.50`). This is used for the web UI link in device info.
|
||||
|
||||
### Step 2: MQTT Topics
|
||||
- **Command topic** — MQTT topic to send commands (default: `greenhousino/pump`)
|
||||
- **State topic** — MQTT topic for state updates (default: `greenhousino/pumpstate`)
|
||||
|
||||
## Usage
|
||||
|
||||
### Switch entity
|
||||
|
||||
The integration creates a switch entity (`switch.greenhousino_irrigation_pump`) that you can:
|
||||
- Toggle on/off from the Home Assistant UI
|
||||
- Use in automations
|
||||
- Add to dashboards
|
||||
|
||||
### `water_for` service
|
||||
|
||||
Water for a specific duration:
|
||||
|
||||
```yaml
|
||||
service: greenhousino.water_for
|
||||
data:
|
||||
duration: 60 # seconds
|
||||
```
|
||||
|
||||
Or from an automation:
|
||||
```yaml
|
||||
automation:
|
||||
- alias: "Water garden every morning"
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "06:00:00"
|
||||
action:
|
||||
- service: greenhousino.water_for
|
||||
data:
|
||||
duration: 300 # 5 minutes
|
||||
```
|
||||
|
||||
## MQTT Topics
|
||||
|
||||
| Direction | Topic | Payload | Description |
|
||||
|-----------|-------|---------|-------------|
|
||||
| HA → ESP | `greenhousino/pump` | `on` | Turn pump on (default 30s) |
|
||||
| HA → ESP | `greenhousino/pump` | `off` | Turn pump off |
|
||||
| HA → ESP | `greenhousino/pump` | `5000` | Turn pump on for 5000ms |
|
||||
| ESP → HA | `greenhousino/pumpstate` | `on` | Pump is active |
|
||||
| ESP → HA | `greenhousino/pumpstate` | `off` | Pump is off |
|
||||
| ESP → HA | `greenhousino/pump/status` | `offline` | Device disconnected |
|
||||
|
||||
## Requirements
|
||||
|
||||
- Home Assistant 2024.x or later
|
||||
- MQTT integration configured and connected to the same broker as your ESP device
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Switch shows "unavailable"
|
||||
- Make sure the MQTT integration is connected
|
||||
- Verify the ESP device is publishing to the state topic
|
||||
- Check that topics match between the ESP firmware and HA config
|
||||
|
||||
### Service call doesn't work
|
||||
- Ensure MQTT integration is set up
|
||||
- Check HA logs: `Logger → greenhousino`
|
||||
- Verify the ESP is subscribed to the command topic
|
||||
|
||||
## YAML-only alternative (no custom component)
|
||||
|
||||
If you don't want a custom integration, you can use the built-in MQTT platform:
|
||||
|
||||
```yaml
|
||||
switch:
|
||||
- platform: mqtt
|
||||
name: "Irrigation Pump"
|
||||
command_topic: "greenhousino/pump"
|
||||
state_topic: "greenhousino/pumpstate"
|
||||
payload_on: "on"
|
||||
payload_off: "off"
|
||||
state_on: "on"
|
||||
state_off: "off"
|
||||
availability_topic: "greenhousino/pump/status"
|
||||
payload_available: "online"
|
||||
payload_not_available: "offline"
|
||||
qos: 1
|
||||
```
|
||||
Reference in New Issue
Block a user