public static MeasureValueBox Parse(string webPage)
        {
            var result           = new SortedDictionary <string, object>();
            var measuredValueBox = new MeasureValueBox()
            {
                MeasuredUtcTime = DateTime.UtcNow, PluginName = "WebPageParser"
            };
            var arrayParser = new ArrayParser(WebPagerReader.SelectAllElementsOfName(webPage, "td").ToArray());

            result.Add("SW.MeasureTime", DateTime.Now);
            arrayParser.MoveToNextElementNotEmpty(0, true);
            arrayParser.MoveNext();
            arrayParser.MoveToNextElementNotEmpty(0, true);
            arrayParser.MoveNext();
            string all = arrayParser.MoveToNextElementNotEmpty(0, true);

            arrayParser.MoveNext();
            result.Add("SW.All", all);
            var cultureInfo = new CultureInfo("de");

            result.Add("SW.ClearSky", ArrayParser.ConvertToDouble(arrayParser.SearchForExactElement("clear sky:", 1, true), cultureInfo));
            result.Add("SW.RealSkyMin", ArrayParser.ConvertToDouble(arrayParser.SearchForExactElement("real sky:", 1, false), cultureInfo));
            result.Add("SW.RealSkyMax", ArrayParser.ConvertToDouble(arrayParser.SearchForExactElement("real sky:", 3, false), cultureInfo));
            measuredValueBox.MeasuredValues = result;
            return(measuredValueBox);
        }
        private static MeasureValueBox ParseWebPage(IDictionary <string, object> parameters)
        {
            _Logger.DebugFormat("Read Value from Web Page - {0} ThreadId: {1}",
                                System.DateTime.Now.ToString("r"),
                                System.Threading.Thread.CurrentThread.ManagedThreadId);

            string webPage = WebPagerReader.Download(parameters["UrlSolarWetter"] as string);

            if (!string.IsNullOrEmpty(webPage))
            {
                return(SolarWetterWebPageParser.Parse(webPage));
            }
            _Logger.Error("Web Page is emtpy");
            return(null);
        }
Exemple #3
0
        public static MeasureValueBox Parse(string webPage)
        {
            var result           = new SortedDictionary <string, object>();
            var measuredValueBox = new MeasureValueBox()
            {
                MeasuredUtcTime = DateTime.UtcNow,
                PluginName      = "Kostal"
            };

            ArrayParser arrayParser = new ArrayParser(WebPagerReader.SelectAllElementsOfName(webPage, "td").ToArray());

            result.Add("PV.MeasureTime", DateTime.Now);
            string typeAndName = arrayParser.MoveToNextElementNotEmpty(0, true);

            string[] parseName = typeAndName.Split('\n');
            string   piko      = string.Empty;
            string   name      = string.Empty;

            if (parseName.Length == 3)
            {
                piko = parseName[0].Trim();
                name = parseName[2].Trim();
            }
            result.Add("PV.PikoType", piko);
            result.Add("PV.Name", name);
            result.Add("PV.CurrentACPower", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("aktuell", 1, true)));
            result.Add("PV.ProducedEnergy", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Gesamtenergie", 1, true)));
            result.Add("PV.DailyEnergy", ArrayParser.ConvertToDoubleInvariantCulture(arrayParser.SearchForExactElement("Tagesenergie", 1, true)));
            result.Add("PV.Status", arrayParser.SearchForExactElement("Status", 1, true));
            result.Add("PV.String1Voltage", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Spannung", 1, true)));
            result.Add("PV.L1Voltage", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Spannung", 1, true)));
            result.Add("PV.String1Current", ArrayParser.ConvertToDoubleInvariantCulture(arrayParser.SearchForExactElement("Strom", 1, true)));
            result.Add("PV.L1Power", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Leistung", 1, true)));
            result.Add("PV.String2Voltage", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Spannung", 1, true)));
            result.Add("PV.L2Voltage", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Spannung", 1, true)));
            result.Add("PV.String2Current", ArrayParser.ConvertToDoubleInvariantCulture(arrayParser.SearchForExactElement("Strom", 1, true)));
            result.Add("PV.L2Power", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Leistung", 1, true)));
            result.Add("PV.L3Voltage", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Spannung", 1, true)));
            result.Add("PV.L3Power", ArrayParser.ConvertToInt(arrayParser.SearchForExactElement("Leistung", 1, true)));
            measuredValueBox.MeasuredValues = result;
            return(measuredValueBox);
        }