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;
            }
        }
示例#2
0
		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";
		}
		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;
		}