Customized MPCNC Controller

While there’s a large number of 3D-printable enclosures for the MPCNC (and Rambo boards specifically), I wanted to build something a little more durable and portable than simply a printed enclosure. I also opted to use a 37-pin D-Sub style connector to allow the controller to move between different machines in the future.

VS Code Hack: Easy Window Identification

VS Code has definitely become my tool of choice for everything from everyday editing of text and config files, to full web project development and testing. That said, I frequently find myself with a handful of VS Code windows open at any given time—bouncing between projects and trying to keep everything straight in my head (project X is on this screen, project Y is on that screen, etc). Then I discovered workspace theme overrides, and everything became 10x easier.

Analyzing Fitbit Data with Telegraf & Grafana

Having previously moved my Telegraf instance to a Synology-hosted Docker environment, I’ve spent some time adding additional measures for tracking and visualization using Grafana. With that task, I recently discovered the Telegraf Exec plugin, which allows you to execute custom scripts for the purposes of collecting external data for ingress into InfluxDB (or any of the other Telegraf output options). To prove out this concept, I’m using a Bash script to connect to Fitbit and pull data from my Fitbit Blaze into InfluxDB.

Moving Telegraf to Synology-Hosted Docker

In a previous post, I walked through the process of configuring Telegraf to run on a Virtual Machine hosted on my Synology DS1817+. While I quite liked the idea of running a virtual machine, with a complete OS available for configuration and installation of anything I might need, I also wanted to explore a thinner deployment of Telegraf using less resources and operating more like a service than a VM I would need to patch and maintain. Enter Docker.

Creating Your First Logic App

If you’ve used Microsoft Flow before, you’ll feel right at home working inside a Logic App. That said, while there’s a lot of similarities (Flow itself is built on top of Logic Apps), there’s still several core differences, and reasons why you might elect to use Azure Logic Apps over Microsoft Flow to implement no-code and low-code process automation.

While Flow is intended to be used by business users and offers a more self-service and user-specific workflow experience, Logic Apps are really designed for IT Pros. Logic Apps run as event and/or timer-based process within your Azure environment, meaning they’re not necessarily tied to a specific user. Logic Apps offer more advanced integration and lifecycle management capabilities, including the ability to leverage Azure Resource Management and source control.

For these reasons, you may choose to use a Logic App over Flow for scenarios that span across the organization, are scoped to a wider number of users, or have the mission criticality that justifies deeper testing, source control, and deployment techniques.

In this guide, we’ll create a basic Logic App that leverages ElasticOCR to OCR files added to OneDrive for Business. This guide is intended to show the mechanics of creating and rolling out your first Logic App. Error handling has been omitted for the sake of simplicity. If you don’t currently have an ElasticOCR subscription, you can sign up for 30-day free trial to follow along with this guide.

Configuring Telegraf on a Synology Virtual Machine

As part of my Home Automation series, we configured a Grafana dashboard to display status and statistics about SmartThings devices, the local weather and more. A few months ago, I retired an 8+ year old Windows Server storage solution and replaced it with a new Synology DS1817+. I knew that I wanted to leverage Grafana to display health statistics about the Synology (disk temperatures, throughput, disk conditions, etc.)—something that I never took the time to setup for my Windows server. Thankfully, Synology’s DSM platform natively supports SNMP, and we can easily run Telegraf to monitor the SNMP data and log it in our previously created InfluxDB instance.

On the backs of the ElasticOCR launch event at SharePoint Conference North America, I found myself with dozens of photos taken by the team that all needed to be sized and cropped. Previously I would have simply spun up Photoshop and created a quick batch solution to accomplish this, but this scenario had some challenges. We had specifically taken photos of people at our booth, and I wanted to attempt to automatically crop the photos around people as to somewhat normalize the photos without manually cropping all of them. Enter Azure Cognitive Services, and the start of CogServe-PS a new project that will become a holistic library for interacting with the Cognitive Services portfolio via PowerShell.

Wifi Irrigation Project

This project really traces its roots back to 2012, when I built a temporary irrigation solution for a small herb garden on our apartment balcony. That particular solution was designed to simply water our herbs while we were away on vacation, and was certainly limited by the fact that the 5 gallon bucket only held a 5-6 day water supply, and contained no smarts of any kind—outside of the MacGyver’d pond pump connected to a Christmas light timer. In 2016 we moved into our house—outgrowing the 5-gallon bucket solution, and starting our home automation journey. After building a new herb and vegetable planter, and planting new shrubs this year, it was time to upgrade our irrigation solution.

Introducing ElasticOCR

To say it has been a busy year would be an understatement. Surprisingly, we were actually able to keep what we were working on under wraps, and with the veil lifted a couple weeks ago at our SharePoint Conference North America product launch, I can now formally introduce ElasticOCR.

The team and I have been hard at work, transforming a paper napkin idea of the world’s first modern document OCR solution into not just a “minimal viable product”, but a generally available solution with a dedicated brand and native integration with the systems and platforms that you already use every single day—and we did this in almost a year to the day from our first white-boarding session.

Adding Live Weather to Your Grafana Home Dashboard

Back in Part 4 of Trending & Analyzing SmartThings Devices we created a Grafana dashboard to display details of devices via SmartThings. We'll build on this dashboard over time, and an important theme here is the unification of data from multiple services. SmartThings natively integrates with AccuWeather to report current temperature and the like, but what if you really want to see a snapshot of the week's forecast on your home dashboard?

DarkSky offers one of the best developer APIs around. I'm not paid to say that, they're not sponsoring this post (they don't even know about it), but having worked with their API on several other projects I've always been super impressed with their data models and the specificity of the data they return. Instead of basing their data on a large area (like a zip code), DarkSky uses your specific latitude and longitude, giving you a very precise forecast. We won't be directly using the API in this particular post, but if you're curious you should definitely go check it out.

In this particular case, we'll simply be adding DarkSky's embed widget to the Grafana dashboard we made previously.