Beispiel #1
0
        void insteon_DeviceChanged(object sender, DeviceChangedEventArgs args)
        {
            DeviceId        id        = args.State.Device.Address;
            DeviceReference reference = new DeviceReference(id.ToString(), PluginName);
            BasicDevice     device    = callbacks.Devices.FindDevice(reference);

            if (device != null)
            {
                InsteonDeviceData deviceData = (InsteonDeviceData)device.AutomationData;
                if (args.State.Device is DimmingLight)
                {
                    DimmingLight onOffDevice = (DimmingLight)args.State.Device;
                    FroggyPlugin.Devices.PercentLevelDevice basicDevice = (FroggyPlugin.Devices.PercentLevelDevice)callbacks.Devices.FindDevice(reference);

                    // Update the value, this will automatically propogate events everywhere (even back to this plugin).
                    basicDevice.Level = onOffDevice.OnLevel * 100 / 255;
                }
                else if (args.State.Device is OnOffDevice)
                {
                    OnOffDevice onOffDevice = (OnOffDevice)args.State.Device;
                    FroggyPlugin.Devices.OnOffDevice basicDevice = (FroggyPlugin.Devices.OnOffDevice)callbacks.Devices.FindDevice(reference);

                    basicDevice.On = onOffDevice.OnLevel != 0;
                }
            }
        }
Beispiel #2
0
        void insteon_DeviceAdded(object sender, DeviceAddedEventArgs args)
        {
            DeviceId        id        = args.Device.Address;
            DeviceReference reference = new DeviceReference(id.ToString(), PluginName);
            BasicDevice     device    = callbacks.Devices.FindDevice(reference);

            if (device != null)
            {
                InsteonDeviceData deviceData = (InsteonDeviceData)device.AutomationData;
            }
            else
            {
                InsteonDeviceData deviceData = new InsteonDeviceData(args.Device.Category, args.Device.Subcategory);
                if (args.Device is DimmingLight)
                {
                    DimmingLight dimmer = (DimmingLight)args.Device;
                    FroggyPlugin.Devices.PercentLevelDevice basic = new FroggyPlugin.Devices.PercentLevelDevice();
                    basic.Address        = reference;
                    basic.Name           = args.Device.DeviceName;
                    basic.Level          = dimmer.OnLevel * 100 / 255;
                    basic.AutomationData = deviceData;
                    callbacks.Devices.AddDevice(basic);
                }
                else if (args.Device is OnOffDevice)
                {
                    OnOffDevice onOffDevice = (OnOffDevice)args.Device;
                    FroggyPlugin.Devices.OnOffDevice basic = new FroggyPlugin.Devices.OnOffDevice();
                    basic.Address        = reference;
                    basic.Name           = args.Device.DeviceName;
                    basic.On             = onOffDevice.OnLevel != 0;
                    basic.AutomationData = deviceData;
                    callbacks.Devices.AddDevice(basic);
                }
            }
        }
Beispiel #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            DeviceReference deviceReference = db.deviceReference.Find(id);

            db.deviceReference.Remove(deviceReference);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #4
0
 public ActionResult Edit([Bind(Include = "DeviceReferenceId,DeviceModel,DeviceBrand,DeviceColor,DeviceCapacity,DeviceBattery,DeviceDescription")] DeviceReference deviceReference)
 {
     if (ModelState.IsValid)
     {
         db.Entry(deviceReference).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(deviceReference));
 }
Beispiel #5
0
        public ActionResult Create([Bind(Include = "DeviceReferenceId,DeviceModel,DeviceBrand,DeviceColor,DeviceCapacity,DeviceBattery,DeviceDescription")] DeviceReference deviceReference)
        {
            if (ModelState.IsValid)
            {
                db.deviceReference.Add(deviceReference);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(deviceReference));
        }
Beispiel #6
0
        /// <summary>
        /// Finds the device info off the insteon thingy in the basic system.
        /// </summary>
        /// <param name="id">The device id to lookup</param>
        /// <returns>The category, or null if none known</returns>
        public Tuple <byte, byte> GetDeviceCategory(DeviceId id)
        {
            DeviceReference reference = new DeviceReference(id.ToString(), PluginName);
            BasicDevice     device    = callbacks.Devices.FindDevice(reference);

            if (device != null)
            {
                InsteonDeviceData deviceData = (InsteonDeviceData)device.AutomationData;
                return(Tuple.Create(deviceData.Category, deviceData.SubCategory));
            }
            return(null);
        }
        /// <summary>
        /// Finds the device in system.
        /// </summary>
        /// <param name="device">The device to find</param>
        public BasicDevice FindDevice(DeviceReference reference)
        {
            IList <BasicDevice> items = db.Query <BasicDevice>(delegate(BasicDevice input) { return(input.Address.Equals(reference)); });

            if (items.Count > 0)
            {
                return(items.First());
            }
            else
            {
                return(null);
            }
        }
Beispiel #8
0
        // GET: DeviceReference/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DeviceReference deviceReference = db.deviceReference.Find(id);

            if (deviceReference == null)
            {
                return(HttpNotFound());
            }
            return(View(deviceReference));
        }