protected override void Execute(ZwaveDevice device, Node node, ZwaveCommandQueue queue) { queue.AddDistinct("Get Alarm", async () => { var result = await node.GetCommandClass<Alarm>().Get(); HandleAlarmReport(result); }); }
protected override void Execute(ZwaveDevice device, Node node, ZwaveCommandQueue queue) { queue.AddDistinct("Get SensorMultiLevel", async () => { var result = await node.GetCommandClass<SensorMultiLevel>().Get(); HandleSensorMultiLevelReport(result); }); }
protected override void Handle(ZwaveDevice device, Node node, ZwaveCommandQueue queue, CancellationToken cancellationToken) { node.GetCommandClass<Alarm>().Changed += (s, e) => { HandleAlarmReport(e.Report); }; Start(TimeSpan.FromMinutes(10), device, node, queue, cancellationToken); }
protected override void Handle(ZwaveDevice device, Node node, ZwaveCommandQueue queue, CancellationToken cancellationToken) { node.GetCommandClass<Meter>().Changed += (s, e) => { HandleMeterReport(e.Report); }; Start(_interval, device, node, queue, cancellationToken); }
protected override void Handle(ZwaveDevice device, Node node, ZwaveCommandQueue queue, CancellationToken cancellationToken) { node.GetCommandClass<WakeUp>().Changed += (s, e) => { if (e.Report.Awake) { queue.StartOrContinueWorker(isWakeUp: true); } }; }
protected override void Handle(ZwaveDevice device, Node node, ZwaveCommandQueue queue, CancellationToken cancellationToken) { node.GetCommandClass<SwitchBinary>().Changed += (s, e) => { HandleSwitchBinaryReport(e.Report); }; device.IsSwitchBinary = true; Start(TimeSpan.FromMinutes(30), device, node, queue, cancellationToken); }
protected override void Execute(ZwaveDevice device, Node node, ZwaveCommandQueue queue) { foreach (AlarmType alarmType in Enum.GetValues(typeof(AlarmType))) { queue.AddDistinct("Get SensorAlarm " + alarmType, async () => { var result = await node.GetCommandClass<SensorAlarm>().Get(alarmType); HandleSensorAlarmReport(result); }); } }
protected void Start(TimeSpan interval, ZwaveDevice device, Node node, ZwaveCommandQueue queue, CancellationToken cancellationToken) { Task.Run(async () => { while (!_isDisposing) { await Task.Delay(interval, cancellationToken).ContinueWith(_ => { }); Execute(device, node, queue); } }); }
protected override void Execute(ZwaveDevice device, Node node, ZwaveCommandQueue queue) { queue.AddDistinct("Get Meter", async () => { if ((DateTime.UtcNow - _lastUpdate) < _interval) { return; } var result = await node.GetCommandClass<Meter>().Get(); HandleMeterReport(result); }); }
protected abstract void Handle(ZwaveDevice device, Node node, ZwaveCommandQueue queue, CancellationToken cancellationToken);
protected abstract void Execute(ZwaveDevice device, Node node, ZwaveCommandQueue queue);