Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cosy 6 #972

Open
2 tasks done
Joshuaharry120 opened this issue Aug 12, 2024 · 44 comments
Open
2 tasks done

Cosy 6 #972

Joshuaharry120 opened this issue Aug 12, 2024 · 44 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed More demand needed A feature that will be considered if there is more demand

Comments

@Joshuaharry120
Copy link

Describe the feature

Ability to control the Cosy 6 heat pump

Expected behaviour

Ability to toggle the heating/hot water via the octopus API with the Octopus heat pump Cosy 6 Octopus

Use Case

ability to trigger heat pump to run hot water/heating during off-peak periods ( EG: Extra IOG Slots )

Confirmation

  • By submitting this feature request, you agree that you have read the documentation and confirmed it does not already exist
  • I am willing/able to help contribute to the solution of this feature
@Joshuaharry120 Joshuaharry120 added the enhancement New feature or request label Aug 12, 2024
@BottlecapDave
Copy link
Owner

Hi and thanks for the feature request.

This has been raised in the past and the consensus was that it would be better to use the heat pumps local API where possible for the best experience. I'm assuming the Cosy 6 doesn't have a local API and is not a white labeled product.

If so, this could be added but as I don't have a Cosy 6 would be difficult to test. In the API there's is also multiple references to heat pumps (heat pump and octoheatpump), so will take some trial and error to work out which ones to use.

This will require some additional demand before I attempt at adding it, unless you're wanting to contribute a solution for which I'm happy to collaborate on.

@BottlecapDave BottlecapDave added the More demand needed A feature that will be considered if there is more demand label Aug 14, 2024
@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Aug 14, 2024 via email

@BottlecapDave
Copy link
Owner

Thank you for the offer, but I have a policy of not accepting other people's api keys. It might be in the future some diagnostic endpoints are added to try and track the endpoints down.

@BottlecapDave BottlecapDave mentioned this issue Aug 30, 2024
2 tasks
@BottlecapDave
Copy link
Owner

For future reference, if this feature was to be picked up, it would be good to get an idea of what features/abilities people expect to be exposed. I don't have a heat pump, so Im not sure what is/isn't useful. It would also help in the future at prioritising features if/when this is implemented.

@BottlecapDave
Copy link
Owner

There is a new undocumented service called octopus_energy.diagnose_heatpump_apis available in v13. If you run it, it will give output which will help point in the right direction in which APIs to use to provide this feature in the future (no timeline)

@BottlecapDave BottlecapDave added the help wanted Extra attention is needed label Oct 19, 2024
@nondops
Copy link

nondops commented Nov 23, 2024

Hi, ran the 'octopus_energy.diagnose_heatpump_apis' but no success.

2024-11-23 07:10:01.386 WARNING (MainThread) [custom_components.octopus_energy.api_client] Failed to send request (https://api.octopus.energy/v1/graphql/): 400; {"errors":[{"message":"Cannot query field 'countReset' on type 'HeatPumpConfiguration'.","locations":[{"line":74,"column":7}]}]}
2024-11-23 07:10:01.386 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Unexpected error for call_service at pos 1: Failed to send request (https://api.octopus.energy/v1/graphql/): 400; {"errors":[{"message":"Cannot query field 'countReset' on type 'HeatPumpConfiguration'.","locations":[{"line":74,"column":7}]}]}
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 526, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step
response_data = await self._async_run_long_action(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action
return await long_task
^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2802, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2845, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/init.py", line 506, in diagnose_heatpump_apis
return await client.async_diagnose_heatpump_apis(account_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/api_client/init.py", line 829, in async_diagnose_heatpump_apis
euid_responses.append(await self.async_read_response(greenness_forecast_response, url, True))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/api_client/init.py", line 1693, in async_read_response
raise RequestException(msg, [])
custom_components.octopus_energy.api_client.RequestException: Failed to send request (https://api.octopus.energy/v1/graphql/): 400; {"errors":[{"message":"Cannot query field 'countReset' on type 'HeatPumpConfiguration'.","locations":[{"line":74,"column":7}]}]}
2024-11-23 07:10:01.399 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140367402915952] Error handling message: Unknown error (unknown_error)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 28, in _handle_async_response
await func(hass, connection, msg)
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 816, in handle_execute_script
script_result = await script_obj.async_run(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1801, in async_run
return await asyncio.shield(create_eager_task(run.async_run()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 464, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 528, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 558, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 526, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step
response_data = await self._async_run_long_action(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action
return await long_task
^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2802, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2845, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/init.py", line 506, in diagnose_heatpump_apis
return await client.async_diagnose_heatpump_apis(account_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/api_client/init.py", line 829, in async_diagnose_heatpump_apis
euid_responses.append(await self.async_read_response(greenness_forecast_response, url, True))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/api_client/init.py", line 1693, in async_read_response
raise RequestException(msg, [])
custom_components.octopus_energy.api_client.RequestException: Failed to send request (https://api.octopus.energy/v1/graphql/): 400; {"errors":[{"message":"Cannot query field 'countReset' on type 'HeatPumpConfiguration'.","locations":[{"line":74,"column":7}]}]}

@D3RON
Copy link

D3RON commented Nov 24, 2024

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 28, in _handle_async_response
await func(hass, connection, msg)
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 816, in handle_execute_script
script_result = await script_obj.async_run(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1801, in async_run
return await asyncio.shield(create_eager_task(run.async_run()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 464, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 528, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 558, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 526, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step
response_data = await self._async_run_long_action(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action
return await long_task
^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2802, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2845, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/init.py", line 506, in diagnose_heatpump_apis
return await client.async_diagnose_heatpump_apis(account_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/api_client/init.py", line 829, in async_diagnose_heatpump_apis
euid_responses.append(await self.async_read_response(greenness_forecast_response, url, True))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/octopus_energy/api_client/init.py", line 1693, in async_read_response
raise RequestException(msg, [])
custom_components.octopus_energy.api_client.RequestException: Failed to send request (https://api.octopus.energy/v1/graphql/): 400; {"errors":[{"message":"Cannot query field 'countReset' on type 'HeatPumpConfiguration'.","locations":[{"line":74,"column":7}]}]}

@BottlecapDave
Copy link
Owner

BottlecapDave commented Nov 27, 2024

Thanks for running this @D3RON and @nondops. It appears I messed up with the secondary query. This will be fixed in the next update (no ETA yet, but will update this thread when the fix is live)

@Joshuaharry120
Copy link
Author

my pump is finally turned on...

euid_responses.append(await self.__async_read_response__(greenness_forecast_response, url, True))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/config/custom_components/octopus_energy/api_client/init.py", line 1693, in async_read_response
raise RequestException(msg, [])
custom_components.octopus_energy.api_client.RequestException: Failed to send request (https://api.octopus.energy/v1/graphql/): 400; {"errors":[{"message":"Cannot query field 'countReset' on type 'HeatPumpConfiguration'.","locations":[{"line":74,"column":7}]}]}

@Joshuaharry120
Copy link
Author

image

Defo working :)

@Joshuaharry120
Copy link
Author

@BottlecapDave i manually appiled the fix based on your recent commits.

Failed to perform the action octopus_energy.diagnose_heatpump_apis. Script requires 'response_variable' for response data for service call octopus_energy.diagnose_heatpump_apis. Got {'type': 'execute_script', 'sequence': [{'action': 'octopus_energy.diagnose_heatpump_apis'}], 'id': 96}

@BottlecapDave
Copy link
Owner

The latest update (v13.2.0) should fix the heatpump action. This action should be called via the developer tools, not an automation.

Thank you @Joshuaharry120 for running the scripts manually. It looks like the octo queries are for the cosy 6 heat pump, but would be good to confirm with the updated service ran via the developer tools.

Based on these findings, I want to echo my earlier question.

For future reference, if this feature was to be picked up, it would be good to get an idea of what features/abilities people expect to be exposed. I don't have a heat pump, so Im not sure what is/isn't useful. It would also help in the future at prioritising features if/when this is implemented.

@D3RON
Copy link

D3RON commented Dec 1, 2024

Removed id/serial numbers

main:
  errors:
    - message: Unable to find device for given account.
      locations:
        - line: 3
          column: 3
      path:
        - heatPumpStatus
      extensions:
        errorType: NOT_FOUND
        errorCode: KT-CT-4301
        errorDescription: >-
          We were unable to find a device for the given account. Please check
          that the account number (and property ID) is correct.
  data:
    octoHeatPumpControllerEuids:
      - 
    heatPumpStatus: null
euids:
  - data:
      octoHeatPumpControllerStatus:
        sensors:
          - code: ADC1
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.952000+00:00"
            telemetry:
              temperatureInCelsius: 57.4
              humidityPercentage: null
              retrievedAt: "2024-12-01T10:04:51.588000+00:00"
          - code: ADC2
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.952000+00:00"
            telemetry:
              temperatureInCelsius: -273.1
              humidityPercentage: null
              retrievedAt: "2024-12-01T10:04:51.588000+00:00"
          - code: ADC3
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.953000+00:00"
            telemetry:
              temperatureInCelsius: -273.1
              humidityPercentage: null
              retrievedAt: "2024-12-01T10:04:51.588000+00:00"
          - code: ADC4
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.953000+00:00"
            telemetry:
              temperatureInCelsius: -273.1
              humidityPercentage: null
              retrievedAt: "2024-12-01T10:04:51.588000+00:00"
          - code: SENSOR01
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.953000+00:00"
            telemetry:
              temperatureInCelsius: 19.4
              humidityPercentage: 57
              retrievedAt: "2024-12-01T10:03:15.615000+00:00"
          - code: SENSOR02
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.955000+00:00"
            telemetry:
              temperatureInCelsius: 22.4
              humidityPercentage: 54
              retrievedAt: "2024-12-01T10:03:54.876000+00:00"
          - code: SENSOR03
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.956000+00:00"
            telemetry:
              temperatureInCelsius: 22.3
              humidityPercentage: 60
              retrievedAt: "2024-12-01T10:04:27.571000+00:00"
          - code: SENSOR04
            connectivity:
              online: true
              retrievedAt: "2024-12-01T10:04:54.957000+00:00"
            telemetry:
              temperatureInCelsius: 22.7
              humidityPercentage: 46
              retrievedAt: "2024-12-01T10:03:12.376000+00:00"
        zones:
          - zone: WATER
            telemetry:
              setpointInCelsius: -300
              mode: AUTO
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T10:04:59.116000+00:00"
          - zone: ZONE_1
            telemetry:
              setpointInCelsius: 22
              mode: AUTO
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T10:04:59.117000+00:00"
          - zone: ZONE_2
            telemetry:
              setpointInCelsius: 7
              mode: "OFF"
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T10:04:59.118000+00:00"
          - zone: AUXILIARY
            telemetry:
              setpointInCelsius: 7
              mode: "OFF"
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T10:04:59.118000+00:00"
      heatPumpControllerConfiguration:
        controller:
          state:
            - NORMAL_MODE
          connected: true
          lastReset: "2024-11-28T00:30:53+00:00"
        zones:
          - configuration:
              code: WATER
              zoneType: WATER
              enabled: true
              displayName: WATER
              primarySensor: ADC1
              currentOperation:
                mode: AUTO
                setpointInCelsius: null
                action: "OFF"
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors:
                - code: ADC1
                  displayName: ADC1
                  type: NTC
                  enabled: true
                - code: ADC2
                  displayName: ADC2
                  type: NTC
                  enabled: true
                - code: ADC3
                  displayName: ADC3
                  type: NTC
                  enabled: true
                - code: ADC4
                  displayName: ADC4
                  type: NTC
                  enabled: true
          - configuration:
              code: ZONE_1
              zoneType: HEAT
              enabled: true
              displayName: ZONE1
              primarySensor: SENSOR03
              currentOperation:
                mode: AUTO
                setpointInCelsius: 22
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors:
                - code: SENSOR01
                  displayName: Hallway
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR02
                  displayName: bedoom
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR03
                  displayName: Mom and Dad
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR04
                  displayName: "Lounge "
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
          - configuration:
              code: ZONE_2
              zoneType: HEAT
              enabled: false
              displayName: ZONE2
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: true
              sensors: []
          - configuration:
              code: AUXILIARY
              zoneType: AUX
              enabled: false
              displayName: AUX
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors: []
        heatPump:
          serialNumber: 
          model: Cosy 6
          hardwareVersion: v5.1.0
          faultCodes: []
          maxWaterSetpoint: 60
          minWaterSetpoint: 40
          heatingFlowTemperature:
            currentTemperature:
              value: "70"
              unit: DEGREES_CELSIUS
            allowableRange:
              minimum:
                value: "30"
                unit: DEGREES_CELSIUS
              maximum:
                value: "70"
                unit: DEGREES_CELSIUS
          weatherCompensation:
            enabled: true
            allowableRange:
              minimum:
                value: "30"
                unit: DEGREES_CELSIUS
              maximum:
                value: "70"
                unit: DEGREES_CELSIUS
            currentRange:
              minimum:
                value: "45"
                unit: DEGREES_CELSIUS
              maximum:
                value: "55"
                unit: DEGREES_CELSIUS
      octoHeatPumpControllerConfiguration:
        controller:
          state:
            - NORMAL_MODE
          heatPumpTimezone: GMT0BST,M3.5.0/1,M10.5.0
          connected: true
        zones:
          - configuration:
              code: WATER
              zoneType: WATER
              enabled: true
              displayName: WATER
              primarySensor: ADC1
              currentOperation:
                mode: AUTO
                setpointInCelsius: null
                action: "OFF"
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors:
                - code: ADC1
                  displayName: ADC1
                  type: NTC
                  enabled: true
                - code: ADC2
                  displayName: ADC2
                  type: NTC
                  enabled: true
                - code: ADC3
                  displayName: ADC3
                  type: NTC
                  enabled: true
                - code: ADC4
                  displayName: ADC4
                  type: NTC
                  enabled: true
          - configuration:
              code: ZONE_1
              zoneType: HEAT
              enabled: true
              displayName: ZONE1
              primarySensor: SENSOR03
              currentOperation:
                mode: AUTO
                setpointInCelsius: 22
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors:
                - code: SENSOR01
                  displayName: Hallway
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR02
                  displayName: bedoom
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR03
                  displayName: Mom and Dad
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR04
                  displayName: "Lounge "
                  type: ZIGBEE
                  id: 
                  firmwareVersion: 0D
                  boostEnabled: true
          - configuration:
              code: ZONE_2
              zoneType: HEAT
              enabled: false
              displayName: ZONE2
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: true
              sensors: []
          - configuration:
              code: AUXILIARY
              zoneType: AUX
              enabled: false
              displayName: AUX
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors: []

@BottlecapDave
Copy link
Owner

Thanks for the data. I've updated your comment just so it's a bit more readable. Out of interest, what sort of features are you looking for?

@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 1, 2024

main:
  errors:
    - message: Unable to find device for given account.
      locations:
        - line: 3
          column: 3
      path:
        - heatPumpStatus
      extensions:
        errorType: NOT_FOUND
        errorCode: KT-CT-4301
        errorDescription: >-
          We were unable to find a device for the given account. Please check
          that the account number (and property ID) is correct.
  data:
    octoHeatPumpControllerEuids:
      - 00:1e:5e:09:02:ab:4e:bf
    heatPumpStatus: null
euids:
  - data:
      octoHeatPumpControllerStatus:
        sensors:
          - code: ADC1
            connectivity:
              online: true
              retrievedAt: "2024-12-01T12:08:56.513000+00:00"
            telemetry:
              temperatureInCelsius: 54
              humidityPercentage: null
              retrievedAt: "2024-12-01T12:08:53.390000+00:00"
          - code: ADC2
            connectivity:
              online: true
              retrievedAt: "2024-12-01T12:08:56.513000+00:00"
            telemetry:
              temperatureInCelsius: -70.7
              humidityPercentage: null
              retrievedAt: "2024-12-01T12:08:53.390000+00:00"
          - code: ADC3
            connectivity:
              online: true
              retrievedAt: "2024-12-01T12:08:56.515000+00:00"
            telemetry:
              temperatureInCelsius: -70.7
              humidityPercentage: null
              retrievedAt: "2024-12-01T12:08:53.390000+00:00"
          - code: ADC4
            connectivity:
              online: true
              retrievedAt: "2024-12-01T12:08:56.515000+00:00"
            telemetry:
              temperatureInCelsius: -70.7
              humidityPercentage: null
              retrievedAt: "2024-12-01T12:08:53.390000+00:00"
          - code: SENSOR01
            connectivity:
              online: true
              retrievedAt: "2024-12-01T12:08:56.516000+00:00"
            telemetry:
              temperatureInCelsius: 19.3
              humidityPercentage: 53
              retrievedAt: "2024-12-01T12:08:21.098000+00:00"
          - code: SENSOR02
            connectivity:
              online: true
              retrievedAt: "2024-12-01T12:08:56.524000+00:00"
            telemetry:
              temperatureInCelsius: 22.6
              humidityPercentage: 51
              retrievedAt: "2024-12-01T12:08:04.239000+00:00"
        zones:
          - zone: WATER
            telemetry:
              setpointInCelsius: -300
              mode: AUTO
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T12:09:05.498000+00:00"
          - zone: ZONE_1
            telemetry:
              setpointInCelsius: 21.1
              mode: BOOST
              relaySwitchedOn: true
              heatDemand: true
              retrievedAt: "2024-12-01T12:09:05.499000+00:00"
          - zone: ZONE_2
            telemetry:
              setpointInCelsius: 7
              mode: "OFF"
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T12:09:05.500000+00:00"
          - zone: AUXILIARY
            telemetry:
              setpointInCelsius: 7
              mode: "OFF"
              relaySwitchedOn: false
              heatDemand: false
              retrievedAt: "2024-12-01T12:09:05.501000+00:00"
      heatPumpControllerConfiguration:
        controller:
          state:
            - NORMAL_MODE
          connected: true
          lastReset: "2024-11-30T12:00:55+00:00"
        zones:
          - configuration:
              code: WATER
              zoneType: WATER
              enabled: true
              displayName: WATER
              primarySensor: ADC1
              currentOperation:
                mode: AUTO
                setpointInCelsius: null
                action: "OFF"
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors:
                - code: ADC1
                  displayName: ADC1
                  type: NTC
                  enabled: true
                - code: ADC2
                  displayName: ADC2
                  type: NTC
                  enabled: true
                - code: ADC3
                  displayName: ADC3
                  type: NTC
                  enabled: true
                - code: ADC4
                  displayName: ADC4
                  type: NTC
                  enabled: true
          - configuration:
              code: ZONE_1
              zoneType: HEAT
              enabled: true
              displayName: ZONE1
              primarySensor: SENSOR01
              currentOperation:
                mode: BOOST
                setpointInCelsius: 21.1
                action: null
                end: "2024-12-01T12:29:40.683000+00:00"
              callForHeat: true
              heatDemand: true
              emergency: false
              sensors:
                - code: SENSOR01
                  displayName: Down Hallway
                  type: ZIGBEE
                  id: 001E5E0902B61E1A
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR02
                  displayName: Upstairs Hallway
                  type: ZIGBEE
                  id: 001E5E0902B61E9A
                  firmwareVersion: 0D
                  boostEnabled: true
          - configuration:
              code: ZONE_2
              zoneType: HEAT
              enabled: false
              displayName: ZONE2
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: true
              sensors: []
          - configuration:
              code: AUXILIARY
              zoneType: AUX
              enabled: false
              displayName: AUX
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors: []
        heatPump:
          serialNumber: "34:32:41:42:43:43"
          model: Cosy 6
          hardwareVersion: v5.1.0
          faultCodes: []
          maxWaterSetpoint: 60
          minWaterSetpoint: 40
          heatingFlowTemperature:
            currentTemperature:
              value: "50"
              unit: DEGREES_CELSIUS
            allowableRange:
              minimum:
                value: "30"
                unit: DEGREES_CELSIUS
              maximum:
                value: "70"
                unit: DEGREES_CELSIUS
          weatherCompensation:
            enabled: true
            allowableRange:
              minimum:
                value: "30"
                unit: DEGREES_CELSIUS
              maximum:
                value: "70"
                unit: DEGREES_CELSIUS
            currentRange:
              minimum:
                value: "36"
                unit: DEGREES_CELSIUS
              maximum:
                value: "57"
                unit: DEGREES_CELSIUS
      octoHeatPumpControllerConfiguration:
        controller:
          state:
            - NORMAL_MODE
          heatPumpTimezone: GMT0BST,M3.5.0/1,M10.5.0
          connected: true
        zones:
          - configuration:
              code: WATER
              zoneType: WATER
              enabled: true
              displayName: WATER
              primarySensor: ADC1
              currentOperation:
                mode: AUTO
                setpointInCelsius: null
                action: "OFF"
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors:
                - code: ADC1
                  displayName: ADC1
                  type: NTC
                  enabled: true
                - code: ADC2
                  displayName: ADC2
                  type: NTC
                  enabled: true
                - code: ADC3
                  displayName: ADC3
                  type: NTC
                  enabled: true
                - code: ADC4
                  displayName: ADC4
                  type: NTC
                  enabled: true
          - configuration:
              code: ZONE_1
              zoneType: HEAT
              enabled: true
              displayName: ZONE1
              primarySensor: SENSOR01
              currentOperation:
                mode: BOOST
                setpointInCelsius: 21.1
                action: null
                end: "2024-12-01T12:29:40.683000+00:00"
              callForHeat: true
              heatDemand: true
              emergency: false
              sensors:
                - code: SENSOR01
                  displayName: Down Hallway
                  type: ZIGBEE
                  id: 001E5E0902B61E1A
                  firmwareVersion: 0D
                  boostEnabled: true
                - code: SENSOR02
                  displayName: Upstairs Hallway
                  type: ZIGBEE
                  id: 001E5E0902B61E9A
                  firmwareVersion: 0D
                  boostEnabled: true
          - configuration:
              code: ZONE_2
              zoneType: HEAT
              enabled: false
              displayName: ZONE2
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: true
              sensors: []
          - configuration:
              code: AUXILIARY
              zoneType: AUX
              enabled: false
              displayName: AUX
              primarySensor: null
              currentOperation:
                mode: "OFF"
                setpointInCelsius: 7
                action: null
                end: "1970-01-01T00:00:00+00:00"
              callForHeat: false
              heatDemand: false
              emergency: false
              sensors: []

I was thinking that we could the cosy pods(Z-wave) appear as devices so we can see eatch rooms tempature and humidaity. I'm exploring the API now to see if there is a way we can "press boost" vitually in the event of an extra IO Slot etc.

Could be good also that if it detects an error it let's us know and maybe it's action status / history?

@Joshuaharry120
Copy link
Author

It would be good to Lifetime Performance, Live Performance(30min snapshots)

I've attached an output of all the ones that i'm able to do and there outputs to try and help

octoheatpumpoutput.txt
octoheatpumpquery.txt

@lwis
Copy link

lwis commented Dec 10, 2024

@BottlecapDave attributes/functionality that would be really valuable to have in HA;

  • read and write weather compensation config
  • read and write fixed flow temperature
  • sensors for performance (energy in/out)
  • 'water_heater' entity for controlling DHW
  • 'climate' entity for controlling each zone setpoint and status

@BottlecapDave
Copy link
Owner

BottlecapDave commented Dec 10, 2024

I've had a bit of time to work on this, and released the first beta which can be found at https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.3.0-beta.1

What's included?

  • Humidity sensor representing each available sensor
  • Temperature sensor representing each available sensor
  • Climate sensor representing each available zone for which you should be able to
    • See target temperature
    • See current temperature based on primary elected sensor
    • See target temperature
    • Set target temperature
    • Set HVAC mode to either off, heat or auto (these have to be supplied and are a finite list supplied by HA)
    • Set present mode to none or boost (this was the only logical place I could see the boost functionality going other than exposing as an action, which you can still do using this method)
  • Data is synced once a minute

Questions:

  • Does all of the provided functionality work?
  • Is the syncing once a minute too much? Are you seeing errors related to the heat pump data in your logs or are other systems effected?
  • Are some of these sensors wrong? Are there sensors that shouldn't be there (e.g. they've been disabled)? Are there sensors reporting the wrong value (e.g. in the data that has been supplied, the water zone temperature is set to -300. I'm guessing this is wrong, but not sure why that value is being supplied like that or what it is in the app.
  • Is this working for other heat pumps? I'm guessing everyone here is a Cosy 6 user, but in case other heat pump OE users stumble across this thread, they might be able to shed some light on it.

I have been building this blind, so none of it might work. It might also take me some time to fix any issues. The fact I've started this feature does not mean it will be released alongside the next release. It also means that not all requested features will be in the initial release.

@Joshuaharry120
Copy link
Author

@BottlecapDave

Many thanks for the 1st beta, I've installed it but it's not returning any of the values, it seems it's a date/time formatting issue and also, it's put every sensor into its own entity rather than 1 entity, cosy 6 and then the sensors etc.

many thanks for your work so far

--
msedge_zDjJAFZ9bd
msedge_5FigEFEiVr
msedge_7XAlJ3PI5C
msedge_f63mxIc6c9
msedge_Gwt9sibT6X
msedge_jD08tKoTgg
msedge_T1EsK60eLW
msedge_uR84cdjz4z
msedge_Wr3wqB0w5M

@nraimo1
Copy link

nraimo1 commented Dec 10, 2024

@BottlecapDave

Many thanks for the 1st beta, I've installed it but it's not returning any of the values, it seems it's a date/time formatting issue and also, it's put every sensor into its own entity rather than 1 entity, cosy 6 and then the sensors etc.

many thanks for your work so far

-- msedge_zDjJAFZ9bd msedge_5FigEFEiVr msedge_7XAlJ3PI5C msedge_f63mxIc6c9 msedge_Gwt9sibT6X msedge_jD08tKoTgg msedge_T1EsK60eLW msedge_uR84cdjz4z msedge_Wr3wqB0w5M

Am seeing same of no results but its showing my cosy6 pods just no returns

@D3RON
Copy link

D3RON commented Dec 11, 2024

It may help if you can see what data actually is reported by the heat pump.

IMG_8552
IMG_8553
IMG_8554
IMG_8555

@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 11, 2024 via email

@D3RON
Copy link

D3RON commented Dec 11, 2024

All of this information is also in our Octopus Kraken accounts.

So may be useful further down the line.

@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 11, 2024 via email

@BottlecapDave
Copy link
Owner

it's put every sensor into its own entity rather than 1 entity, cosy 6 and then the sensors etc.

I feel like you might be getting mixed up between entities and devices. Each sensor is it's own device, and each zone is represented by a single device. This corresponds to the real world devices and is recommended by HA. Each device then might have one or more entities. This means you can assign each device to the correct area (e.g. living room) which can be used to drive automations.

As for the retrieval conversion, that will hopefully be a quick fix that I can try and rectify within the next week. This error is what's causing no data to be returned by the sensors.

@BottlecapDave
Copy link
Owner

https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.3.0-beta.2 will hopefully fix the reported error and get us a bit further

@nraimo1
Copy link

nraimo1 commented Dec 11, 2024

https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.3.0-beta.2 will hopefully fix the reported error and get us a bit further

Working!

@Joshuaharry120
Copy link
Author

just updating now, will advise

@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 11, 2024

I've managed to map out some sensors using the Octopus app. Here's what I understand so far based on discussions with my installer when it was being setup:

Zones Configuration:

  • Zone 1 (Heating): This is my primary heating zone - covering my entire house.
  • Zone 2 (Hot Water): Dedicated to hot water.
  • Zone AUX: Intended for underfloor heating or second-floor heating (currently no use to myself as my heating is 1 run top to bottom).

ADDC Zones and Heat Pump Status:

  • ADDC2/3/4: Since I only have one heating zone, these don't give information, maybe any others with 2nd zones?. I believe the system defaults to a valve value of -300 for these. I will at some point put my hub into installer mode and change these numbers and report back if they update that way we can map a bit more out

  • ADDC1: Reports my water temperature correctly.
    When in Schedule, it show's as AUTO in HA, with Target Temp(as displayed in Octopus app)
    When in Off - Shows
    When in ON - Shows as On(-300)

Water Temp


Heat Pump Status by Zone:

  1. Zone AUX (Heat Pump):

    • Status: Off
    • Temperature: 7°C (default value since no second heating zone is active?)
  2. Zone Water (Heat Pump):

    • Status: Off
    • Default Valve Value: -330°C
    • Current Temperature: 58.8°C (hot water temp) - which is correct when checking octopus app
    • Issue: Unable to change on HA, but changes reflect in HA
  3. Zone 1 (Heat Pump):

    • Status: Off
    • Default Value: 7°C
    • Current Room Temperature: 21°C
    • Note: Cannot edit via Home Assistant, but changes reflect when adjusted in the Octopus app.
  4. Zone 2 (Heat Pump):

    • Status: Off
    • Default Value: 7°C (no second heating zone).

Errors and Sensor Observations:

  • Zone Water (Heat Pump):
    • Current temperature displays correctly.
    • Error when attempting to change the temperature.

Water Heat Pump Error

  • SENSOR01/02:
    • Temperature and humidity readings are accurate.
    • No option to set temperature, likely because this feature isn't supported by the API.

image
Sensor01
Sensor02


@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 11, 2024


Water-Side Stages of the Heat Pump

1. Water Heating Boost – 2 Hours – Target 50°C

Home Assistant View

Water-Heat-Boost-2h-Target50c-HA

Octopus App View

Water-Heat-Boost-2h-Target50c-OctopusApp


2. Water Off

Home Assistant View

Water-Off-HA

Octopus App View

Water-Off-Octopus


3. Water On – Target 60°C

Home Assistant View

Water-On-Target60C-HA

Octopus App View

Water-On-Target60C-Octopus


4. Water Schedule Off

Home Assistant View

Water-Schedule-Off-HA

Octopus App View

Water-Schedule-Off-Octopus


5. Water Schedule On – Target 60°C

Home Assistant View

Water-Schedule-On-60c-HA

Octopus App View

Water-Schedule-On-60c-Octopus


6. Water Schedule Overview

Schedule Overview

Water-Schudle

Heat-Side Stages of the Heat Pump

1. Heat Boost – 2 Hours – Target 23.5°C

Octopus App View

Heat-2HBoost-Target23 5C-Octopus

Home Assistant View (Not Updating)

Heat-2HBoost-Target23 5C-HA - Does not update in HA


2. Heat Off

Home Assistant View

Heat-Off-HA

Octopus App View

Heat-Off-Octopus


3. Heat On – Target 28.5°C

Home Assistant View

Heat-ON-Target28 5C-HA

Octopus App View

Heat-ON-Target28 5C-OCTOPUS


4. Heat Schedule On – Target 7°C (Off)

Home Assistant View

Heat-Schedule-On-Target7C(OFF)-HA

Octopus App View

Heat-Schedule-On-Target7C(OFF)-Octopus


5. Heat Schedule On – Target 22°C

Home Assistant View

Heat-Schedule-On-Target22C-HA

Octopus App View

Heat-Schedule-On-Target22C-Octopus


6. Heat Schedule Overview

Schedule Overview

Heat-Schudle

@BottlecapDave
Copy link
Owner

Thanks for checking and supplying the OE app screenshots.

Zone 1 (Heating): This is my primary heating zone - covering my entire house.
Zone 2 (Hot Water): Dedicated to hot water.
Zone AUX: Intended for underfloor heating or second-floor heating (currently no use to myself as my heating is 1 run top to bottom).

Based on your original data, it looks like I need to ignore zones that are not enabled. Based on your original data, you have "water" and "zone 1" enabled and the others disabled. This means I need to probably similarly ignore any sensors that are associated with disabled zones, as their data is probably not relevant either.

No option to set temperature, likely because this feature isn't supported by the API.

These are just readings to my knowledge, I think read from the pods you have around your room? You therefore don't set the temperature on the sensors, but instead via the zones?

The error you get when attempting to change the zones is a silly omission on my part and I'll try and fix that within the next week.

I'm not sure why the water target temperature isn't coming through when you're boosting. I'm also not sure why it's not coming through as -300 when off either. The app must be intepreting that value in some form.

Couple of additional questions

  1. When you boost, do you have to specify a time to boost for, or is it indefinate? If the former, the current preset might not be the best way to expose this functionality and should instead be exposed via an action.
  2. What is the minimum and maximum values you can set for the different zones? Is this different depending on the type of zone?

@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 11, 2024

Thanks for checking and supplying the OE app screenshots.

Zone 1 (Heating): This is my primary heating zone - covering my entire house.
Zone 2 (Hot Water): Dedicated to hot water.
Zone AUX: Intended for underfloor heating or second-floor heating (currently no use to myself as my heating is 1 run top to bottom).

Based on your original data, it looks like I need to ignore zones that are not enabled. Based on your original data, you have "water" and "zone 1" enabled and the others disabled. This means I need to probably similarly ignore any sensors that are associated with disabled zones, as their data is probably not relevant either.

  • I would agree with that, if the zone is not enabled it should not be shown in HA, we can't see it in the Octopus App, only via the API.

No option to set temperature, likely because this feature isn't supported by the API.

These are just readings to my knowledge, I think read from the pods you have around your room? You therefore don't set the temperature on the sensors, but instead via the zones?

  • You are correct, my mistake. We set the temperature via the Heat Temp or Water Temp, not on the pods themselves. Me overthinking, I think, when I was reviewing it to be honest ha.

The error you get when attempting to change the zones is a silly omission on my part and I'll try and fix that within the next week.

  • No worries :)

I'm not sure why the water target temperature isn't coming through when you're boosting. I'm also not sure why it's not coming through as -300 when off either. The app must be interpreting that value in some form.

  • I'm not sure on that tbh, will do some testing on the lower end numbers and see if it pulls though?

When you boost, do you have to specify a time to boost for, or is it indefinite? If the former, the current preset might not be the best way to expose this functionality and should instead be exposed via an action.

  • When boosting, you can boost:

    Heat
    Temp range: 7°C-30°C
    Time: 15 mins - 12 hours
    You are able to do it in 15 min increments, so for example:

    • 0 hours, 0 mins
    • 0 hours, 15 mins
    • 0 hours, 45 mins
    • 1 hour, 0 mins
    • 1 hour, 15 mins
      etc.

    Water
    Temp range: 40°C-60°C
    Same as Heat for Time.

    One thing to note, however, if you are on 11hours, 45mins, then select 12, it clears the minutes, so true max is 12h.

Water-Boost-Time

@BottlecapDave
Copy link
Owner

I've just released a new beta (https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.3.0-beta.3) which should

  • Hopefully allow you to change the heat pump zones via HA
  • You can set a zone to boost via the HA climate controls, which will default to 1 hour
  • If you want to boost with more fine grained controls, you can use the new service/action. This currently allows you to go greater than 12 hours, but not sure if OE will reject this request (or if I got the service right at all ;))
  • Updated min/max temperatures of zones based on zone type.

@Joshuaharry120
Copy link
Author

Hi @BottlecapDave,

Many thanks for posting beta 3.

I've tried setting the temperate etc but it does still return some issues, i believe it's as the temperature gage inside HA, is sending .1 .2 .3 .4 rather then 23 or 23.5 - however, disoute the error, i can see the .1 .2 .3 in my App - On our app, we can only increase by 0.5

as clicking tho, i do get a few errors etc which i've attatched for you

Mode From Boost to "off"
image

Set mode to "Heat"
image

Updae Heat on Heat Pump:
image

@BottlecapDave
Copy link
Owner

Thanks for providing the feedback. Release https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.3.0-beta.4 should hopefully get us a bit further.

@Joshuaharry120
Copy link
Author

Joshuaharry120 commented Dec 15, 2024

Hi,

Thanks for providing Beta 4! It's really starting to take shape, and most features are working well. I've encountered a few remaining issues that I'd like to highlight:

1. Model/Manufacturer Display

  • Currently, all devices are showing Model/Manufacturer as <unknown>, except for the Heat Pump Sensor, which correctly displays the Model as Cosy6.

image

2. Zone Issues

  • In the Heat Pump (id...), I deleted the Zone (AUX) and Zone (Zone2) as they were showing as Unavailable. However, the Heat Pump Sensors (ADC2/3/4) are still showing as Active and displaying -70. Not sure if these were also meant to be disabled since I only have two zones (Heat and Water) in my setup. Not sure how this affects other users with more zones.

3. Heat Pump Sensor Status

  • Heat Pump Sensors (Sensor 1/2) (Cosy Pods) are working brilliantly.
  • ADC1 Sensor (Water) is also functioning perfectly.

4. Zone Reporting Issues

  • Zone (Water) is still reporting Auto -300.
  • Zone 1 (Heat) is reporting correctly, but when I change the mode/temperature, it updates the OE app right away. However, if I click off and then back into HA, it resets to the previous API poll data.
    • Suggestion: After updating the temp/mode, make another API call to verify the change and update the thermostat in HA.

5. Preset Boost Errors

  • When setting Preset to Boost, it takes the current HA temperature. However, changing the Mode afterward causes an error stating a Boost end time is required.
    • Suggestion: When changing the mode, automatically cancel the Boost preset or switch the preset back to None.

Steps to reproduce the error:

  1. Set Mode to Auto.
  2. Change Preset to Boost.
  3. Increase the temperature by 4 degrees.

image

Alternatively:

  1. Go from Mode Off to Auto.
  2. Set Preset to Boost.
  3. Increase the temperature by 1 degree.

image

6. Mode Off and Boost Reset

  • When Mode is Off, setting the temperature to 24°C and activating Boost updates the OE app. However, after a few seconds, HA resets to the Off status.

image

7. Rename Suggestions

  • Rename Mode Heat to On.
  • Rename Mode Auto to Schedule.

Thanks again for your hard work on this. Let me know if you need more details!

@BottlecapDave
Copy link
Owner

Thanks for the feedback. Glad it's getting closer :)

Model/Manufacturer Display

The API doesn't currently provide any of this information for the sensors which is why they're unknown. Technically for this scenario, Octopus is the manufacturer and cosy 6 is probably the model for the sensors as well, but I believe this functionality will work for other integrated heat pumps (e.g. daiken) where these assumptions can't be made.

However, the Heat Pump Sensors (ADC2/3/4) are still showing as Active and displaying -70. Not sure if these were also meant to be disabled since I only have two zones (Heat and Water) in my setup. Not sure how this affects other users with more zones.

I'm currently only including sensors where the owning heat pump zone and sensor are both enabled. I can't see anything else in the API which could be used to determine if the sensor should be removed.

Zone 1 (Heat) is reporting correctly, but when I change the mode/temperature, it updates the OE app right away. However, if I click off and then back into HA, it resets to the previous API poll data.

The data is currently retrieved from a central location, as per HA recommendations. The sensor should be preserving the set values until it next polls where it will then overwrite the data with the latest information. When you say "click off and then back", do you mean you close the dialog and then reopen? Or you close HA and then reopen it? Or something else?

When setting Preset to Boost, it takes the current HA temperature. However, changing the Mode afterward causes an error stating a Boost end time is required.

This was an omission on my side when it comes to temperature changes and in boost mode. This should be a quickish fix.

Rename Suggestions

These names are dictated by HA and can't be changed. I tried to pick the names which were the closest possible.

@BottlecapDave
Copy link
Owner

A new release is available in the form of v13.4.0-beta.1, which should fix the remaining issues as noted above. Because there was a new release, the generated changelog is a bit jumbled and includes things that were in previous releases.

One thing to note, I am now using a different value to work out the target temperature for zones. Based on the test data I received, this seems to mean that the water zone is no longer configurable via the UI instead of having -300 as its value. It is my understanding that water can't currently be configured via the OE app, which might be why we're getting rubbish data back so I'm not sure if this zone should be excluded as well.

@lwis
Copy link

lwis commented Dec 21, 2024

I'll try having a go at adding flow temps and CoP sensors.

Thanks for all the hard work @BottlecapDave!

@lwis
Copy link

lwis commented Dec 24, 2024

👀

image

@BottlecapDave
Copy link
Owner

Nice one. It's on my list to look at the PR once you've marked it as ready :)

What outstanding issues do we have with the current beta's implementation? I'm wanting to make sure it's merged in and available before we expand the functionality (including @lwis's contribution) to make sure the correct people get the correct recognition.

@BottlecapDave
Copy link
Owner

New beta released (https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.5.0-beta.1) which includes

  • Everything in v13.4.0
  • Fix for some validation which breaks in the latest HA beta

@AdamLukeTaylor
Copy link

AdamLukeTaylor commented Dec 26, 2024

Not sure if this is generally useful information or not. Maybe someday a line in public doc. I've just had a heat pump installed, but not yet paid for. So presumably it is in some weird state. When I run the service, I get a properly formed response

main:
  errors:
    - message: Unable to find device for given account.
      locations:
        - line: 3
          column: 3
      path:
        - heatPumpStatus
      extensions:
        errorType: NOT_FOUND
        errorCode: KT-CT-4301
        errorDescription: >-
          We were unable to find a device for the given account. Please check
          that the account number (and property ID) is correct.
  data:
    octoHeatPumpControllerEuids:
      - 00:<VALID LOOKING SERIAL NUMBER>
    heatPumpStatus: null
euids:
  - data:
      octoHeatPumpControllerStatus:
         sensors:
             <VALID LOOKING SENSORS AND READINGS>

Will update if I get it working, but nothing happened after that. I guess that's expected.

Edit: The beta mentioned below worked 👍

@BottlecapDave
Copy link
Owner

@AdamLukeTaylor The service at the beginning of this thread was to determine which APIs were required for the cosy 6. There is an open beta linked above (https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/releases/tag/v13.5.0-beta.1) around exposing the heat pump within the integration. Please consult the FAQ on how to join the beta if you require help, or you can wait until the feature is released in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed More demand needed A feature that will be considered if there is more demand
Projects
None yet
Development

No branches or pull requests

7 participants