Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
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");
        }