RDZ PDC Heat Pump Monitor - Home Assistant Integration

A custom Home Assistant integration for monitoring and controlling RDZ PDC heat pumps via their embedded web interface.

Features

  • Climate Control: Thermostat entity for controlling heating/cooling water temperature
  • Water Heater Control: Dedicated entity for domestic hot water (DHW) temperature control
  • Comprehensive Monitoring: 12+ sensors for temperatures, setpoints, and runtime statistics
  • Status Indicators: 10 binary sensors for operational states (heating, cooling, pump, alarms, etc.)
  • Local Polling: Direct communication with heat pump - no cloud dependency
  • Dashboard Included: Pre-configured Lovelace dashboard YAML

Supported Data Points

Temperature Sensors

Sensor Description
Inlet Setpoint (ISP) Smart heating setpoint temperature
System Setpoint (SSP) System setpoint temperature
Water T1 Inflow/supply water temperature
Water T2 Outflow/return water temperature
DHW T3 Domestic hot water temperature
Outdoor T4 External/outdoor temperature
Water Setpoint Target heating water temperature
DHW Setpoint Target domestic hot water temperature

Binary Status Sensors

Sensor Description
Heating Heat pump is in heating mode
Cooling Heat pump is in cooling mode
Working Compressor is running
DHW Mode Domestic hot water heating active
Water Pump Circulation pump is active
Auxiliary Heater Backup electric heater running
Standby System in standby mode
Alarm System alarm active

Runtime Statistics

Sensor Description
Runtime (PDC) Total compressor operating hours
Auxiliary Heater Runtime Total backup heater operating hours

Installation

Step 1: Copy Integration Files

Copy the custom_components/rdz_innova_heatpump folder to your Home Assistant custom_components directory:

<config_directory>/
└── custom_components/
    └── rdz_innova_heatpump/
        ├── __init__.py
        ├── climate.py
        ├── sensor.py
        ├── binary_sensor.py
        ├── water_heater.py
        ├── config_flow.py
        ├── manifest.json
        └── translations/
            └── en.json

Step 2: Restart Home Assistant

After copying the files, restart Home Assistant completely.

Step 3: Add Integration

  1. Go to Settings → Devices & Services
  2. Click + Add Integration
  3. Search for "RDZ" or "Heat Pump Monitor"
  4. Follow the configuration wizard

Step 4: Configure URL

When prompted, enter your heat pump's status URL. The format is typically:

http://<HEAT_PUMP_IP>/installedplugin/com.innova.pdc/<VERSION>/server/index.php?Action=GetStatus

Example:

http://192.168.11.101/installedplugin/com.innova.pdc/2.0.10/server/index.php?Action=GetStatus

To find your URL:

  1. Access your heat pump's web interface in a browser
  2. Open browser developer tools (F12)
  3. Navigate to the Network tab
  4. Look for requests to index.php?Action=GetStatus
  5. Copy the full URL

Verify your URL works by opening it in a browser - you should see a JSON response like:

{
  "success": true,
  "sw": { "V": "3.0.49" },
  "RESULT": {
    "status": { ... }
  }
}

Troubleshooting

JSON Field Mapping Issues

Different firmware versions may have different JSON structures. If you encounter issues, you may need to modify the field mappings in __init__.py.

Known differences between firmware versions:

Field v3.0.49+ v2.3.x
ISP (Inlet Setpoint) "34.3 °C" (string with unit) May not exist
SSP (System Setpoint) Present May not exist
alarm.status true/false May only have type field
res (aux heater) Present May not exist
sce Present May not exist

Key mappings to verify in __init__.py:

"inlet_setpoint_temp": float(status.get("ISP", "0").split()[0]),
"system_setpoint_temp": status.get("SSP"),
"water_temp_t1": status.get("watert1"),
"water_temp_t2": status.get("watert2"),
"dhw_temp_t3": status.get("dhwt3"),
"outdoor_temp_t4": status.get("t4"),
"water_setpoint": status.get("watersetpoint"),
"dhw_setpoint": status.get("dhwsetpoint"),
"is_heating": status.get("heating", False),
"is_working": status.get("pwr", False),
"is_cooling": status.get("cooling", False),
"is_dhw": status.get("san", False),
"is_pump_active": status.get("pump", False),
"is_aux_heater": status.get("res", False),
"is_standby": status.get("standby", False),

Common Issues

  1. Integration not appearing: Ensure files are in the correct directory and restart HA completely
  2. Connection failed: Verify the URL is accessible from your HA server
  3. Missing sensors: Check if your firmware version supports all fields
  4. Temperature readings incorrect: Verify JSON field names match your heat pump's response

Dashboard

A pre-configured dashboard is included in dashboards/dash.yaml. To use it:

  1. Copy the YAML content
  2. Go to Settings → Dashboards
  3. Create a new dashboard or edit existing
  4. Use the raw configuration editor to paste the YAML

The dashboard includes:

  • Status buttons (Alarm, Heating, Cooling, SCE, Standby)
  • Thermostat cards for water and DHW control
  • 24-hour history graph
  • Scheduler integration (requires scheduler-card)

Services

rdz_innova_heatpump.set_water_setpoint

Manually set the heating water setpoint temperature.

Parameter Type Required Description
temperature float Yes Target temperature (35-60°C)
duration string No Duration: "forever" or time-based

Example:

service: rdz_innova_heatpump.set_water_setpoint
data:
  temperature: 45
  duration: forever

API Reference

Data Fetching

  • Endpoint: Configurable URL (typically index.php?Action=GetStatus)
  • Method: GET
  • Update Interval: Configurable (default: 3 seconds)

Parameter Setting

  • Endpoint: <base_url>/index.php?Action=SetParameter
  • Method: POST (form-urlencoded)
  • Parameters:
    • Key: "watersetpoint" or "dhwsetpoint"
    • Value: Temperature as string
    • manual: Duration ("forever" or time limit)

Technical Details

  • Domain: rdz_innova_heatpump
  • IoT Class: Local Polling
  • Platforms: sensor, binary_sensor, climate, water_heater
  • Configuration: UI-based (config_flow)

Contributing

Contributions are welcome! If you have a different firmware version or heat pump model, please share your JSON response structure to help improve compatibility.

License

This project is provided as-is for personal use with RDZ PDC heat pumps.

S
Description
No description provided
Readme
62 KiB
Languages
Python 96.5%
Shell 3.5%