Part 8: Razor-sharp thinking

TV ping

Can you monitor a Philips OneBlade shaver with Zabbix? Of course you can! But why to do that and how to monitor a dumb device with zero IoT capabilities? Welcome to my weekly blog: I get my bread and butter by being a monitoring tech lead in a global cyber security company, but I monitor my home for fun with Zabbix & Grafana and do some weird experiments.

We all know how the battery-operated shavers, toothbrushes and similar devices sound very energetic and trustworthy immediately after you have charged their battery to full. Over time -- over not so long time -- they start to sound tired, but technically you can still use them. Or, you think you can still use them, but instead they will betray you and die in the middle of operation. Zabbix to the rescue!

Sing to me, bad boy

To get an idea about the battery runtime left, I needed to somehow capture the sound frequency and analyse it. The recording part was easy -- after I had charged my razor to full level, I did leave it running and recorded the sound with my iPhone Voice Memos.

But how to get the sound frequency? This is the part where the audio engineers of the world can laugh at me in unison.

Audacity spectrogram

At first I tried with Audacity as traditionally it has done all the tricks I possibly need to do with audio. Unfortunately, I could not find a way to accomplish my dream with it, and even if I would have, I fear I would have to manually do something with it, instead of automated fashion I'm wishing for.

I could see all kinds of frequencies with Audacity, but was not able to isolate the humming sound of Philips OneBlade, at least not to a format I could use with Zabbix. Yes, Audacity has macros and some functionality remotely from command line, but I interrupted my attempts with it. If you can do stuff like this with Audacity, drop me a note, I'm definitely interested!

Here come the numbers

Then, after a bit of searching, I found out aubiopitch. It analyses the sample and returns a proper heckton of numbers back to you.

aubiopitch output

Those are not GPS coordinates or lottery numbers. That's a timestamp and in seconds and the sound frequency in Hz. And, just by peeking the file manually, I found out that the values around 100, plus minus something, were constantly present in the file. Yes, my brains have developed a very good pattern matching algorithm when it comes to log files, as that's what I have been staring at for the last 20+ years.

As my 30+ minutes sample contained over 300,000 lines of these numbers, I did not want to bother my poor little home Zabbix with this kind of data volume for my initial analysis. I hate spreadsheet programs, especially with data that spans to hundreds of thousands of rows or more, so how to analyse my data? I possibly could have utilised Grafana's CSV plugin, but to make things more interesting (for me, anyway), I called to my old friend gnuplot instead. Well, a friend in a sense that I know that it exists, and that I occasionally used it two decades ago for simple plotting.

No alt text provided for this image

There it is, my big long needle in a haystack! Among some other environmental sounds aubiopitch did recognise the Philips soundtrack as well! What if I filter out those higher frequencies? Or at least attempt to, my gnuplot-fu is not strong.

No alt text provided for this image

Yes, there it is, the upper line steadily coming down. After my first recording, it looks like that with a full battery the captured frequency starts from about 115 Hz, and everything goes well until about 93 Hz, but if I would start to shave around that time, I would better be quick, as I would only have two to three minutes left before the frequency quickly spirals down.

Production show-stoppers

This thing is not in "production" yet, because

 

  • I need to do more recordings to see if I get similar frequencies each time
  • I need to fiddle with iPhone Shortcuts to make this as automated as possible.

 

Anyway, I did start building a preliminary Zabbix template with some macros already filled in...

Preliminary Zabbix template

... and I have connection established between my dear Siri and Zabbix, too; this will be a topic for another blog entry in the future.

Hello, Siri

I am hoping that I could get Siri to upload the Voice Memo automatically to my Zabbix Raspberry Pi, which then would immediately analyse the data with aubiopitch maybe with a simple incron hook, and Zabbix would parse the values. That part is yet to be implemented, but I am getting there. It's just numbers, and in the end I will just point Zabbix to a simple text file to gather its numbers or make zabbix_sender to send in the values. Been there, done that.

I have been working at Forcepoint since 2014 and for this post to happen I needed to use some razor-sharp thinking.

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
Buy me a coffee

Like these posts? Support the project and Buy me a coffee