MC Add test motion + Automation WIP

This commit is contained in:
Thomas Fransolet 2021-01-18 18:29:55 +01:00
parent 8c41f067a0
commit 83483498a8
5 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace MyCore.Framework.Business
{
class ActionLogic
{
}
}

View File

@ -25,6 +25,9 @@ namespace MyCore.Interfaces.Models
[BsonElement("Conditions")]
public List<Condition> Conditions { get; set; }
[BsonElement("DevicesIds")]
public List<string> DevicesIds { get; set; }
[BsonElement("Actions")]
public List<Action> Actions { get; set; }

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace MyCore.Interfaces.Models.Providers.Zigbee.Aqara
{
public class AqaraMotion : AqaraDevice
{
public int illuminance { get; set; }
public int illuminance_lux { get; set; }
public bool occupancy { get; set; }
}
}

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace MyCore.Interfaces.Models
{
public class Zigbee2MqttRequest
{
public string state { get; set; }
// TODO
}
}

View File

@ -1,5 +1,6 @@
using Mqtt.Client.AspNetCore.Services;
using MyCore.Interfaces.Models;
using MyCore.Interfaces.Models.Providers.Zigbee.Aqara;
using MyCore.Services.MyControlPanel;
using Newtonsoft.Json;
using System;
@ -61,11 +62,15 @@ namespace MyCore.Services.Devices
i++;
}*/
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.ON, 1);
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.ON, 2);
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.ON, 3);
//MqttClientMerossService.ExecuteCommand(prise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.ON, 0);
}
else
{
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.OFF, 1);
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.OFF, 2);
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.OFF, 3);
//MqttClientMerossService.ExecuteCommand(prise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.OFF, 0);
}
}
@ -80,6 +85,45 @@ namespace MyCore.Services.Devices
}
//await MqttClientOnlineService.PublishMessage("Notification", "Hey magic cube 0 !");
}
if (topicSplit[1].Contains("MotionWC"))
{
var aqaraSwitch = JsonConvert.DeserializeObject<AqaraMotion>(message);
if (aqaraSwitch.occupancy)
{
Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "ON"};
var request = JsonConvert.SerializeObject(zigbee2MqttRequest);
MqttClientService.PublishMessage("zigbee2mqtt/LampeWC/set", request);
}
else {
Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "OFF" };
var request = JsonConvert.SerializeObject(zigbee2MqttRequest);
MqttClientService.PublishMessage("zigbee2mqtt/LampeWC/set", request);
}
}
if (topicSplit[1].Contains("Motion0"))
{
var aqaraSwitch = JsonConvert.DeserializeObject<AqaraMotion>(message);
if (aqaraSwitch.occupancy)
{
Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "ON" };
var request = JsonConvert.SerializeObject(zigbee2MqttRequest);
MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau0/set", request);
MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau1/set", request);
MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau2/set", request);
}
else
{
Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "OFF" };
var request = JsonConvert.SerializeObject(zigbee2MqttRequest);
MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau0/set", request);
MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau1/set", request);
MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau2/set", request);
}
}
break;
default:
break;