adding documentations and json from bogdan
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# CLAUDE.md - AI Assistant Context
|
||||
|
||||
This file provides context for AI assistants working with this codebase.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is a **Home Assistant custom integration** for RDZ PDC heat pumps. It communicates with the heat pump's embedded web server via HTTP to monitor status and control temperatures.
|
||||
|
||||
**Domain**: `ha_rdz_pdc_config`
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
custom_components/ha_rdz_pdc_config/
|
||||
├── __init__.py # Core: HeatPumpDataCoordinator, HeatPumpEntity base class, service registration
|
||||
├── config_flow.py # UI configuration wizard (URL + scan interval)
|
||||
├── climate.py # Climate entity for heating water temperature control
|
||||
├── water_heater.py # Water heater entity for DHW (domestic hot water) control
|
||||
├── sensor.py # Temperature sensors, runtime sensors, version sensor
|
||||
├── binary_sensor.py # Status binary sensors (heating, cooling, pump, alarm, etc.)
|
||||
├── manifest.json # Integration metadata
|
||||
└── translations/en.json
|
||||
```
|
||||
|
||||
## Key Components
|
||||
|
||||
### HeatPumpDataCoordinator (`__init__.py:88`)
|
||||
Central data manager using Home Assistant's `DataUpdateCoordinator` pattern.
|
||||
- Fetches JSON data from heat pump at configurable intervals (default 3s)
|
||||
- Parses status response into normalized dict
|
||||
- Provides `set_water_setpoint()` and `set_dhw_setpoint()` methods
|
||||
|
||||
### HeatPumpEntity (`__init__.py:224`)
|
||||
Base class for all entities. Provides common device_info linking all entities to "Heat Pump" device.
|
||||
|
||||
### API Endpoints
|
||||
- **GET Status**: Configurable URL (typically `index.php?Action=GetStatus`)
|
||||
- **POST SetParameter**: `<base_url>/index.php?Action=SetParameter` with form data:
|
||||
- `Key`: "watersetpoint" or "dhwsetpoint"
|
||||
- `Value`: temperature string
|
||||
- `manual`: duration ("forever" or time-based)
|
||||
|
||||
## Data Flow
|
||||
|
||||
1. User configures URL via config_flow
|
||||
2. Coordinator fetches JSON every N seconds
|
||||
3. JSON parsed into normalized dict with keys like `water_temp_t1`, `is_heating`, etc.
|
||||
4. Platform entities read from `coordinator.data`
|
||||
5. Climate/water_heater call coordinator methods to set temperatures
|
||||
|
||||
## JSON Response Structure
|
||||
|
||||
Heat pump returns nested JSON. Key path: `RESULT.status.*`
|
||||
|
||||
```python
|
||||
# Main data extraction in __init__.py:122-158
|
||||
status = data.get("RESULT", {}).get("status", {})
|
||||
```
|
||||
|
||||
**Critical fields:**
|
||||
| Internal Key | JSON Path | Notes |
|
||||
|--------------|-----------|-------|
|
||||
| water_temp_t1 | status.watert1 | Inflow temperature |
|
||||
| water_temp_t2 | status.watert2 | Outflow temperature |
|
||||
| dhw_temp_t3 | status.dhwt3 | Domestic hot water temp |
|
||||
| outdoor_temp_t4 | status.t4 | Outdoor temperature |
|
||||
| water_setpoint | status.watersetpoint | Heating target |
|
||||
| dhw_setpoint | status.dhwsetpoint | DHW target |
|
||||
| inlet_setpoint_temp | status.ISP | Smart setpoint (parse: "34.3 °C" -> 34.3) |
|
||||
| is_heating | status.heating | Boolean |
|
||||
| is_cooling | status.cooling | Boolean |
|
||||
| is_working | status.pwr | Compressor running |
|
||||
| is_dhw | status.san | DHW mode active |
|
||||
| is_pump_active | status.pump | Circulation pump |
|
||||
| is_aux_heater | status.res | Backup heater |
|
||||
| is_standby | status.standby | Standby mode |
|
||||
| has_alarm | status.alarm.status | Alarm active |
|
||||
|
||||
## Firmware Variations
|
||||
|
||||
Different firmware versions have different JSON structures. Sample responses in `jsons/`:
|
||||
|
||||
| File | Version | Key Differences |
|
||||
|------|---------|-----------------|
|
||||
| og.json | v3.0.49 | Has ISP, SSP, res, sce fields; ISP is string with unit |
|
||||
| bogdan.json | v2.3.2 | Missing ISP/SSP; simpler alarm structure; different temp ranges |
|
||||
|
||||
**Common issues requiring code modification:**
|
||||
- `ISP` field may not exist or have different format
|
||||
- `alarm.status` vs just `alarm.type`
|
||||
- Field names may vary
|
||||
|
||||
## Entities Created
|
||||
|
||||
**Climate** (1):
|
||||
- `climate.heat_pump_water_temperature` - Heating water thermostat
|
||||
|
||||
**Water Heater** (1):
|
||||
- `water_heater.heat_pump_dhw` - DHW temperature control
|
||||
|
||||
**Sensors** (12):
|
||||
- Temperature sensors: inlet_setpoint, system_setpoint, t1, t2, t3, t4, water_setpoint, dhw_setpoint, aux_heater
|
||||
- Runtime sensors: worktime_pdc, worktime_res
|
||||
- Info: software_version
|
||||
|
||||
**Binary Sensors** (10):
|
||||
- heating, cooling, working, dhw_mode, water_pump, auxiliary_heater, standby, disabled_prod, sce, alarm
|
||||
|
||||
## Services
|
||||
|
||||
```yaml
|
||||
# Set heating water temperature
|
||||
service: ha_rdz_pdc_config.set_water_setpoint
|
||||
data:
|
||||
temperature: 45.0 # 35-60°C
|
||||
duration: "forever"
|
||||
```
|
||||
|
||||
## Development Notes
|
||||
|
||||
### Adding New Sensors
|
||||
1. Add field extraction in `HeatPumpDataCoordinator._async_update_data()`
|
||||
2. Add sensor definition in `sensor.py` or `binary_sensor.py`
|
||||
3. Reference via `self.coordinator.data.get("field_name")`
|
||||
|
||||
### Debugging
|
||||
- Check HA logs for `ha_rdz_pdc_config` domain
|
||||
- Test URL manually in browser to verify JSON response
|
||||
- Compare response against `jsons/*.json` samples
|
||||
|
||||
### Temperature Ranges
|
||||
- Water setpoint: 35-60°C (hardcoded in service schema and climate entity)
|
||||
- DHW setpoint: 35-60°C
|
||||
- Step: 0.5°C
|
||||
|
||||
## File Purposes Quick Reference
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `__init__.py` | Coordinator, base entity, service registration, data parsing |
|
||||
| `config_flow.py` | UI setup wizard |
|
||||
| `climate.py` | Heating water thermostat |
|
||||
| `water_heater.py` | DHW thermostat |
|
||||
| `sensor.py` | Temperature and runtime sensors |
|
||||
| `binary_sensor.py` | Status on/off sensors |
|
||||
| `dashboards/dash.yaml` | Example Lovelace dashboard |
|
||||
| `jsons/*.json` | Sample API responses for testing/reference |
|
||||
@@ -1,29 +1,214 @@
|
||||
# README #
|
||||
# RDZ PDC Heat Pump Monitor - Home Assistant Integration
|
||||
|
||||
This README would normally document whatever steps are necessary to get your application up and running.
|
||||
A custom Home Assistant integration for monitoring and controlling RDZ PDC heat pumps via their embedded web interface.
|
||||
|
||||
### What is this repository for? ###
|
||||
## Features
|
||||
|
||||
* Quick summary
|
||||
* Version
|
||||
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
|
||||
- **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
|
||||
|
||||
### How do I get set up? ###
|
||||
## Supported Data Points
|
||||
|
||||
* Summary of set up
|
||||
* Configuration
|
||||
* Dependencies
|
||||
* Database configuration
|
||||
* How to run tests
|
||||
* Deployment instructions
|
||||
### 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 |
|
||||
|
||||
### Contribution guidelines ###
|
||||
### 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 |
|
||||
|
||||
* Writing tests
|
||||
* Code review
|
||||
* Other guidelines
|
||||
### Runtime Statistics
|
||||
| Sensor | Description |
|
||||
|--------|-------------|
|
||||
| Runtime (PDC) | Total compressor operating hours |
|
||||
| Auxiliary Heater Runtime | Total backup heater operating hours |
|
||||
|
||||
### Who do I talk to? ###
|
||||
## Installation
|
||||
|
||||
* Repo owner or admin
|
||||
* Other community or team contact
|
||||
### Step 1: Copy Integration Files
|
||||
|
||||
Copy the `custom_components/ha_rdz_pdc_config` folder to your Home Assistant `custom_components` directory:
|
||||
|
||||
```
|
||||
<config_directory>/
|
||||
└── custom_components/
|
||||
└── ha_rdz_pdc_config/
|
||||
├── __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:
|
||||
```json
|
||||
{
|
||||
"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`:**
|
||||
|
||||
```python
|
||||
"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](https://github.com/nielsfaber/scheduler-card))
|
||||
|
||||
## Services
|
||||
|
||||
### `ha_rdz_pdc_config.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:**
|
||||
```yaml
|
||||
service: ha_rdz_pdc_config.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**: `ha_rdz_pdc_config`
|
||||
- **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.
|
||||
@@ -0,0 +1,124 @@
|
||||
views:
|
||||
- title: Home
|
||||
sections:
|
||||
- type: grid
|
||||
cards:
|
||||
- show_name: true
|
||||
show_icon: true
|
||||
type: button
|
||||
tap_action:
|
||||
action: none
|
||||
entity: binary_sensor.heat_pump_alarm
|
||||
icon: mdi:alarm-light
|
||||
show_state: true
|
||||
- show_name: true
|
||||
show_icon: true
|
||||
type: button
|
||||
tap_action:
|
||||
action: none
|
||||
entity: binary_sensor.heat_pump_heating
|
||||
- show_name: true
|
||||
show_icon: true
|
||||
type: button
|
||||
tap_action:
|
||||
action: toggle
|
||||
entity: binary_sensor.heat_pump_cooling
|
||||
icon: mdi:snowflake
|
||||
- show_name: true
|
||||
show_icon: true
|
||||
type: button
|
||||
tap_action:
|
||||
action: toggle
|
||||
entity: binary_sensor.heat_pump_sce
|
||||
icon: mdi:water-pump
|
||||
- show_name: true
|
||||
show_icon: true
|
||||
type: button
|
||||
entity: binary_sensor.heat_pump_standby
|
||||
column_span: 2
|
||||
- type: grid
|
||||
cards:
|
||||
- type: thermostat
|
||||
entity: climate.boiler_temperature
|
||||
show_current_as_primary: true
|
||||
features:
|
||||
- style: icons
|
||||
type: climate-preset-modes
|
||||
preset_modes:
|
||||
- comfort
|
||||
- eco
|
||||
- sleep
|
||||
- activity
|
||||
grid_options:
|
||||
columns: 6
|
||||
rows: 4
|
||||
- type: thermostat
|
||||
entity: climate.heat_pump_water_temperature
|
||||
features:
|
||||
- type: climate-hvac-modes
|
||||
hvac_modes:
|
||||
- heat
|
||||
- cool
|
||||
- 'off'
|
||||
grid_options:
|
||||
columns: 6
|
||||
rows: 4
|
||||
- type: grid
|
||||
cards:
|
||||
- title: History
|
||||
type: history-graph
|
||||
hours_to_show: 24
|
||||
entities:
|
||||
- entity: sensor.heat_pump_auxiliary_heater_2
|
||||
- entity: binary_sensor.heat_pump_auxiliary_heater
|
||||
- entity: binary_sensor.heat_pump_dhw_mode
|
||||
- entity: sensor.heat_pump_dhw_setpoint
|
||||
- entity: sensor.heat_pump_dhw_temperature_t3
|
||||
- entity: sensor.heat_pump_water_temperature_t1
|
||||
- entity: sensor.heat_pump_outdoor_temperature_t4
|
||||
- entity: sensor.heat_pump_system_setpoint_temperature
|
||||
- entity: binary_sensor.heat_pump_pump
|
||||
- entity: sensor.heat_pump_water_setpoint
|
||||
- entity: binary_sensor.heat_pump_working
|
||||
- entity: sensor.heat_pump_inflow_temperature_t1
|
||||
- entity: sensor.heat_pump_outflow_temperature_t2
|
||||
- entity: binary_sensor.heat_pump_water_pump
|
||||
- entity: sensor.heat_pump_system_setpoint_temperature
|
||||
- entity: sensor.heat_pump_inlet_setpoint_temperature
|
||||
- entity: sensor.t_puffer_temperature
|
||||
- entity: switch.puffer_heater_relay_switch_0
|
||||
- entity: sensor.deye_12_external_power
|
||||
- entity: switch.boiler_heater_relay_switch_0
|
||||
grid_options:
|
||||
columns: 48
|
||||
rows: auto
|
||||
column_span: 4
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: New section
|
||||
- type: custom:scheduler-card
|
||||
include:
|
||||
- climate
|
||||
exclude: []
|
||||
grid_options:
|
||||
columns: 12
|
||||
rows: 4
|
||||
cards: []
|
||||
- type: sections
|
||||
max_columns: 4
|
||||
title: Schedules
|
||||
path: schedules
|
||||
sections:
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: New section
|
||||
- type: tile
|
||||
entity: schedule.bath_water_schedule
|
||||
features_position: bottom
|
||||
vertical: true
|
||||
show_entity_picture: false
|
||||
state_content:
|
||||
- state
|
||||
- next_event
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ludeeus/integration_blueprint",
|
||||
"image": "mcr.microsoft.com/devcontainers/python:3.12",
|
||||
"image": "mcr.microsoft.com/devcontainers/python:3.13",
|
||||
"postCreateCommand": "scripts/setup",
|
||||
"forwardPorts": [
|
||||
8123
|
||||
@@ -0,0 +1,173 @@
|
||||
{
|
||||
"sw": {
|
||||
"V": "2.3.2"
|
||||
},
|
||||
"success": true,
|
||||
"menu": [
|
||||
{
|
||||
"handler": "fn-homepage",
|
||||
"cls": "",
|
||||
"iconCls": "ion-ios-home",
|
||||
"title": "HOME"
|
||||
},
|
||||
{
|
||||
"handler": "fn-device",
|
||||
"cls": "",
|
||||
"iconCls": "ion-gear-a",
|
||||
"root": true,
|
||||
"title": "HP"
|
||||
},
|
||||
{
|
||||
"handler": "fn-chart",
|
||||
"cls": " hidden",
|
||||
"iconCls": "ion-stats-bars",
|
||||
"authLevel": "setup",
|
||||
"title": "Charts"
|
||||
},
|
||||
{
|
||||
"handler": "fn-events",
|
||||
"cls": " hidden",
|
||||
"iconCls": "ion-ios-book",
|
||||
"authLevel": "setup",
|
||||
"title": "Events log"
|
||||
}
|
||||
],
|
||||
"model": "PDC RDZ",
|
||||
"title": "\u003Cspan\u003EHeat pump\u003C/span\u003E",
|
||||
"RESULT": {
|
||||
"TSLastUpdate": 1759127624,
|
||||
"status": {
|
||||
"standby": false,
|
||||
"dhw": true,
|
||||
"pwr": false,
|
||||
"san": false,
|
||||
"cal": false,
|
||||
"pump": false,
|
||||
"auxheater": 0,
|
||||
"auxheaterLabel": "Backup heater",
|
||||
"auxheaterUrl": "/v/1.0.61/plugins/com.innova.pdc/gui/imgfiles/res0.png",
|
||||
"ALo": 5,
|
||||
"Ahi": 80,
|
||||
"heating": false,
|
||||
"cooling": true,
|
||||
"watert1": 16.5,
|
||||
"watert2": 17.6,
|
||||
"dhwt3": 40.5,
|
||||
"t4": 0,
|
||||
"watersetpoint": 18,
|
||||
"dhwValues": [14.6, 15.1, 15.6, 16.1, 16.6, 17.1, 17.6, 18.1, 18.6, 19.1, 19.6, 20.1, 20.6, 21.1, 21.6, 22.1, 22.6, 23.1, 23.6, 24.1, 24.6, 25.1, 25.6, 26.1, 26.6, 27.1, 27.6, 28.1, 28.6, 29.1, 29.6, 30.1, 30.6, 31.1, 31.6, 32.1, 32.6, 33.1, 33.6, 34.1, 34.6, 35.1, 35.6, 36.1, 36.6, 37.1, 37.6, 38.1, 38.6, 39.1, 39.6, 40.1, 40.6, 41.1, 41.6, 42.1, 42.6, 43.1, 43.6, 44.1, 44.6, 45.1, 45.6, 46.1, 46.6, 47.1, 47.6, 48.1, 48.6, 49.1, 49.6, 50.1, 50.6, 51.1, 51.6, 52.1, 52.6, 53.1, 53.6, 54.1, 54.6],
|
||||
"waterValues": [
|
||||
"off",
|
||||
10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18, 18.5, 19, 19.5, 20, 20.5, 21, 21.5, 22, 22.5, 23, 23.5, 24, 24.5, 25],
|
||||
"timeValues": {
|
||||
"hours": [
|
||||
"00",
|
||||
"01",
|
||||
"02",
|
||||
"03",
|
||||
"04",
|
||||
"05",
|
||||
"06",
|
||||
"07",
|
||||
"08",
|
||||
"09",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23"
|
||||
],
|
||||
"minutes": [
|
||||
"00",
|
||||
"01",
|
||||
"02",
|
||||
"03",
|
||||
"04",
|
||||
"05",
|
||||
"06",
|
||||
"07",
|
||||
"08",
|
||||
"09",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"31",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"39",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"48",
|
||||
"49",
|
||||
"50",
|
||||
"51",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
"56",
|
||||
"57",
|
||||
"58",
|
||||
"59"
|
||||
]
|
||||
},
|
||||
"legactive": false,
|
||||
"dhwsetpoint": 40,
|
||||
"alarm": {
|
||||
"type": ""
|
||||
},
|
||||
"worktime_res": 1283,
|
||||
"worktime_pdc": 13390,
|
||||
"manualCooling": true,
|
||||
"manualCoolingHfm": "forever",
|
||||
"manualHeating": true,
|
||||
"manualHeatingHfm": "forever",
|
||||
"manualDhw": true,
|
||||
"manualDhwHfm": "forever",
|
||||
"hfm": 2,
|
||||
"forced_ftv": 0,
|
||||
"conditioning_calendar_disabled": 0
|
||||
},
|
||||
"info": {
|
||||
"datetime": "29/09/2025 09:33"
|
||||
}
|
||||
}
|
||||
}
|
||||
+289
@@ -0,0 +1,289 @@
|
||||
{
|
||||
"sw": {
|
||||
"V": "3.0.49"
|
||||
},
|
||||
"success": true,
|
||||
"errors": {},
|
||||
"lb": {},
|
||||
"RESULT": {
|
||||
"TSLastUpdate": 1759138628,
|
||||
"info": {
|
||||
"datetime": "29/09/2025 12:37"
|
||||
},
|
||||
"status": {
|
||||
"ALo": 5.0,
|
||||
"Ahi": 80.0,
|
||||
"ISP": "34.3 °C",
|
||||
"SSP": 47.0,
|
||||
"alarm": {
|
||||
"status": false,
|
||||
"type": "",
|
||||
"label": ""
|
||||
},
|
||||
"auxheater": 0,
|
||||
"auxheaterLabel": "Backup heater",
|
||||
"auxheaterUrl": "/v/2.0.10/plugins/com.innova.pdc/gui/imgfiles/res0.png",
|
||||
"cal": false,
|
||||
"conditioning_calendar_disabled": 0,
|
||||
"cooling": false,
|
||||
"dhw": true,
|
||||
"dhwValues": [
|
||||
"30.0",
|
||||
"30.5",
|
||||
"31.0",
|
||||
"31.5",
|
||||
"32.0",
|
||||
"32.5",
|
||||
"33.0",
|
||||
"33.5",
|
||||
"34.0",
|
||||
"34.5",
|
||||
"35.0",
|
||||
"35.5",
|
||||
"36.0",
|
||||
"36.5",
|
||||
"37.0",
|
||||
"37.5",
|
||||
"38.0",
|
||||
"38.5",
|
||||
"39.0",
|
||||
"39.5",
|
||||
"40.0",
|
||||
"40.5",
|
||||
"41.0",
|
||||
"41.5",
|
||||
"42.0",
|
||||
"42.5",
|
||||
"43.0",
|
||||
"43.5",
|
||||
"44.0",
|
||||
"44.5",
|
||||
"45.0",
|
||||
"45.5",
|
||||
"46.0",
|
||||
"46.5",
|
||||
"47.0",
|
||||
"47.5",
|
||||
"48.0",
|
||||
"48.5",
|
||||
"49.0",
|
||||
"49.5",
|
||||
"50.0",
|
||||
"50.5",
|
||||
"51.0",
|
||||
"51.5",
|
||||
"52.0",
|
||||
"52.5",
|
||||
"53.0"
|
||||
],
|
||||
"dhwsetpoint": 47.0,
|
||||
"dhwt3": 46.8,
|
||||
"forced_ftv": 0,
|
||||
"heating": true,
|
||||
"hfm": 2,
|
||||
"hor": -15.0,
|
||||
"hoS": -15.0,
|
||||
"legactive": false,
|
||||
"manualCooling": true,
|
||||
"manualCoolingHfm": "forever",
|
||||
"manualDhw": true,
|
||||
"manualDhwHfm": "forever",
|
||||
"manualHeating": true,
|
||||
"manualHeatingHfm": "forever",
|
||||
"pump": true,
|
||||
"pwr": false,
|
||||
"res": false,
|
||||
"san": false,
|
||||
"sce": true,
|
||||
"standby": false,
|
||||
"t4": 9.6,
|
||||
"timeValues": {
|
||||
"hours": [
|
||||
"00",
|
||||
"01",
|
||||
"02",
|
||||
"03",
|
||||
"04",
|
||||
"05",
|
||||
"06",
|
||||
"07",
|
||||
"08",
|
||||
"09",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23"
|
||||
],
|
||||
"minutes": [
|
||||
"00",
|
||||
"01",
|
||||
"02",
|
||||
"03",
|
||||
"04",
|
||||
"05",
|
||||
"06",
|
||||
"07",
|
||||
"08",
|
||||
"09",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"31",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"39",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"48",
|
||||
"49",
|
||||
"50",
|
||||
"51",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
"56",
|
||||
"57",
|
||||
"58",
|
||||
"59"
|
||||
]
|
||||
},
|
||||
"waterValues": [
|
||||
"off",
|
||||
"20.0",
|
||||
"20.5",
|
||||
"21.0",
|
||||
"21.5",
|
||||
"22.0",
|
||||
"22.5",
|
||||
"23.0",
|
||||
"23.5",
|
||||
"24.0",
|
||||
"24.5",
|
||||
"25.0",
|
||||
"25.5",
|
||||
"26.0",
|
||||
"26.5",
|
||||
"27.0",
|
||||
"27.5",
|
||||
"28.0",
|
||||
"28.5",
|
||||
"29.0",
|
||||
"29.5",
|
||||
"30.0",
|
||||
"30.5",
|
||||
"31.0",
|
||||
"31.5",
|
||||
"32.0",
|
||||
"32.5",
|
||||
"33.0",
|
||||
"33.5",
|
||||
"34.0",
|
||||
"34.5",
|
||||
"35.0",
|
||||
"35.5",
|
||||
"36.0",
|
||||
"36.5",
|
||||
"37.0",
|
||||
"37.5",
|
||||
"38.0",
|
||||
"38.5",
|
||||
"39.0",
|
||||
"39.5",
|
||||
"40.0",
|
||||
"40.5",
|
||||
"41.0",
|
||||
"41.5",
|
||||
"42.0",
|
||||
"42.5",
|
||||
"43.0",
|
||||
"43.5",
|
||||
"44.0",
|
||||
"44.5",
|
||||
"45.0"
|
||||
],
|
||||
"watersetpoint": 43.0,
|
||||
"watert1": 32.1,
|
||||
"watert2": 32.0,
|
||||
"worktime_pdc": 11614,
|
||||
"worktime_res": 593,
|
||||
"disableProd": false
|
||||
},
|
||||
"title": "\u003cspan\u003eHeat pump\u003c/span\u003e",
|
||||
"updateReceived": false
|
||||
},
|
||||
"model": "RDZ",
|
||||
"menu": [
|
||||
{
|
||||
"cls": "",
|
||||
"handler": "fn-homepage",
|
||||
"iconCls": "ion-ios-home",
|
||||
"title": "HOME",
|
||||
"label": "HOME",
|
||||
"root": false
|
||||
},
|
||||
{
|
||||
"cls": "",
|
||||
"handler": "fn-device",
|
||||
"iconCls": "ion-gear-a",
|
||||
"title": "HP",
|
||||
"label": "HP",
|
||||
"root": true
|
||||
},
|
||||
{
|
||||
"cls": " leaf",
|
||||
"handler": "fn-chart",
|
||||
"iconCls": "ion-stats-bars",
|
||||
"title": "Charts",
|
||||
"label": "Charts",
|
||||
"root": false
|
||||
},
|
||||
{
|
||||
"cls": " leaf",
|
||||
"handler": "fn-events",
|
||||
"iconCls": "ion-ios-book",
|
||||
"title": "Events log",
|
||||
"label": "Events log",
|
||||
"root": false
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user