void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
        {
            using (zvsEntities2 db = new zvsEntities2(zvsEntityControl.GetzvsConnectionString))
            {
                device_values dv = db.device_values.FirstOrDefault(v => v.id == args.device_value_id);
                if (dv != null)
                {
                    string UpdateString = DeviceToString(dv);
                    if (!string.IsNullOrEmpty(UpdateString))
                    {
                        BroadcastMessage("UPDATE~" + DeviceToString(dv) + Environment.NewLine);
                        BroadcastMessage("ENDLIST" + Environment.NewLine);
                    }

                    string device_name = string.Empty;
                    device_name = dv.device.friendly_name;
                    BroadcastMessage("MSG~" + "'" + device_name + "' " + dv.label_name + " changed to " + dv.value + Environment.NewLine);
                }
            }
        }
Esempio n. 2
0
        void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
        {
            if (IsReady)
            {
                using (zvsEntities2 db = new zvsEntities2(zvsEntityControl.GetzvsConnectionString))
                {
                    device_values dv = db.device_values.FirstOrDefault(v => v.id == args.device_value_id);
                    if (dv != null)
                    {

                        string[] deviceTypeValuespairs = GetSettingValue("NOTIFICATIONS").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                        foreach (string deviceTypeValuespair in deviceTypeValuespairs)
                        {
                            string thisEvent = dv.device.device_types.name + ":" + dv.label_name;

                            if (thisEvent.Equals(deviceTypeValuespair.Trim()))
                            {
                                Notification notification = new Notification("zVirtualScenes", NOTIFY_DEVICE_VALUE_CHANGE, "0", dv.device.friendly_name + " " + dv.label_name, "Changed to " + dv.value + " from " + args.previousValue + ".");
                                GrowlConnector.Notify(notification);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 3
0
 void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
 {
 }
        private string DeviceToString(device_values dv)
        {
            //Only send applicable updated to LightSwitch
            if (dv.label_name == "Basic")
            {
                int level = 0;
                int.TryParse(dv.value, out level);

                switch (dv.device.device_types.name)
                {
                    case "SWITCH":
                        return dv.device.friendly_name + "~" + dv.device.id + "~" + (level > 0 ? "255" : "0") + "~" + "BinarySwitch";
                    case "DIMMER":
                        return dv.device.friendly_name + "~" + dv.device.id + "~" + level + "~" + "MultiLevelSwitch";
                    case "SENSOR":
                        return dv.device.friendly_name + "~" + dv.device.id + "~" + level + "~" + "Sensor";
                }
            }
            else if (dv.label_name == "Temperature")
            {
                if (dv.device.device_types.name.Equals("THERMOSTAT"))
                {
                    int temp = 0;
                    int.TryParse(dv.value, out temp);
                    return dv.device.friendly_name + "~" + dv.device.id + "~" + temp + "~" + "Thermostat";
                }
            }
            return string.Empty;
        }
Esempio n. 5
0
        public void DefineOrUpdateDeviceValue(device_values dv, bool IgnoreValueChange = false)
        {
            using (zvsEntities2 db = new zvsEntities2(zvsEntityControl.GetzvsConnectionString))
            {
                device d = db.devices.FirstOrDefault(o => o.id == dv.device_id);
                if (d != null)
                {
                    device_values existing_dv = d.device_values.FirstOrDefault(o => o.value_id == dv.value_id);
                    string prev_value = string.Empty;

                    if (existing_dv == null)
                    {
                        //NEW VALUE
                        d.device_values.Add(dv);
                        db.SaveChanges();

                        //Call Event
                        dv.DeviceValueAdded(new System.EventArgs());
                    }
                    else
                    {

                        //CHANGED VALUE
                        prev_value = existing_dv.value;

                        //values come in blank sometimes.  If they are blank, keep the DB value.
                        if (!IgnoreValueChange && !string.IsNullOrEmpty(dv.value))
                            existing_dv.value = dv.value;

                        existing_dv.type = dv.type;
                        existing_dv.label_name = dv.label_name;
                        existing_dv.index = dv.index;
                        existing_dv.genre = dv.genre;
                        existing_dv.commandClassId = dv.commandClassId;
                        existing_dv.read_only = dv.read_only;
                        db.SaveChanges();

                        if (!IgnoreValueChange && !string.IsNullOrEmpty(dv.value) && (string.IsNullOrEmpty(prev_value) || !prev_value.Equals(dv.value)))
                        {
                            //Call Event
                            dv.DeviceValueDataChanged(new device_values.ValueDataChangedEventArgs { device_value_id = existing_dv.id, previousValue = prev_value });
                        }

                    }

                }
                else
                    WriteToLog(Urgency.WARNING, string.Format("Device value change event on '{0}' occured but could not find a device value with id {1} in database.", dv.label_name, dv.value_id));
            }
        }
Esempio n. 6
0
        void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
        {
            if (this.InvokeRequired)
                this.Invoke(new device_values.ValueDataChangedEventHandler(device_values_DeviceValueDataChangedEvent), new object[] { sender, args });
            else
            {
                using (zvsEntities2 db = new zvsEntities2(zvsEntityControl.GetzvsConnectionString))
                {
                    device_values dv = db.device_values.FirstOrDefault(v=> v.id == args.device_value_id);
                    if (dv != null)
                    {
                        //GUI UPDATING
                        if (dv.label_name == "Basic" || dv.label_name == "Temperature")
                        {
                            SyncdataListViewDevices();
                        }

                        string device_name = "Unknown";

                        if (String.IsNullOrEmpty(dv.device.friendly_name))
                            device_name = "Device #" + dv.device_id;
                        else
                            device_name = dv.device.friendly_name;

                        if (!String.IsNullOrEmpty(args.previousValue))
                            Logger.WriteToLog(Urgency.INFO, string.Format("{0} {1} changed from {2} to {3}.", device_name, dv.label_name, args.previousValue, dv.value), "EVENT");
                        else
                            Logger.WriteToLog(Urgency.INFO, string.Format("{0} {1} changed to {2}.", device_name, dv.label_name, dv.value), "EVENT");

                        // Check to see if previous value == new value. If so then the value didn't actually change!
                        if (args.previousValue != dv.value)
                        {
                            //Event Triggering
                            foreach (device_value_triggers trigger in dv.device_value_triggers.Where(t => t.enabled))
                            {
                                if (((device_value_triggers.TRIGGER_TYPE)trigger.trigger_type) == device_value_triggers.TRIGGER_TYPE.Basic)
                                {
                                    switch ((device_value_triggers.TRIGGER_OPERATORS)trigger.trigger_operator)
                                    {
                                        case device_value_triggers.TRIGGER_OPERATORS.EqualTo:
                                            {
                                                if (dv.value.Equals(trigger.trigger_value))
                                                {
                                                    Logger.WriteToLog(Urgency.INFO, string.Format("Trigger '{0}' caused scene '{1}' to activate.", trigger.Name, trigger.scene.friendly_name), "TRIGGER");
                                                    Logger.WriteToLog(Urgency.INFO, trigger.scene.RunScene(db), "TRIGGER");
                                                }
                                                break;
                                            }
                                        case device_value_triggers.TRIGGER_OPERATORS.GreaterThan:
                                            {
                                                double deviceValue = 0;
                                                double triggerValue = 0;

                                                if (double.TryParse(dv.value, out deviceValue) && double.TryParse(trigger.trigger_value, out triggerValue))
                                                {
                                                    if (deviceValue > triggerValue)
                                                    {
                                                        Logger.WriteToLog(Urgency.INFO, string.Format("Trigger '{0}' caused scene '{1}' to activate.", trigger.Name, trigger.scene.friendly_name), "TRIGGER");
                                                        Logger.WriteToLog(Urgency.INFO, trigger.scene.RunScene(db), "TRIGGER");
                                                    }
                                                }
                                                else
                                                    Logger.WriteToLog(Urgency.INFO, string.Format("Trigger '{0}' failed to evaluate. Make sure the trigger value and device value is numeric.", trigger.Name), "TRIGGER");

                                                break;
                                            }
                                        case device_value_triggers.TRIGGER_OPERATORS.LessThan:
                                            {
                                                double deviceValue = 0;
                                                double triggerValue = 0;

                                                if (double.TryParse(dv.value, out deviceValue) && double.TryParse(trigger.trigger_value, out triggerValue))
                                                {
                                                    if (deviceValue < triggerValue)
                                                    {
                                                        Logger.WriteToLog(Urgency.INFO, string.Format("Trigger '{0}' caused scene '{1}' to activate.", trigger.Name, trigger.scene.friendly_name), "TRIGGER");
                                                        Logger.WriteToLog(Urgency.INFO, trigger.scene.RunScene(db), "TRIGGER");
                                                    }
                                                }
                                                else
                                                    Logger.WriteToLog(Urgency.INFO, string.Format("Trigger '{0}' failed to evaluate. Make sure the trigger value and device value is numeric.", trigger.Name), "TRIGGER");

                                                break;
                                            }
                                        case device_value_triggers.TRIGGER_OPERATORS.NotEqualTo:
                                            {
                                                if (!dv.value.Equals(trigger.trigger_value))
                                                {
                                                    Logger.WriteToLog(Urgency.INFO, string.Format("Trigger '{0}' caused scene '{1}' to activate.", trigger.Name, trigger.scene.friendly_name), "TRIGGER");
                                                    Logger.WriteToLog(Urgency.INFO, trigger.scene.RunScene(db), "TRIGGER");
                                                }
                                                break;
                                            }
                                    }
                                }
                                else
                                {
                                    ScriptManager.RunScript(trigger);
                                }
                            }
                        }

                    }
                }
            }
        }
Esempio n. 7
0
        void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
        {
            using (zvsEntities2 db = new zvsEntities2(zvsEntityControl.GetzvsConnectionString))
            {
                device_values dv = db.device_values.FirstOrDefault(v => v.id == args.device_value_id);
                if (dv != null)
                {
                    string[] objTypeValuespairs = GetSettingValue("JABBERNOTIFICATIONS").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string objTypeValuespair in objTypeValuespairs)
                    {
                        string thisEvent = dv.device.device_types.name + ":" + dv.label_name;

                        if (thisEvent.Equals(objTypeValuespair.Trim()))
                            SendMessage(dv.device.friendly_name + " " + dv.label_name + " changed to " + dv.value + ".");
                    }
                }
            }
        }
 void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
 {
     this.BroadcastEvent("DeviceValueDataChanged", args.device_value_id.ToString(), args.previousValue.ToString());
 }
Esempio n. 9
0
        void device_values_DeviceValueDataChangedEvent(object sender, device_values.ValueDataChangedEventArgs args)
        {
            if (IsReady)
            {
                using (zvsEntities2 db = new zvsEntities2(zvsEntityControl.GetzvsConnectionString))
                {
                    device_values dv = db.device_values.FirstOrDefault(v => v.id == args.device_value_id);
                    if (dv != null)
                    {

                        string user_selected_announce_option = GetSettingValue("ANNOUCEOPTIONS");

                        if (user_selected_announce_option == "Switch Level" || user_selected_announce_option == "All of the above")
                        {
                            if (dv.device.device_types.name == "SWITCH" && dv.label_name == "Basic")
                            {
                                _synth.SpeakAsync(dv.device.friendly_name + " switched " + (dv.value == "255" ? "On" : "Off") + ".");
                            }
                        }

                        if (user_selected_announce_option == "Dimmer Level" || user_selected_announce_option == "All of the above")
                        {
                            if (dv.device.device_types.name == "DIMMER" && dv.label_name == "Level")
                            {
                                _synth.SpeakAsync(dv.device.friendly_name + " " + dv.label_name + " changed to " + dv.value + ".");
                            }
                        }

                        if (user_selected_announce_option == "Thermostat Operating State and Temp" || user_selected_announce_option == "All of the above")
                        {
                            if (dv.device.device_types.name == "THERMOSTAT" && dv.label_name == "Temperature")
                            {
                                _synth.SpeakAsync(dv.device.friendly_name + " " + dv.label_name + " changed to " + dv.value + ".");
                            }

                            if (dv.device.device_types.name == "THERMOSTAT" && dv.label_name == "Operating State")
                            {
                                _synth.SpeakAsync(dv.device.friendly_name + " " + dv.label_name + " changed to " + dv.value + ".");
                            }
                        }
                        if (user_selected_announce_option == "Custom")
                        {
                            string[] objTypeValuespairs = GetSettingValue("CUSTOMVALUES").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                            foreach (string objTypeValuespair in objTypeValuespairs)
                            {
                                string thisEvent = dv.device.device_types.name + ":" + dv.label_name;

                                if (thisEvent.Equals(objTypeValuespair.Trim()))
                                    _synth.SpeakAsync(dv.device.friendly_name + " " + dv.label_name + " changed to " + dv.value + ".");
                            }
                        }
                    }
                }
            }
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the device_values EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddTodevice_values(device_values device_values)
 {
     base.AddObject("device_values", device_values);
 }
 /// <summary>
 /// Create a new device_values object.
 /// </summary>
 /// <param name="id">Initial value of the id property.</param>
 /// <param name="device_id">Initial value of the device_id property.</param>
 /// <param name="read_only">Initial value of the read_only property.</param>
 public static device_values Createdevice_values(global::System.Int64 id, global::System.Int64 device_id, global::System.Boolean read_only)
 {
     device_values device_values = new device_values();
     device_values.id = id;
     device_values.device_id = device_id;
     device_values.read_only = read_only;
     return device_values;
 }