How can an Arduino determine the status of a washer or dryer using only vibration data? I'm trying to make an IoT washer/dryer device that will text me whenever my load is done. I was initially thinking to make assumptions about what data it should be receiving when the washer/dryer is running. However, I was wondering if there was a library that could analyze the data and "learn" what a cycle typically feels like. Should I:

a) keep it simple: when machine has been vibrating past a threshold for certain amount of time, consider it running. when it stops vibrating past time threshold, consider it done.

or 

b) use some kind of learning algorithm to determine whether it has been stopped manually, an error has occurred, or it has successfully completed a cycle

Also, would option b be more practical on a device such as a Raspberry Pi?
I think the simplest option is to experiment first: record the vibration
level as a function of time during one wash cycle, and do that with a
few different washer models. Then look at your data and devise an
algorithm with your eyes on the measured curves. This is really the
only reasonable way to do any kind of signal processing: look at the
signal first. If you still have problems finding an algorithm, you can
come back here and show your data.

Unless you live in a region with huge geologic activity, chances are
that the vibration level of any washing machine will be well above the
background, which should allow you to choose a single vibration
threshold suitable for every model.