public ApplianceCommand getApplianceCommand(SenseGuardAppliance appliance)
        {
            ApiResponse <ApplianceCommand> applianceApiResponse = getApiClient()
                                                                  .get <ApplianceCommand>(String.Format(getApiClient().apiPath() + APPLIANCE_COMMAND_URL_TEMPLATE,
                                                                                                        appliance.getRoom().getLocation().getId(),
                                                                                                        appliance.getRoom().getId(),
                                                                                                        appliance.getApplianceId()
                                                                                                        ));

            if (applianceApiResponse.getStatusCode() != 200)
            {
                return(null);
            }

            ApplianceCommand applianceDataOptional = applianceApiResponse.getContent();

            if (applianceDataOptional != null)
            {
                ApplianceCommand applianceData = applianceDataOptional;
                applianceData.setAppliance(appliance);
                applianceDataOptional = applianceData;
            }

            return(applianceDataOptional);
        }
Example #2
0
        static void Main(string[] args)
        {
            string userName = ""; // The username of the GROHE account
            string password = ""; // The password of the GROHE account

            OndusService ondusService = OndusService.loginWebForm(userName, password);

            //string refresh = ondusService.refreshAuthorization();
            //DateTime expireDate = ondusService.authorizationExpiresAt();

            List <Location> locationList = ondusService.getLocations();

            foreach (Location currentLocation in locationList)
            {
                Console.WriteLine(currentLocation);

                List <Room> roomList = ondusService.getRooms(currentLocation);

                foreach (Room currentRoom in roomList)
                {
                    Console.WriteLine(currentRoom);

                    List <BaseAppliance> applianceList = ondusService.getAppliances(currentRoom);

                    foreach (BaseAppliance currentAppliance in applianceList)
                    {
                        switch (currentAppliance.getType())
                        {
                        case SenseAppliance.TYPE:
                            SenseAppliance senseAppliance = ondusService.getAppliance(currentRoom, currentAppliance.getApplianceId()) as SenseAppliance;

                            Console.WriteLine(senseAppliance);

                            break;

                        case SenseGuardAppliance.TYPE:
                            SenseGuardAppliance senseGuardAppliance = ondusService.getAppliance(currentRoom, currentAppliance.getApplianceId()) as SenseGuardAppliance;

                            Console.WriteLine(senseGuardAppliance);

                            ApplianceCommand applianceCommand = ondusService.getApplianceCommand(senseGuardAppliance);

                            Console.WriteLine(applianceCommand);

                            //ondusService.setValveOpen(senseGuardAppliance, false);
                            //ondusService.setValveOpen(senseGuardAppliance, true);

                            break;
                        }

                        ApplianceStatus applianceStatus = ondusService.getApplianceStatus(currentAppliance);
                        Console.WriteLine(applianceStatus);

                        BaseApplianceData baseApplianceData = ondusService.getApplianceData(currentAppliance, DateTime.Now - TimeSpan.FromDays(1), DateTime.Now);
                        Console.WriteLine(baseApplianceData);
                    }
                }
            }
        }
 public void putApplianceCommand(SenseGuardAppliance appliance, ApplianceCommand command)
 {
     getApiClient()
     .post <ApplianceCommand>(String.Format(getApiClient().apiPath() + APPLIANCE_COMMAND_URL_TEMPLATE,
                                            appliance.getRoom().getLocation().getId(),
                                            appliance.getRoom().getId(),
                                            appliance.getApplianceId()),
                              command);
 }
Example #4
0
        /// <summary>
        /// Changes the valve state of the appliance. The call to this function is blocking until the API acknowledges the
        /// execution or failure of the command.
        /// </summary>
        /// <param name="appliance">The appliance to change the valve state of</param>
        /// <param name="open">The requested valve state</param>
        public void setValveOpen(SenseGuardAppliance appliance, bool open)
        {
            ApplianceAction action = apiClient.getAction <ApplianceAction>();

            ApplianceCommand applianceCommandOptional = getApplianceCommand(appliance);

            if (applianceCommandOptional == null)
            {
                return;
            }

            ApplianceCommand applianceCommand = applianceCommandOptional;

            ApplianceCommand.Command command = applianceCommand.getCommand();
            command.setValveOpen(open);
            applianceCommand.setCommand(command);

            action.putApplianceCommand(appliance, applianceCommand);
        }
Example #5
0
        /// <summary>
        /// Retrieves the current state of the appliances {@link ApplianceCommand} saved for the appliance in the
        /// GROHE account. This can be used to inspect the current state of the appliance and activated/queued commands.
        /// </summary>
        /// <param name="appliance">The SenseGuardAppliance to retrieve command information from</param>
        /// <returns>The ApplianceCommand of the appliance</returns>
        public ApplianceCommand getApplianceCommand(SenseGuardAppliance appliance)
        {
            ApplianceAction action = apiClient.getAction <ApplianceAction>();

            return(action.getApplianceCommand(appliance));
        }