From e1ed420df05557d1d81be3df002b83c5e2a435c6 Mon Sep 17 00:00:00 2001 From: Roger Petri <roger@worfelden.de> Date: Tue, 4 Feb 2020 09:16:58 +0100 Subject: [PATCH] Vorbereitungen fuer Historie Diagramm --- Wetterstation/Form1.Designer.cs | 2 + Wetterstation/Form1.cs | 102 +++++++++++++++++++++++++++-- Wetterstation/Settings.Designer.cs | 1 + Wetterstation/Settings.cs | 26 +++++++- 4 files changed, 124 insertions(+), 7 deletions(-) diff --git a/Wetterstation/Form1.Designer.cs b/Wetterstation/Form1.Designer.cs index 5bf1f6c..710a3d8 100644 --- a/Wetterstation/Form1.Designer.cs +++ b/Wetterstation/Form1.Designer.cs @@ -447,6 +447,7 @@ namespace Wetterstation this.lbHintergrund.Name = "lbHintergrund"; this.lbHintergrund.Size = new System.Drawing.Size(1312, 436); this.lbHintergrund.TabIndex = 42; + this.lbHintergrund.Click += new System.EventHandler(this.LbHintergrund_Click); // // lbCity // @@ -658,6 +659,7 @@ namespace Wetterstation this.cartesianChart1.Size = new System.Drawing.Size(1309, 310); this.cartesianChart1.TabIndex = 60; this.cartesianChart1.Text = "cartesianChart1"; + this.cartesianChart1.ChildChanged += new System.EventHandler<System.Windows.Forms.Integration.ChildChangedEventArgs>(this.CartesianChart1_ChildChanged); // // Hintergrund // diff --git a/Wetterstation/Form1.cs b/Wetterstation/Form1.cs index defed7c..e282688 100644 --- a/Wetterstation/Form1.cs +++ b/Wetterstation/Form1.cs @@ -14,6 +14,19 @@ namespace Wetterstation { public partial class Hintergrund : Form { + public struct MassueredValue + { + public DateTime dtTimestamp; + public double dValue; + }; + + MassueredValue temperatureValue; + MassueredValue humidityValue; + MassueredValue pressureValue; + + //Variable fuer den Debugmodues + private bool debug = false; + private MqttClient myClient; SettingsModel WeatherstationSettings = new SettingsModel(); @@ -40,7 +53,7 @@ namespace Wetterstation new LineSeries { Title = "Temperature", - Values = new ChartValues<double> {4, 6, 5, 2, 7}, + Values = new ChartValues<double> {4, 4, 4, 4, 4}, PointGeometry = null }, new LineSeries @@ -123,7 +136,7 @@ namespace Wetterstation String topic_publish = "/wetterstation/backend/" + WeatherstationSettings.frontendId + "/"; String topic_subscribe = "/wetterstation/frontend/" + WeatherstationSettings.frontendId + "/#"; - System.Console.WriteLine("Hello, World!"); + System.Console.WriteLine("Mqtt wird gestartet ...."); // Create Client instance this.myClient = new MqttClient("mqtt.itstall.de"); @@ -153,7 +166,7 @@ namespace Wetterstation var message = System.Text.Encoding.Default.GetString(e.Message); System.Console.WriteLine("Message received: " + message); Console.WriteLine("With Topic: " + e.Topic); - + if (e.Topic.Equals(WeatherstationSettings.mqtt_topic_frontend + WeatherstationSettings.frontendId + "/weather")) { this.updateFormWeather(message); @@ -166,6 +179,77 @@ namespace Wetterstation { this.updateFormSensors(message); } + else if (e.Topic.Equals(WeatherstationSettings.mqtt_topic_frontend + WeatherstationSettings.frontendId + "/graph")) + { + Console.WriteLine("e.Topic Graph " + e.Topic); + Console.WriteLine(WeatherstationSettings.mqtt_topic_frontend + WeatherstationSettings.frontendId + "/graph"); + this.updateFormChart(message); + } + + } + + public void updateFormChart(String message) + { + dynamic weatherData = JsonConvert.DeserializeObject(message.ToString()); + Console.WriteLine("---- bin in update Graph -----"); + //Console.WriteLine(message); + + //Console.WriteLine("---- und das steht in weatherData -----"); + //Console.WriteLine(weatherData); + + Console.WriteLine("---- und das steht in results[0][series][0][columns] -----"); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][0] = > " + weatherData["results"][0]["series"][0]["columns"][0]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][1] = > " + weatherData["results"][0]["series"][0]["columns"][1]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][2] = > " + weatherData["results"][0]["series"][0]["columns"][2]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][3] = > " + weatherData["results"][0]["series"][0]["columns"][3]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][4] = > " + weatherData["results"][0]["series"][0]["columns"][4]); + Console.WriteLine(); + + + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][1][0] => " + weatherData["results"][0]["series"][0]["values"][1][0]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][0] => " + weatherData["results"][0]["series"][0]["values"][85][0]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][1] => " + weatherData["results"][0]["series"][0]["values"][65][1]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][2] => " + weatherData["results"][0]["series"][0]["values"][65][2]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][3] => " + weatherData["results"][0]["series"][0]["values"][65][3]); + Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][4] => " + weatherData["results"][0]["series"][0]["values"][65][4]); + + + + Console.WriteLine(weatherData["results"][0]["series"][0]["values"][85][2]); + + //temperatureValue.dtTimestamp = weatherData["results"][0]["series"][0]["values"][1][0]; + //temperatureValue.dValue = weatherData["results"][0]["series"][0]["values"][85][2]; + + + + //Console.WriteLine("Datum: " + temperatureValue.dtTimestamp + " hat Wert: " + temperatureValue.dValue); + + //Laufvariablen fuer For-Schleife + int i = 0; + int j = 0; + + + + //while((weatherData["results"][0]["series"][0]["columns"][0])) + //{ + // Console.WriteLine("4 erwaretet: " + i); + // i++; + //} + + + + + + + //foreach() + //Console.WriteLine(weatherData["results"]["columns"]["values"]); + + /* + for(weatherData.) + { + + } + */ } public void updateFormWeather(String message) @@ -227,7 +311,7 @@ namespace Wetterstation try { dynamic weatherData = JsonConvert.DeserializeObject(message.ToString()); - lbInnenTemp.Invoke(new Action(() => { lbInnenTemp.Text = weatherData.sensors[0].temperature + " °C"; })); + //lbInnenTemp.Invoke(new Action(() => { lbInnenTemp.Text = weatherData.sensors[0].temperature + " °C"; })); } catch (Exception ignored) { } } @@ -267,5 +351,15 @@ namespace Wetterstation this.myClient.Disconnect(); Application.Exit(); } + + private void CartesianChart1_ChildChanged(object sender, System.Windows.Forms.Integration.ChildChangedEventArgs e) + { + + } + + private void LbHintergrund_Click(object sender, EventArgs e) + { + + } } } diff --git a/Wetterstation/Settings.Designer.cs b/Wetterstation/Settings.Designer.cs index 3a731bc..8c0c4e6 100644 --- a/Wetterstation/Settings.Designer.cs +++ b/Wetterstation/Settings.Designer.cs @@ -63,6 +63,7 @@ this.tbHost.Name = "tbHost"; this.tbHost.Size = new System.Drawing.Size(531, 35); this.tbHost.TabIndex = 1; + this.tbHost.TextChanged += new System.EventHandler(this.TbHost_TextChanged); // // tbPort // diff --git a/Wetterstation/Settings.cs b/Wetterstation/Settings.cs index 172232e..5147da7 100644 --- a/Wetterstation/Settings.cs +++ b/Wetterstation/Settings.cs @@ -9,8 +9,10 @@ using System.Linq; namespace Wetterstation { + public partial class Settings : Form { + bool debug = false; SettingsModel WeatherstationSettings = new SettingsModel(); public Settings() @@ -18,7 +20,11 @@ namespace Wetterstation InitializeComponent(); lbFrontendId.Text = "Frontend Id: " + generateId(); - Console.WriteLine("Daten werden aus DB ausgelesen ..."); + if(debug) + { + Console.WriteLine("Settings Daten werden aus der frontend.db ausgelesen ..."); + } + WeatherstationSettings = SqliteDataAccess.LoadWeatherstationSettings(); } @@ -77,7 +83,11 @@ namespace Wetterstation private void Settings_Load(object sender, EventArgs e) { - Console.WriteLine("Bin in Settings_Load !!!!!!!"); + if(debug) + { + Console.WriteLine("Bin in Settings_Load !!!!!!!"); + } + LoadWeatherstationSettings(); acPlz(); } @@ -117,7 +127,12 @@ namespace Wetterstation mqttSettings.city = tbCity.Text; mqttSettings.lngCode = tbLngCode.Text; - Console.WriteLine("Speichere Settings "); + if(debug) + { + Console.WriteLine("Speichere Settings "); + } + + //update die frontend.db Tabelle settings mit den geänderten Daten SqliteDataAccess.SaveWeatherstationSettings(mqttSettings); this.Close(); @@ -131,5 +146,10 @@ namespace Wetterstation txtPlz.Text = strTemp.Split(' ').Last(); } } + + private void TbHost_TextChanged(object sender, EventArgs e) + { + + } } } -- GitLab