From 1b2d7cb87ba529c639a5fec9447ec3ba1ed5deb7 Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Tue, 19 Jan 2021 17:39:05 +0100 Subject: [PATCH] Add local group update --- .../Providers/Zigbee/Aqara/AqaraSwitch.cs | 3 ++- .../Providers/Zigbee/Zigbee2MqttRequest.cs | 1 + MyCore/Services/Devices/ActionService.cs | 27 +++++++++++-------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/MyCore.Interfaces/Models/Providers/Zigbee/Aqara/AqaraSwitch.cs b/MyCore.Interfaces/Models/Providers/Zigbee/Aqara/AqaraSwitch.cs index e12530d..d61088e 100644 --- a/MyCore.Interfaces/Models/Providers/Zigbee/Aqara/AqaraSwitch.cs +++ b/MyCore.Interfaces/Models/Providers/Zigbee/Aqara/AqaraSwitch.cs @@ -7,7 +7,8 @@ namespace MyCore.Interfaces.Models { public class AqaraSwitch : AqaraDevice { - public string Click { get; set; } + public string Click { get; set; } //single, double, triple, quadruple, long, long_release + public int Duration { get; set; } } diff --git a/MyCore.Interfaces/Models/Providers/Zigbee/Zigbee2MqttRequest.cs b/MyCore.Interfaces/Models/Providers/Zigbee/Zigbee2MqttRequest.cs index 5b5fe9e..e639fb2 100644 --- a/MyCore.Interfaces/Models/Providers/Zigbee/Zigbee2MqttRequest.cs +++ b/MyCore.Interfaces/Models/Providers/Zigbee/Zigbee2MqttRequest.cs @@ -7,6 +7,7 @@ namespace MyCore.Interfaces.Models public class Zigbee2MqttRequest { public string state { get; set; } + public int brightness { get; set; } // 0 -> 255 GU10 // TODO } diff --git a/MyCore/Services/Devices/ActionService.cs b/MyCore/Services/Devices/ActionService.cs index d7b7998..3b208cd 100644 --- a/MyCore/Services/Devices/ActionService.cs +++ b/MyCore/Services/Devices/ActionService.cs @@ -34,7 +34,7 @@ namespace MyCore.Services.Devices if (topicSplit[1].Contains("MagicCube0")) { var test = JsonConvert.DeserializeObject(message); - if (test.Action == "shake") + /*if (test.Action == "shake") { if (YeelightService.devices.Count <= 0) { await YeelightService.GetDevices(); @@ -43,6 +43,15 @@ namespace MyCore.Services.Devices if (labLamp != null) { Task.Run(async () => { await YeelightService.Toggle(labLamp); }); } + }*/ + if (test.Action == "shake") + { + // TODO Check state + + Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "OFF", brightness = 0 }; + var request = JsonConvert.SerializeObject(zigbee2MqttRequest); + + MqttClientService.PublishMessage("zigbee2mqtt/LampeTable/set", request); } if (test.Action == "tap") { @@ -109,24 +118,20 @@ namespace MyCore.Services.Devices } if (topicSplit[1].Contains("Motion0")) { - var aqaraSwitch = JsonConvert.DeserializeObject(message); - if (aqaraSwitch.occupancy) + var aqaraMotion = JsonConvert.DeserializeObject(message); + if (aqaraMotion.occupancy) { - Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "ON" }; + Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "ON", brightness = 255 }; var request = JsonConvert.SerializeObject(zigbee2MqttRequest); - MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau0/set", request); - MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau1/set", request); - MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau2/set", request); + MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau/set", request); } else { - Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "OFF" }; + Zigbee2MqttRequest zigbee2MqttRequest = new Zigbee2MqttRequest() { state = "OFF", brightness = 0 }; var request = JsonConvert.SerializeObject(zigbee2MqttRequest); - MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau0/set", request); - MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau1/set", request); - MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau2/set", request); + MqttClientService.PublishMessage("zigbee2mqtt/GU10Bureau/set", request); } } break;