private Dictionary <int, GpioPin> GetPins(DevicePluginConfigurationModel configuration, string configKey) { var result = new Dictionary <int, GpioPin>(); string[] pinConfigArray = null; if (configuration.Properties.ContainsKey(configKey)) { pinConfigArray = configuration.Properties[configKey].Split(','); } if (pinConfigArray != null) { foreach (var pinConfigValue in pinConfigArray) { var pinPair = pinConfigValue.Split(':'); if (pinPair.Length == 2 && Int32.TryParse(pinPair[0], out int pinNumber) && Enum.TryParse(pinPair[1], out GpioPinDriveMode driveMode)) { var pin = GpioController.GetDefault().OpenPin(pinNumber); pin.SetDriveMode(driveMode); result.Add(pinNumber, pin); } } } return(result); }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); _connectionString = configuration.Properties["ConnectionString"]; // get all devices var httpClient = new LocalHttpClient(); var resultDevices = await httpClient.Client.GetAsync(_connectionString + "devicelist.cgi"); if (resultDevices.IsSuccessStatusCode) { var xmlContent = await resultDevices.Content.ReadAsStringAsync(); var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xmlContent); foreach (XmlNode deviceNode in xmlDocument.DocumentElement.ChildNodes) { var deviceType = deviceNode.Attributes.Cast <XmlAttribute>().Single(n => n.Name == "device_type"); var address = deviceNode.Attributes.Cast <XmlAttribute>().Single(n => n.Name == "address"); var id = deviceNode.Attributes.Cast <XmlAttribute>().Single(n => n.Name == "ise_id"); //.Value == "HM-LC-Bl1-FM") } } MessageReceiverLoop(_cancellationTokenSource.Token); }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); _accountSid = configuration.Properties["AccountSid"]; _authToken = configuration.Properties["AuthToken"]; _devices.Add(new TwilioSmsDevice(_accountSid, _authToken, configuration.Properties["OutgoingPhone"], configuration.Properties["ReceiverPhone"])); }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); var connectionString = configuration.Properties["ConnectionString"]; var username = configuration.Properties["Username"]; var password = configuration.Properties["Password"]; // create default HttpClient used by all channels _httpClient = new LocalHttpClient(); _httpClient.Client.DefaultRequestHeaders.Add("Authorization", "Basic " + Base64.EncodeTo64(username + ":" + password)); _devices.Add(new SecvestDevice(_httpClient.Client, connectionString)); }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); var etatouchUrl = configuration.Properties["ConnectionString"]; var etaDevice = new EtaDevice(); await etaDevice.InitializeAsync(new DeviceConfigurationModel() { Name = "EtaDevice", Type = "EtaDevice", Properties = new Dictionary <string, string> { { "ConnectionString", etatouchUrl } } }); _devices.Add(etaDevice); }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); var channelConfigs = configuration.Properties.Select(c => c.Key.StartsWith("channel:")).ToList(); _mqttServer = new MqttServerFactory().CreateMqttServer(new MqttServerOptions() { ConnectionValidator = ConnectionValidator }); // https://github.com/chkr1011/MQTTnet/wiki/Server // https://github.com/Azure/DotNetty // https://github.com/i8beef/HomeAutio.Mqtt.Core await _mqttServer.StartAsync(); _mqttServer.ApplicationMessageReceived += MqttServerOnApplicationMessageReceived; _threadCancellation = new CancellationTokenSource(); _messageReceiverTask = MessageReceiverLoop(_threadCancellation.Token); // launch message loop in the background }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); try { _deviceid = configuration.Properties["DeviceId"]; string deviceSas = configuration.Properties["DeviceSas"]; string iotHubAddress = configuration.Properties["IotHubAddress"]; int iotHubPort = Int32.Parse(configuration.Properties["IotHubPort"]); // init mqtt client _mqttclient = new uPLibrary.Networking.M2Mqtt.MqttClient(iotHubAddress, iotHubPort, true, MqttSslProtocols.TLSv1_2); _mqttclient.ConnectionClosed += MqttclientOnConnectionClosed; _mqttclient.Connect(_deviceid, $"{iotHubAddress}/{_deviceid}/api-version=2016-11-14", deviceSas); _mqttclient.Subscribe(new[] { $"devices/{_deviceid}/messages/devicebound/#" }, new byte[] { 0 }); _mqttclient.Subscribe(new[] { "$iothub/methods/POST/#" }, new byte[] { 0 }); } catch (Exception ex) { Debug.WriteLine(ex.Message); //TODO Log } }
public virtual async Task InitializeAsync(DevicePluginConfigurationModel configuration) { _name = configuration.Name; _type = configuration.Type; }
public override async Task InitializeAsync(DevicePluginConfigurationModel configuration) { await base.InitializeAsync(configuration); _pins = GetPins(configuration, "pins"); }