55 lines
2.1 KiB
C#
55 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
|
|
using BlubbFish.IoT.Zway;
|
|
using BlubbFish.Utils;
|
|
using BlubbFish.Utils.IoT.Bots;
|
|
|
|
namespace BlubbFish.IoT.Bots.ZwayBot {
|
|
class Program : Bot<ZwayController> {
|
|
static void Main(String[] args) => new Program(args);
|
|
|
|
public Program(String[] _) {
|
|
Console.WriteLine("BlubbFish.IoT.Bots.ZwayBot.Program.Constructor()");
|
|
|
|
InIReader.SetSearchPath(new List<String>() { "/etc/zwaybot", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\zwaybot" });
|
|
Dictionary<String, ReadOnlyDictionary<String, String>> names = new Dictionary<String, ReadOnlyDictionary<String, String>>();
|
|
if(InIReader.ConfigExist("names")) {
|
|
foreach(String item in InIReader.GetInstance("names").GetSections(false)) {
|
|
names.Add(item, new ReadOnlyDictionary<String, String>( InIReader.GetInstance("names").GetSection(item)));
|
|
}
|
|
}
|
|
if(!InIReader.ConfigExist("settings")) {
|
|
Helper.WriteError("No settings.ini found. Abord!");
|
|
return;
|
|
}
|
|
|
|
this.logger.SetPath(InIReader.GetInstance("settings").GetValue("logging", "path"));
|
|
|
|
ZwayController zw = new ZwayController(InIReader.GetInstance("settings").GetSection("zway"), names, false);
|
|
zw.Recieved += this.ZwayDataUpate;
|
|
|
|
this.ModulLoader("BlubbFish.IoT.Bots.ZwayBot.Moduls", zw);
|
|
this.ModulInterconnect();
|
|
this.ModulEvents();
|
|
this.WaitForShutdown();
|
|
this.Deconstructor(zw);
|
|
|
|
Console.WriteLine("Bye!");
|
|
}
|
|
|
|
private void Deconstructor(ZwayController zw) {
|
|
Console.WriteLine("BlubbFish.IoT.Bots.ZwayBot.Program.Deconstructor(): Deconstruct ZwayBot.");
|
|
|
|
this.ModulDispose();
|
|
Console.WriteLine("BlubbFish.IoT.Bots.ZwayBot.Program.Deconstructor(): ModuleDisposed.");
|
|
|
|
zw.Dispose();
|
|
Console.WriteLine("BlubbFish.IoT.Bots.ZwayBot.Program.Deconstructor(): Zway lib Disposed.");
|
|
}
|
|
|
|
private void ZwayDataUpate(Object sender, Zway.Events.DeviceUpdateEvent e) => Console.WriteLine("-> ZW [" + e.UpdateTime + "]: " + e.Parent.ToString());
|
|
}
|
|
}
|