public HomeKitServer(ILogger logger, int port, string name, string ltsk, string ltpk, string deviceId, string pairCode, string manufacturer, string bridgeName, int configVersion) { if (!HomeKitSetup.IsSetupCodeValid(pairCode)) { throw new ArgumentException($"{nameof(pairCode)} is not valid..."); } if (configVersion <= 0) { configVersion = 1; } Manufacturer = manufacturer; BridgeName = bridgeName; var hapPort = port; _bonjour = new BonjourService(logger, Convert.ToUInt16(hapPort), name, deviceId, configVersion); _hapServer = new HapControllerServer(logger, this, hapPort, ltsk, ltpk, deviceId, pairCode); _bonjour.AlreadyPaired = !string.IsNullOrEmpty(ltpk); _hapServer.PairingCompleted += HapServerOnPairingCompleted; var bridgeAccessory = new Accessory { Id = 1 }; bridgeAccessory.Services.Add(AccessoryFactory.CreateAccessoryInfo(bridgeAccessory, 1, bridgeName, manufacturer, ServerInfo.ServerUid.ToString())); _accessoryContainer.AddAccessory(bridgeAccessory); }
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); HomeKitServer.Init(); var logger = new ConsoleLogger("mylogger", (s, level) => true, false); string ltpk = null; if (File.Exists("LTPK")) { ltpk = File.ReadAllText("LTPK"); } string ltsk = null; if (File.Exists("LTSK")) { ltsk = File.ReadAllText("LTSK"); } var homekit = new HomeKitServer(logger, 52765, "11automaticacore-1ad18", ltsk, ltpk, "BA:2F:FA:1A:CD:AA", "123-45-555", "AutomaticaCore123", "1AutomaticaCoreBridge"); homekit.PairingCompleted += Homekit_PairingCompleted; var lightAccessory = AccessoryFactory.CreateLightBulbAccessory("Light1", "AutomaticaCore", "123456", false); var outletAccessory = AccessoryFactory.CreateOutletAccessory("Outlet", "AutomaticaCore", "123456", false); var switchAccessory = AccessoryFactory.CreateSwitchAccessory("Switch1", "AutomaticaCore", "123456", false); var contactSensorAcceessory = AccessoryFactory.CreateContactSensorAccessory("Contact1", "AutomaticaCore", "123456", 0); homekit.AddAccessory(lightAccessory); homekit.AddAccessory(outletAccessory); homekit.AddAccessory(switchAccessory); homekit.AddAccessory(contactSensorAcceessory); homekit.AddAccessory(AccessoryFactory.CreateTemperatureSensorAccessory("Temperature1", "AutomaticaCore", "asdfasdf", 22.9)); homekit.ValueChanged += (sender, eventArgs) => Console.WriteLine($"Value changed {eventArgs.Characteristic.Value}"); await homekit.Start(); Console.ReadLine(); var onoff = lightAccessory.Services[1].Characteristics.SingleOrDefault(a => a.Id == 8); homekit.SetCharacteristicValue(onoff, true); Console.ReadLine(); await homekit.Stop(); }
public override IDriverNode CreateDriverNode(IDriverContext ctx) { if (ctx.NodeInstance.This2NodeTemplateNavigation.Key == "pairing-key") { _pairingNode = new PairingKeyNode(ctx); return(_pairingNode); } Accessory accessory = null; switch (ctx.NodeInstance.This2NodeTemplateNavigation.Key) { case "light-bulb-folder": accessory = AccessoryFactory.CreateLightBulbAccessory(ctx.NodeInstance.Name, "AutomaticaCore", ctx.NodeInstance.ObjId.ToString(), false); break; case "power-outlet-folder": accessory = AccessoryFactory.CreateOutletAccessory(ctx.NodeInstance.Name, "AutomaticaCore", ctx.NodeInstance.ObjId.ToString(), false); break; case "contact-sensor-folder": accessory = AccessoryFactory.CreateContactSensorAccessory(ctx.NodeInstance.Name, "AutomaticaCore", ctx.NodeInstance.ObjId.ToString(), 1); break; case "switch-folder": accessory = AccessoryFactory.CreateSwitchAccessory(ctx.NodeInstance.Name, "AutomaticaCore", ctx.NodeInstance.ObjId.ToString(), false); break; case "temperature-sensor-folder": accessory = AccessoryFactory.CreateTemperatureSensorAccessory(ctx.NodeInstance.Name, "AutomaticaCore", ctx.NodeInstance.ObjId.ToString(), 0); break; } if (accessory == null) { return(null); } _accessories.Add(accessory); return(new FolderNodeInstance(ctx, this, accessory)); }
public void TakeDamage(int damage) { if (_accessory != null) { _accessory.Health -= damage; var temp = _accessory.Health; //temp health for leftover damage if (_accessory.Health <= 0 && _accessory.Type == "R") //dead zombie { Die(); } else if (_accessory.Health <= 50 && _accessory.Type != "R") //become regular zombie if health is below 50 (regular zombie max health) { _accessory = AccessoryFactory.GetAccessory("1"); _accessory.Health = temp; Console.Write(" Becoming Regular zombie."); } } }
public HomeKitServer(ILogger logger, int port, string name, string ltsk, string ltpk, string deviceId, string pairCode, string manufacturer, string bridgeName) { Manufacturer = manufacturer; BridgeName = bridgeName; var hapPort = port; _bonjour = new BonjourService(logger, hapPort, name); _hapServer = new HapControllerServer(logger, this, hapPort, ltsk, ltpk, deviceId, pairCode); _hapServer.PairingCompleted += HapServerOnPairingCompleted; var bridgeAccessory = new Accessory { Id = 1 }; bridgeAccessory.Services.Add(AccessoryFactory.CreateAccessoryInfo(bridgeAccessory, 1, bridgeName, manufacturer, ServerInfo.ServerUid.ToString())); _accessory.Accessories.Add(bridgeAccessory); }
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); var logger = new ConsoleLogger(); HomeKitServer.Init(logger); string ltpk = null; if (File.Exists("LTPK")) { ltpk = File.ReadAllText("LTPK"); } string ltsk = null; if (File.Exists("LTSK")) { ltsk = File.ReadAllText("LTSK"); } ServerInfo.ServerUid = Guid.NewGuid(); var objId = new Guid("e00b1712-a2bf-4420-b3e5-c9b9a0c4a5f2").ToString().Replace("-", ""); string code = $"{CreateRandom(100, 999)}-{CreateRandom(10, 99)}-{CreateRandom(100, 999)}"; code = "111-23-222"; Console.WriteLine($"Code is {code}"); var homekitId = $"{objId[0]}{objId[1]}:{objId[2]}{objId[3]}:{objId[4]}{objId[5]}:{objId[6]}{objId[7]}:{objId[8]}{objId[9]}:{objId[10]}{objId[11]}"; var homekit = new HomeKitServer(logger, 54321, "HomeKitA", ltsk, ltpk, homekitId, code, "demo", "demo" + homekitId, 6); homekit.PairingCompleted += Homekit_PairingCompleted; var lightAccessory = AccessoryFactory.CreateLightBulbAccessory(0, "Light1", "AutomaticaCore", "123456", false); var lightAccessory2 = AccessoryFactory.CreateLightBulbAccessory(1, "Light2", "AutomaticaCore", "12345", false); var lightAccessory3 = AccessoryFactory.CreateLightBulbAccessory(3, "Light3", "AutomaticaCore", "1234567", false); var outletAccessory = AccessoryFactory.CreateOutletAccessory(4, "Outlet", "AutomaticaCore", "123", false); var switchAccessory = AccessoryFactory.CreateSwitchAccessory(5, "Switch1", "AutomaticaCore", "1456", false); var contactSensorAcceessory = AccessoryFactory.CreateContactSensorAccessory(6, "Contact1", "AutomaticaCore", "d123456", 0); var contactSensorAcceessory2 = AccessoryFactory.CreateContactSensorAccessory(7, "Contact2", "AutomaticaCore", "1b23456", 0); var contactSensorAcceessory3 = AccessoryFactory.CreateContactSensorAccessory(10, "Contact3", "AutomaticaCore", "1b23456d", 0); var lightAccessory4 = AccessoryFactory.CreateLightBulbAccessory(9, "Light4", "AutomaticaCore", "asdf1234567", false); homekit.AddAccessory(lightAccessory); homekit.AddAccessory(lightAccessory2); homekit.AddAccessory(lightAccessory3); homekit.AddAccessory(lightAccessory4); homekit.AddAccessory(outletAccessory); homekit.AddAccessory(switchAccessory); homekit.AddAccessory(contactSensorAcceessory); homekit.AddAccessory(contactSensorAcceessory2); homekit.AddAccessory(contactSensorAcceessory3); homekit.AddAccessory(AccessoryFactory.CreateTemperatureSensorAccessory(8, "Temperature1", "AutomaticaCore", "asdfasdf", 22.9)); homekit.ValueChanged += (sender, eventArgs) => Console.WriteLine($"Value changed {eventArgs.Characteristic.Value}"); homekit.PairingCompleted += (sender, eventArgs) => { Console.WriteLine($"Paring completed..."); }; await homekit.Start(); ThreadPool.QueueUserWorkItem(async state => { var value = true; while (true) { var onoff = contactSensorAcceessory.Services[1].Characteristics.SingleOrDefault(a => a.Id == 8); homekit.SetCharacteristicValue(onoff, value); value = !value; await Task.Delay(1000); } }); Console.ReadLine(); await homekit.Stop(); }
public Zombie(string accessoryType) { isAlive = true; health = 50; _accessory = AccessoryFactory.GetAccessory(accessoryType); }