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); }
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); }