mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 01:31:19 +00:00
MC Add test motion + Automation WIP
This commit is contained in:
parent
8c41f067a0
commit
83483498a8
10
MyCore.Framework/Business/ActionLogic.cs
Normal file
10
MyCore.Framework/Business/ActionLogic.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace MyCore.Framework.Business
|
||||||
|
{
|
||||||
|
class ActionLogic
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -25,6 +25,9 @@ namespace MyCore.Interfaces.Models
|
|||||||
[BsonElement("Conditions")]
|
[BsonElement("Conditions")]
|
||||||
public List<Condition> Conditions { get; set; }
|
public List<Condition> Conditions { get; set; }
|
||||||
|
|
||||||
|
[BsonElement("DevicesIds")]
|
||||||
|
public List<string> DevicesIds { get; set; }
|
||||||
|
|
||||||
[BsonElement("Actions")]
|
[BsonElement("Actions")]
|
||||||
public List<Action> Actions { get; set; }
|
public List<Action> Actions { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
using Mqtt.Client.AspNetCore.Services;
|
using Mqtt.Client.AspNetCore.Services;
|
||||||
using MyCore.Interfaces.Models;
|
using MyCore.Interfaces.Models;
|
||||||
|
using MyCore.Interfaces.Models.Providers.Zigbee.Aqara;
|
||||||
using MyCore.Services.MyControlPanel;
|
using MyCore.Services.MyControlPanel;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
@ -61,11 +62,15 @@ namespace MyCore.Services.Devices
|
|||||||
i++;
|
i++;
|
||||||
}*/
|
}*/
|
||||||
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.ON, 1);
|
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);
|
//MqttClientMerossService.ExecuteCommand(prise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.ON, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MqttClientMerossService.ExecuteCommand(multiprise.ServiceIdentification, Method.SET, CommandMqtt.TOGGLEX, "", "", ToggleStatus.OFF, 1);
|
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);
|
//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 !");
|
//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;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user