private void ShowAlarms(string args) { IReadOnlyList <Alarm> alarms = SomneoApiClient.GetAlarms(); if (alarms.Count == 0) { Console.WriteLine("0/16 alarms set."); return; } StringBuilder consoleMessageBuilder = new StringBuilder(); consoleMessageBuilder.Append($@"{alarms.Count}/16 alarm(s) set:"); foreach (Alarm alarm in alarms) { consoleMessageBuilder.AppendFormat(@" #{0} {1} {2:00}:{3:00}{4} (PowerWake: {5})", alarm.Position, alarm.Enabled ? "ON: " : "OFF:", alarm.Hour, alarm.Minute, alarm.RepeatDays.Count > 0 ? " " + string.Join(",", alarm.RepeatDays.Select(d => string.Concat(d.ToString().Take(3)))) : string.Empty, alarm.PowerWakeEnabled ? $"{alarm.PowerWakeHour.Value:00}:{alarm.PowerWakeMinute.Value:00}" : "off"); } Console.WriteLine(consoleMessageBuilder); }
private void ToggleAlarm(string args) { if (!string.IsNullOrEmpty(args)) { string[] argsArray = args.Split(new[] { ' ' }, 2); if (argsArray.Length == 2 && int.TryParse(argsArray[0], out int position) && position >= 1 && position <= 16) { switch (argsArray[1].ToLower()) { case "on": SomneoApiClient.ToggleAlarm(position, true); Console.WriteLine($"Alarm #{position} enabled."); return; case "off": SomneoApiClient.ToggleAlarm(position, true); Console.WriteLine($"Alarm #{position} disabled."); return; } } } Console.WriteLine("Specify a position between 1 and 16, followed by \"on\" or \"off\"."); }
private void SetPlayerVolume(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int volume) && volume >= 1 && volume <= 25) { SomneoApiClient.SetPlayerVolume(volume); Console.WriteLine($"Audio player volume set to {volume}/25."); return; } Console.WriteLine("Specify a volume between 1 and 25."); }
private void SetDisplayLevel(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int level) && level >= 1 && level <= 6) { SomneoApiClient.SetDisplayLevel(level); Console.WriteLine($"Display brightness level set to {level}/6."); return; } Console.WriteLine("Specify a light level between 1 and 6."); }
private void RemoveAlarm(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int position) && position >= 1 && position <= 16) { SomneoApiClient.RemoveAlarm(position); Console.WriteLine($"Alarm #{position} removed."); return; } Console.WriteLine("Specify a position between 1 and 16."); }
private void PlayWakeUpSound(string args) { if (!string.IsNullOrEmpty(args) && Enum.TryParse(args, out WakeUpSound wakeUpSound)) { SomneoApiClient.PlayWakeUpSound(wakeUpSound); Console.WriteLine($"Playing wake-up sound \"{EnumHelper.GetDescription(wakeUpSound)}\"."); return; } Console.WriteLine("The wake-up sound number should be between 1 and 8."); }
private void SetSnoozeTime(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int minutes) && minutes >= 1 && minutes <= 20) { SomneoApiClient.SetSnoozeTime(minutes); Console.WriteLine($"Snooze set to {minutes} minute(s)."); return; } Console.WriteLine("Specify snooze minutes between 1 and 20."); }
private void SetLightLevel(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int level) && level >= 1 && level <= 25) { SomneoApiClient.SetLightLevel(level); Console.WriteLine($"Light level set to {level}/25."); return; } Console.WriteLine("Specify a light level between 1 and 25."); }
private void EnableFMRadioPreset(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int preset) && preset >= 1 && preset <= 5) { SomneoApiClient.EnableFMRadioPreset(preset); Console.WriteLine($"FM radio enabled for preset {preset}/5."); return; } Console.WriteLine("The preset should be between 1 and 5."); }
static void Main() { IConfiguration config = new ConfigurationBuilder() .AddJsonFile($"appsettings.json", true, true) .AddEnvironmentVariables() .Build(); string somneoHost = config.GetValue <string>("SomneoHost"); ISomneoApiClient somneoApiClient = new SomneoApiClient(somneoHost); TestService testService = new TestService(somneoApiClient); testService.Run(); }
private void ShowFMRadioState(string args) { FMRadioState fmRadioState = SomneoApiClient.GetFMRadioState(); if (fmRadioState == null) { Console.WriteLine("Unable to retrieve the FM radio state."); return; } Console.WriteLine( $@"FM radio state: Frequency: {fmRadioState.Frequency:0.00} FM Preset: {fmRadioState.Preset}/5"); }
private void ShowDisplayState(string args) { DisplayState displayState = SomneoApiClient.GetDisplayState(); if (displayState == null) { Console.WriteLine("Unable to retrieve the display state."); return; } Console.WriteLine( $@"Display state: Permanent display enabled: {(displayState.Permanent ? "Yes" : "No")} Brightness level: {displayState.Brightness}/6"); }
public void ShowLocale(string args) { Locale locale = SomneoApiClient.GetLocale(); if (locale == null) { Console.WriteLine("Unable to retrieve the locale."); return; } Console.WriteLine( $@"Locale: Country: {locale.Country} Timezone: {locale.Timezone}"); }
public void ShowTime(string args) { Time time = SomneoApiClient.GetTime(); if (time == null) { Console.WriteLine("Unable to retrieve the time."); return; } Console.WriteLine( $@"Time: Date/time: {time.DateTime} Timezone offset: {time.TimezoneOffset} DST: {(time.IsDSTApplied ? "Yes" : "No")} (offset = {time.DSTOffset}) Next DST change: {time.DSTChangeOver}"); }
private void ShowLightState(string args) { LightState lightState = SomneoApiClient.GetLightState(); if (lightState == null) { Console.WriteLine("Unable to retrieve the light state."); return; } Console.WriteLine( $@"Light state: Normal light enabled: {(lightState.LightEnabled ? "Yes" : "No")} Light level: {lightState.LightLevel}/25 Night light enabled: {(lightState.NightLightEnabled ? "Yes" : "No")} Sunrise preview enabled: {(lightState.SunrisePreviewEnabled ? "Yes" : "No")}"); }
private void ShowSensorData(string args) { SensorData sensorData = SomneoApiClient.GetSensorData(); if (sensorData == null) { Console.WriteLine("Unable to retrieve the sensor data."); return; } Console.WriteLine( $@"Sensor data: Temperature: {sensorData.CurrentTemperature} °C (avg: {sensorData.AverageTemperature} °C) Light: {sensorData.CurrentLight} lux (avg: {sensorData.AverageLight} lux) Sound: {sensorData.CurrentSound} dB (avg: {sensorData.AverageSound} dB) Humidity: {sensorData.CurrentHumidity} % (avg: {sensorData.AverageHumidity} %)"); }
private void ShowFMRadioPresets(string args) { FMRadioPresets fmRadioPresets = SomneoApiClient.GetFMRadioPresets(); if (fmRadioPresets == null) { Console.WriteLine("Unable to retrieve the FM radio presets."); return; } Console.WriteLine( $@"FM radio presets: 1: {fmRadioPresets.Preset1:0.00} FM 2: {fmRadioPresets.Preset2:0.00} FM 3: {fmRadioPresets.Preset3:0.00} FM 4: {fmRadioPresets.Preset4:0.00} FM 5: {fmRadioPresets.Preset5:0.00} FM"); }
private void ToggleNightLight(string args) { switch (args?.ToLower()) { case "on": SomneoApiClient.ToggleNightLight(true); Console.WriteLine("Night light enabled."); break; case "off": SomneoApiClient.ToggleNightLight(false); Console.WriteLine("Night light disabled."); break; default: Console.WriteLine("Specify \"on\" or \"off\"."); break; } }
private void ToggleSunrisePreview(string args) { switch (args?.ToLower()) { case "on": SomneoApiClient.ToggleSunrisePreview(true); Console.WriteLine("Sunrise preview enabled."); break; case "off": SomneoApiClient.ToggleSunrisePreview(true); Console.WriteLine("Sunrise preview disabled."); break; default: Console.WriteLine("Specify \"on\" or \"off\"."); break; } }
public void ShowDeviceDetails(string args) { DeviceDetails deviceDetails = SomneoApiClient.GetDeviceDetails(); if (deviceDetails == null) { Console.WriteLine("Unable to retrieve the device details."); return; } Console.WriteLine( $@"Device details: Name: {deviceDetails.Name} Model: {deviceDetails.Model} Series: {deviceDetails.Series} Product range: {deviceDetails.ProductRange} Serial number: {deviceDetails.Serial} Product ID: {deviceDetails.ProductId}"); }
public void ShowWifiDetails(string args) { WifiDetails wifiDetails = SomneoApiClient.GetWifiDetails(); if (wifiDetails == null) { Console.WriteLine("Unable to retrieve the wifi details."); return; } Console.WriteLine( $@"Wifi details: SSID: {wifiDetails.SSID} Protection: {wifiDetails.Protection} IP address: {wifiDetails.IPAddress} Netmask: {wifiDetails.Netmask} Gateway IP: {wifiDetails.Gateway} MAC address: {wifiDetails.MACAddress}"); }
private void TogglePermanentDisplay(string args) { switch (args?.ToLower()) { case "on": SomneoApiClient.TogglePermanentDisplay(true); Console.WriteLine("Permanent display enabled."); break; case "off": SomneoApiClient.TogglePermanentDisplay(false); Console.WriteLine("Permanent display disabled."); break; default: Console.WriteLine("Specify \"on\" or \"off\"."); break; } }
private void SeekFMRadioStation(string args) { switch (args?.ToLower()) { case "up": SomneoApiClient.SeekFMRadioStation(RadioSeekDirection.Up); Console.WriteLine("Seeking for a new FM radio station in forward direction."); break; case "down": SomneoApiClient.SeekFMRadioStation(RadioSeekDirection.Down); Console.WriteLine("Seeking for a new FM radio station in backward direction."); break; default: Console.WriteLine("Specify \"up\" or \"down\"."); break; } }
private void SetFMRadioPreset(string args) { if (!string.IsNullOrEmpty(args)) { string[] argsArray = args.Split(new[] { ' ' }, 2); if (argsArray.Length == 2 && int.TryParse(argsArray[0], out int position) && position >= 1 && position <= 5 && float.TryParse(argsArray[1], out float frequency) && frequency >= 87.50 && frequency <= 177.99) { SomneoApiClient.SetFMRadioPreset(position, frequency); Console.WriteLine($"Preset {position} set to {frequency:0.00} FM."); return; } } Console.WriteLine("Specify a position between 1 and 5, followed by a frequency between 87.50 and 107.99."); }
private void ShowPlayerState(string args) { PlayerState playerState = SomneoApiClient.GetPlayerState(); if (playerState == null) { Console.WriteLine("Unable to retrieve the audio player state."); return; } string channelOrPresetState = null; switch (playerState.Device) { case SoundDeviceType.FMRadio: int?fmRadioPreset = playerState.GetFMRadioPreset(); if (fmRadioPreset.HasValue) { channelOrPresetState = $"{Environment.NewLine} FM-radio preset: {fmRadioPreset.Value}"; } break; case SoundDeviceType.WakeUpSound: WakeUpSound?wakeUpSound = playerState.GetWakeUpSound(); if (wakeUpSound.HasValue) { channelOrPresetState = $"{Environment.NewLine} Wake-up sound: {EnumHelper.GetDescription(wakeUpSound.Value)}"; } break; } Console.WriteLine( $@"Audio player state: Enabled: {(playerState.Enabled ? "Yes" : "No")} Volume: {playerState.Volume}/25 Device: {EnumHelper.GetDescription(playerState.Device)}{channelOrPresetState}"); }
public void ShowFirmwareDetails(string args) { FirmwareDetails firmwareDetails = SomneoApiClient.GetFirmwareDetails(); if (firmwareDetails == null) { Console.WriteLine("Unable to retrieve the firmware details."); return; } StringBuilder consoleMessageBuilder = new StringBuilder(); consoleMessageBuilder.Append( $@"Firmware details: Name: {firmwareDetails.Name} Version: {firmwareDetails.Version} State: {firmwareDetails.State}"); if (!firmwareDetails.IsIdle) { consoleMessageBuilder.Append( $@" Update progress: {firmwareDetails.Progress} Status message: {firmwareDetails.StatusMessage}"); } if (firmwareDetails.CanUpgrade) { consoleMessageBuilder.Append( $@" Available upgrade: {firmwareDetails.Upgrade} Mandatory: {(firmwareDetails.Mandatory ? "Yes" : "No")}"); } Console.WriteLine(consoleMessageBuilder); }
private void ShowAlarmSettings(string args) { if (!string.IsNullOrEmpty(args) && int.TryParse(args, out int position) && position >= 1 && position <= 16) { AlarmSettings alarmSettings = SomneoApiClient.GetAlarmSettings(position); if (alarmSettings == null) { Console.WriteLine($"No alarm set for position #{position}."); return; } string daysState = null; if (alarmSettings.RepeatDays.Count > 0) { daysState = $"{Environment.NewLine} Days: {string.Join(",", alarmSettings.RepeatDays.Select(d => string.Concat(d.ToString().Take(3))))}"; } string channelOrPresetState = null; switch (alarmSettings.Device) { case SoundDeviceType.FMRadio: int?fmRadioPreset = alarmSettings.GetFMRadioPreset(); if (fmRadioPreset.HasValue) { channelOrPresetState = $"{Environment.NewLine} FM-radio preset: {fmRadioPreset.Value}"; } break; case SoundDeviceType.WakeUpSound: WakeUpSound?wakeUpSound = alarmSettings.GetWakeUpSound(); if (wakeUpSound.HasValue) { channelOrPresetState = $"{Environment.NewLine} Wake-up sound: {EnumHelper.GetDescription(wakeUpSound.Value)}"; } break; } string sunriseState = null; if (alarmSettings.SunriseType != SunriseType.NoLight) { sunriseState = $" (intensity: {alarmSettings.SunriseIntensity}/25, duration: {alarmSettings.SunriseDuration}/40 minutes)"; } string soundVolumeState = null; if (alarmSettings.Device != SoundDeviceType.None) { soundVolumeState = $" (volume: {alarmSettings.Volume}/25)"; } Console.WriteLine( $@"Alarm #{alarmSettings.Position} settings: Enabled: {(alarmSettings.Enabled ? "Yes" : "No")} Time: {alarmSettings.Hour:00}:{alarmSettings.Minute:00}{daysState} PowerWake: {(alarmSettings.PowerWakeEnabled ? $"{alarmSettings.PowerWakeHour.Value:00}:{alarmSettings.PowerWakeMinute.Value:00}" : "off")} Sunrise: {EnumHelper.GetDescription(alarmSettings.SunriseType)}{sunriseState} Sound device: {EnumHelper.GetDescription(alarmSettings.Device)}{soundVolumeState}{channelOrPresetState}"); return; } Console.WriteLine("Specify a position between 1 and 16."); }
private void EnableAUX(string args) { SomneoApiClient.EnableAUX(); Console.WriteLine("Enabled the auxiliary input device."); }
private void DisablePlayer(string args) { SomneoApiClient.DisablePlayer(); Console.WriteLine("Audio player disabled."); }
private void EnableFMRadio(string args) { SomneoApiClient.EnableFMRadio(); Console.WriteLine("FM radio enabled for the current preset."); }