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); }
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); }
/// <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); }
/// <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)); }