public void onMqttMessage(string topic, string message, DateTime timestamp) { getLogger().LogDebug("Sensor '{0}' received MQTT message. topic='{1}', message='{2}', timestamp='{3}'", Id, topic, message, timestamp.ToString()); getTriggeredFromString(message); //Log Raw data to database ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { SensorStateRawLogDAL rawLog = new SensorStateRawLogDAL(); rawLog.SensorName = Id; rawLog.State = message; rawLog.SensorType = sensorType; rawLog.AdditionalInfo = topicState; rawLog.Timestamp = DateTime.UtcNow; context.RawSensorStateLog.Add(rawLog); context.SaveChanges(); } SensorStateMessage msg = new SensorStateMessage(Id, getTriggeredFromString(message), timestamp); getManager().PublishSensorState(msg); }
public void setTriggeredState(bool newTriggeredState) { if (Activated) { if (Triggered != newTriggeredState) { //Log Raw data to database ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { SensorStateLogDAL stateLog = new SensorStateLogDAL(); stateLog.SensorName = Id; stateLog.Triggered = (newTriggeredState ? 1 : 0); stateLog.Timestamp = DateTime.UtcNow; context.SensorStateLog.Add(stateLog); context.SaveChanges(); } } Triggered = newTriggeredState; //OnTriggeredChanged(new SensorTriggeredEventArgs(Id, Triggered)); RaiseTriggeredChanged(new SensorTriggeredEventArgs(Id, Triggered)); } }
protected override void OnInitializeDatabase() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { context.Database.EnsureCreated(); } }
private void ensureDatabaseCreated() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { context.Database.EnsureCreated(); } }
//https://www.bmwbayer.de private void ClearConfigTables() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext ConfigContext = factory.CreateDbContext()) { ConfigContext.Thing.RemoveRange(ConfigContext.Set <ThingDAL>()); ConfigContext.AlarmZone.RemoveRange(ConfigContext.Set <AlarmZoneDAL>()); ConfigContext.SaveChanges(); } }
private void CreateConfiguration_Services() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); Guid serverNodeGuid = new Guid("5c7a6580-45fc-4402-9ebe-07de9884f5b0"); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { node = null; if (!context.Node.Any()) { node = new NodeDAL { UniqueIdentifier = serverNodeGuid, Name = "Server" }; context.Node.Add(node); context.SaveChanges(); } else { node = context.Node.Where <NodeDAL>(n => n.UniqueIdentifier == serverNodeGuid).FirstOrDefault <NodeDAL>(); } ThingDAL thing; thing = AddService(context, "MQ", "MQ Client", ThingType.Service, new Dictionary <string, string> { { "category", "service" }, { "config_class", "ConfigServiceMQ" }, { "thing_class", "ServiceMQ" }, { "name", "MQ" }, { "host", "192.168.9.40" }, { "user", "svc-alarm-test" }, { "password", "Alarm01" }, { "vhost", "zoneguard-test" } }); //ConfigServiceMQTT csMQTT = new ConfigServiceMQTT(paramMQTT); //addService(new ServiceMQTT(new ConfigServiceMQTT(paramMQTT), this)); thing = AddService(context, "MQTT", "MQTT Client", ThingType.Service, new Dictionary <string, string> { { "category", "service" }, { "config_class", "ConfigServiceMQTT" }, { "thing_class", "ServiceMQTT" }, { "name", "MQTT" }, { "host", "192.168.1.50" }, { "user", "svc-openhab" }, { "password", "#openHAB@Home#" } }); } }
private async Task _InitializeServices() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { /*************************************************************** * * Load Services * ***************************************************************/ List <ThingDAL> services = await context.Thing .Where <ThingDAL>(t => t.ThingType == ThingType.Service) .Include(p => p.Parameters) .ToListAsync <ThingDAL>(); foreach (ThingDAL serviceDAL in services) { Console.WriteLine(serviceDAL.Name); ConfigService configService = ZoneGuardConfigContextFactory.CreateThingFromDAL <ConfigService>(serviceDAL); Console.WriteLine(configService.toJSON()); #if warning #endif //TODO:: MUST //TODOO:: MIGRATE addSensor(new SensorProxy(configSensor, this), false); ServiceCore service = null; String s = configService.ConfigClass; if (configService.ConfigClass == "ConfigServiceMQTT") { service = new ServiceMQTT((ConfigServiceMQTT)configService, this); } else if (configService.ConfigClass == "ConfigServiceMQ") { service = new ServiceMQ((ConfigServiceMQ)configService, this); } if (service != null) { addService(service); } else { Logger.LogWarning("Service '{0}' not created.", configService.Id); } } } }
private void CreateConfiguration_AlarmZones() { //string topicOffset = "test/"; //ThingDAL thing; ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { AddAlarmZone(context, "Perimeter", "House Fence Zone", new string[] { "LivingroomWindow1", "LivingroomWindow2", "LivingroomWindow3", "LivingroomDoor1", "OfficeWindow1", "HallwayWindow1", "FrederikWindow1", "CecilieWindow1", "SofieWindow1", "BedroomWindow1", "BackentranceWindow1", "BackentranceDoor1", "BathroomWindow1", "EntranceDoor1", "KitchenWindow1" }); AddAlarmZone(context, "Front", "Outdoor front", new string[] { "FrontPir1" }); AddAlarmZone(context, "Carport", "Carport", new string[] { "BackyardDoor1" }); //AddAlarmZone(context, "Terrace", "Outdoor front", new string[] { "Pir1" }); AddAlarmZone(context, "Backyard", "Backyard", new string[] { "BackyardPir1" }); } }
private void CreateConfiguration_Sensors() { string topicOffset = "zwavebus/state/"; ThingDAL thing; ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { thing = AddMQTTSensor(context, node, "LivingroomWindow1", "Window in Livingroom", ThingType.Sensor, "window", "livingroom", true, topicOffset); thing = AddMQTTSensor(context, node, "LivingroomWindow2", "Window in Livingroom", ThingType.Sensor, "window", "livingroom", true, topicOffset); thing = AddMQTTSensor(context, node, "LivingroomWindow3", "Window in Livingroom", ThingType.Sensor, "window", "livingroom", true, topicOffset); thing = AddMQTTSensor(context, node, "LivingroomDoor1", "Door in Livingroom", ThingType.Sensor, "door", "livingroom", true, topicOffset); thing = AddMQTTSensor(context, node, "OfficeWindow1", "Window in Office", ThingType.Sensor, "window", "office", true, topicOffset); thing = AddMQTTSensor(context, node, "HallwayWindow1", "Window in Hallway", ThingType.Sensor, "window", "hallway", true, topicOffset); thing = AddMQTTSensor(context, node, "FrederikWindow1", "Window in Frederiks room", ThingType.Sensor, "window", "frederik", true, topicOffset); thing = AddMQTTSensor(context, node, "CecilieWindow1", "Window in Cecilies room", ThingType.Sensor, "window", "cecilie", true, topicOffset); thing = AddMQTTSensor(context, node, "SofieWindow1", "Window in Sofies room", ThingType.Sensor, "window", "sofie", true, topicOffset); thing = AddMQTTSensor(context, node, "BedroomWindow1", "Window in Bedroom", ThingType.Sensor, "window", "bedroom", true, topicOffset); thing = AddMQTTSensor(context, node, "BackentranceWindow1", "Window in Backentrance", ThingType.Sensor, "window", "backentrance", true, topicOffset); thing = AddMQTTSensor(context, node, "BackentranceDoor1", "Door in Backentrance", ThingType.Sensor, "door", "backentrance", true, topicOffset); thing = AddMQTTSensor(context, node, "BathroomWindow1", "Window in Bathroom", ThingType.Sensor, "window", "bathroom", true, topicOffset); thing = AddMQTTSensor(context, node, "EntranceDoor1", "Door in Entrance", ThingType.Sensor, "door", "entrance", true, topicOffset); thing = AddMQTTSensor(context, node, "KitchenWindow1", "Window in Kitchen", ThingType.Sensor, "window", "kitchen", true, topicOffset); // thing = AddMQTTSensor(context, "BackentranceWindow1", "Window in Backentrance", ThingType.Sensor, "window", true, topicOffset); thing = AddMQTTSensor(context, node, "HallwayPir1", "Pir sensor 1 in Hallway", ThingType.Sensor, "pir", "hallway", true, topicOffset); thing = AddMQTTSensor(context, node, "HallwayPir2", "Pir sensor 2 in Hallway", ThingType.Sensor, "pir", "hallway", true, topicOffset); thing = AddMQTTSensor(context, node, "BackyardPir1", "Pir in Backyard", ThingType.Sensor, "pir", "backyard", true, topicOffset); thing = AddMQTTSensor(context, node, "FrontPir1", "Pir in Front of house", ThingType.Sensor, "pir", "front", true, topicOffset); thing = AddMQTTSensor(context, node, "BackyardDoor1", "Door from Carport to backyard", ThingType.Sensor, "door", "backyard", true, topicOffset); } }
private void originalloadTestConfigData() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); Guid serverNodeGuid = new Guid("5c7a6580-45fc-4402-9ebe-07de9884f5b0"); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { /* * NodeDAL node = null; * * if (!context.Node.Any()) * { * node = new NodeDAL { UniqueIdentifier = serverNodeGuid, Name = "Server" }; * context.Node.Add(node); * * context.SaveChanges(); * } * else * { * node = context.Node.Where<NodeDAL>(n => n.UniqueIdentifier == serverNodeGuid).FirstOrDefault<NodeDAL>(); * } * */ // Look for any students. SensorDAL thing = null; if (!context.Thing.Any()) { // ThingParameterDAL paramCategory = new ThingParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }; // ThingParameterDAL paramConfigClass = new ThingParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }; // ThingParameterDAL paramThingClass= new ThingParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }; List <SensorDAL> sensorsPerimeter = new List <SensorDAL>(); //List<String> sensorsPerimeter = new List<String>(); List <SensorDAL> sensorsHighRisk = new List <SensorDAL>(); String topicOffset = "test/"; SensorParameterDAL[] thingParameters; thing = new SensorDAL { Name = "OfficeWindow1", Description = "Window in Office", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "OfficeWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "officewindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * * Sensor 2 * * ************/ thing = new SensorDAL { Name = "LivingroomWindow1", Description = "First Window in Livingroom", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "LivingroomWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "livingroomwindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); thing = AddThing(context, "LivingroomWindow2", "Second Window in Livingroom", ThingType.Sensor, new Dictionary <string, string> { { "category", "sensor" }, { "config_class", "ConfigSensor" }, { "thing_class", "SensorMQTT" }, { "name", "LivingroomWindow2" }, { "topic", topicOffset + "livingroomwindow2/state" } }); sensorsPerimeter.Add(thing); /* * thing = new ThingDAL { Name = "LivingroomWindow2", Description = "Second Window in Livingroom", ThingType = ThingType.Sensor, Timestamp = DateTime.UtcNow }; * sensorsPerimeter.Add(thing); * thingParameters = new ThingParameterDAL[] * { * new ThingParameterDAL{Name="category", Value="sensor", Timestamp=DateTime.UtcNow}, * new ThingParameterDAL{Name="config_class", Value="ConfigSensor", Timestamp=DateTime.UtcNow }, * new ThingParameterDAL{Name="thing_class", Value="SensorMQTT", Timestamp=DateTime.UtcNow }, * new ThingParameterDAL{Name="name", Value = "LivingroomWindow2", Timestamp=DateTime.UtcNow }, * new ThingParameterDAL{Name="topic", Value = topicOffset + "livingroomwindow2/state", Timestamp=DateTime.UtcNow } * }; * DbInitializer.AddThing(context, thing, thingParameters); */ thing = new SensorDAL { Name = "LivingroomWindow3", Description = "Third Window in Livingroom", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "LivingroomWindow3", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "livingroomwindow3/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * * LivingroomDoor1 * * ************/ thing = new SensorDAL { Name = "LivingroomDoor1", Description = "Terracedoor in Livingroom", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "LivingroomDoor1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "livingroomdoor1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * * FrederikWindow1 * * ************/ thing = new SensorDAL { Name = "FrederikWindow1", Description = "Window (Frederik)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "FrederikWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "frederikwindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * CecilieWindow1 * ************/ thing = new SensorDAL { Name = "CecilieWindow1", Description = "Window (Cecilie)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "CecilieWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "ceciliewindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * SofieWindow1 * ************/ thing = new SensorDAL { Name = "SofieWindow1", Description = "Window (Sofie)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "SofieWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "sofiewindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * BedroomWindow1 * ************/ thing = new SensorDAL { Name = "BedroomWindow1", Description = "Window (Bedroom)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "BedroomWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "bedroomwindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * BackentranceWindow1 * ************/ thing = new SensorDAL { Name = "BackentranceWindow1", Description = "Window (Backentrance)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "BackentranceWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "backentrancewindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * BackentranceDoor1 * ************/ thing = new SensorDAL { Name = "BackentranceDoor1", Description = "Door (Backentrance)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); sensorsHighRisk.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "BackentranceDoor1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "backentrancedoor1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * BathroomWindow1 * ************/ thing = new SensorDAL { Name = "BathroomWindow1", Description = "Window (Bathroom)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "BathroomWindow1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "bathroomwindow1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); /* *********** * EntranceDoor1 * ************/ thing = new SensorDAL { Name = "EntranceDoor1", Description = "Window (Entrancedoor)", ThingType = ThingType.Sensor /*, Node = node*/, Timestamp = DateTime.UtcNow }; sensorsPerimeter.Add(thing); thingParameters = new SensorParameterDAL[] { new SensorParameterDAL { Name = "category", Value = "sensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "config_class", Value = "ConfigSensor", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "thing_class", Value = "SensorMQTT", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "name", Value = "EntranceDoor1", Timestamp = DateTime.UtcNow }, new SensorParameterDAL { Name = "topic", Value = topicOffset + "frontentrancedoor1/state", Timestamp = DateTime.UtcNow } }; DbInitializer.AddThing(context, thing, thingParameters); AlarmZoneDAL alarmZonePerimeter = new AlarmZoneDAL { Name = "Perimeter", Description = "", Enabled = 1, Timestamp = DateTime.UtcNow }; List <AlarmZoneThingDAL> alarmZoneSensors = new List <AlarmZoneThingDAL>(); foreach (SensorDAL sensor in sensorsPerimeter) { alarmZoneSensors.Add(new AlarmZoneThingDAL { Enabled = 1, Thing = sensor, Timestamp = DateTime.UtcNow }); } ; DbInitializer.AddAlarmZone(context, alarmZonePerimeter, alarmZoneSensors.ToArray()); AlarmZoneDAL alarmZoneHighRisk = new AlarmZoneDAL { Name = "High Risk", Description = "", Enabled = 1, Timestamp = DateTime.UtcNow }; alarmZoneSensors = new List <AlarmZoneThingDAL>(); foreach (SensorDAL sensor in sensorsHighRisk) { alarmZoneSensors.Add(new AlarmZoneThingDAL { Enabled = 1, Thing = sensor, Timestamp = DateTime.UtcNow }); } ; DbInitializer.AddAlarmZone(context, alarmZoneHighRisk, alarmZoneSensors.ToArray()); } } }
private async Task LoadFromDatabase() { ZoneGuardConfigContextFactory factory = new ZoneGuardConfigContextFactory(); using (ZoneGuardConfigContext context = factory.CreateDbContext()) { /*************************************************************** * * Load Sensors * ***************************************************************/ List <ThingDAL> things = await context.Thing .Where <ThingDAL>(t => t.ThingType == ThingType.Sensor) .Include(p => p.Parameters) .ToListAsync <ThingDAL>(); foreach (ThingDAL thing in things) { Console.WriteLine(thing.Name); ConfigSensor configSensor = ZoneGuardConfigContextFactory.CreateThingFromDAL <ConfigSensor>(thing); Console.WriteLine(configSensor.toJSON()); //TODO:: More Dynamic addMQTTSensor(new SensorMQTT(configSensor, this), true); addProxySensor(new SensorProxy(configSensor, this), false); } /*************************************************************** * * Load AlarmZones * ***************************************************************/ List <AlarmZoneDAL> alarmZones = await context.AlarmZone .Include(az => az.Sensors) .ThenInclude(pa => pa.Thing) .ToListAsync <AlarmZoneDAL>(); foreach (AlarmZoneDAL zone in alarmZones) { ConfigAlarmZone configAlarmZone = ZoneGuardConfigContextFactory.CreateConfigAlarmZoneFromDAL(zone); AlarmZone alarmZone = new AlarmZone(configAlarmZone, this); alarmManager.addAlarmZone(alarmZone); /* * //if (zone.Enabled == 1) * { * Console.WriteLine("Creating Alarm Zone {0}", zone.Name); * foreach (AlarmZoneThingDAL sensor in zone.Sensors) * { * SensorCore sensorProxy = getSensorByName(sensor.Thing.Name); * SensorLink sensorLink = new SensorLink(sensorProxy, alarmZone, this); * * * //ConfigLink configLink = new ConfigLink(); * * //SensorProxy sensorProxy = new SensorProxy(configSensor, this); * //HEST * //alarmZone.addSensor(sensorProxy); * //if (sensor.Enabled == 1) * //{ * // Console.WriteLine(" Adding Sensor '{0}'", sensor.Thing.Name); * // } * * } * }*/ } } }