public void SimpleConnectAnySerialPortTest() { network = new InsteonNetwork(); var connected = network.TryConnect(); Assert.IsTrue(connected); Assert.AreEqual(network.Connection.Address.Value, InsteonAddress.Parse(ConfigurationManager.AppSettings["plmIdentityTest"]).Value); network.Close(); }
public void SimpleConnectKnownSerialPortTest() { InsteonConnection connection; Assert.IsTrue(InsteonConnection.TryParse(insteonSource, out connection)); network = new InsteonNetwork(); var connected = network.TryConnect(connection); Assert.IsTrue(connected); Assert.AreEqual(connection.Address.Value, InsteonAddress.Parse(ConfigurationManager.AppSettings["plmIdentityTest"]).Value); network.Close(); }
private void LoadDevicesFromDatabase() { var dataManager = new InsteonDataManager(false); var devices = dataManager.GetAllDevices(); foreach (var device in devices) { var id = new InsteonIdentity(device.Category, device.SubCategory, device.Firmware); if (!id.IsEmpty) { Network.Devices.Add(InsteonAddress.Parse(device.Address), id); } } }
public void Initalize() { Trace.TraceInformation("Connecting to Insteon..."); this.insteonNetwork = new InsteonNetwork(); this.insteonNetwork.Close(); this.insteonNetwork.AutoAdd = true; this.insteonNetwork.Connect(new InsteonConnection(InsteonConnectionType.Serial, this.usbSerial)); if (!this.insteonNetwork.IsConnected) { Trace.TraceError("Cannot connect to Insteon."); } this.insteonNetwork.Controller.DeviceLinked += (o, d) => { Trace.TraceInformation("DeviceLinked: {0}", d.Device.Address.ToString()); this.insteonNetwork.Controller.CancelLinkMode(); }; this.insteonNetwork.Controller.DeviceLinkTimeout += (o, d) => { Trace.TraceWarning("DeviceLinkTimeout"); this.insteonNetwork.Controller.CancelLinkMode(); }; this.insteonNetwork.Controller.DeviceUnlinked += (o, d) => { Trace.TraceInformation("DeviceUnlinked: {0}", d.Device.Address.ToString()); this.insteonNetwork.Controller.CancelLinkMode(); }; //InsteonDeviceLinkRecord[] knownLinks; //this.insteonNetwork.Controller.TryGetLinks(out knownLinks); foreach (var device in this.settings.Devices) { var d = this.insteonNetwork.Devices.Add(InsteonAddress.Parse(device.ID), new InsteonIdentity()); d.DeviceCommandTimeout += (o, data) => { Trace.TraceWarning("Device command timeout. Device: " + data.Device.Address); }; d.DeviceIdentified += (o, data) => { Trace.TraceInformation("Device identified. Device: " + data.Device.Address); }; d.DeviceStatusChanged += (o, data) => { Trace.TraceInformation("Device status changed. Device: " + data.Device.Address + ", Status: " + data.DeviceStatus); foreach (var dev in this.settings.Devices) { if (data.Device.Address.Value == InsteonAddress.Parse(dev.ID).Value) { switch (data.DeviceStatus) { case InsteonDeviceStatus.Brighten: case InsteonDeviceStatus.Dim: case InsteonDeviceStatus.FastOn: case InsteonDeviceStatus.On: dev.State = "On"; dev.Level = 255; break; case InsteonDeviceStatus.FastOff: case InsteonDeviceStatus.Off: dev.State = "Off"; dev.Level = 0; break; default: dev.State = "Unknown"; dev.Level = 0; break; } break; } } }; deviceList.Add(d); //d.Command(InsteonDeviceCommands.StatusRequest); } //if (this.insteonNetwork.Controller.TryGetLinks(out knownLinks)) //{ // foreach (var link in knownLinks) // { // this.debugOutput.DebugInformation("Adding device id {0}", link.Address); // var d = this.insteonNetwork.Devices.Add(link.Address, new InsteonIdentity()); // d.DeviceCommandTimeout += // (o, data) => // { // this.debugOutput.DebugInformation("Device command timeout. Device: " + data.Device.Address); // }; // d.DeviceIdentified += // (o, data) => // { // this.debugOutput.DebugInformation("Device identified. Device: " + data.Device.Address); // }; // d.DeviceStatusChanged += // (o, data) => // { // this.debugOutput.DebugInformation("Device status changed. Device: " + data.Device.Address + ", Status: " + data.DeviceStatus); // foreach (var de in this.settings.Devices) // if (GetInsteonDevice(de.ID) != null) // { // de.State = data.DeviceStatus == InsteonDeviceStatus.On ? "On" : "Off"; // de.Level = (byte)(data.DeviceStatus == InsteonDeviceStatus.On ? 255 : 0); // break; // } // }; // //d.Command(InsteonDeviceCommands.StatusRequest); // } //} //else //{ // this.debugOutput.DebugError("Cannot get links"); //} }
internal SmartLincInfo(string url, string address) { Uri = new Uri(url); InsteonAddress = InsteonAddress.Parse(address); }