Flo-Schilli / homeassistant-grohe_sense

Grohe Sense integration for Home Assistant
Other
6 stars 2 forks source link

Grohe Blue Professional Type 105 #6

Closed rama1981 closed 2 months ago

rama1981 commented 2 months ago

Good day,

I tried a lot with your beautiful code - I´m not a programmer, so it´s much more trial and error. After maybe 40 hours of trial and error, I would like to ask, if you can implement the Grohe Blue Professional with Type = 105, please.

I tried to add at grohe_device.py:

__@property
def device_name(self) -> str:
    dev_name = self.type
    if dev_name == GroheTypes.GROHE_SENSE:
        return 'Sense'
    elif dev_name == GroheTypes.GROHE_SENSE_GUARD:
        return 'Sense Guard'
    elif dev_name == GroheTypes.GROHE_SENSE_PLUS:
        return 'Sense Plus'
    elif dev_name == GroheTypes.GROHE_BLUE_PROF:
        return 'Blue'
    else:
        return 'Unknown'__

and at enum/ondus_types.py

class GroheTypes(Enum):
    GROHE_SENSE = 101  # Type identifier for the battery powered water detector
    GROHE_SENSE_PLUS = 102
    GROHE_SENSE_GUARD = 103  # Type identifier for sense guard, the water guard installed on your water pipe
    GROHE_BLUE_PROF = 105

but the response is:

2024-07-16 21:37:26.626 DEBUG (MainThread) [custom_components.grohe_sense] Loading Grohe Sense
2024-07-16 21:37:26.626 INFO (MainThread) [custom_components.grohe_sense.api.ondus_api] Login to Ondus API
2024-07-16 21:37:26.626 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Login with username/password
2024-07-16 21:37:27.291 DEBUG (MainThread) [custom_components.grohe_sense.dto.grohe_device] Getting all available Grohe devices
2024-07-16 21:37:27.292 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get locations
2024-07-16 21:37:27.389 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get rooms for location 5X1XXX6
2024-07-16 21:37:27.452 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliances for location 5X1XXX6 and room 4XX48XX
2024-07-16 21:37:27.680 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Grohe Sense for grohe_sense
File "/config/custom_components/grohe_sense/__init__.py", line 23, in async_setup_entry
devices: List[GroheDevice] = await GroheDevice.get_devices(api)
File "/config/custom_components/grohe_sense/dto/grohe_device.py", line 77, in get_devices
File "/config/custom_components/grohe_sense/api/ondus_api.py", line 298, in get_appliances

I´m on home assistant Core 2024.7.2 and home assistant Operating System 12.4

my dashboard looks like: _ { "locations": [ { "id": 5X1XXX6, "name": "XXX", "type": 1, "role": "owner", "timezone": "Europe/Vienna", "water_cost": -1, "energy_cost": -1, "heating_type": -1, "currency": "EUR", "default_water_cost": 0.003337, "default_energy_cost": 0.004376, "default_heating_type": 2, "emergency_shutdown_enable": true, "address": { "street": "XXXXXX", "city": "XXXXXX", "zipcode": "XXXX", "housenumber": "", "country": "Österreich", "country_code": "AT", "additionalInfo": "", "state": "" }, "rooms": [ { "id": 4XX48XX, "name": "Küche", "type": 1, "room_type": 15, "role": "owner", "appliances": [ { "appliance_id": "XXXXX", "installation_date": "2022-07-16T14:47:22.000+02:00", "name": "My GROHE Blue Pro", "serial_number": "XXXXX", "type": 105, "version": "01.04.Z10.0300.0104", "tdt": "2024-07-16T21:11:17.000+02:00", "timezone": 120, "config": { "co2_type": 2, "hose_length": 270, "co2_consumption_medium": 48, "co2_consumption_carbonated": 65, "guest_mode_active": false, "auto_flush_active": false, "flush_confirmed": false, "f_parameter": 1, "l_parameter": 3, "flow_rate_still": 19, "flow_rate_medium": 34, "flow_rate_carbonated": 17 }, "role": "owner", "registration_complete": true, "presharedkey": "XXXXX", "params": { "water_hardness": 0, "carbon_hardness": 15, "filter_type": 6, "variant": 4, "auto_flush_reminder_notif": true, "consumables_low_notif": true, "product_information_notif": true }, "error": { "errors_1": false, "errors_2": false, "errors_3": false, "errors_4": false, "errors_5": false, "errors_6": false, "errors_7": false, "errors_8": false, "errors_9": false, "errors_10": false, "errors_11": false, "errors_12": false, "errors_13": false, "errors_14": false, "errors_15": false, "errors_16": false, "error1_counter": 2, "error2_counter": 1, "error3_counter": 13, "error4_counter": 0, "error5_counter": 0, "error6_counter": 0, "error7_counter": 0, "error8_counter": 0, "error9_counter": 0, "error10_counter": 0, "error11_counter": 0, "error12_counter": 39, "error13_counter": 0, "error14_counter": 0, "error15_counter": 0, "error16_counter": 0 }, "state": { "start_time": 1721159338, "APPLIANCE_SUCCESSFUL_CONFIGURED": false, "co2_empty": false, "co2_20l_reached": false, "filter_empty": false, "filter_20l_reached": false, "cleaning_mode_active": false, "cleaning_needed": false, "flush_confirmation_required": false, "System_error_bitfield": 0 }, "status": [ { "type": "update_available", "value": 0 }, { "type": "connection", "value": 1 } ], "notifications": [], "data_latest": { "measurement": { "cleaning_count": 2, "date_of_cleaning": "2024-06-30T21:13:21.000+02:00", "date_of_co2_replacement": "2024-07-16T21:11:17.000+02:00", "date_of_filter_replacement": "2024-06-30T21:41:22.000+02:00", "filter_change_count": 3, "max_idle_time": 10875, "open_close_cycles_carbonated": 2351, "open_close_cycles_still": 2479, "operating_time": 14826, "power_cut_count": 73, "pump_count": 2486, "pump_running_time": 350, "remaining_co2": 92, "remaining_filter": 99, "time_since_last_withdrawal": 6, "time_since_restart": 536887329, "timeoffset": 120, "timestamp": "2024-07-16T21:11:17.000+02:00", "water_running_time_carbonated": 492, "water_running_time_medium": 10, "water_running_time_still": 221, "remaining_filter_liters": 3159, "remaining_co2_liters": 242 } } } ] } ], "emergencycontacts": [] } ] }

Thank you for reading.

Flo-Schilli commented 2 months ago

Hi @rama1981,

for sure I'll have a look into this. As I do not own a Grohe Blue it will be a little try and error as well for me :) As far as I understand, the device is definitely having a lot of state information/sensors but I guess you can also control the water output.

If the Blue behaves like the sense guard it would be great if you could provide me the JSON output of the following endpoints (like you already did for the dashboard).

Also I'm going to update the Dashboard information accordingly to your provided data.

Flo-Schilli commented 2 months ago

@rama1981: Can you give the branch feature/blue_professional a try if it's at least setting up the blue and adding a notification sensor to it.

rama1981 commented 2 months ago

Hi @rama1981,

for sure I'll have a look into this. As I do not own a Grohe Blue it will be a little try and error as well for me :) As far as I understand, the device is definitely having a lot of state information/sensors but I guess you can also control the water output.

If the Blue behaves like the sense guard it would be great if you could provide me the JSON output of the following endpoints (like you already did for the dashboard).

Also I'm going to update the Dashboard information accordingly to your provided data.

/details:

{
    "appliance_id": "XXXXXXXXXXXXXXXXXXXXXXXX",
    "installation_date": "2022-07-16T14:47:22.000+02:00",
    "name": "My GROHE Blue Pro",
    "serial_number": "XXXXXX",
    "type": 105,
    "version": "01.04.Z10.0300.0104",
    "tdt": "2024-07-16T23:11:18.000+02:00",
    "timezone": 120,
    "config": {
        "co2_type": 2,
        "hose_length": 270,
        "co2_consumption_medium": 48,
        "co2_consumption_carbonated": 65,
        "guest_mode_active": false,
        "auto_flush_active": false,
        "flush_confirmed": false,
        "f_parameter": 1,
        "l_parameter": 3,
        "flow_rate_still": 19,
        "flow_rate_medium": 34,
        "flow_rate_carbonated": 17
    },
    "role": "owner",
    "registration_complete": true,
    "presharedkey": "XXXXXX",
    "params": {
        "water_hardness": 0,
        "carbon_hardness": 15,
        "filter_type": 6,
        "variant": 4,
        "auto_flush_reminder_notif": true,
        "consumables_low_notif": true,
        "product_information_notif": true
    },
    "error": {
        "errors_1": false,
        "errors_2": false,
        "errors_3": false,
        "errors_4": false,
        "errors_5": false,
        "errors_6": false,
        "errors_7": false,
        "errors_8": false,
        "errors_9": false,
        "errors_10": false,
        "errors_11": false,
        "errors_12": false,
        "errors_13": false,
        "errors_14": false,
        "errors_15": false,
        "errors_16": false,
        "error1_counter": 2,
        "error2_counter": 1,
        "error3_counter": 13,
        "error4_counter": 0,
        "error5_counter": 0,
        "error6_counter": 0,
        "error7_counter": 0,
        "error8_counter": 0,
        "error9_counter": 0,
        "error10_counter": 0,
        "error11_counter": 0,
        "error12_counter": 39,
        "error13_counter": 0,
        "error14_counter": 0,
        "error15_counter": 0,
        "error16_counter": 0
    },
    "state": {
        "start_time": 1721198687,
        "APPLIANCE_SUCCESSFUL_CONFIGURED": false,
        "co2_empty": false,
        "co2_20l_reached": false,
        "filter_empty": false,
        "filter_20l_reached": false,
        "cleaning_mode_active": false,
        "cleaning_needed": false,
        "flush_confirmation_required": false,
        "System_error_bitfield": 0
    },
    "status": [
        {
            "type": "update_available",
            "value": 0
        },
        {
            "type": "connection",
            "value": 1
        }
    ],
    "data_latest": {
        "measurement": {
            "cleaning_count": 2,
            "date_of_cleaning": "2024-06-30T21:13:21.000+02:00",
            "date_of_co2_replacement": "2024-07-16T23:11:18.000+02:00",
            "date_of_filter_replacement": "2024-06-30T21:41:22.000+02:00",
            "filter_change_count": 3,
            "max_idle_time": 10875,
            "open_close_cycles_carbonated": 2352,
            "open_close_cycles_still": 2480,
            "operating_time": 14828,
            "power_cut_count": 73,
            "pump_count": 2487,
            "pump_running_time": 350,
            "remaining_co2": 91,
            "remaining_filter": 99,
            "time_since_last_withdrawal": 58,
            "time_since_restart": 536887329,
            "timeoffset": 120,
            "timestamp": "2024-07-16T23:11:18.000+02:00",
            "water_running_time_carbonated": 493,
            "water_running_time_medium": 10,
            "water_running_time_still": 221,
            "remaining_filter_liters": 3158,
            "remaining_co2_liters": 241
        }
    },
    "notifications": []
}

/command

{
    "appliance_id": "##########",
    "type": 105,
    "lastCO2Reset": "2024-07-01T10:07:29.653Z",
    "command": {
        "co2_status_reset": true,
        "tap_type": 0,
        "cleaning_mode": false,
        "filter_status_reset": false,
        "get_current_measurement": false,
        "tap_amount": 0,
        "factory_reset": false,
        "revoke_flush_confirmation": false,
        "exec_auto_flush": false
    },
    "commandb64": "EAAAAA==",
    "timestamp": "2024-07-01T10:07:29.604Z"
}

i like to thank you, that you look over my request

Flo-Schilli commented 2 months ago

Thanks for the details. I'll look into this later.

rama1981 commented 2 months ago

@rama1981: Can you give the branch feature/blue_professional a try if it's at least setting up the blue and adding a notification sensor to it.

i did. notification = unknown, because i have no notification at the app as well.

now the proctocols:

Logger: homeassistant
Quelle: custom_components/grohe_sense/entities/grohe_sense_notifications.py:48
Integration: Grohe Sense ([Dokumentation](https://github.com/Flo-Schilli/homeassistant-grohe_sense), [Probleme](https://github.com/Flo-Schilli/homeassistant-grohe_sense/issues))
Erstmals aufgetreten: 09:04:06 (1 Vorkommnisse)
Zuletzt protokolliert: 09:04:06

Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 255, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners
    update_callback()
  File "/config/custom_components/grohe_sense/entities/grohe_sense_notifications.py", line 48, in _handle_coordinator_update
    self._value = self._coordinator.data.notification
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'notification'
Logger: custom_components.grohe_sense.entities.grohe_update_coordinator
Quelle: custom_components/grohe_sense/entities/grohe_update_coordinator.py:90
Integration: Grohe Sense ([Dokumentation](https://github.com/Flo-Schilli/homeassistant-grohe_sense), [Probleme](https://github.com/Flo-Schilli/homeassistant-grohe_sense/issues))
Erstmals aufgetreten: 08:58:56 (3 Vorkommnisse)
Zuletzt protokolliert: 09:04:06

Error updating Grohe Sense data: 'NoneType' object has no attribute 'items'
Logger: custom_components.grohe_sense.entities.grohe_update_coordinator
Quelle: helpers/debounce.py:137
Integration: Grohe Sense ([Dokumentation](https://github.com/Flo-Schilli/homeassistant-grohe_sense), [Probleme](https://github.com/Flo-Schilli/homeassistant-grohe_sense/issues))
Erstmals aufgetreten: 08:59:06 (1 Vorkommnisse)
Zuletzt protokolliert: 08:59:06

Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.grohe_sense.entities.grohe_update_coordinator.GroheUpdateCoordinator object at 0xffff466e5b20>>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 137, in _handle_timer_finish
    await task
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 288, in async_refresh
    await self._async_refresh(log_failures=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners
    update_callback()
  File "/config/custom_components/grohe_sense/entities/grohe_sense_notifications.py", line 48, in _handle_coordinator_update
    self._value = self._coordinator.data.notification
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'notification'

by the way, i usually do not need the command - no switch needed.

it would be great to get

Thank you

Flo-Schilli commented 2 months ago

@rama1981 can you just give it a try. I just added nearly all the measurements as sensors.

rama1981 commented 2 months ago

@Flo-Schilli thank you for your work, all sensors are imported, but status is unknown.

here are the protocols.:

2024-07-18 09:17:54.987 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance XXXXXXXXXXX
2024-07-18 09:17:55.010 DEBUG (MainThread) [custom_components.grohe_sense.valve] Adding sensor entities from config entry <ConfigEntry entry_id=0XX2XXXFQBXXXXVQ8XXXXP89X8 version=1 domain=grohe_sense title=Grohe Sense state=ConfigEntryState.SETUP_IN_PROGRESS unique_id=GroheSense>
2024-07-18 09:17:56.155 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'
2024-07-18 09:17:56.155 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 1.168 seconds (success: True)
2024-07-18 09:18:06.176 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance XXXXXXXXXXX
2024-07-18 09:18:06.826 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'
2024-07-18 09:18:06.826 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.650 seconds (success: True)
2024-07-18 09:18:06.827 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.grohe_sense.entities.grohe_blue_update_coordinator.GroheBlueUpdateCoordinator object at 0xffff46cd3cb0>>
File "/config/custom_components/grohe_sense/entities/grohe_sense_notifications.py", line 50, in _handle_coordinator_update
Flo-Schilli commented 2 months ago

Thanks for the update. Can you please give it another try

rama1981 commented 2 months ago

Thanks for the update. Can you please give it another try

Thank you very much for your time with trial and error 👍

`Logger: custom_components.grohe_sense.entities.grohe_blue_update_coordinator
Quelle: helpers/debounce.py:137
Integration: Grohe Sense ([Dokumentation](https://github.com/Flo-Schilli/homeassistant-grohe_sense), [Probleme](https://github.com/Flo-Schilli/homeassistant-grohe_sense/issues))
Erstmals aufgetreten: 14:41:33 (1 Vorkommnisse)
Zuletzt protokolliert: 14:41:33

Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.grohe_sense.entities.grohe_blue_update_coordinator.GroheBlueUpdateCoordinator object at 0xffff55d17cb0>>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 137, in _handle_timer_finish
    await task
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 288, in async_refresh
    await self._async_refresh(log_failures=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners
    update_callback()
  File "/config/custom_components/grohe_sense/entities/grohe_sense_notifications.py", line 50, in _handle_coordinator_update
    self._value = self._coordinator.data.notification
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'notification'
Logger: custom_components.grohe_sense.entities.grohe_blue_update_coordinator
Quelle: custom_components/grohe_sense/entities/grohe_blue_update_coordinator.py:63
Integration: Grohe Sense ([Dokumentation](https://github.com/Flo-Schilli/homeassistant-grohe_sense), [Probleme](https://github.com/Flo-Schilli/homeassistant-grohe_sense/issues))
Erstmals aufgetreten: 14:41:23 (2 Vorkommnisse)
Zuletzt protokolliert: 14:41:33

Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'

detailed log

2024-07-18 14:41:22.934 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance XXXXXXXXXXXXXXXXXXXX
2024-07-18 14:41:22.947 DEBUG (MainThread) [custom_components.grohe_sense.valve] Adding sensor entities from config entry <ConfigEntry entry_id=XXXXXXXXXXXXXXXXXXXXXXXXXX version=1 domain=grohe_sense title=Grohe Sense state=ConfigEntryState.SETUP_IN_PROGRESS unique_id=GroheSense>
2024-07-18 14:41:23.470 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'
2024-07-18 14:41:23.471 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.536 seconds (success: True)
2024-07-18 14:41:33.472 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2024-07-18 14:41:33.836 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'
2024-07-18 14:41:33.837 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.364 seconds (success: True)
2024-07-18 14:41:33.837 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.grohe_sense.entities.grohe_blue_update_coordinator.GroheBlueUpdateCoordinator object at 0xffff55d17cb0>>
File "/config/custom_components/grohe_sense/entities/grohe_sense_notifications.py", line 50, in _handle_coordinator_update
Flo-Schilli commented 2 months ago

@rama1981 I added some more debug logging. Can you please try and send me the debug log.

rama1981 commented 2 months ago

@rama1981 I added some more debug logging. Can you please try and send me the debug log.

shure, should i paste the files in here? hope that´s fine for you. Thank you

2024-07-18 21:20:08.634 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration grohe_sense which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-07-18 21:20:17.551 DEBUG (MainThread) [custom_components.grohe_sense] Loading Grohe Sense
2024-07-18 21:20:17.551 INFO (MainThread) [custom_components.grohe_sense.api.ondus_api] Login to Ondus API
2024-07-18 21:20:17.551 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Login with username/password
2024-07-18 21:20:18.728 DEBUG (MainThread) [custom_components.grohe_sense.dto.grohe_device] Getting all available Grohe devices
2024-07-18 21:20:18.734 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get locations
2024-07-18 21:20:18.873 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get rooms for location 5X6XXX6
2024-07-18 21:20:18.945 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliances for location 5X6XXX6 and room 4X4X8X4
2024-07-18 21:20:19.157 DEBUG (MainThread) [custom_components.grohe_sense.dto.grohe_device] Found in location 5X6XXX6 and room 4X4X8X4 the following appliance: Appliance(id='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', installation_date='2022-07-16T14:47:22.000+02:00', name='My GROHE Blue Pro', serial_number='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', type=105, version='01.04.Z10.0300.0104', tdt='2024-07-18T20:54:03.000+02:00', timezone=120, config=Config(thresholds=None, measurement_period=None, action_on_major_leakage=None, action_on_minor_leakage=None, action_on_micro_leakage=None, monitor_frost_alert=None, monitor_lower_flow_limit=None, monitor_upper_flow_limit=None, monitor_lower_pressure_limit=None, monitor_upper_pressure_limit=None, monitor_lower_temperature_limit=None, monitor_upper_temperature_limit=None, monitor_major_leakage=None, monitor_minor_leakage=None, monitor_micro_leakage=None, monitor_system_error=None, monitor_btw_0_1_and_0_8_leakage=None, monitor_withdrawel_amount_limit_breach=None, detection_interval=None, impulse_ignore=None, time_ignore=None, pressure_tolerance_band=None, pressure_drop=None, detection_time=None, action_on_btw_0_1_and_0_8_leakage=None, action_on_withdrawel_amount_limit_breach=None, withdrawel_amount_limit=None, sprinkler_mode_active_monday=None, sprinkler_mode_active_tuesday=None, sprinkler_mode_active_wednesday=None, sprinkler_mode_active_thursday=None, sprinkler_mode_active_friday=None, sprinkler_mode_active_saturday=None, sprinkler_mode_active_sunday=None, sprinkler_mode_start_time=None, sprinkler_mode_stop_time=None, measurement_transmission_intervall=None, measurement_transmission_intervall_offset=None, co2_type=2, hose_length=270, co2_consumption_medium=48, co2_consumption_carbonated=65, guest_mode_active=False, auto_flush_active=False, flush_confirmed=False, f_parameter=1, l_parameter=3, flow_rate_still=19, flow_rate_medium=34, flow_rate_carbonated=17), role='owner', registration_complete=True, presharedkey='26KL4EYOYjFYedciDGTP2jlXFl3Wsv7gPnLWsiAq/2M=', params=Params(water_hardness=0, carbon_hardness=15, filter_type=6, variant=4, auto_flush_reminder_notif=True, consumables_low_notif=True, product_information_notif=True), error=Errors(errors_1=False, errors_2=False, errors_3=False, errors_4=False, errors_5=False, errors_6=False, errors_7=False, errors_8=False, errors_9=False, errors_10=False, errors_11=False, errors_12=False, errors_13=False, errors_14=False, errors_15=False, errors_16=False, error1_counter=2, error2_counter=1, error3_counter=13, error4_counter=0, error5_counter=0, error6_counter=0, error7_counter=0, error8_counter=0, error9_counter=0, error10_counter=0, error11_counter=0, error12_counter=39, error13_counter=0, error14_counter=0, error15_counter=0, error16_counter=0), state=State(start_time=1721330419, APPLIANCE_SUCCESSFUL_CONFIGURED=False, co2_empty=False, co2_20l_reached=False, filter_empty=False, filter_20l_reached=False, cleaning_mode_active=False, cleaning_needed=False, flush_confirmation_required=False, System_error_bitfield=0), calculate_average_since=None, pressure_notification=None, snooze_status=None, last_pressure_measurement=None, installer=None, command=None, notifications=None, status=None, data_latest=None)
2024-07-18 21:20:28.059 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Adding sensor entities from config entry <ConfigEntry entry_id=01J32DECJJS2YAFFNJ1BGZKMCV version=1 domain=grohe_sense title=Grohe Sense state=ConfigEntryState.SETUP_IN_PROGRESS unique_id=GroheSense>
2024-07-18 21:20:28.059 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.NOTIFICATION to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.059 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.CLEANING_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.059 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.DATE_OF_CLEANING to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.059 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.DATE_OF_CO2_REPLACEMENT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.DATE_OF_FILTER_REPLACEMENT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.FILTER_CHANGE_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.MAX_IDLE_TIME to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.OPEN_CLOSE_CYCLES_CARBONATED to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.OPEN_CLOSE_CYCLES_STILL to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.OPERATING_TIME to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.POWER_CUT_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.PUMP_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.PUMP_RUNNING_TIME to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_CO2 to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_FILTER to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.TIME_SINCE_LAST_WITHDRAWAL to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.060 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.TIME_SINCE_RESTART to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.061 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.WATER_RUNNING_TIME_CARBONATED to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.061 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.WATER_RUNNING_TIME_MEDIUM to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.061 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.WATER_RUNNING_TIME_STILL to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.061 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_FILTER_LITERS to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.061 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_CO2_LITERS to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff568bea20>
2024-07-18 21:20:28.061 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2024-07-18 21:20:28.751 DEBUG (MainThread) [custom_components.grohe_sense.valve] Adding sensor entities from config entry <ConfigEntry entry_id=01J32DECJJS2YAFFNJ1BGZKMCV version=1 domain=grohe_sense title=Grohe Sense state=ConfigEntryState.SETUP_IN_PROGRESS unique_id=GroheSense>
2024-07-18 21:20:28.792 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Got the following details for appliance XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: Appliance(id='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', installation_date='2022-07-16T14:47:22.000+02:00', name='My GROHE Blue Pro', serial_number='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', type=105, version='01.04.Z10.0300.0104', tdt='2024-07-18T20:54:03.000+02:00', timezone=120, config=Config(thresholds=None, measurement_period=None, action_on_major_leakage=None, action_on_minor_leakage=None, action_on_micro_leakage=None, monitor_frost_alert=None, monitor_lower_flow_limit=None, monitor_upper_flow_limit=None, monitor_lower_pressure_limit=None, monitor_upper_pressure_limit=None, monitor_lower_temperature_limit=None, monitor_upper_temperature_limit=None, monitor_major_leakage=None, monitor_minor_leakage=None, monitor_micro_leakage=None, monitor_system_error=None, monitor_btw_0_1_and_0_8_leakage=None, monitor_withdrawel_amount_limit_breach=None, detection_interval=None, impulse_ignore=None, time_ignore=None, pressure_tolerance_band=None, pressure_drop=None, detection_time=None, action_on_btw_0_1_and_0_8_leakage=None, action_on_withdrawel_amount_limit_breach=None, withdrawel_amount_limit=None, sprinkler_mode_active_monday=None, sprinkler_mode_active_tuesday=None, sprinkler_mode_active_wednesday=None, sprinkler_mode_active_thursday=None, sprinkler_mode_active_friday=None, sprinkler_mode_active_saturday=None, sprinkler_mode_active_sunday=None, sprinkler_mode_start_time=None, sprinkler_mode_stop_time=None, measurement_transmission_intervall=None, measurement_transmission_intervall_offset=None, co2_type=2, hose_length=270, co2_consumption_medium=48, co2_consumption_carbonated=65, guest_mode_active=False, auto_flush_active=False, flush_confirmed=False, f_parameter=1, l_parameter=3, flow_rate_still=19, flow_rate_medium=34, flow_rate_carbonated=17), role='owner', registration_complete=True, presharedkey='26KL4EYOYjFYedciDGTP2jlXFl3Wsv7gPnLWsiAq/2M=', params=Params(water_hardness=0, carbon_hardness=15, filter_type=6, variant=4, auto_flush_reminder_notif=True, consumables_low_notif=True, product_information_notif=True), error=Errors(errors_1=False, errors_2=False, errors_3=False, errors_4=False, errors_5=False, errors_6=False, errors_7=False, errors_8=False, errors_9=False, errors_10=False, errors_11=False, errors_12=False, errors_13=False, errors_14=False, errors_15=False, errors_16=False, error1_counter=2, error2_counter=1, error3_counter=13, error4_counter=0, error5_counter=0, error6_counter=0, error7_counter=0, error8_counter=0, error9_counter=0, error10_counter=0, error11_counter=0, error12_counter=39, error13_counter=0, error14_counter=0, error15_counter=0, error16_counter=0), state=State(start_time=1721330428, APPLIANCE_SUCCESSFUL_CONFIGURED=False, co2_empty=False, co2_20l_reached=False, filter_empty=False, filter_20l_reached=False, cleaning_mode_active=False, cleaning_needed=False, flush_confirmation_required=False, System_error_bitfield=0), calculate_average_since=None, pressure_notification=None, snooze_status=None, last_pressure_measurement=None, installer=None, command=None, notifications=[], status=[Status(type='update_available', value=0), Status(type='connection', value=1)], data_latest=DataLatest(measurement=Measurement(timestamp='2024-07-18T20:54:03.000+02:00', temperature=None, humidity=None, flow_rate=None, pressure=None, temperature_guard=None, battery=None, cleaning_count=2, date_of_cleaning='2024-06-30T21:13:21.000+02:00', date_of_co2_replacement='2024-07-18T20:54:03.000+02:00', date_of_filter_replacement='2024-06-30T21:41:22.000+02:00', filter_change_count=3, max_idle_time=10875, open_close_cycles_carbonated=2360, open_close_cycles_still=2488, operating_time=14873, power_cut_count=73, pump_count=2495, pump_running_time=351, remaining_co2=90, remaining_filter=99, time_since_last_withdrawal=3, time_since_restart=536887329, time_offset=120, water_running_time_carbonated=494, water_running_time_medium=10, water_running_time_still=221, remaining_filter_liters=3154, remaining_co2_liters=238), average_measurements=None))
2024-07-18 21:20:28.793 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'
2024-07-18 21:20:28.793 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.732 seconds (success: True)
2024-07-18 21:20:40.598 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2024-07-18 21:20:41.172 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Got the following details for appliance XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: Appliance(id='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', installation_date='2022-07-16T14:47:22.000+02:00', name='My GROHE Blue Pro', serial_number='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', type=105, version='01.04.Z10.0300.0104', tdt='2024-07-18T20:54:03.000+02:00', timezone=120, config=Config(thresholds=None, measurement_period=None, action_on_major_leakage=None, action_on_minor_leakage=None, action_on_micro_leakage=None, monitor_frost_alert=None, monitor_lower_flow_limit=None, monitor_upper_flow_limit=None, monitor_lower_pressure_limit=None, monitor_upper_pressure_limit=None, monitor_lower_temperature_limit=None, monitor_upper_temperature_limit=None, monitor_major_leakage=None, monitor_minor_leakage=None, monitor_micro_leakage=None, monitor_system_error=None, monitor_btw_0_1_and_0_8_leakage=None, monitor_withdrawel_amount_limit_breach=None, detection_interval=None, impulse_ignore=None, time_ignore=None, pressure_tolerance_band=None, pressure_drop=None, detection_time=None, action_on_btw_0_1_and_0_8_leakage=None, action_on_withdrawel_amount_limit_breach=None, withdrawel_amount_limit=None, sprinkler_mode_active_monday=None, sprinkler_mode_active_tuesday=None, sprinkler_mode_active_wednesday=None, sprinkler_mode_active_thursday=None, sprinkler_mode_active_friday=None, sprinkler_mode_active_saturday=None, sprinkler_mode_active_sunday=None, sprinkler_mode_start_time=None, sprinkler_mode_stop_time=None, measurement_transmission_intervall=None, measurement_transmission_intervall_offset=None, co2_type=2, hose_length=270, co2_consumption_medium=48, co2_consumption_carbonated=65, guest_mode_active=False, auto_flush_active=False, flush_confirmed=False, f_parameter=1, l_parameter=3, flow_rate_still=19, flow_rate_medium=34, flow_rate_carbonated=17), role='owner', registration_complete=True, presharedkey='26KL4EYOYjFYedciDGTP2jlXFl3Wsv7gPnLWsiAq/2M=', params=Params(water_hardness=0, carbon_hardness=15, filter_type=6, variant=4, auto_flush_reminder_notif=True, consumables_low_notif=True, product_information_notif=True), error=Errors(errors_1=False, errors_2=False, errors_3=False, errors_4=False, errors_5=False, errors_6=False, errors_7=False, errors_8=False, errors_9=False, errors_10=False, errors_11=False, errors_12=False, errors_13=False, errors_14=False, errors_15=False, errors_16=False, error1_counter=2, error2_counter=1, error3_counter=13, error4_counter=0, error5_counter=0, error6_counter=0, error7_counter=0, error8_counter=0, error9_counter=0, error10_counter=0, error11_counter=0, error12_counter=39, error13_counter=0, error14_counter=0, error15_counter=0, error16_counter=0), state=State(start_time=1721330440, APPLIANCE_SUCCESSFUL_CONFIGURED=False, co2_empty=False, co2_20l_reached=False, filter_empty=False, filter_20l_reached=False, cleaning_mode_active=False, cleaning_needed=False, flush_confirmation_required=False, System_error_bitfield=0), calculate_average_since=None, pressure_notification=None, snooze_status=None, last_pressure_measurement=None, installer=None, command=None, notifications=[], status=[Status(type='update_available', value=0), Status(type='connection', value=1)], data_latest=DataLatest(measurement=Measurement(timestamp='2024-07-18T20:54:03.000+02:00', temperature=None, humidity=None, flow_rate=None, pressure=None, temperature_guard=None, battery=None, cleaning_count=2, date_of_cleaning='2024-06-30T21:13:21.000+02:00', date_of_co2_replacement='2024-07-18T20:54:03.000+02:00', date_of_filter_replacement='2024-06-30T21:41:22.000+02:00', filter_change_count=3, max_idle_time=10875, open_close_cycles_carbonated=2360, open_close_cycles_still=2488, operating_time=14873, power_cut_count=73, pump_count=2495, pump_running_time=351, remaining_co2=90, remaining_filter=99, time_since_last_withdrawal=3, time_since_restart=536887329, time_offset=120, water_running_time_carbonated=494, water_running_time_medium=10, water_running_time_still=221, remaining_filter_liters=3154, remaining_co2_liters=238), average_measurements=None))
2024-07-18 21:20:41.172 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Error updating Grohe Blue data: 'Measurement' object has no attribute 'items'
2024-07-18 21:20:41.172 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.575 seconds (success: True)
2024-07-18 21:20:41.174 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.grohe_sense.entities.grohe_blue_update_coordinator.GroheBlueUpdateCoordinator object at 0xffff48280320>>
File "/config/custom_components/grohe_sense/entities/grohe_sense_notifications.py", line 50, in _handle_coordinator_update
Flo-Schilli commented 2 months ago

Hi @rama1981, thanks for providing the information. I just made a few minor changes and I hope it should fix the problem (hopefully no other one will appear). Can you please give it a try :-)

rama1981 commented 2 months ago

hi @Flo-Schilli don´t worry, I´m very happy that you give my request a try :-)

image

2024-07-18 22:16:57.851 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration grohe_sense which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-07-18 22:17:12.690 DEBUG (MainThread) [custom_components.grohe_sense] Loading Grohe Sense
2024-07-18 22:17:12.690 INFO (MainThread) [custom_components.grohe_sense.api.ondus_api] Login to Ondus API
2024-07-18 22:17:12.690 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Login with username/password
2024-07-18 22:17:14.576 DEBUG (MainThread) [custom_components.grohe_sense.dto.grohe_device] Getting all available Grohe devices
2024-07-18 22:17:14.576 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get locations
2024-07-18 22:17:14.724 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get rooms for location LocId
2024-07-18 22:17:14.803 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliances for location LocId and room RoomId
2024-07-18 22:17:14.985 DEBUG (MainThread) [custom_components.grohe_sense.dto.grohe_device] Found in location LocId and room RoomId the following appliance: Appliance(id='ThisIsMyId', installation_date='2022-07-16T14:47:22.000+02:00', name='My GROHE Blue Pro', serial_number='thisIsMySerial', type=105, version='01.04.Z10.0300.0104', tdt='2024-07-18T20:54:03.000+02:00', timezone=120, config=Config(thresholds=None, measurement_period=None, action_on_major_leakage=None, action_on_minor_leakage=None, action_on_micro_leakage=None, monitor_frost_alert=None, monitor_lower_flow_limit=None, monitor_upper_flow_limit=None, monitor_lower_pressure_limit=None, monitor_upper_pressure_limit=None, monitor_lower_temperature_limit=None, monitor_upper_temperature_limit=None, monitor_major_leakage=None, monitor_minor_leakage=None, monitor_micro_leakage=None, monitor_system_error=None, monitor_btw_0_1_and_0_8_leakage=None, monitor_withdrawel_amount_limit_breach=None, detection_interval=None, impulse_ignore=None, time_ignore=None, pressure_tolerance_band=None, pressure_drop=None, detection_time=None, action_on_btw_0_1_and_0_8_leakage=None, action_on_withdrawel_amount_limit_breach=None, withdrawel_amount_limit=None, sprinkler_mode_active_monday=None, sprinkler_mode_active_tuesday=None, sprinkler_mode_active_wednesday=None, sprinkler_mode_active_thursday=None, sprinkler_mode_active_friday=None, sprinkler_mode_active_saturday=None, sprinkler_mode_active_sunday=None, sprinkler_mode_start_time=None, sprinkler_mode_stop_time=None, measurement_transmission_intervall=None, measurement_transmission_intervall_offset=None, co2_type=2, hose_length=270, co2_consumption_medium=48, co2_consumption_carbonated=65, guest_mode_active=False, auto_flush_active=False, flush_confirmed=False, f_parameter=1, l_parameter=3, flow_rate_still=19, flow_rate_medium=34, flow_rate_carbonated=17), role='owner', registration_complete=True, presharedkey='thisIsMykey', params=Params(water_hardness=0, carbon_hardness=15, filter_type=6, variant=4, auto_flush_reminder_notif=True, consumables_low_notif=True, product_information_notif=True), error=Errors(errors_1=False, errors_2=False, errors_3=False, errors_4=False, errors_5=False, errors_6=False, errors_7=False, errors_8=False, errors_9=False, errors_10=False, errors_11=False, errors_12=False, errors_13=False, errors_14=False, errors_15=False, errors_16=False, error1_counter=2, error2_counter=1, error3_counter=13, error4_counter=0, error5_counter=0, error6_counter=0, error7_counter=0, error8_counter=0, error9_counter=0, error10_counter=0, error11_counter=0, error12_counter=39, error13_counter=0, error14_counter=0, error15_counter=0, error16_counter=0), state=State(start_time=1721333834, APPLIANCE_SUCCESSFUL_CONFIGURED=False, co2_empty=False, co2_20l_reached=False, filter_empty=False, filter_20l_reached=False, cleaning_mode_active=False, cleaning_needed=False, flush_confirmation_required=False, System_error_bitfield=0), calculate_average_since=None, pressure_notification=None, snooze_status=None, last_pressure_measurement=None, installer=None, command=None, notifications=None, status=None, data_latest=None)
2024-07-18 22:17:20.513 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Adding sensor entities from config entry <ConfigEntry entry_id=01J32DECJJS2YAFFNJ1BGZKMCV version=1 domain=grohe_sense title=Grohe Sense state=ConfigEntryState.SETUP_IN_PROGRESS unique_id=GroheSense>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.NOTIFICATION to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.CLEANING_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.DATE_OF_CLEANING to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.DATE_OF_CO2_REPLACEMENT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.DATE_OF_FILTER_REPLACEMENT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.FILTER_CHANGE_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.MAX_IDLE_TIME to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.OPEN_CLOSE_CYCLES_CARBONATED to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.OPEN_CLOSE_CYCLES_STILL to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.514 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.OPERATING_TIME to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.POWER_CUT_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.PUMP_COUNT to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.PUMP_RUNNING_TIME to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_CO2 to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_FILTER to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.TIME_SINCE_LAST_WITHDRAWAL to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.TIME_SINCE_RESTART to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.WATER_RUNNING_TIME_CARBONATED to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.WATER_RUNNING_TIME_MEDIUM to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.WATER_RUNNING_TIME_STILL to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_FILTER_LITERS to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.515 DEBUG (MainThread) [custom_components.grohe_sense.sensor] Attaching sensor SensorTypes.REMAINING_CO2_LITERS to device <custom_components.grohe_sense.dto.grohe_device.GroheDevice object at 0xffff51451f70>
2024-07-18 22:17:20.516 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance ThisIsMyId
2024-07-18 22:17:20.519 DEBUG (MainThread) [custom_components.grohe_sense.valve] Adding sensor entities from config entry <ConfigEntry entry_id=01J32DECJJS2YAFFNJ1BGZKMCV version=1 domain=grohe_sense title=Grohe Sense state=ConfigEntryState.SETUP_IN_PROGRESS unique_id=GroheSense>
2024-07-18 22:17:21.506 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Got the following details for appliance ThisIsMyId: Appliance(id='ThisIsMyId', installation_date='2022-07-16T14:47:22.000+02:00', name='My GROHE Blue Pro', serial_number='thisIsMySerial', type=105, version='01.04.Z10.0300.0104', tdt='2024-07-18T20:54:03.000+02:00', timezone=120, config=Config(thresholds=None, measurement_period=None, action_on_major_leakage=None, action_on_minor_leakage=None, action_on_micro_leakage=None, monitor_frost_alert=None, monitor_lower_flow_limit=None, monitor_upper_flow_limit=None, monitor_lower_pressure_limit=None, monitor_upper_pressure_limit=None, monitor_lower_temperature_limit=None, monitor_upper_temperature_limit=None, monitor_major_leakage=None, monitor_minor_leakage=None, monitor_micro_leakage=None, monitor_system_error=None, monitor_btw_0_1_and_0_8_leakage=None, monitor_withdrawel_amount_limit_breach=None, detection_interval=None, impulse_ignore=None, time_ignore=None, pressure_tolerance_band=None, pressure_drop=None, detection_time=None, action_on_btw_0_1_and_0_8_leakage=None, action_on_withdrawel_amount_limit_breach=None, withdrawel_amount_limit=None, sprinkler_mode_active_monday=None, sprinkler_mode_active_tuesday=None, sprinkler_mode_active_wednesday=None, sprinkler_mode_active_thursday=None, sprinkler_mode_active_friday=None, sprinkler_mode_active_saturday=None, sprinkler_mode_active_sunday=None, sprinkler_mode_start_time=None, sprinkler_mode_stop_time=None, measurement_transmission_intervall=None, measurement_transmission_intervall_offset=None, co2_type=2, hose_length=270, co2_consumption_medium=48, co2_consumption_carbonated=65, guest_mode_active=False, auto_flush_active=False, flush_confirmed=False, f_parameter=1, l_parameter=3, flow_rate_still=19, flow_rate_medium=34, flow_rate_carbonated=17), role='owner', registration_complete=True, presharedkey='thisIsMykey', params=Params(water_hardness=0, carbon_hardness=15, filter_type=6, variant=4, auto_flush_reminder_notif=True, consumables_low_notif=True, product_information_notif=True), error=Errors(errors_1=False, errors_2=False, errors_3=False, errors_4=False, errors_5=False, errors_6=False, errors_7=False, errors_8=False, errors_9=False, errors_10=False, errors_11=False, errors_12=False, errors_13=False, errors_14=False, errors_15=False, errors_16=False, error1_counter=2, error2_counter=1, error3_counter=13, error4_counter=0, error5_counter=0, error6_counter=0, error7_counter=0, error8_counter=0, error9_counter=0, error10_counter=0, error11_counter=0, error12_counter=39, error13_counter=0, error14_counter=0, error15_counter=0, error16_counter=0), state=State(start_time=1721333840, APPLIANCE_SUCCESSFUL_CONFIGURED=False, co2_empty=False, co2_20l_reached=False, filter_empty=False, filter_20l_reached=False, cleaning_mode_active=False, cleaning_needed=False, flush_confirmation_required=False, System_error_bitfield=0), calculate_average_since=None, pressure_notification=None, snooze_status=None, last_pressure_measurement=None, installer=None, command=None, notifications=[], status=[Status(type='connection', value=1), Status(type='update_available', value=0)], data_latest=DataLatest(measurement=MeasurementDto(timestamp='2024-07-18T20:54:03.000+02:00', temperature=None, humidity=None, flow_rate=None, pressure=None, temperature_guard=None, battery=None, cleaning_count=2, date_of_cleaning='2024-06-30T21:13:21.000+02:00', date_of_co2_replacement='2024-07-18T20:54:03.000+02:00', date_of_filter_replacement='2024-06-30T21:41:22.000+02:00', filter_change_count=3, max_idle_time=10875, open_close_cycles_carbonated=2360, open_close_cycles_still=2488, operating_time=14873, power_cut_count=73, pump_count=2495, pump_running_time=351, remaining_co2=90, remaining_filter=99, time_since_last_withdrawal=3, time_since_restart=536887329, time_offset=120, water_running_time_carbonated=494, water_running_time_medium=10, water_running_time_still=221, remaining_filter_liters=3154, remaining_co2_liters=238), average_measurements=None))
2024-07-18 22:17:21.509 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.994 seconds (success: True)
2024-07-18 22:17:31.634 DEBUG (MainThread) [custom_components.grohe_sense.api.ondus_api] Get appliance details for appliance ThisIsMyId
2024-07-18 22:17:32.341 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Got the following details for appliance ThisIsMyId: Appliance(id='ThisIsMyId', installation_date='2022-07-16T14:47:22.000+02:00', name='My GROHE Blue Pro', serial_number='thisIsMySerial', type=105, version='01.04.Z10.0300.0104', tdt='2024-07-18T20:54:03.000+02:00', timezone=120, config=Config(thresholds=None, measurement_period=None, action_on_major_leakage=None, action_on_minor_leakage=None, action_on_micro_leakage=None, monitor_frost_alert=None, monitor_lower_flow_limit=None, monitor_upper_flow_limit=None, monitor_lower_pressure_limit=None, monitor_upper_pressure_limit=None, monitor_lower_temperature_limit=None, monitor_upper_temperature_limit=None, monitor_major_leakage=None, monitor_minor_leakage=None, monitor_micro_leakage=None, monitor_system_error=None, monitor_btw_0_1_and_0_8_leakage=None, monitor_withdrawel_amount_limit_breach=None, detection_interval=None, impulse_ignore=None, time_ignore=None, pressure_tolerance_band=None, pressure_drop=None, detection_time=None, action_on_btw_0_1_and_0_8_leakage=None, action_on_withdrawel_amount_limit_breach=None, withdrawel_amount_limit=None, sprinkler_mode_active_monday=None, sprinkler_mode_active_tuesday=None, sprinkler_mode_active_wednesday=None, sprinkler_mode_active_thursday=None, sprinkler_mode_active_friday=None, sprinkler_mode_active_saturday=None, sprinkler_mode_active_sunday=None, sprinkler_mode_start_time=None, sprinkler_mode_stop_time=None, measurement_transmission_intervall=None, measurement_transmission_intervall_offset=None, co2_type=2, hose_length=270, co2_consumption_medium=48, co2_consumption_carbonated=65, guest_mode_active=False, auto_flush_active=False, flush_confirmed=False, f_parameter=1, l_parameter=3, flow_rate_still=19, flow_rate_medium=34, flow_rate_carbonated=17), role='owner', registration_complete=True, presharedkey='thisIsMykey', params=Params(water_hardness=0, carbon_hardness=15, filter_type=6, variant=4, auto_flush_reminder_notif=True, consumables_low_notif=True, product_information_notif=True), error=Errors(errors_1=False, errors_2=False, errors_3=False, errors_4=False, errors_5=False, errors_6=False, errors_7=False, errors_8=False, errors_9=False, errors_10=False, errors_11=False, errors_12=False, errors_13=False, errors_14=False, errors_15=False, errors_16=False, error1_counter=2, error2_counter=1, error3_counter=13, error4_counter=0, error5_counter=0, error6_counter=0, error7_counter=0, error8_counter=0, error9_counter=0, error10_counter=0, error11_counter=0, error12_counter=39, error13_counter=0, error14_counter=0, error15_counter=0, error16_counter=0), state=State(start_time=1721333851, APPLIANCE_SUCCESSFUL_CONFIGURED=False, co2_empty=False, co2_20l_reached=False, filter_empty=False, filter_20l_reached=False, cleaning_mode_active=False, cleaning_needed=False, flush_confirmation_required=False, System_error_bitfield=0), calculate_average_since=None, pressure_notification=None, snooze_status=None, last_pressure_measurement=None, installer=None, command=None, notifications=[], status=[Status(type='update_available', value=0), Status(type='connection', value=1)], data_latest=DataLatest(measurement=MeasurementDto(timestamp='2024-07-18T20:54:03.000+02:00', temperature=None, humidity=None, flow_rate=None, pressure=None, temperature_guard=None, battery=None, cleaning_count=2, date_of_cleaning='2024-06-30T21:13:21.000+02:00', date_of_co2_replacement='2024-07-18T20:54:03.000+02:00', date_of_filter_replacement='2024-06-30T21:41:22.000+02:00', filter_change_count=3, max_idle_time=10875, open_close_cycles_carbonated=2360, open_close_cycles_still=2488, operating_time=14873, power_cut_count=73, pump_count=2495, pump_running_time=351, remaining_co2=90, remaining_filter=99, time_since_last_withdrawal=3, time_since_restart=536887329, time_offset=120, water_running_time_carbonated=494, water_running_time_medium=10, water_running_time_still=221, remaining_filter_liters=3154, remaining_co2_liters=238), average_measurements=None))
2024-07-18 22:17:32.343 DEBUG (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Finished fetching Grohe Blue data in 0.708 seconds (success: True)
2024-07-18 22:17:32.343 ERROR (MainThread) [custom_components.grohe_sense.entities.grohe_blue_update_coordinator] Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <custom_components.grohe_sense.entities.grohe_blue_update_coordinator.GroheBlueUpdateCoordinator object at 0xffff4b7d8b90>>
File "/config/custom_components/grohe_sense/entities/grohe_sensor.py", line 52, in _handle_coordinator_update
ValueError: Invalid datetime: sensor.my_grohe_blue_pro_date_of_cleaning has timestamp device class but provides state 2024-06-30T21:13:21.000+02:00:<class 'str'> resulting in ''str' object has no attribute
Flo-Schilli commented 2 months ago

Can you please give it another try :-)

rama1981 commented 2 months ago

works like a charm. Amazing, thank you very much. Herzlichen Dank!

image

Flo-Schilli commented 2 months ago

Great to hear that it's now working like a charm :-) I'm gonna merge it into the main branch tomorrow morning so that you can take files from there.

Have a great evening

rama1981 commented 2 months ago

oh, it´s so beautiful, it takes a little while, that i had find your fork, and your clean up about the code. And aside from that i needed strenght to feel free to ask you if you could help me. It´s really impressive, how you did the trial and error and coding. Thank you very much. Have a great evening as well.

if you need a picture as well for the integration, maybe you can use this one. https://play-lh.googleusercontent.com/WkGcCB5W8AWvbLPmY8mDAWvcn-NUIXYd8aBaZjKlfS_n1NSj4vZCvqMYifeJRAcncyhx

Flo-Schilli commented 2 months ago

@rama1981 it's now on main and you should be able to take that branch now as source for your home assistant integration. Also thanks for reaching out and taking the time to go with me through the trail and error and helping to implement a new device type into the integration. Also a big thanks for the picture. I was planing on integrating this already but haven't found the time. But will do it in the future :)

rama1981 commented 2 months ago

@Flo-Schilli got the last branch and did a restart. Everything fine, thank you very much. I wish you a very nice weekend.