Bosch Cookit & Wash&Dry (Home Connect)

There is an Home Connect integration wich im using for my Coffee Machine, now i have a Cookit from bosch and this seems not to work right now. Would be nice to see this integrated too :slight_smile:

If you need any Information i will try to provide it :slight_smile:

Bosch Wash&Dry not working too :confused:

Here is another cookit user. It seems that the integration is authenticated without problems but i donโ€™t see any device in the integration.
the log states
[homeassistant.components.home_connect.api] Appliance type CookProcessor not implemented
:weary:

Here is another Cookit user. I added Cookit locally to my HA instance a few weeks ago - yesterday I tested a few more things and created a PR:

Unfortunately, the device can only be switched on/off and the current operational status (inactive/ready/run/pause/actionrequiered/โ€ฆ) can be read out. Programs (and thus hopefully also duration and remaining time) are to be enabled in the Cookit API in 2022.

2 Likes

you are my personal hero :slightly_smiling_face: iยดm hoping that bosch open its api even more, they are very costumer based at the moment, it takes a while for many things but they are doing what the community needs. many companies should hear more at their customers :slightly_smiling_face:

1 Like

Nice, i also tried to optimize the cookit integration but i dont know nothing about the git and pull thing. so here are my main parts of my โ€œintegrationโ€. Whitin an automatic programm you can see a litle progress but without a complete api it is only a workaround.

class DeviceWithCookprocessor(HomeConnectDevice):

    """Device with programs."""

    PROGRAMS = []

    def get_programs_available(self):

        """Get the available programs."""

        return self.PROGRAMS

    def get_program_switches(self):

        """Get a dictionary with info about program switches.

        There will be one switch for each program.

        """

        programs = self.get_programs_available()

        return [{ATTR_DEVICE: self, "program_name": p["name"]} for p in programs]

    def get_program_sensors(self):

        """Get a dictionary with info about program sensors.

        There will be one of the four types of sensors for each

        device.

        """

        sensors = {

            "Current Step Remaining Time": (TIME_SECONDS, "mdi:camera-timer", None, 1),

            "Current StepNumber": (TIME_SECONDS, "mdi:foot-print", None, 1),

            "Program Progress": (PERCENTAGE, "mdi:progress-clock", None, 1),

        }

        return [

            {

                ATTR_DEVICE: self,

                ATTR_DESC: k,

                ATTR_UNIT: unit,

                ATTR_KEY: "BSH.Common.Option.{}".format(k.replace(" ", "")),

                ATTR_ICON: icon,

                ATTR_DEVICE_CLASS: device_class,

                ATTR_SIGN: sign,

            }

            for k, (unit, icon, device_class, sign) in sensors.items()

        ]

class CookProcessor(

    DeviceWithOpState,

    DeviceWithCookprocessor,

):

    """CookProcessor class."""

    PROGRAMS = [

        {"name": "CookProcessor.Program.ManualProgram"},

        {"name": "BSH.Common.Program.GuidedProgram"},

        {"name": "BSH.Common.Program.AutomaticProgram"},

    ]

    def get_entity_info(self):

        """Get a dictionary with infos about the associated entities."""

        op_state_sensor = self.get_opstate_sensor()

        program_switches = self.get_program_switches()

        program_sensors = self.get_program_sensors()

        return {

            "switch": program_switches,

            "sensor": program_sensors + op_state_sensor,

        }

Sorry to ask, but If I want to try your implementation of the api, I just copy it to home connect/api.py ?