public object SaveAlarm(HttpRequestParams request) { var id = request.GetGuid("id"); var name = request.GetString("name"); var hours = request.GetRequiredInt32("hours"); var minutes = request.GetRequiredInt32("minutes"); var scriptId = request.GetGuid("scriptId"); using (var session = Context.OpenSession()) { var alarmTime = id.HasValue ? session.Get <AlarmTime>(id.Value) : new AlarmTime { Id = Guid.NewGuid() }; var script = scriptId.HasValue ? session.Load <UserScript>(scriptId.Value) : null; alarmTime.Name = name; alarmTime.Hours = hours; alarmTime.Minutes = minutes; alarmTime.UserScript = script; alarmTime.Enabled = true; session.Save(alarmTime); session.Flush(); } Context.GetPlugin <AlarmClockPlugin>().ReloadTimes(); return(null); }
public object AddSensor(HttpRequestParams request) { var displayName = request.GetRequiredString("displayName"); var channel = request.GetRequiredInt32("channel"); var showHumidity = request.GetRequiredBool("showHumidity"); Logger.Debug("add sensor: channel={0}; displayName={1}; showHumidity={2}", channel, displayName, showHumidity); using (var session = Context.OpenSession()) { var sensor = new TemperatureSensor { Id = Guid.NewGuid(), Channel = channel, DisplayName = displayName, ShowHumidity = showHumidity, Timestamp = DateTime.Now }; session.Save(sensor); session.Flush(); return(sensor.Id); } }
public object DispatchApiQuery(HttpRequestParams request) { int channel = request.GetRequiredInt32("ch"); int cmd = request.GetRequiredInt32("cmd"); switch (cmd) { // Set command - Установка яркости (формат в процентах и через аргументы d0, d1, d2) case CMD_SET_BRIGHTNESS: Logger.Debug("nooAPI Set command received, channel = {0}", channel); int?brightness = request.GetInt32("br"); if (brightness != null) { int value = (155 * brightness.Value / 100); Context.GetPlugin <NooLitePlugin>().SendCommand(CMD_SET_BRIGHTNESS, channel, value); } else { int format = request.GetRequiredInt32("fmt"); int d0 = request.GetRequiredInt32("d0"); switch (format) { case 1: Context.GetPlugin <NooLitePlugin>().SendCommand(CMD_SET_BRIGHTNESS, channel, d0); break; case 3: int d1 = request.GetRequiredInt32("d1"); int d2 = request.GetRequiredInt32("d2"); Context.GetPlugin <NooLitePlugin>().SendLedCommand(CMD_SET_BRIGHTNESS, channel, d0, d1, d2); break; default: string message = string.Format("Insupported FMT value {0}", format); throw new NullReferenceException(message); } } break; default: Logger.Debug("nooAPI {0} command received, channel = {1}", cmd, channel); Context.GetPlugin <NooLitePlugin>().SendCommand(cmd, channel, 0); break; } return("OK"); }