MC Raw request MQTT

This commit is contained in:
Thomas Fransolet 2021-03-24 18:18:09 +01:00
parent c694f4a9aa
commit 63ae265446
2 changed files with 16 additions and 6 deletions

View File

@ -125,6 +125,11 @@ namespace MyCore.Interfaces.Models
public ActionType Type { get; set; } public ActionType Type { get; set; }
} }
public class RawRequestMQTT{
public string topic { get; set; }
public string message { get; set; }
}
public class State public class State
{ {
public string Name { get; set; } // example : state public string Name { get; set; } // example : state

View File

@ -122,9 +122,15 @@ namespace MyCore.Services.Devices
// Check state of first device of a group // Check state of first device of a group
actionDeviceToTest = _DeviceDatabaseService.GetByGroup(zigbeeGroupAction.Id).FirstOrDefault(); // TODO : Send error if no device found ! actionDeviceToTest = _DeviceDatabaseService.GetByGroup(zigbeeGroupAction.Id).FirstOrDefault(); // TODO : Send error if no device found !
break; break;
case ActionType.MQTT: // Correct way ? case ActionType.MQTT:
// TODO // take raw request and send it !
//requestType = Interfaces.Models.Type.MQTT; RawRequestMQTT rawRequestMQTT = JsonConvert.DeserializeObject<RawRequestMQTT>(action.RawRequest);
if (rawRequestMQTT!= null) {
// SEND REQUEST
System.Console.WriteLine($"Send raw request mqtt! topic:{rawRequestMQTT.topic} - message: {rawRequestMQTT.message}");
MqttClientService.PublishMessage(rawRequestMQTT.topic, rawRequestMQTT.message);
}
break; break;
case ActionType.HTTP: // Correct way ? case ActionType.HTTP: // Correct way ?
// TODO // TODO
@ -134,7 +140,7 @@ namespace MyCore.Services.Devices
var providerAction = _ProviderDatabaseService.GetById(userId, action.ProviderId); var providerAction = _ProviderDatabaseService.GetById(userId, action.ProviderId);
// Check if device exist // Check if device exist
if (actionDeviceToTest != null) if (actionDeviceToTest != null && providerAction != null)
{ {
switch (providerAction.Type) switch (providerAction.Type)
{ {
@ -216,7 +222,7 @@ namespace MyCore.Services.Devices
var lamp = YeelightService.devices.Where(d => d.Hostname == actionDeviceToTest.IpAddress).FirstOrDefault(); var lamp = YeelightService.devices.Where(d => d.Hostname == actionDeviceToTest.IpAddress).FirstOrDefault();
if (lamp != null) if (lamp != null)
{ {
System.Console.WriteLine($"yellight type !"); System.Console.WriteLine($"Yeelight type !");
// Get device last state // Get device last state
var dic = new List<State>(); var dic = new List<State>();
@ -227,7 +233,6 @@ namespace MyCore.Services.Devices
try try
{ {
switch (actionDeviceToTest.Type) switch (actionDeviceToTest.Type)
{ {
case DeviceType.Light: case DeviceType.Light: