Skip to content

Commit d275707

Browse files
authored
Add ManuallyIdleNotificationValue method to the ZWaveNode class (#73)
1 parent 6b99e30 commit d275707

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

Visual Studio Projects/ZWaveJS.NET/ZWaveJS.NET/Enums.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ internal class Commands
183183
public const string HardReset = "driver.hard_reset";
184184
public const string SoftReset = "driver.soft_reset";
185185
public const string ParseQRCodeString = "utils.parse_qr_code_string";
186+
public const string ManuallyIdleNotificationValue = "node.manually_idle_notification_value";
186187
}
187188

188189
public enum SecurityClass

Visual Studio Projects/ZWaveJS.NET/ZWaveJS.NET/ZWaveNode.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,62 @@ public Task<CMDResult> WaitForWakeup()
783783
return Result.Task;
784784
}
785785

786+
787+
public Task<CMDResult> ManuallyIdleNotificationValue(ValueID VID)
788+
{
789+
Guid ID = Guid.NewGuid();
790+
791+
TaskCompletionSource<CMDResult> Result = new TaskCompletionSource<CMDResult>();
792+
793+
_driver.Callbacks.Add(ID, (JO) =>
794+
{
795+
CMDResult Res = new CMDResult(JO);
796+
Result.SetResult(Res);
797+
798+
});
799+
800+
Dictionary<string, object> Request = new Dictionary<string, object>();
801+
Request.Add("messageId", ID);
802+
Request.Add("command", Enums.Commands.ManuallyIdleNotificationValue);
803+
Request.Add("nodeId", this.id);
804+
Request.Add("valueId", VID);
805+
806+
string RequestPL = JsonConvert.SerializeObject(Request);
807+
_driver.ClientWebSocket.SendInstant(RequestPL);
808+
809+
return Result.Task;
810+
}
811+
812+
public Task<CMDResult> ManuallyIdleNotificationValue(int notificationType, int prevValue, int? endpointIndex = null)
813+
{
814+
Guid ID = Guid.NewGuid();
815+
816+
TaskCompletionSource<CMDResult> Result = new TaskCompletionSource<CMDResult>();
817+
818+
_driver.Callbacks.Add(ID, (JO) =>
819+
{
820+
CMDResult Res = new CMDResult(JO);
821+
Result.SetResult(Res);
822+
823+
});
824+
825+
Dictionary<string, object> Request = new Dictionary<string, object>();
826+
Request.Add("messageId", ID);
827+
Request.Add("command", Enums.Commands.ManuallyIdleNotificationValue);
828+
Request.Add("nodeId", this.id);
829+
Request.Add("notificationType", notificationType);
830+
Request.Add("prevValue", prevValue);
831+
if (endpointIndex.HasValue)
832+
{
833+
Request.Add("endpointIndex", endpointIndex.Value);
834+
}
835+
836+
string RequestPL = JsonConvert.SerializeObject(Request);
837+
_driver.ClientWebSocket.SendInstant(RequestPL);
838+
839+
return Result.Task;
840+
}
841+
786842
[Newtonsoft.Json.JsonProperty]
787843
public Endpoint[] endpoints { get; internal set; }
788844
[Newtonsoft.Json.JsonProperty]

0 commit comments

Comments
 (0)