diff --git a/Wetterstation/Form1.Designer.cs b/Wetterstation/Form1.Designer.cs index 55341fb5dae778e6c01243836aeab4c735be7325..b99c62cc924f446a1a806714bd99d23840e6cb90 100644 --- a/Wetterstation/Form1.Designer.cs +++ b/Wetterstation/Form1.Designer.cs @@ -210,6 +210,7 @@ namespace Wetterstation this.lbLuftFeuchtInnen.Size = new System.Drawing.Size(133, 56); this.lbLuftFeuchtInnen.TabIndex = 17; this.lbLuftFeuchtInnen.Text = "36 %"; + this.lbLuftFeuchtInnen.Click += new System.EventHandler(this.LbLuftFeuchtInnen_Click); // // lbWindricht // @@ -438,6 +439,7 @@ namespace Wetterstation this.lbLuftfeuchtAussen.Size = new System.Drawing.Size(133, 56); this.lbLuftfeuchtAussen.TabIndex = 37; this.lbLuftfeuchtAussen.Text = "36 %"; + this.lbLuftfeuchtAussen.Click += new System.EventHandler(this.LbLuftfeuchtAussen_Click); // // lbTextLuftfeuchtAussen // diff --git a/Wetterstation/Form1.cs b/Wetterstation/Form1.cs index f9241ac7d56a5bfcc19b0ee81e07d58bc0811f19..0aae0218fa9d455154c33c695e31ad8ee635fae0 100644 --- a/Wetterstation/Form1.cs +++ b/Wetterstation/Form1.cs @@ -7,14 +7,21 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using uPLibrary.Networking.M2Mqtt; +using uPLibrary.Networking.M2Mqtt.Messages; +using Newtonsoft.Json; namespace Wetterstation { public partial class Hintergrund : Form { + private MqttClient myClient; + + public Hintergrund() { InitializeComponent(); + mqttStart(); } private void InnenTemp_TextChanged(object sender, EventArgs e) @@ -137,5 +144,68 @@ namespace Wetterstation { } + + private void LbLuftfeuchtAussen_Click(object sender, EventArgs e) + { + + } + + //MQTT connect + public void mqttStart() + { + String topic_publish = "/wetterstation/backend/"; + String topic_subscribe = "/wetterstation/frontend/#"; + + System.Console.WriteLine("Hello, World!"); + // Create Client instance + this.myClient = new MqttClient("mqtt.itstall.de"); + + // Register to message received + myClient.MqttMsgPublishReceived += client_recievedMessage; + + string clientId = Guid.NewGuid().ToString(); + this.myClient.Connect("", "wetterstation", "wetterstation"); + + // Subscribe to topic + this.myClient.Subscribe(new String[] { topic_subscribe }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE }); + + this.myClient.Publish(topic_publish, Encoding.UTF8.GetBytes("Request_frontend")); + } + + public void updateForm(String message) + { + try + { + dynamic weatherData = JsonConvert.DeserializeObject(message.ToString()); + //hierAussen.Invoke(new Action(() => { hierAussen.Text = weatherData.current.temp + " °C"; })); + lbAussenTemp.Invoke(new Action(() => { lbAussenTemp.Text = weatherData.sensors[1].temperature + " °C"; })); + + //lbLuftFeuchtInnen.Invoke(new Action(() => { lbLuftFeuchtInnen.Text = weatherData.sensors[0].humidity + " %"; })); + //lblpressure.Invoke(new Action(() => { lblpressure.Text = weatherData.result.current.pressure; })); + //lblrain3h.Invoke(new Action(() => { lblrain3h.Text = weatherData.result.current.rain3h; })); + //lblsnow3h.Invoke(new Action(() => { lblsnow3h.Text = weatherData.result.current.snow3h; })); + //lbltemp.Invoke(new Action(() => { lbltemp.Text = weatherData.result.current.temp; })); + } + catch (Exception ignored) { } + } + + public void msgPublish(String topic, String message) + { + this.myClient.Publish(topic, Encoding.UTF8.GetBytes(message)); + } + + private void client_recievedMessage(object sender, MqttMsgPublishEventArgs e) + { + // Handle message received + var message = System.Text.Encoding.Default.GetString(e.Message); + System.Console.WriteLine("Message received: " + message); + + this.updateForm(message); + } + + private void LbLuftFeuchtInnen_Click(object sender, EventArgs e) + { + + } } } diff --git a/Wetterstation/Program.cs b/Wetterstation/Program.cs index 234acdd0ca6cc23530eb2c4ae84fb6f318aa2e12..e5aa54fa40aecb4eee9e7a70ac31b20f7b8a9c02 100644 --- a/Wetterstation/Program.cs +++ b/Wetterstation/Program.cs @@ -3,6 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; +using System.Text; +using uPLibrary.Networking.M2Mqtt; +using uPLibrary.Networking.M2Mqtt.Messages; namespace Wetterstation { diff --git a/Wetterstation/Wetterstation.csproj b/Wetterstation/Wetterstation.csproj index cb99cce8bd4e09e881efa2bc69ce5fceadcda128..d2a0681acb5006ca2039ab7c73c4bba993aaf4d7 100644 --- a/Wetterstation/Wetterstation.csproj +++ b/Wetterstation/Wetterstation.csproj @@ -33,6 +33,15 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="LiveCharts, Version=0.9.7.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL"> + <HintPath>..\packages\LiveCharts.0.9.7\lib\net45\LiveCharts.dll</HintPath> + </Reference> + <Reference Include="M2Mqtt.Net, Version=4.3.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\M2Mqtt.4.3.0.0\lib\net45\M2Mqtt.Net.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Windows.Forms.DataVisualization" /> @@ -77,6 +86,7 @@ <EmbeddedResource Include="Settings.resx"> <DependentUpon>Settings.cs</DependentUpon> </EmbeddedResource> + <None Include="packages.config" /> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> diff --git a/Wetterstation/packages.config b/Wetterstation/packages.config new file mode 100644 index 0000000000000000000000000000000000000000..224026ebb16b6f9bffa2c07c3cc681830d80dd44 --- /dev/null +++ b/Wetterstation/packages.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="LiveCharts" version="0.9.7" targetFramework="net472" /> + <package id="M2Mqtt" version="4.3.0.0" targetFramework="net472" /> + <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" /> +</packages> \ No newline at end of file