public static IObservable <Unit> AsyncPulse(this IDevice <bool> device) { //TODO rein var ob = new Subject <Unit>(); device .AsyncWriteTrue() .Delay(TimeSpan.FromSeconds(1)) .Subscribe(x => device .AsyncWriteFalse() .Subscribe(y => ob.OnNext(new Unit()))); return(ob.Take(1)); }