diff --git a/.gitignore b/.gitignore index c2af6b6..08ea109 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,6 @@ /IoT-Bot/IoT-Bot/Connector/.svn /IoT-Bot/IoT-Bot/obj/Debug /IoT-Bot/IoT-Bot/Sensor/.svn +/Mqtt-Dashboard/Mqtt-Dashboard/Connector/.svn +/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/.svn +/IoT-Bot/IoT-Bot/bin/Debug diff --git a/IoT-Bot/IoT-Bot/Condition/ACondition.cs b/IoT-Bot/IoT-Bot/Condition/ACondition.cs index c0357d1..e2c84d5 100644 --- a/IoT-Bot/IoT-Bot/Condition/ACondition.cs +++ b/IoT-Bot/IoT-Bot/Condition/ACondition.cs @@ -1,32 +1,37 @@ -using Dashboard.Sensor; -using System; +using System; using System.Collections.Generic; +using IoTBot.Connector; +using IoTBot.Sensor; -namespace MqttToTelegram.Condition { +namespace IoTBot.Condition { abstract class ACondition { protected ASensor sensor; protected Dictionary settings; - public ACondition(Dictionary settings) { + public ACondition(Dictionary settings, ADataBackend backend) { this.settings = settings; - Dictionary l = new Dictionary(); - l.Add("topic", this.settings["sensor_topic"]); - l.Add("polling", this.settings["sensor_polling"]); - this.sensor = ASensor.GetInstance(this.settings["sensor"],l); - this.sensor.Update += Sensor_Update; + Dictionary l = new Dictionary { + { "topic", this.settings["sensor_topic"] }, + { "type", this.settings["sensor"] } + }; + if(settings.ContainsKey("sensor_polling")) { + l.Add("polling", this.settings["sensor_polling"]); + } + this.sensor = ASensor.GetInstance(backend, l, "testSensor"); + this.sensor.Update += this.Sensor_Update; } protected abstract void Sensor_Update(Object sender, EventArgs e); - public static ACondition GetInstance(String v, Dictionary dictionary) { - string object_condition = "MqttToTelegram.Condition." + char.ToUpper(v[0]) + v.Substring(1).ToLower(); + public static ACondition GetInstance(Dictionary settings, ADataBackend backend) { + String object_condition = "IoTBot.Condition." + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_condition, true); } catch(TypeLoadException) { - throw new ArgumentException("condition.ini: " + v + " is not a Sensor"); + throw new ArgumentException("condition.ini: " + settings["type"] + " is not a Sensor"); } - return (ACondition)t.GetConstructor(new Type[] { typeof(Dictionary) }).Invoke(new object[] { dictionary }); + return (ACondition)t.GetConstructor(new Type[] { typeof(Dictionary), typeof(ADataBackend) }).Invoke(new Object[] { settings, backend }); } } } \ No newline at end of file diff --git a/IoT-Bot/IoT-Bot/Condition/ConditionWorker.cs b/IoT-Bot/IoT-Bot/Condition/ConditionWorker.cs deleted file mode 100644 index b4d2f5a..0000000 --- a/IoT-Bot/IoT-Bot/Condition/ConditionWorker.cs +++ /dev/null @@ -1,35 +0,0 @@ -using BlubbFish.Utils; -using System; -using System.Collections.Generic; -using Dashboard.Connector; - -namespace MqttToTelegram.Condition { - class ConditionWorker { - private InIReader ini; - private static ConditionWorker instance; - private List conditions; - private Telegram telegram; - - public static ConditionWorker Instance { - get { - if(instance == null) { - instance = new ConditionWorker(); - } - return instance; - } - } - - internal void Run(Telegram telegram) { - this.telegram = telegram; - } - - private ConditionWorker() { - this.ini = InIReader.GetInstance("condition.ini"); - this.conditions = new List(); - List sections = this.ini.GetSections(); - foreach(String section in sections) { - this.conditions.Add(ACondition.GetInstance(this.ini.GetValue(section,"type"), this.ini.GetSection(section))); - } - } - } -} diff --git a/IoT-Bot/IoT-Bot/Condition/Edge.cs b/IoT-Bot/IoT-Bot/Condition/Edge.cs index ee52876..72ce7c7 100644 --- a/IoT-Bot/IoT-Bot/Condition/Edge.cs +++ b/IoT-Bot/IoT-Bot/Condition/Edge.cs @@ -1,22 +1,21 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using IoTBot.Connector; +using IoTBot.Sensor; -namespace MqttToTelegram.Condition { +namespace IoTBot.Condition { class Edge : ACondition { private Boolean histBool; - public Edge(Dictionary settings) : base(settings) { + public Edge(Dictionary settings, ADataBackend backend) : base(settings, backend) { } protected override void Sensor_Update(Object sender, EventArgs e) { - if(this.sensor.Datatypes == Dashboard.Sensor.ASensor.Types.Bool) { + if(this.sensor.Datatypes == ASensor.Types.Bool) { if(this.sensor.GetBool == Boolean.Parse(this.settings["sensor_value"]) && this.histBool != this.sensor.GetBool) { this.histBool = this.sensor.GetBool; - Telegram.Instance.Send("Jemand ist DA!"); + IoTBot.Connector.Telegram.Instance.Send("Jemand ist DA!"); } else { this.histBool = this.sensor.GetBool; } diff --git a/IoT-Bot/IoT-Bot/ConditionWorker.cs b/IoT-Bot/IoT-Bot/ConditionWorker.cs new file mode 100644 index 0000000..1c05f41 --- /dev/null +++ b/IoT-Bot/IoT-Bot/ConditionWorker.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using BlubbFish.Utils; +using IoTBot.Condition; +using IoTBot.Connector; + +namespace IoTBot { + class ConditionWorker { + private InIReader ini; + private static ConditionWorker instance; + private List conditions; + private Connector.Telegram telegram; + + public static ConditionWorker GetInstance(ADataBackend backend) { + if (instance == null) { + instance = new ConditionWorker(backend); + } + return instance; + } + + internal void Run(Connector.Telegram telegram) { + this.telegram = telegram; + } + + private ConditionWorker(ADataBackend backend) { + this.ini = InIReader.GetInstance("condition.ini"); + this.conditions = new List(); + List sections = this.ini.GetSections(); + foreach(String section in sections) { + this.conditions.Add(ACondition.GetInstance(this.ini.GetSection(section), backend)); + } + } + } +} diff --git a/IoT-Bot/IoT-Bot/Connector/ADataBackend.cs b/IoT-Bot/IoT-Bot/Connector/ADataBackend.cs index 33a0301..b1b3705 100644 --- a/IoT-Bot/IoT-Bot/Connector/ADataBackend.cs +++ b/IoT-Bot/IoT-Bot/Connector/ADataBackend.cs @@ -1,15 +1,15 @@ using System; using System.Collections.Generic; -namespace Dashboard.Connector { +namespace IoTBot.Connector { public abstract class ADataBackend { public abstract event MqttMessage MessageIncomming; public abstract event MqttMessage MessageSending; - public delegate void MqttMessage(Object sender, MqttEventArgs e); + public delegate void MqttMessage(ADataBackend sender, MqttEventArgs e); public static ADataBackend GetInstance(Dictionary dictionary) { - String object_sensor = "Dashboard.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); + String object_sensor = "IoTBot.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); diff --git a/IoT-Bot/IoT-Bot/Connector/Mosquitto.cs b/IoT-Bot/IoT-Bot/Connector/Mosquitto.cs index cf88022..f3bf4a4 100644 --- a/IoT-Bot/IoT-Bot/Connector/Mosquitto.cs +++ b/IoT-Bot/IoT-Bot/Connector/Mosquitto.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Text.RegularExpressions; -namespace Dashboard.Connector { +namespace IoTBot.Connector { class Mosquitto : ADataBackend, IDisposable { private Process p; private String message; diff --git a/IoT-Bot/IoT-Bot/Connector/Mqtt.cs b/IoT-Bot/IoT-Bot/Connector/Mqtt.cs index 401b568..f12dc34 100644 --- a/IoT-Bot/IoT-Bot/Connector/Mqtt.cs +++ b/IoT-Bot/IoT-Bot/Connector/Mqtt.cs @@ -4,7 +4,7 @@ using System.Text; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; -namespace Dashboard.Connector { +namespace IoTBot.Connector { class Mqtt : ADataBackend, IDisposable { private MqttClient client; diff --git a/IoT-Bot/IoT-Bot/Connector/Telegram.cs b/IoT-Bot/IoT-Bot/Connector/Telegram.cs index 4ec1ded..973c923 100644 --- a/IoT-Bot/IoT-Bot/Connector/Telegram.cs +++ b/IoT-Bot/IoT-Bot/Connector/Telegram.cs @@ -5,7 +5,7 @@ using Telegram.Bot.Args; using Telegram.Bot.Exceptions; using Telegram.Bot.Types; -namespace MqttToTelegram { +namespace IoTBot.Connector { class Telegram { private static Telegram instance; private TelegramBotClient bot; @@ -17,8 +17,8 @@ namespace MqttToTelegram { public event TelegramMessage MessageSending; private Telegram() { - bot = new TelegramBotClient(InIReader.GetInstance("settings.ini").GetValue("general", "telegram-key")); - bot.OnMessage += Bot_OnMessage; + this.bot = new TelegramBotClient(InIReader.GetInstance("settings.ini").GetValue("general", "telegram-key")); + this.bot.OnMessage += this.Bot_OnMessage; this.Connect(); } @@ -36,7 +36,7 @@ namespace MqttToTelegram { } private void Connect() { - bot.StartReceiving(); + this.bot.StartReceiving(); this.chat = new ChatId(InIReader.GetInstance("settings.ini").GetValue("general", "chatid")); } diff --git a/IoT-Bot/IoT-Bot/IoT-Bot.csproj b/IoT-Bot/IoT-Bot/IoT-Bot.csproj index 097ad94..f2fc0e6 100644 --- a/IoT-Bot/IoT-Bot/IoT-Bot.csproj +++ b/IoT-Bot/IoT-Bot/IoT-Bot.csproj @@ -62,7 +62,7 @@ - + @@ -79,6 +79,7 @@ + diff --git a/IoT-Bot/IoT-Bot/Program.cs b/IoT-Bot/IoT-Bot/Program.cs index d14f89b..19ba3e8 100644 --- a/IoT-Bot/IoT-Bot/Program.cs +++ b/IoT-Bot/IoT-Bot/Program.cs @@ -1,25 +1,24 @@ -using Dashboard.Connector; -using MqttToTelegram.Condition; -using System; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using System; +using BlubbFish.Utils; +using IoTBot.Connector; -namespace MqttToTelegram { +namespace IoTBot { class Program { - static void Main(string[] args) { - ConditionWorker.Instance.Run(Telegram.Instance); - Mqtt.Instance.MessageIncomming += Mqtt_MessageIncomming; - Mqtt.Instance.MessageSending += Mqtt_MessageSending; - Telegram.Instance.MessageIncomming += Telegram_MessageIncomming; - Telegram.Instance.MessageSending += Telegram_MessageSending; + static void Main(String[] args) { + ADataBackend mqtt = ADataBackend.GetInstance(InIReader.GetInstance("settings.ini").GetSection("mqtt")); + ConditionWorker.GetInstance(mqtt).Run(Connector.Telegram.Instance); + mqtt.MessageIncomming += Mqtt_MessageIncomming; + mqtt.MessageSending += Mqtt_MessageSending; + Connector.Telegram.Instance.MessageIncomming += Telegram_MessageIncomming; + Connector.Telegram.Instance.MessageSending += Telegram_MessageSending; while(true) { System.Threading.Thread.Sleep(100); } } - private static void Mqtt_MessageSending(Object sender, MqttMsgPublishEventArgs e) { - Console.WriteLine("-> [" + DateTime.Now.ToUniversalTime() + "] MQTT: " + Encoding.UTF8.GetString(e.Message) + " on " + e.Topic); + private static void Mqtt_MessageSending(ADataBackend sender, MqttEventArgs e) { + Console.WriteLine("-> [" + DateTime.Now.ToUniversalTime() + "] MQTT: " + e.Message + " on " + e.Topic); } private static void Telegram_MessageSending(Object sender, global::Telegram.Bot.Types.Message e) { @@ -30,8 +29,8 @@ namespace MqttToTelegram { Console.WriteLine("<- [" + e.Date.ToUniversalTime() + "] Telegram: " + e.Text + " on " + e.Chat.Id); } - private static void Mqtt_MessageIncomming(Object sender, MqttMsgPublishEventArgs e) { - Console.WriteLine("<- [" + DateTime.Now.ToUniversalTime() + "] MQTT: " + Encoding.UTF8.GetString(e.Message) + " on " + e.Topic); + private static void Mqtt_MessageIncomming(ADataBackend sender, MqttEventArgs e) { + Console.WriteLine("<- [" + DateTime.Now.ToUniversalTime() + "] MQTT: " + e.Message + " on " + e.Topic); } } } diff --git a/IoT-Bot/IoT-Bot/Sensor/ASensor.cs b/IoT-Bot/IoT-Bot/Sensor/ASensor.cs index ccbd6b7..ec51c14 100644 --- a/IoT-Bot/IoT-Bot/Sensor/ASensor.cs +++ b/IoT-Bot/IoT-Bot/Sensor/ASensor.cs @@ -1,11 +1,11 @@ -using Dashboard.Connector; -using System; +using System; using System.Collections.Generic; using System.Linq; -using System.Threading; using System.Text.RegularExpressions; +using System.Threading; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { public abstract class ASensor : IDisposable { protected String topic; protected Int32 pollcount; @@ -50,7 +50,7 @@ namespace Dashboard.Sensor { } internal static ASensor GetInstance(ADataBackend backend, Dictionary dictionary, String name) { - String object_sensor = "Dashboard.Sensor." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); + String object_sensor = "IoTBot.Sensor." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); diff --git a/IoT-Bot/IoT-Bot/Sensor/Flex4GridSwitch.cs b/IoT-Bot/IoT-Bot/Sensor/Flex4GridSwitch.cs index 20deb4d..895eb47 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Flex4GridSwitch.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Flex4GridSwitch.cs @@ -2,10 +2,10 @@ using System.Collections.Generic; using System.Globalization; using System.Text.RegularExpressions; -using Dashboard.Connector; +using IoTBot.Connector; using LitJson; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Flex4gridswitch : ASensor { private String id; diff --git a/IoT-Bot/IoT-Bot/Sensor/Flex4gridPower.cs b/IoT-Bot/IoT-Bot/Sensor/Flex4gridPower.cs index db95d9a..2c5d463 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Flex4gridPower.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Flex4gridPower.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.Globalization; -using Dashboard.Connector; +using IoTBot.Connector; using LitJson; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Flex4gridpower : ASensor { private String id; diff --git a/IoT-Bot/IoT-Bot/Sensor/Luminanz.cs b/IoT-Bot/IoT-Bot/Sensor/Luminanz.cs index 1e5eb9f..1bd6eb7 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Luminanz.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Luminanz.cs @@ -1,20 +1,20 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Luminanz : ASensor { - public Luminanz(Dictionary settings) : base(settings) { + public Luminanz(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; this.GetFloat = 0.0f; this.GetInt = 0; this.Datatypes = Types.Int; } - protected override void UpdateValue(MqttMsgPublishEventArgs e) { - this.GetInt = Int32.Parse(Encoding.UTF8.GetString(e.Message), new CultureInfo("en-US")); + protected override Boolean UpdateValue(MqttEventArgs e) { + this.GetInt = Int32.Parse(e.Message, new CultureInfo("en-US")); + return true; } } } diff --git a/IoT-Bot/IoT-Bot/Sensor/Pir.cs b/IoT-Bot/IoT-Bot/Sensor/Pir.cs index 79f8d8f..88b1870 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Pir.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Pir.cs @@ -1,16 +1,16 @@ using System; using System.Collections.Generic; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Pir : ASensor { - public Pir(Dictionary settings) : base(settings) { + public Pir(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Bool; } - protected override void UpdateValue(MqttMsgPublishEventArgs e) { - this.GetBool = (Encoding.UTF8.GetString(e.Message).ToLower() == "on") ? true : false; + protected override Boolean UpdateValue(MqttEventArgs e) { + this.GetBool = (e.Message.ToLower() == "on") ? true : false; + return true; } } } \ No newline at end of file diff --git a/IoT-Bot/IoT-Bot/Sensor/Power.cs b/IoT-Bot/IoT-Bot/Sensor/Power.cs index d796e1b..16cac83 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Power.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Power.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Globalization; -using Dashboard.Connector; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Power : ASensor { public Power(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; diff --git a/IoT-Bot/IoT-Bot/Sensor/Switch.cs b/IoT-Bot/IoT-Bot/Sensor/Switch.cs index 7537208..1b53ca3 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Switch.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Switch.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Dashboard.Connector; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Switch : ASensor { public Switch(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Bool; diff --git a/IoT-Bot/IoT-Bot/Sensor/Temperatur.cs b/IoT-Bot/IoT-Bot/Sensor/Temperatur.cs index 702b871..c9a1973 100644 --- a/IoT-Bot/IoT-Bot/Sensor/Temperatur.cs +++ b/IoT-Bot/IoT-Bot/Sensor/Temperatur.cs @@ -1,20 +1,20 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Temperatur : ASensor { - public Temperatur(Dictionary settings) : base(settings) { + public Temperatur(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; this.GetFloat = 0.0f; this.GetInt = 0; this.Datatypes = Types.Float; } - protected override void UpdateValue(MqttMsgPublishEventArgs e) { - this.GetFloat = Single.Parse(Encoding.UTF8.GetString(e.Message), new CultureInfo("en-US")); + protected override Boolean UpdateValue(MqttEventArgs e) { + this.GetFloat = Single.Parse(e.Message, new CultureInfo("en-US")); + return true; } } } \ No newline at end of file diff --git a/IoT-Bot/IoT-Bot/condition.ini.example b/IoT-Bot/IoT-Bot/condition.ini.example new file mode 100644 index 0000000..8ae8a93 --- /dev/null +++ b/IoT-Bot/IoT-Bot/condition.ini.example @@ -0,0 +1,4 @@ +[test] +type=Edge +sensor=Power +sensor_topic=/test/powersensor \ No newline at end of file diff --git a/IoT-Bot/IoT-Bot/settings.ini.example b/IoT-Bot/IoT-Bot/settings.ini.example index ef6a45c..c5a9de1 100644 --- a/IoT-Bot/IoT-Bot/settings.ini.example +++ b/IoT-Bot/IoT-Bot/settings.ini.example @@ -1,4 +1,7 @@ [general] -mqtt-server=localhost telegram-key=ABCDEFGH -chatid=1234 \ No newline at end of file +chatid=1234 + +[mqtt] +server=localhost +type=mqtt \ No newline at end of file diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/ADataBackend.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/ADataBackend.cs index 33a0301..b1b3705 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/ADataBackend.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/ADataBackend.cs @@ -1,15 +1,15 @@ using System; using System.Collections.Generic; -namespace Dashboard.Connector { +namespace IoTBot.Connector { public abstract class ADataBackend { public abstract event MqttMessage MessageIncomming; public abstract event MqttMessage MessageSending; - public delegate void MqttMessage(Object sender, MqttEventArgs e); + public delegate void MqttMessage(ADataBackend sender, MqttEventArgs e); public static ADataBackend GetInstance(Dictionary dictionary) { - String object_sensor = "Dashboard.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); + String object_sensor = "IoTBot.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mosquitto.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mosquitto.cs index cf88022..f3bf4a4 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mosquitto.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mosquitto.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Text.RegularExpressions; -namespace Dashboard.Connector { +namespace IoTBot.Connector { class Mosquitto : ADataBackend, IDisposable { private Process p; private String message; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mqtt.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mqtt.cs index 36d21a4..f12dc34 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mqtt.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Mqtt.cs @@ -1,11 +1,10 @@ using System; using System.Collections.Generic; using System.Text; -using BlubbFish.Utils; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; -namespace Dashboard.Connector { +namespace IoTBot.Connector { class Mqtt : ADataBackend, IDisposable { private MqttClient client; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Telegram.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Telegram.cs index 4ec1ded..973c923 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Telegram.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Connector/Telegram.cs @@ -5,7 +5,7 @@ using Telegram.Bot.Args; using Telegram.Bot.Exceptions; using Telegram.Bot.Types; -namespace MqttToTelegram { +namespace IoTBot.Connector { class Telegram { private static Telegram instance; private TelegramBotClient bot; @@ -17,8 +17,8 @@ namespace MqttToTelegram { public event TelegramMessage MessageSending; private Telegram() { - bot = new TelegramBotClient(InIReader.GetInstance("settings.ini").GetValue("general", "telegram-key")); - bot.OnMessage += Bot_OnMessage; + this.bot = new TelegramBotClient(InIReader.GetInstance("settings.ini").GetValue("general", "telegram-key")); + this.bot.OnMessage += this.Bot_OnMessage; this.Connect(); } @@ -36,7 +36,7 @@ namespace MqttToTelegram { } private void Connect() { - bot.StartReceiving(); + this.bot.StartReceiving(); this.chat = new ChatId(InIReader.GetInstance("settings.ini").GetValue("general", "chatid")); } diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Form1.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Form1.cs index a05edce..3ecf6c6 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Form1.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Form1.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Windows.Forms; using BlubbFish.Utils; -using Dashboard.Connector; -using Dashboard.Sensor; +using IoTBot.Connector; +using IoTBot.Sensor; using Dashboard.Tracings; namespace Dashboard { diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/ASensor.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/ASensor.cs index ccbd6b7..ec51c14 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/ASensor.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/ASensor.cs @@ -1,11 +1,11 @@ -using Dashboard.Connector; -using System; +using System; using System.Collections.Generic; using System.Linq; -using System.Threading; using System.Text.RegularExpressions; +using System.Threading; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { public abstract class ASensor : IDisposable { protected String topic; protected Int32 pollcount; @@ -50,7 +50,7 @@ namespace Dashboard.Sensor { } internal static ASensor GetInstance(ADataBackend backend, Dictionary dictionary, String name) { - String object_sensor = "Dashboard.Sensor." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); + String object_sensor = "IoTBot.Sensor." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs index 20deb4d..895eb47 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs @@ -2,10 +2,10 @@ using System.Collections.Generic; using System.Globalization; using System.Text.RegularExpressions; -using Dashboard.Connector; +using IoTBot.Connector; using LitJson; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Flex4gridswitch : ASensor { private String id; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4gridPower.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4gridPower.cs index db95d9a..2c5d463 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4gridPower.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Flex4gridPower.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.Globalization; -using Dashboard.Connector; +using IoTBot.Connector; using LitJson; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Flex4gridpower : ASensor { private String id; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Luminanz.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Luminanz.cs index 1e5eb9f..1bd6eb7 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Luminanz.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Luminanz.cs @@ -1,20 +1,20 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Luminanz : ASensor { - public Luminanz(Dictionary settings) : base(settings) { + public Luminanz(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; this.GetFloat = 0.0f; this.GetInt = 0; this.Datatypes = Types.Int; } - protected override void UpdateValue(MqttMsgPublishEventArgs e) { - this.GetInt = Int32.Parse(Encoding.UTF8.GetString(e.Message), new CultureInfo("en-US")); + protected override Boolean UpdateValue(MqttEventArgs e) { + this.GetInt = Int32.Parse(e.Message, new CultureInfo("en-US")); + return true; } } } diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Pir.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Pir.cs index 79f8d8f..88b1870 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Pir.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Pir.cs @@ -1,16 +1,16 @@ using System; using System.Collections.Generic; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Pir : ASensor { - public Pir(Dictionary settings) : base(settings) { + public Pir(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Bool; } - protected override void UpdateValue(MqttMsgPublishEventArgs e) { - this.GetBool = (Encoding.UTF8.GetString(e.Message).ToLower() == "on") ? true : false; + protected override Boolean UpdateValue(MqttEventArgs e) { + this.GetBool = (e.Message.ToLower() == "on") ? true : false; + return true; } } } \ No newline at end of file diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Power.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Power.cs index d796e1b..16cac83 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Power.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Power.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Globalization; -using Dashboard.Connector; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Power : ASensor { public Power(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Switch.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Switch.cs index 7537208..1b53ca3 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Switch.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Switch.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Dashboard.Connector; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Switch : ASensor { public Switch(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Bool; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Temperatur.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Temperatur.cs index 702b871..c9a1973 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Temperatur.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Sensor/Temperatur.cs @@ -1,20 +1,20 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.Text; -using uPLibrary.Networking.M2Mqtt.Messages; +using IoTBot.Connector; -namespace Dashboard.Sensor { +namespace IoTBot.Sensor { class Temperatur : ASensor { - public Temperatur(Dictionary settings) : base(settings) { + public Temperatur(Dictionary settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; this.GetFloat = 0.0f; this.GetInt = 0; this.Datatypes = Types.Float; } - protected override void UpdateValue(MqttMsgPublishEventArgs e) { - this.GetFloat = Single.Parse(Encoding.UTF8.GetString(e.Message), new CultureInfo("en-US")); + protected override Boolean UpdateValue(MqttEventArgs e) { + this.GetFloat = Single.Parse(e.Message, new CultureInfo("en-US")); + return true; } } } \ No newline at end of file diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/ATracings.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/ATracings.cs index e400472..0ec5ca6 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/ATracings.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/ATracings.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Windows.Forms; -using Dashboard.Sensor; +using IoTBot.Sensor; namespace Dashboard.Tracings { public abstract class ATracings { diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Graph.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Graph.cs index 7bb1d2e..2109779 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Graph.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Graph.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; -using Dashboard.Sensor; +using IoTBot.Sensor; using OxyPlot; using OxyPlot.Axes; using OxyPlot.Series; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Meter.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Meter.cs index 928f9aa..956011d 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Meter.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Meter.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Dashboard.Sensor; +using IoTBot.Sensor; using System; using System.Windows.Forms; using System.Linq; diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/PowerMeter.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/PowerMeter.cs index 3a4b3ca..64aec5a 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/PowerMeter.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/PowerMeter.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Windows.Forms; -using Dashboard.Sensor; +using IoTBot.Sensor; namespace Dashboard.Tracings { class Powermeter : Meter { diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Switcher.cs b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Switcher.cs index 83679f4..c2d7fbf 100644 --- a/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Switcher.cs +++ b/Mqtt-Dashboard/Mqtt-Dashboard/Tracings/Switcher.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Globalization; using System.Windows.Forms; -using Dashboard.Connector; -using Dashboard.Sensor; +using IoTBot.Connector; +using IoTBot.Sensor; namespace Dashboard.Tracings { class Switcher : ATracings { diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Dashboard.exe b/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Dashboard.exe index e190e87..54577af 100644 Binary files a/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Dashboard.exe and b/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Dashboard.exe differ diff --git a/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Utils.dll b/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Utils.dll index 28f5d3d..dfb96ce 100644 Binary files a/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Utils.dll and b/Mqtt-Dashboard/Mqtt-Dashboard/bin/Release/Utils.dll differ diff --git a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/ADataBackend.cs b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/ADataBackend.cs index 33a0301..b1b3705 100644 --- a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/ADataBackend.cs +++ b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/ADataBackend.cs @@ -1,15 +1,15 @@ using System; using System.Collections.Generic; -namespace Dashboard.Connector { +namespace IoTBot.Connector { public abstract class ADataBackend { public abstract event MqttMessage MessageIncomming; public abstract event MqttMessage MessageSending; - public delegate void MqttMessage(Object sender, MqttEventArgs e); + public delegate void MqttMessage(ADataBackend sender, MqttEventArgs e); public static ADataBackend GetInstance(Dictionary dictionary) { - String object_sensor = "Dashboard.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); + String object_sensor = "IoTBot.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); diff --git a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mosquitto.cs b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mosquitto.cs index cf88022..f3bf4a4 100644 --- a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mosquitto.cs +++ b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mosquitto.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Text.RegularExpressions; -namespace Dashboard.Connector { +namespace IoTBot.Connector { class Mosquitto : ADataBackend, IDisposable { private Process p; private String message; diff --git a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mqtt.cs b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mqtt.cs index 36d21a4..f12dc34 100644 --- a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mqtt.cs +++ b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Mqtt.cs @@ -1,11 +1,10 @@ using System; using System.Collections.Generic; using System.Text; -using BlubbFish.Utils; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; -namespace Dashboard.Connector { +namespace IoTBot.Connector { class Mqtt : ADataBackend, IDisposable { private MqttClient client; diff --git a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Telegram.cs b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Telegram.cs index 4ec1ded..973c923 100644 --- a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Telegram.cs +++ b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Connector/Telegram.cs @@ -5,7 +5,7 @@ using Telegram.Bot.Args; using Telegram.Bot.Exceptions; using Telegram.Bot.Types; -namespace MqttToTelegram { +namespace IoTBot.Connector { class Telegram { private static Telegram instance; private TelegramBotClient bot; @@ -17,8 +17,8 @@ namespace MqttToTelegram { public event TelegramMessage MessageSending; private Telegram() { - bot = new TelegramBotClient(InIReader.GetInstance("settings.ini").GetValue("general", "telegram-key")); - bot.OnMessage += Bot_OnMessage; + this.bot = new TelegramBotClient(InIReader.GetInstance("settings.ini").GetValue("general", "telegram-key")); + this.bot.OnMessage += this.Bot_OnMessage; this.Connect(); } @@ -36,7 +36,7 @@ namespace MqttToTelegram { } private void Connect() { - bot.StartReceiving(); + this.bot.StartReceiving(); this.chat = new ChatId(InIReader.GetInstance("settings.ini").GetValue("general", "chatid")); } diff --git a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/MainWindow.xaml.cs b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/MainWindow.xaml.cs index 0eaa4be..b16f799 100644 --- a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/MainWindow.xaml.cs +++ b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/MainWindow.xaml.cs @@ -2,7 +2,7 @@ using System; using System.Globalization; using System.Windows; -using Dashboard.Connector; +using IoTBot.Connector; namespace Mqtt_SWB_Dashboard { /// diff --git a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Stats.cs b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Stats.cs index 2d8a587..9a37bd7 100644 --- a/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Stats.cs +++ b/Mqtt-SWB-Dashboard/Mqtt-SWB-Dashboard/Stats.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; -using Dashboard.Connector; +using IoTBot.Connector; using LitJson; using Mqtt_SWB_Dashboard.Helper;