Skip to content

Example

Konstantin Weber edited this page Jan 18, 2025 · 1 revision
from grohe import GroheClient, GroheDevice
import asyncio

client = GroheClient("EMAIL", "PASSWORD")

async def main():
    await client.login()
    
    # ------------------------------- Get Devices ------------------------------ #
    devices = await GroheDevice.get_devices(client)

    for device in devices:
        print(f"Device name: {device.name}")
        print(f"Device type: {device.type}")

    device = devices[0]

    # ------------------------------- Get Dashboard ------------------------------ #
    # Get raw data from the Grohe API
    dashboard = await client.get_dashboard()
    print(f"Dashboard: {dashboard}")

    # ---------------------------------------------------------------------------- #
    #                                   Appliance                                  #
    # ---------------------------------------------------------------------------- #

    # --------------------------- Get Appliance Details -------------------------- #
    details = await client.get_appliance_details(device.location_id, device.room_id, device.appliance_id)
    print(f"Appliance details: {details}")

    # --------------------------- Get Appliance Command -------------------------- #
    commands = await client.get_appliance_command(device.location_id, device.room_id, device.appliance_id)
    print(f"Appliance commands: {commands}")

    # --------------------------- Get Appliance Status --------------------------- #
    status = await client.get_appliance_status(device.location_id, device.room_id, device.appliance_id)
    print(f"Appliance status: {status}")

    # ---------------------------- Get Appliance Info ---------------------------- #
    info = await client.get_appliance_info(device.location_id, device.room_id, device.appliance_id)
    print(f"Appliance info: {info}")

    # ------------------------ Get Appliance Notifications ----------------------- #
    notifications = await client.get_appliance_notifications(device.location_id, device.room_id, device.appliance_id)
    print(f"Appliance notifications: {notifications}")

    # ---------------------------------------------------------------------------- #
    #                                 Notifications                                #
    # ---------------------------------------------------------------------------- #

    # ------------------------- Get profile notifications ------------------------ #
    notifications = await client.get_profile_notifications()
    print(f"Notifications: {notifications}")

    # -------------------------- Set notification status ------------------------- #
    await client.update_profile_notification_state(notifications[0]["id"], True)


    # ---------------------------------------------------------------------------- #
    #                         Device Specific: Grohe Sense                         #
    # ---------------------------------------------------------------------------- #

    # ---------------------------- Get Appliance Data ---------------------------- #
    data = await client.get_appliance_data(device.location_id, device.room_id, device.appliance_id)
    print(f"Appliance data: {data}")

    # ------------------------- Start pressure management ------------------------ #
    await client.start_pressure_measurement(device.location_id, device.room_id, device.appliance_id)

    # ------------------------- Get pressure measurement ------------------------- #
    measurement = await client.get_appliance_pressure_measurement(device.location_id, device.room_id, device.appliance_id)
    print(f"Pressure measurement: {measurement}")

    # ------------------------------- Set snooze ------------------------------- #
    await client.set_snooze(device.location_id, device.room_id, device.appliance_id, 60)

    # ------------------------------ Disable Snooze ------------------------------ #
    await client.disable_snooze(device.location_id, device.room_id, device.appliance_id)


    # ---------------------------------------------------------------------------- #
    #                          Device Specific: Grohe Blue                         #
    # ---------------------------------------------------------------------------- #



asyncio.run(main())

Clone this wiki locally