mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 01:31:19 +00:00
Add nameForAction for zigbee + test to not erase all data on zigbee update
This commit is contained in:
parent
2ebb1dfd60
commit
adb38f842b
@ -15,6 +15,8 @@ namespace MyCore.Interfaces.DTO
|
|||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public string NameForAction { get; set; }
|
||||||
|
|
||||||
public string Model { get; set; }
|
public string Model { get; set; }
|
||||||
|
|
||||||
public DeviceType Type { get; set; }
|
public DeviceType Type { get; set; }
|
||||||
|
|||||||
@ -25,6 +25,9 @@ namespace MyCore.Interfaces.Models
|
|||||||
[BsonRequired]
|
[BsonRequired]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[BsonElement("NameForAction")]
|
||||||
|
public string NameForAction { get; set; }
|
||||||
|
|
||||||
[BsonElement("Description")]
|
[BsonElement("Description")]
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
@ -260,6 +263,7 @@ namespace MyCore.Interfaces.Models
|
|||||||
Id = Id,
|
Id = Id,
|
||||||
HomeId = HomeId,
|
HomeId = HomeId,
|
||||||
Name = Name,
|
Name = Name,
|
||||||
|
NameForAction = NameForAction,
|
||||||
Model = Model,
|
Model = Model,
|
||||||
Type = Type,
|
Type = Type,
|
||||||
ConnectionStatus = ConnectionStatus,
|
ConnectionStatus = ConnectionStatus,
|
||||||
@ -279,6 +283,7 @@ namespace MyCore.Interfaces.Models
|
|||||||
Id = Id,
|
Id = Id,
|
||||||
HomeId = HomeId,
|
HomeId = HomeId,
|
||||||
Name = Name,
|
Name = Name,
|
||||||
|
NameForAction = NameForAction,
|
||||||
Model = Model,
|
Model = Model,
|
||||||
Type = Type,
|
Type = Type,
|
||||||
Port = Port,
|
Port = Port,
|
||||||
|
|||||||
@ -233,7 +233,7 @@ namespace MyCore.Service.Controllers.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ActionOnZigbee2Mqtt(Device device, Interfaces.Models.Action action, string deviceNameForAction)
|
public static void ActionOnZigbee2Mqtt(Device device, Interfaces.Models.Action action)
|
||||||
{
|
{
|
||||||
var request = "";
|
var request = "";
|
||||||
var buildRequest = new Dictionary<string, object>();
|
var buildRequest = new Dictionary<string, object>();
|
||||||
@ -372,12 +372,13 @@ namespace MyCore.Service.Controllers.Helpers
|
|||||||
|
|
||||||
request = JsonConvert.SerializeObject(buildRequest);
|
request = JsonConvert.SerializeObject(buildRequest);
|
||||||
|
|
||||||
|
var nameToSend = device.NameForAction == null ? device.Name : device.NameForAction;
|
||||||
|
|
||||||
// SEND REQUEST
|
// SEND REQUEST
|
||||||
//var requestToSend = $"Send request ! zigbee2mqtt/{deviceNameForAction}/set/{request}";
|
//var requestToSend = $"Send request ! zigbee2mqtt/{deviceNameForAction}/set/{request}";
|
||||||
System.Console.WriteLine($"Send request ! zigbee2mqtt/{deviceNameForAction}/set/{request}");
|
System.Console.WriteLine($"Send request ! zigbee2mqtt/{nameToSend}/set/{request}");
|
||||||
|
|
||||||
MqttClientService.PublishMessage("zigbee2mqtt/" + deviceNameForAction + "/set", request);
|
|
||||||
|
|
||||||
|
MqttClientService.PublishMessage($"zigbee2mqtt/{nameToSend}/set", request);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -235,7 +235,7 @@ namespace MyCore.Service.Services
|
|||||||
case ProviderType.zigbee2mqtt:
|
case ProviderType.zigbee2mqtt:
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action, DeviceNameForAction);
|
DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -171,7 +171,7 @@ namespace MyCore.Service.Services
|
|||||||
case ProviderType.zigbee2mqtt:
|
case ProviderType.zigbee2mqtt:
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action, DeviceNameForAction);
|
DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -87,6 +87,7 @@ namespace MyCore.Services.Devices
|
|||||||
if (create) {
|
if (create) {
|
||||||
device.Name = deviceDetailDTO.Name;
|
device.Name = deviceDetailDTO.Name;
|
||||||
}
|
}
|
||||||
|
device.NameForAction = deviceDetailDTO.NameForAction;
|
||||||
device.Description = deviceDetailDTO.Description;
|
device.Description = deviceDetailDTO.Description;
|
||||||
device.ManufacturerName = deviceDetailDTO.ManufacturerName;
|
device.ManufacturerName = deviceDetailDTO.ManufacturerName;
|
||||||
|
|
||||||
@ -131,43 +132,48 @@ namespace MyCore.Services.Devices
|
|||||||
// Todo structure SupportedOperations
|
// Todo structure SupportedOperations
|
||||||
device.SupportedOperations = deviceDetailDTO.SupportedOperations;
|
device.SupportedOperations = deviceDetailDTO.SupportedOperations;
|
||||||
|
|
||||||
// TODO CHECK HERE IF NOT ERASING DATA .. on zigbee connection
|
// If no zigbee, update data (Netatmo ..)
|
||||||
|
if (!isZigbee)
|
||||||
|
{
|
||||||
|
device.LastStateDate = deviceDetailDTO.LastStateDate;
|
||||||
|
device.LastState = deviceDetailDTO.LastState;
|
||||||
|
|
||||||
device.IsContact = deviceDetailDTO.IsContact;
|
device.IsContact = deviceDetailDTO.IsContact;
|
||||||
device.Contact = deviceDetailDTO.Contact;
|
device.Contact = deviceDetailDTO.Contact;
|
||||||
device.IsIlluminance = deviceDetailDTO.IsIlluminance;
|
device.IsIlluminance = deviceDetailDTO.IsIlluminance;
|
||||||
device.Illuminance = deviceDetailDTO.Illuminance != null ? deviceDetailDTO.Illuminance.Value : 0;
|
device.Illuminance = deviceDetailDTO.Illuminance != null ? deviceDetailDTO.Illuminance.Value : 0;
|
||||||
device.IsBrightness = deviceDetailDTO.IsBrightness;
|
device.IsBrightness = deviceDetailDTO.IsBrightness;
|
||||||
device.Brightness = deviceDetailDTO.Brightness;
|
device.Brightness = deviceDetailDTO.Brightness;
|
||||||
device.IsState = deviceDetailDTO.IsState;
|
device.IsState = deviceDetailDTO.IsState;
|
||||||
device.State = deviceDetailDTO.State;
|
device.State = deviceDetailDTO.State;
|
||||||
device.IsColorTemp = deviceDetailDTO.IsColorTemp;
|
device.IsColorTemp = deviceDetailDTO.IsColorTemp;
|
||||||
device.ColorTemp = deviceDetailDTO.ColorTemp;
|
device.ColorTemp = deviceDetailDTO.ColorTemp;
|
||||||
device.IsColorXY = deviceDetailDTO.IsColorXY;
|
device.IsColorXY = deviceDetailDTO.IsColorXY;
|
||||||
device.ColorX = deviceDetailDTO.ColorX;
|
device.ColorX = deviceDetailDTO.ColorX;
|
||||||
device.ColorY = deviceDetailDTO.ColorY;
|
device.ColorY = deviceDetailDTO.ColorY;
|
||||||
device.IsOccupation = deviceDetailDTO.IsOccupation;
|
device.IsOccupation = deviceDetailDTO.IsOccupation;
|
||||||
device.Occupation = deviceDetailDTO.Occupation;
|
device.Occupation = deviceDetailDTO.Occupation;
|
||||||
device.IsAlarm = deviceDetailDTO.IsAlarm;
|
device.IsAlarm = deviceDetailDTO.IsAlarm;
|
||||||
device.Alarm = deviceDetailDTO.Alarm;
|
device.Alarm = deviceDetailDTO.Alarm;
|
||||||
device.IsTemperature = deviceDetailDTO.IsTemperature;
|
device.IsTemperature = deviceDetailDTO.IsTemperature;
|
||||||
device.Temperature = deviceDetailDTO.Temperature != null ? deviceDetailDTO.Temperature.Value : 0;
|
device.Temperature = deviceDetailDTO.Temperature != null ? deviceDetailDTO.Temperature.Value : 0;
|
||||||
device.IsHumidity = deviceDetailDTO.IsHumidity;
|
device.IsHumidity = deviceDetailDTO.IsHumidity;
|
||||||
device.Humidity = deviceDetailDTO.Humidity != null ? deviceDetailDTO.Humidity.Value : 0;
|
device.Humidity = deviceDetailDTO.Humidity != null ? deviceDetailDTO.Humidity.Value : 0;
|
||||||
device.IsPressure = deviceDetailDTO.IsPressure;
|
device.IsPressure = deviceDetailDTO.IsPressure;
|
||||||
device.Pressure = deviceDetailDTO.Pressure != null ? deviceDetailDTO.Pressure.Value : 0;
|
device.Pressure = deviceDetailDTO.Pressure != null ? deviceDetailDTO.Pressure.Value : 0;
|
||||||
device.IsConsumption = deviceDetailDTO.IsConsumption;
|
device.IsConsumption = deviceDetailDTO.IsConsumption;
|
||||||
device.Consumption = deviceDetailDTO.Consumption;
|
device.Consumption = deviceDetailDTO.Consumption;
|
||||||
device.IsCurrentPower = deviceDetailDTO.IsCurrentPower;
|
device.IsCurrentPower = deviceDetailDTO.IsCurrentPower;
|
||||||
device.CurrentPower = deviceDetailDTO.CurrentPower;
|
device.CurrentPower = deviceDetailDTO.CurrentPower;
|
||||||
device.IsVoltage = deviceDetailDTO.IsVoltage;
|
device.IsVoltage = deviceDetailDTO.IsVoltage;
|
||||||
device.Voltage = deviceDetailDTO.Voltage;
|
device.Voltage = deviceDetailDTO.Voltage;
|
||||||
device.IsLinkQuality = deviceDetailDTO.IsLinkQuality;
|
device.IsLinkQuality = deviceDetailDTO.IsLinkQuality;
|
||||||
device.LinkQuality = deviceDetailDTO.LinkQuality;
|
device.LinkQuality = deviceDetailDTO.LinkQuality;
|
||||||
device.IsCO2 = deviceDetailDTO.IsCO2;
|
device.IsCO2 = deviceDetailDTO.IsCO2;
|
||||||
device.CO2 = deviceDetailDTO.CO2;
|
device.CO2 = deviceDetailDTO.CO2;
|
||||||
device.IsNoise = deviceDetailDTO.IsNoise;
|
device.IsNoise = deviceDetailDTO.IsNoise;
|
||||||
device.Noise = deviceDetailDTO.Noise;
|
device.Noise = deviceDetailDTO.Noise;
|
||||||
|
}
|
||||||
|
|
||||||
if (deviceDetailDTO.SupportedOperations != null)
|
if (deviceDetailDTO.SupportedOperations != null)
|
||||||
{
|
{
|
||||||
@ -312,6 +318,7 @@ namespace MyCore.Services.Devices
|
|||||||
{
|
{
|
||||||
DeviceDetailDTO deviceDetailDTO = new DeviceDetailDTO();
|
DeviceDetailDTO deviceDetailDTO = new DeviceDetailDTO();
|
||||||
deviceDetailDTO.Name = zigbee2MqttDevice.friendly_name;
|
deviceDetailDTO.Name = zigbee2MqttDevice.friendly_name;
|
||||||
|
deviceDetailDTO.NameForAction = zigbee2MqttDevice.friendly_name;
|
||||||
deviceDetailDTO.ServiceIdentification = zigbee2MqttDevice.ieeeAddr;
|
deviceDetailDTO.ServiceIdentification = zigbee2MqttDevice.ieeeAddr;
|
||||||
deviceDetailDTO.ProviderId = provider.Id;
|
deviceDetailDTO.ProviderId = provider.Id;
|
||||||
deviceDetailDTO.ProviderName = provider.Name;
|
deviceDetailDTO.ProviderName = provider.Name;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user