public SensorHelper(ILogger <SensorHelper> logger, LightHelper lightHelper, INotify notify) { _logger = logger; _lightHelper = lightHelper; _lightHelper.SetSensorHelper(this); _notify = notify; }
public void Visit(AmbientLightElem el) { using (var scope = new JsonScopeObjectWriter(writer)) { WriteCommonObjectNode(scope, el); var helper = new LightHelper(scope, el); helper.WriteColor(); } }
public AFrameNode Create(AmbientLightElem el) { var node = new AFrameNode("a-light"); WriteCommonAFrameNode(el, node); node.AddAttribute("type", "ambient"); var helper = new LightHelper(node, el); helper.WriteColor(); return(node); }
public void Visit(PointLightElem el) { using (var scope = new JsonScopeObjectWriter(writer)) { WriteCommonObjectNode(scope, el); var helper = new LightHelper(scope, el); helper.WriteColor(); helper.WriteIntensity(); helper.WriteDistance(); helper.WriteDecay(); } }
public LightController(ILogger <HeatSystemController> logger, LightHelper lightHelper, SensorHelper sensorHelper, IHostedService hostedService, IHostedService hostedService1) { _logger = logger; _listener = hostedService as SwitchListener; _sensorlistener = hostedService1 as SensorListener; _helper = lightHelper; _sensorHelper = sensorHelper; }
public AFrameNode Create(DirectionalLightElem el) { var node = new AFrameNode("a-light"); WriteCommonAFrameNode(el, node); node.AddAttribute("type", "directional"); var helper = new LightHelper(node, el); helper.WriteColor(); helper.WriteIntensity(); return(node); }
public SwitchListener(IConfiguration configuration, LightHelper helper) { _logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger(); _config = configuration; var hostip = _config.GetValue <string>("ipGateway:Gateway"); var port = _config.GetValue <int>("ipGateway:portSwitch"); ipAddress = IPAddress.Parse(hostip); remoteEP = new IPEndPoint(ipAddress, port); _helper = helper; _helper.SetListener(this); }
public SwitchListener(IConfiguration configuration, LightHelper helper, ILogger <SwitchListener> logger) { _logger = logger; _config = configuration; var hostip = _config.GetValue <string>("ipGateway:Gateway"); var port = _config.GetValue <int>("ipGateway:portSwitch"); ipAddress = IPAddress.Parse(hostip); remoteEP = new IPEndPoint(ipAddress, port); _helper = helper; _helper.SetListener(this); }
public void Visit(DirectionalLightElem el) { // matrix 조작 // 유니티에서는 회전된 방향으로 빛을 쏘지만 three.js에서는 카메라의 위치에서 빚을 쏜다 var forward = Vector3.forward; var direction = el.UnityMatrix.MultiplyVector(forward); var mat = Matrix4x4.TRS(-direction, Quaternion.identity, Vector3.one); el.UnityMatrix = mat; using (var scope = new JsonScopeObjectWriter(writer)) { WriteCommonObjectNode(scope, el); var helper = new LightHelper(scope, el); helper.WriteColor(); helper.WriteIntensity(); } }
public void SetLightHelper(LightHelper lightHelper) { _lightHelper = lightHelper; }
public MqttHelper(CurtainHelper curtainHelper, HvacHelper hvacHelper, IConfiguration configuration, LightHelper lightHelper) { _config = configuration; _logger = LogManager.GetCurrentClassLogger(); _curtainHelper = curtainHelper; _hvacHelper = hvacHelper; _lightHelper = lightHelper; _hvacHelper.SetMqttListener(this); _curtainHelper.SetMqttListener(this); _lightHelper.SetMqttListener(this); //_lightHelper.SetCurtainHelper(_curtainHelper); var mqtthost = _config.GetValue <string>("mqttBroken:Hostip"); var port = _config.GetValue <int>("mqttBroken:port"); _logger.Info("Connect to MQTT Broken:{0}:{1}", mqtthost, port); options = new MqttClientOptionsBuilder() .WithClientId(Guid.NewGuid().ToString()) .WithTcpServer(mqtthost, port) .Build(); MqttFactory factory = new MqttFactory(); _mqttClient = factory.CreateMqttClient() as MqttClient; _mqttClient.UseApplicationMessageReceivedHandler(e => { var sVal = string.Empty; sVal = Encoding.UTF8.GetString(e.ApplicationMessage.Payload); _logger.Info("### 数据接收 ###"); _logger.Info($"+ Topic = {e.ApplicationMessage.Topic}"); _logger.Info($"+ Payload = {sVal}"); _logger.Info($"+ QoS = {e.ApplicationMessage.QualityOfServiceLevel}"); _logger.Info($"+ Retain = {e.ApplicationMessage.Retain}"); _logger.Info(""); /* 窗帘 */ if (e.ApplicationMessage.Topic == "Home/Curtain/Set") { var obj = JsonConvert.DeserializeObject <CurtainStateObject>(sVal); Task.Run(async() => { await _curtainHelper.SetCurtain(obj.Id, obj.Status); }); } else if (e.ApplicationMessage.Topic == "Home/Curtain/Command") { var obj = JsonConvert.DeserializeObject <CurtainStateObject>(sVal); if (obj.Command == "open") { Task.Run(async() => { await _curtainHelper.Open(obj.Id); }); } else if (obj.Command == "close") { Task.Run(async() => { await _curtainHelper.Close(obj.Id); }); } else if (obj.Command == "stop") { var task1 = Task.Run(async() => { await _curtainHelper.Stop(obj.Id); await Task.Delay(100); await _curtainHelper.GetCurtainStatus(obj.Id); }); } } /* 空调 */ else if (e.ApplicationMessage.Topic == "Home/Mitsubishi/Command") { var obj = JsonConvert.DeserializeObject <HvacStateObject>(sVal); Task.Run(async() => { await _hvacHelper.UpdateStateObject(obj); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Livingroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneLivingRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Bedroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneBedRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Guestroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneGuestRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Workroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneWorkRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Dinner") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneDinnerRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/Mode") { int i = int.Parse(sVal); _lightHelper.CurrentStateMode = (StateMode)i; if (i == 0) { Task.Run(async() => { await _lightHelper.HomeMode(); }); } else if (i == 1) { Task.Run(async() => { await _lightHelper.OutMode(); }); } else if (i == 2) { Task.Run(async() => { await _lightHelper.ReadMode(); }); } } else if (e.ApplicationMessage.Topic == "Home/Sensor/Motion/1") { if (sVal == "ON") { Task.Run(async() => { await _lightHelper.OpenWindowLight(1); }); } else { Task.Run(async() => { await _lightHelper.CloseWindowLight(1); }); } } else if (e.ApplicationMessage.Topic == "Home/Sensor/Motion/2") { if (sVal == "ON") { Task.Run(async() => { await _lightHelper.OpenWindowLight(2); }); } else { Task.Run(async() => { await _lightHelper.CloseWindowLight(2); }); } } }); _mqttClient.UseDisconnectedHandler(async e => { await _mqttClient.ReconnectAsync(); SetupSubscribe(); }); }
public MqttHelper(CurtainHelper curtainHelper, HvacHelper hvacHelper, SensorHelper sensorHelper, IConfiguration configuration, LightHelper lightHelper, ILogger <MqttHelper> logger) { _config = configuration; _logger = logger; _curtainHelper = curtainHelper; _hvacHelper = hvacHelper; _lightHelper = lightHelper; _sensorHelper = sensorHelper; _hvacHelper.SetMqttListener(this); _curtainHelper.SetMqttListener(this); _lightHelper.SetMqttListener(this); _sensorHelper.SetMqttListener(this); var mqtthost = _config.GetValue <string>("mqttBroken:Hostip"); var port = _config.GetValue <int>("mqttBroken:port"); _logger.LogInformation("Connect to MQTT Broken:{0}:{1}", mqtthost, port); options = new MqttClientOptionsBuilder() .WithClientId(Guid.NewGuid().ToString()) .WithTcpServer(mqtthost, port) .Build(); MqttFactory factory = new MqttFactory(); _mqttClient = factory.CreateMqttClient() as MqttClient; _mqttClient.UseApplicationMessageReceivedHandler(e => { var sVal = string.Empty; sVal = Encoding.UTF8.GetString(e.ApplicationMessage.Payload); _logger.LogInformation("### 数据接收 ###"); _logger.LogInformation($"+ Topic = {e.ApplicationMessage.Topic}"); _logger.LogInformation($"+ Payload = {sVal}"); _logger.LogInformation($"+ QoS = {e.ApplicationMessage.QualityOfServiceLevel}"); _logger.LogInformation($"+ Retain = {e.ApplicationMessage.Retain}"); _logger.LogInformation(""); /* 窗帘 */ #region 窗帘 if (e.ApplicationMessage.Topic == "Home/Curtain/Set") { var obj = JsonConvert.DeserializeObject <CurtainHelper.CurtainStateObject>(sVal); Task.Run(async() => { await _curtainHelper.SetCurtain(obj.Id, obj.Status); }); } else if (e.ApplicationMessage.Topic == "Home/Curtain/SetPosition2") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _curtainHelper.SetCurtain(2, i); }); } else if (e.ApplicationMessage.Topic == "Home/Curtain/SetPosition3") { int i = (int)float.Parse(sVal); //_logger.LogInformation("value :{0}",i); Task.Run(async() => { await _curtainHelper.SetCurtain(3, i); }); } else if (e.ApplicationMessage.Topic == "Home/Curtain/Stop2") { var task1 = Task.Run(async() => { await _curtainHelper.Stop(2); await Task.Delay(100); await _curtainHelper.GetCurtainStatus(2); }); } else if (e.ApplicationMessage.Topic == "Home/Curtain/Stop3") { var task1 = Task.Run(async() => { await _curtainHelper.Stop(3); await Task.Delay(100); await _curtainHelper.GetCurtainStatus(3); }); } else if (e.ApplicationMessage.Topic == "Home/Curtain/Command") { var obj = JsonConvert.DeserializeObject <CurtainHelper.CurtainStateObject>(sVal); if (obj.Command == "open") { Task.Run(async() => { await _curtainHelper.Open(obj.Id); }); } else if (obj.Command == "close") { Task.Run(async() => { await _curtainHelper.Close(obj.Id); }); } else if (obj.Command == "stop") { var task1 = Task.Run(async() => { await _curtainHelper.Stop(obj.Id); await Task.Delay(100); await _curtainHelper.GetCurtainStatus(obj.Id); }); } } #endregion /* 空调 */ #region 空调 else if (e.ApplicationMessage.Topic == "Home/Mitsubishi/Command") { var obj = JsonConvert.DeserializeObject <HvacStateObject>(sVal); Task.Run(async() => { await _hvacHelper.UpdateStateObject(obj); }); } //客房空调 else if (e.ApplicationMessage.Topic == "Home/Sanling/00/SetState") { if (sVal.ToLower() == "off") { Task.Run(async() => { await _hvacHelper.TurnOffAC(0); }); } else if (sVal.ToLower() == "heat") { Task.Run(async() => { await _hvacHelper.TurnOnAC(0); await _hvacHelper.SetMode(0, WorkMode.Heat); }); } else if (sVal.ToLower() == "cool") { Task.Run(async() => { await _hvacHelper.TurnOnAC(0); await _hvacHelper.SetMode(0, WorkMode.Cool); }); } else if (sVal.ToLower() == "auto") { Task.Run(async() => { await _hvacHelper.TurnOnAC(0); }); } } else if (e.ApplicationMessage.Topic == "Home/Sanling/00/SetTarget") { var temp = float.Parse(sVal); Task.Run(async() => { await _hvacHelper.SetTemperature(0, temp); }); } //主卧空调 else if (e.ApplicationMessage.Topic == "Home/Sanling/01/SetState") { if (sVal.ToLower() == "off") { Task.Run(async() => { await _hvacHelper.TurnOffAC(1); }); } else if (sVal.ToLower() == "heat") { Task.Run(async() => { await _hvacHelper.TurnOnAC(1); await _hvacHelper.SetMode(1, WorkMode.Heat); }); } else if (sVal.ToLower() == "cool") { Task.Run(async() => { await _hvacHelper.TurnOnAC(1); await _hvacHelper.SetMode(1, WorkMode.Cool); }); } else if (sVal.ToLower() == "auto") { Task.Run(async() => { await _hvacHelper.TurnOnAC(1); }); } } else if (e.ApplicationMessage.Topic == "Home/Sanling/01/SetTarget") { var temp = float.Parse(sVal); Task.Run(async() => { await _hvacHelper.SetTemperature(1, temp); }); } //书房空调 else if (e.ApplicationMessage.Topic == "Home/Sanling/02/SetState") { if (sVal.ToLower() == "off") { Task.Run(async() => { await _hvacHelper.TurnOffAC(2); }); } else if (sVal.ToLower() == "heat") { Task.Run(async() => { await _hvacHelper.TurnOnAC(2); await _hvacHelper.SetMode(2, WorkMode.Heat); }); } else if (sVal.ToLower() == "cool") { Task.Run(async() => { await _hvacHelper.TurnOnAC(2); await _hvacHelper.SetMode(2, WorkMode.Cool); }); } else if (sVal.ToLower() == "auto") { Task.Run(async() => { await _hvacHelper.TurnOnAC(2); }); } } else if (e.ApplicationMessage.Topic == "Home/Sanling/02/SetTarget") { var temp = float.Parse(sVal); Task.Run(async() => { await _hvacHelper.SetTemperature(2, temp); }); } //客厅空调 else if (e.ApplicationMessage.Topic == "Home/Sanling/03/SetState") { if (sVal.ToLower() == "off") { Task.Run(async() => { await _hvacHelper.TurnOffAC(3); }); } else if (sVal.ToLower() == "heat") { Task.Run(async() => { await _hvacHelper.TurnOnAC(3); await _hvacHelper.SetMode(3, WorkMode.Heat); }); } else if (sVal.ToLower() == "cool") { Task.Run(async() => { await _hvacHelper.TurnOnAC(3); await _hvacHelper.SetMode(3, WorkMode.Cool); }); } else if (sVal.ToLower() == "auto") { Task.Run(async() => { await _hvacHelper.TurnOnAC(3); }); } } else if (e.ApplicationMessage.Topic == "Home/Sanling/03/SetTarget") { var temp = float.Parse(sVal); Task.Run(async() => { await _hvacHelper.SetTemperature(3, temp); }); } #endregion /* 灯光 */ #region 灯光 else if (e.ApplicationMessage.Topic == "Home/LightScene/Livingroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneLivingRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Bedroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneBedRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Guestroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneGuestRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Workroom") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneWorkRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Dinner") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneDinnerRoomSet((SceneState)i); }); } else if (e.ApplicationMessage.Topic == "Home/LightScene/Kitchen") { int i = (int)float.Parse(sVal); Task.Run(async() => { await _lightHelper.SceneKitchenRoomSet((SceneState)i); }); } #endregion else if (e.ApplicationMessage.Topic == "Home/Mode") { int i = int.Parse(sVal); _lightHelper.CurrentStateMode = (StateMode)i; if (i == 0) { Task.Run(async() => { await _lightHelper.HomeMode(); }); } else if (i == 1) { Task.Run(async() => { //30秒后进入布放状态 await Task.Delay(30000); await _lightHelper.OutMode(); }); } else if (i == 2) { Task.Run(async() => { await _lightHelper.ReadMode(); }); } } else if (e.ApplicationMessage.Topic == "Home/Sensor/Motion/1") { if (sVal == "ON") { Task.Run(async() => { await _lightHelper.OpenWindowLight(1); }); } else { Task.Run(async() => { await _lightHelper.CloseWindowLight(1); }); } } else if (e.ApplicationMessage.Topic == "Home/Sensor/Motion/2") { if (sVal == "ON") { Task.Run(async() => { await _lightHelper.OpenWindowLight(2); }); } else { Task.Run(async() => { await _lightHelper.CloseWindowLight(2); }); } } }); _mqttClient.UseDisconnectedHandler(async e => { await _mqttClient.ReconnectAsync(); SetupSubscribe(); }); }
public SmartService(ILogger <SmartService> logger, LightHelper lightHelper, HvacHelper hvacHelper) { _logger = logger; _lightHelper = lightHelper; _hvacHelper = hvacHelper; }