From 2791d7efd0ded58392de28c79c8a6cd19223202b Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Sun, 3 Dec 2017 11:23:19 +0000 Subject: [PATCH] [BF] Now load the right Dll --- IoT-Bot/Condition/TelegramBot.cs | 71 +++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/IoT-Bot/Condition/TelegramBot.cs b/IoT-Bot/Condition/TelegramBot.cs index bbb8afb..45fdd83 100644 --- a/IoT-Bot/Condition/TelegramBot.cs +++ b/IoT-Bot/Condition/TelegramBot.cs @@ -1,9 +1,7 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using BlubbFish.IoT.Zway; +using BlubbFish.IoT.Zway.Devices.CommandClasses; using BlubbFish.Utils.IoT.Connector; using BlubbFish.Utils.IoT.Sensor; @@ -13,6 +11,11 @@ namespace IoTBot.Condition { public Telegrambot(String name, Dictionary settings, ASensor sensor, ADataBackend data, AUserBackend user) : base(name, settings, sensor, data, user) { this.zw = new ZwayController("10.100.0.214", "admin", ""); + this.zw.Update += this.Zw_Update; + } + + private void Zw_Update(Object sender, BlubbFish.IoT.Zway.Events.DeviceUpdateEvent e) { + Console.WriteLine("-> ZW: "+sender.ToString()); } protected override void Data_Update(Object sender, MqttEventArgs e) { @@ -25,19 +28,65 @@ namespace IoTBot.Condition { protected override void User_Update(Object sender, UserMessageEventArgs e) { if(e.Message == "/start") { - this.Send("Hallo zurück! Ich kann aktuell die Befehle /licht"); + this.Send("Hallo zurück! Ich kann aktuell die Befehle /schalter"); } - if (e.Message.StartsWith("/licht")) { - this.BotLicht(e.Message); + if (e.Message.StartsWith("/schalter")) { + this.BotSchalter(e.Message); } } - private void BotLicht(String message) { - if (message == "/licht") { - this.user.Send("Was soll ich tun?", new String[] { "/licht einschalten", "/licht ausschalten", "/licht aufzaehlen" }); + private void BotSchalter(String message) { + if (message == "/schalter") { + this.user.Send("Was soll ich tun?", new String[] { "/schalter einschalten", "/schalter ausschalten", "/schalter status" }); } - if(message == "/licht aufzaehlen") { - this.user.Send("Ich habe folgende Lampen im Angebot:"); + if(message == "/schalter status") { + String ret = "Der Status des Schalters ist: "; + foreach (Switchbinary item in this.zw.GetCommandClasses()) { + ret += item.Name + ": " + (item.Level ? "An" : "Aus") + ", "; + } + this.user.Send(ret.Substring(0, ret.Length - 2)); + } + if (message == "/schalter einschalten") { + List s = new List(); + foreach (Switchbinary item in this.zw.GetCommandClasses()) { + if (!item.Level) { + s.Add("/schalter einschalten " + item.Name); + } + } + if (s.Count > 0) { + this.user.Send("Was soll ich tun?", s.ToArray()); + } else { + this.user.Send("Keine Geräte ausgeschaltet!"); + } + } else if(message.StartsWith("/schalter einschalten ")) { + String device = message.Substring(22); + foreach (Switchbinary item in this.zw.GetCommandClasses()) { + if(item.Name == device) { + item.Level = true; + this.user.Send("Einschalten von " + item.Name + " " + (item.Level ? "" : "nicht ") + "erfolgreich"); + } + } + } + if (message == "/schalter ausschalten") { + List s = new List(); + foreach (Switchbinary item in this.zw.GetCommandClasses()) { + if (item.Level) { + s.Add("/schalter ausschalten " + item.Name); + } + } + if (s.Count > 0) { + this.user.Send("Was soll ich tun?", s.ToArray()); + } else { + this.user.Send("Keine Geräte eingeschaltet!"); + } + } else if (message.StartsWith("/schalter ausschalten ")) { + String device = message.Substring(22); + foreach (Switchbinary item in this.zw.GetCommandClasses()) { + if (item.Name == device) { + item.Level = false; + this.user.Send("Ausschalten von " + item.Name + " " + (item.Level ? "nicht " : "") + "erfolgreich"); + } + } } } }