tadasdanielius / daikin_altherma

Daikin Altherma custom component for home assistant
MIT License
71 stars 4 forks source link

Does not work with BRP069A61 #79

Open stosoorok opened 9 months ago

stosoorok commented 9 months ago

It does identify the heat pump: image

But sensors are unavailable: image

Logs: image


` Logger: homeassistant.components.water_heater Source: custom_components/daikin_altherma/init.py:353 Integration: Water Heater (documentation, issues) First occurred: 12:07:32 (2 occurrences) Last logged: 12:07:32

Error adding entities for domain water_heater with platform daikin_altherma Error while setting up daikin_altherma platform for water_heater Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in async_add_entities await asyncio.gather(*tasks) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 662, in _async_add_entity capabilities=entity.capability_attributes, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/water_heater/init.py", line 202, in capability_attributes self.hass, self.min_temp, self.temperature_unit, self.precision ^^^^^^^^^^^^^ File "/config/custom_components/daikin_altherma/water_heater.py", line 131, in min_temp return self._api.water_tank_target_temp_config["minValue"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/daikin_altherma/init.py", line 353, in water_tank_target_temp_config return self.device.hot_water_tank._unit.operation_config["TargetTemperature"][ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ KeyError: 'heating' `


` Logger: homeassistant.components.switch Source: custom_components/daikin_altherma/switch.py:19 Integration: Switch (documentation, issues) First occurred: 12:07:32 (1 occurrences) Last logged: 12:07:32

Error while setting up daikin_altherma platform for switch Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 359, in _async_setup_platform await asyncio.shield(task) File "/config/custom_components/daikin_altherma/switch.py", line 19, in async_setup_entry operations = climate_control.unit.operations ^^^^^^^^^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'unit' `


` This error originated from a custom integration.

Logger: custom_components.daikin_altherma.select Source: custom_components/daikin_altherma/select.py:19 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: 12:07:32 (1 occurrences) Last logged: 12:07:32

Cant read operation modes from the profile. Raise an issue! `


` This error originated from a custom integration.

Logger: custom_components.daikin_altherma Source: custom_components/daikin_altherma/init.py:191 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: 12:07:32 (1 occurrences) Last logged: 12:07:32

Something went wrong while updating data from the device Traceback (most recent call last): File "/config/custom_components/daikin_altherma/init.py", line 191, in async_update self._climate_control_powered = await self._device.climate_control.is_turned_on ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'is_turned_on' `


lufetico commented 8 months ago

I have the same problem:

Screenshot_1

This error originated from a custom integration.

Logger: homeassistant Source: custom_components/daikin_altherma/number.py:145 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: 10:14:28 (11 occurrences) Last logged: 10:24:26

Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 233, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 389, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 172, in async_update_listeners update_callback() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 469, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 779, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 879, in _async_write_ha_state state, attr = self._async_generate_attributes() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 816, in _async_generate_attributes attr = self.capability_attributes ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/number/init.py", line 225, in capability_attributes ATTR_MIN: self.min_value, ^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/number/init.py", line 263, in min_value return self._convert_to_state_value(self.native_min_value, floor_decimal) ^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/daikin_altherma/number.py", line 145, in native_minvalue , config = self._get_value_config() ^^^^^^^^^ TypeError: cannot unpack non-iterable NoneType object


This error originated from a custom integration.

Logger: custom_components.daikin_altherma Source: custom_components/daikin_altherma/init.py:214 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: 10:08:50 (4 occurrences) Last logged: 10:24:05

Bad logger message: Failed to update the device status with error the JSON object must be str, bytes or bytearray, not NoneType ((TypeError('the JSON object must be str, bytes or bytearray, not NoneType'),))


This error originated from a custom integration.

Logger: custom_components.daikin_altherma Source: custom_components/daikin_altherma/init.py:190 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: 10:08:44 (4 occurrences) Last logged: 10:23:49

Failed to the get the data from the device [10.0.4.108] () Traceback (most recent call last): File "/config/custom_components/daikin_altherma/init.py", line 190, in async_update self._status = await self.device.get_current_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 400, in get_current_state unit_status = await unit.get_current_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 133, in get_current_state states = await self.read_states() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 79, in read_states results[state] = await self.read_state(state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 73, in read_state resp = await self.read(query_type='UnitStatus', prop=status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 49, in read result = await self._connection.request(destination) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 39, in request result = await self._request(dest, payload, wait_for_response, assert_response_fn) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 48, in _request await self.connect() File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 30, in connect self._client = await self._session.ws_connect(self.ws_address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 779, in _ws_connect resp = await self.request( ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 536, in _request conn = await self._connector.connect( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 540, in connect proto = await self._create_connection(req, traces, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 901, in _createconnection , proto = await self._create_direct_connection(req, traces, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1178, in _create_direct_connection transp, proto = await self._wrap_create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 980, in _wrap_create_connection return await self._loop.create_connection(*args, **kwargs) # type: ignore[return-value] # noqa ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1069, in create_connection sock = await self._connect_sock( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 973, in _connect_sock await self.sock_connect(sock, address) File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 628, in sock_connect return await fut ^^^^^^^^^ asyncio.exceptions.CancelledError

tadasdanielius commented 8 months ago

Try to capture profile information. In HA go to config / custom_components / daikin_altherma / init.py and uncomment lines from 38 to 44 https://github.com/tadasdanielius/daikin_altherma/blob/592d01a17bc6a9867cc2004b97f63421211ddfb4/custom_components/daikin_altherma/__init__.py#L38

Restart Home Assistant and check for files daikinaltherma*.json in your config folder. Likely the device profile looks bit different.

lufetico commented 7 months ago

Hi

I followed the steps and found 3 files after the reboot. At the moment the error has not shown up so I guess I will have to give ka active lines of code until I notice that the information is not available.

/homeassistant/daikin_altherma_0.json

{"SyncStatus": "reboot", "UnitStatus": ["ErrorState"], "DateTime": {"DateTimeAdjustable": false}}

/homeassistant/daikin_altherma_1.json

{"SyncStatus": "reboot", "Sensor": ["IndoorTemperature", "OutdoorTemperature", "LeavingWaterTemperatureCurrent"], "UnitStatus": ["ErrorState", "InstallerState", "WarningState", "EmergencyState", "TargetTemperatureOverruledState"], "Operation": {"Power": ["on", "standby"], "OperationMode": ["heating", "cooling", "auto"], "LeavingWaterTemperatureHeating": {"maxValue": 50, "minValue": 25, "stepValue": 1, "settable": true}, "LeavingWaterTemperatureCooling": {"maxValue": 22, "minValue": 10, "stepValue": 1, "settable": true}, "LeavingWaterTemperatureAuto": {"maxValue": 50, "minValue": 25, "stepValue": 1, "settable": true}, "LeavingWaterTemperatureOffsetHeating": {"maxValue": 10, "minValue": -10, "stepValue": 1, "settable": false}, "LeavingWaterTemperatureOffsetCooling": {"maxValue": 10, "minValue": -10, "stepValue": 1, "settable": false}, "LeavingWaterTemperatureOffsetAuto": {"maxValue": 10, "minValue": -10, "stepValue": 1, "settable": false}}, "Schedule": {}, "Consumption": {"Electrical": {"unit": "kWh", "Heating": {"Daily": {"contentCount": 24, "resolution": 2}, "Weekly": {"contentCount": 14, "resolution": 1}, "Monthly": {"contentCount": 24, "resolution": 1}}, "Cooling": {"Daily": {"contentCount": 24, "resolution": 2}, "Weekly": {"contentCount": 14, "resolution": 1}, "Monthly": {"contentCount": 24, "resolution": 1}}}}}

/homeassistant/daikin_altherma_2.json

{"SyncStatus": "reboot", "Sensor": ["TankTemperature"], "UnitStatus": ["ErrorState", "InstallerState", "WeatherDependentState", "WarningState", "EmergencyState", "TargetTemperatureOverruledState"], "Operation": {"Power": ["on", "standby"], "OperationMode": ["heating"], "TargetTemperature": {"heating": {}}, "DomesticHotWaterTemperatureHeating": {"maxValue": 55.0, "minValue": 30.0, "stepValue": 1.0, "settable": false}, "powerful": ["0", "1"]}, "Schedule": {"Base": "action", "defaultScheduleAvailable": "false", "NameAdjustable": "false", "List": {"heating": [{"StartTime": {"stepValue": 10.0, "unit": "minute"}, "TargetTemperature": {"heating": {"maxValue": 55.0, "minValue": 30.0, "stepValue": 1.0}}, "Actions": ["StartTime", "TargetTemperature"], "maxActionsAllowed": 4}, ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]]}}, "Consumption": {"Electrical": {"unit": "kWh", "Heating": {"Daily": {"contentCount": 24, "resolution": 2}, "Weekly": {"contentCount": 14, "resolution": 1}, "Monthly": {"contentCount": 24, "resolution": 1}}}}}

Dieter4712 commented 5 months ago

I'm interested in your integration because it doesn't rely on the cloud. However, I'm encountering issues when trying to connect a BRP069A62 to my Daikin Altherma 3 R. After unplugging my old BRP069A78 adapter, disconnecting from the cloud, and plugging in the BRP069A62, my Onecta App recognizes a new device, but I'm unable to add it to my heat pump.While I can add the adapter to Home Assistant, no values are displayed.

I'd like to integrate it with Onecta and configure parameters via the local LAN. Do you have any insights into what might be going wrong?

lufetico commented 5 months ago

Hi there,

The problem continues. Occasionally I do not receive any values:

image

image


`This error originated from a custom integration.

Logger: homeassistant Source: custom_components/daikin_altherma/number.py:145 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: February 1, 2024 at 08:32:53 (5 occurrences) Last logged: February 1, 2024 at 08:33:02

Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners update_callback() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 945, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1066, in _async_write_ha_state state, attr, capabilities, shadowed_attr = self.async_calculate_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 998, in async_calculate_state capability_attr = self.capability_attributes ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/number/init.py", line 238, in capability_attributes self.native_min_value, floor_decimal, device_class ^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/daikin_altherma/number.py", line 145, in native_minvalue , config = self._get_value_config() ^^^^^^^^^ TypeError: cannot unpack non-iterable NoneType object `


`This error originated from a custom integration.

Logger: custom_components.daikin_altherma Source: custom_components/daikin_altherma/init.py:189 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: February 1, 2024 at 08:32:22 (3 occurrences) Last logged: February 1, 2024 at 12:26:43

Failed to the get the data from the device [10.0.4.108] () Traceback (most recent call last): File "/config/custom_components/daikin_altherma/init.py", line 189, in async_update self._status = await self.device.get_current_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 400, in get_current_state unit_status = await unit.get_current_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 133, in get_current_state states = await self.read_states() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 79, in read_states results[state] = await self.read_state(state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 73, in read_state resp = await self.read(query_type='UnitStatus', prop=status) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 49, in read result = await self._connection.request(destination) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 39, in request result = await self._request(dest, payload, wait_for_response, assert_response_fn) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 48, in _request await self.connect() File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 30, in connect self._client = await self._session.ws_connect(self.ws_address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 832, in _ws_connect resp = await self.request( ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 578, in _request conn = await self._connector.connect( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 544, in connect proto = await self._create_connection(req, traces, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 911, in _createconnection , proto = await self._create_direct_connection(req, traces, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1204, in _create_direct_connection transp, proto = await self._wrap_create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 992, in _wrap_create_connection return await self._loop.create_connection(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1069, in create_connection sock = await self._connect_sock( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 973, in _connect_sock await self.sock_connect(sock, address) File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 628, in sock_connect return await fut ^^^^^^^^^ asyncio.exceptions.CancelledError `


`This error originated from a custom integration.

Logger: custom_components.daikin_altherma Source: custom_components/daikin_altherma/init.py:213 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: February 1, 2024 at 08:32:44 (3 occurrences) Last logged: February 1, 2024 at 12:27:01

Bad logger message: Failed to update the device status with error the JSON object must be str, bytes or bytearray, not NoneType ((TypeError('the JSON object must be str, bytes or bytearray, not NoneType'),))`


`This error originated from a custom integration.

Logger: custom_components.daikin_altherma Source: custom_components/daikin_altherma/init.py:189 Integration: Daikin Altherma HVAC (documentation, issues) First occurred: February 1, 2024 at 20:34:49 (1 occurrences) Last logged: February 1, 2024 at 20:34:49

Failed to the get the data from the device [10.0.4.108] () Traceback (most recent call last): File "/config/custom_components/daikin_altherma/init.py", line 189, in async_update self._status = await self.device.get_current_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 400, in get_current_state unit_status = await unit.get_current_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 132, in get_current_state operations = await self.read_operations() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 94, in read_operations results[operation] = await self.read_operation(operation) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 70, in read_operation return await self.read(query_type='Operation', prop=operation) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 49, in read result = await self._connection.request(destination) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 39, in request result = await self._request(dest, payload, wait_for_response, assert_response_fn) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 55, in _request response_str = await self._client.receive_str(timeout=self._timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client_ws.py", line 288, in receive_str msg = await self.receive(timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client_ws.py", line 244, in receive msg = await self._reader.read() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 663, in read return await super().read() ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 622, in read await self._waiter asyncio.exceptions.CancelledError `

Any solution?

Thanks!

Regards,

lufetico commented 3 months ago

Hi there,

The problem occurs many times a day and does not allow me to get information from my Daikin machine. What information can I provide to help solve it?