Example #1
0
        private string GetData(DeviceKeyPair deviceKeyPair, string token)
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://harbor.insynerger.com/api/incommon/v2/devices/sensor/" + deviceKeyPair.Senser);

            httpWebRequest.Headers.Set("Authorization", "Bearer " + token);
            httpWebRequest.Method      = "GET";
            httpWebRequest.Accept      = "application/json";
            httpWebRequest.ContentType = "application/json";
            var          response = httpWebRequest.GetResponse();
            StreamReader sr       = new StreamReader(response.GetResponseStream());
            string       result   = sr.ReadToEnd();

            sr.Close();

            dynamic data       = JsonConvert.DeserializeObject <dynamic>(result);
            var     values     = data.data.attributes as JArray;
            var     targetData = values.FirstOrDefault(a => a.Value <int>("id") == deviceKeyPair.IdNumber);

            return($"{deviceKeyPair.Name} : {targetData.Value<JToken>("attrValue").Value<string>("value")} {deviceKeyPair.Unit}");
        }
Example #2
0
        public string Get()
        {
            DeviceKeyPair[] deviceKeyPairs = new DeviceKeyPair[] {
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353010301/", IdNumber = 401300, Name = "風向", Unit = "deg"
                },
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353-TEST1/", IdNumber = 400200, Name = "濕度", Unit = "%"
                },
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353-TEST2/", IdNumber = 400100, Name = "溫度", Unit = "℃"
                },
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353-TEST3/", IdNumber = 401500, Name = "PM2.5", Unit = "μg/m3"
                },
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353-TEST6/", IdNumber = 401200, Name = "大氣壓力", Unit = "kg/cm2"
                },
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353010201/", IdNumber = 401400, Name = "風速", Unit = "m/s"
                },
                new DeviceKeyPair {
                    Senser = "IN21IIMSN-0353010101/", IdNumber = 402900, Name = "雨量", Unit = "mm/hr"
                }
            };

            string url = $"https://harbor-auth.insynerger.com:9999/auth/oauth/token?client_id={clientId}&client_secret={clientSecret}&grant_type=password&username=apiuser&password=apiuser@2020&apsystem=ILC";

            var hash = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(clientId + ":" + clientSecret));

            HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);

            httpWebRequest.Headers.Set("Authorization", "Basic " + hash);
            httpWebRequest.Method      = "POST";
            httpWebRequest.Accept      = "application/json";
            httpWebRequest.ContentType = "application/json";

            var          response = httpWebRequest.GetResponse();
            StreamReader sr       = new StreamReader(response.GetResponseStream());
            string       result   = sr.ReadToEnd();

            sr.Close();
            dynamic res         = JsonConvert.DeserializeObject <dynamic>(result);
            string  accessToken = res.access_token;

            List <string> re = new List <string>();

            foreach (DeviceKeyPair a in deviceKeyPairs)
            {
                try
                {
                    re.Add(GetData(a, accessToken));
                }
                catch (Exception)
                {
                }
            }
            var rrr = new { data = re };

            return(JsonConvert.SerializeObject(rrr));
        }