Skip to content

An anywhere switch to control HomeKit devices

I recently assembled an IKEA cabinet and shelving in the corner of a room. It's a darker corner, so I added lighting to the cabinet and the shelves, all of which is then plugged into a HomeKit-compatible power plug. I can now easily turn the lights on and off with Siri, but I wanted to have a more-traditional wall switch, too.

As the wall outlet isn't switched, the "real" solution would have involved hiring an electrician to cut holes in the wall and run a new line to a new switch, followed up by a fair bit of drywall repair, texture, and painting. I didn't want to go that route.

Instead, I found Belkin's Wemo Stage Scene Controller1Apple sells this on their site, too, but at a much higher price., which promised an install-anywhere switch for any HomeKit connected devices.

(Note: I don't know if this thing works outside the USA or not; I found a note on their site indicating it may not work in the UK, but that's all I was able to find.)

I bought one to test, and after the first day, I was preparing to return it and write a very scathing review…
[continue reading…]



Easily convert (some?) AVIs to QuickTime-compatible files

Here's another entry in my "remind myself without searching the entire internet" series of posts. I often want to convert a non-native video into a QuickTime-compatible format. In one oft-repeated use, I have a time lapse camera that outputs AVI files that QuickTime cannot read. Using Don Melton's Other Video Transcoding tools, converting between the two forms is pretty easy:

other-transcode --hevc --mp4 input_file.m4v

The output file will reside in the same directory, with the same name, but with the mp4 extension. I know there are tons of ways to do this, and many offer much more control over the final quality. For my time lapse camera videos, though, the quality is fine and this is really easy to use.



Merge multiple movies into one while minimizing file size

I had two short video clips I wanted to merge into one, each about 8MB in size. I first did this using QuickTime Player's Clips feature, but the end result was over 100MB in size. For my second try, I switched to ffmpeg, which can be installed via Homebrew, MacPorts, or some other method.

This isn't quite as simple as typing one command, as ffmpeg wants to process a list of files to merge—it can't, without some Unix wizardry, accept a list on the command line. So step one is to create a text file (list.txt in my example) in the same directory as your video files. The file contains a list of each movie to be merged, one entry per row, like this:

file '/full/path/to/movie1.mp4'
file '/full/path/to/movie2.mp4'
file '/full/path/to/movie3.mp4'
etc.

Save the text file, then use this command to merge the movies into one:

ffmpeg -f concat -safe 0 -i list.txt -codec copy merged_movie.mp4

When done, you'll have one new movie with all of the listed movies, in the order in which you listed them. And best of all, the size won't balloon when you do so—using the same movies as I used in QuickTime Player, the finished file was just 28MB in size. This isn't limited to mp4s; you can merge any type of video that ffmpeg can handle.

And yes, this is another entry in my series of "remind myself" posts; I originally found the answer on Stack Overflow.



Reverse a video using ffmpeg

This post is another in an ongoing series where the sole point of the post is to make it easier for me to find this information in the future—instead of searching sites and finding tons of wrong answers, I can just search my blog and find the right answer. If it's useful to anyone else, that's a bonus.

Sometimes, I want to reverse a video, usually for humorous effect—to turn a disassembly time lapse video into an assembly time lapse video, for example. If you have ffmpeg installed (via Homebrew or MacPorts or other method), then it's quite simple to do. Here's the command:

ffmpeg -i original_movie.mp4 -vf reverse -af areverse new_reverse_movie.mp4

It doesn't have to be an mp4, of course—any format that ffmpeg can deal with will work fine.

(I originally found this solution on StackExchange.)



Keep authenticated WordPress sites up to date

I have a couple of WordPress sites that live behind HTTP basic authentication—they're family-related blogs that I don't want publicly accessible.

Everything works fine behind the authentication except for automatic updates (and other WordPress cron tasks). This bugged me a bit, but never enough to do anything about it until today. To fix the problem, you can either modify some code (which I generally don't like to do) or use a plug-in (easy and quick). I chose the plug-in.

If you'd prefer the customization solution, though, just follow these instructions. I haven't tested them myself, though, so I can't say for sure that they still work (they are five years old).

For the plug-in solution, install WP Cron HTTP Auth. Go to its Settings panel, and enter your HTTP Authentication credentials, and that's that—WordPress cron tasks, including automatic updates, will now work again. Hooray!



Using NUT to monitor a CyberPower UPS in pfSense

This post is probably of interest only to me, and I'm posting it just because I'm getting tired of remembering where I stored this tidbit on my Mac.

Our home router is a Protectli box running pfSense firewall/router software; the Protectli box is connected to a CyberPower UPS. Within pfSense, you can install the Network UPS Tools package (called NUT in pfSense) to monitor and report on the UPS; here's how it looks in the overview screen:

After recently updating to a newer Protectli box, however, all I saw was a message that read "Cannot communicate with UPS" (or something close to that). I knew I had a fix for this issue somewhere, but I couldn't remember where. Today I found it, so also today, it goes on my blog so I'll always know where it is…

[continue reading…]



Search sites from anywhere via shortcuts, version 3.0

Yes, it's the return of the return of Web Search via Shortcuts, now at version 3.0 and much better than either of the previous versions. This is my Keyboard Maestro macro that lets you easily search web sites via a pop-up menu and an abbreviation:

The above would search DuckDuckGo for the theory of everything, and open the results in your default browser. Here are the highlights of the 3.0 release:

  • The input dialog appears much more quickly—over 4x faster than in the 2.x series.
  • All customization is done within the macro itself; there's no need to muck about in the Keyboard Maestro editor.
  • You can modify (shortcut, description, URL) any search site, including the default sites.
  • A list of 80+ search sites is included, and you can activate any of them with a few clicks and the creation of a shortcut word for each site.
  • All updates are tracked in two small text files on your drive, which means future updates will be completely automatic.

Read on for the details, or if you'd like to get started with Web Search via Shortcuts version 3, download the macro now. (Current users can use the check for updates macro to download the new version directly from version 2.x.)
[continue reading…]



Convert epoch time to human-readable time in Terminal

This is a stupid-simple Unix tip, posting more as a reminder to myself than anything truly insightful—I keep forgetting these details, so by doing the work to create a post about it, I'll never forget them again…

I've been using unix time from the unix side of macOS quite a bit lately, as it's an easy way to get timestamps for things. Getting the epoch time is easy:

$ date +%s
1641735529

The thing I always forget is how to convert an epoch time back into a human-readable format of my choosing, despite it being shown in the man page. It's simple; use the -r option, like this:

$ date -r 1641735529
Sun Jan  9 05:38:49 PST 2022

And, of course, you can format it how you like using a strftime formatted format string, i.e.

$ date -r 1641735529 "+Today is %A, %B %e, and it's %I:%M:%S %p"
Today is Sunday, January  9, and it's 05:38:49 AM

Related: Yes, I wake up early; it started with macosxhints.com and needing to update the site before I left for my real job each day, and it persists 20 odd years later.



Search sites from anywhere via shortcuts, version two

Jan 14 2022: Version 2.5 is out, with a bug fix and a new check for updates button on the help panel. Download the macro, or get the update by manually running the Update check macro within the 2.4 release.

Jan 14 2022: Version 2.4 is out, with an optional "no text" input dialog, a default mode to search a favorite site without a shortcut, and faster processing of search terms.

Jan 9 2022: Version 2.3 is out, with a new download verification feature (which will be useful starting with the next update), a much simpler update checker, and some minor bug fixes.

Jan 4 2022: Version 2.2 is out, with a fix for an annoying bug I introduced in the update checking code that could cause the macro to quit after being invoked. Sorry!

Jan 2 2022: Version 2.1 is out. The most-obvious new feature is shown at right—a live-filter option for the list of shortcuts in help.

But there's lots more—check out the release notes to see the full list, including the newly-added shortcuts.

A week or so ago, I published the first version of Web Search via Shortcuts, my Keyboard Maestro macro that lets you, well, search the web from anywhere via shortcuts—you can type rob macros, for instance, to search this site for entries related to macros.

I was very happy with how the macro worked, but behind the scenes, it wasn't all that good. What started as a small project (make it easier for others to customize the list) turned into a near-total rewrite. So…introducing Web Search via Shortcuts, version 2.0:

If you need more general information on how the macro works, please refer to the original post; there's a lot there I'm not repeating here.
[continue reading…]



Search sites from anywhere via abbreviations

Note: This post is no longer updated. Please see the version 2.0 post for current details and download links. This post remains because it has a fair bit of information about the macro in general.

Nearly five years ago, I wrote about my simple Keyboard Maestro web search macro that let me search many web sites from anywhere within macOS. While it worked well, it felt a bit cumbersome—I had to scan a pop-up palette of sites, and then press the proper key to select the site I wanted to search (so I had to keep the list relatively short). Then I'd wait for a new prompt to appear, type the search terms, and press Return.

Because of my macro's convoluted interface, I found myself using our own Butler most of the time, as it offers an interface similar to SafariKeywordSearch (which works in Safari as an extension; I was reminded of it due to a recent post by @danmoren on Six Colors). Both it and Butler do keyword searches, so you can type d best home vacuums to search DuckDuckGo for best home vacuums, or gm Tokyo to search Google Maps for Tokyo.

I decided to rewrite my macro to work like those apps do, but with an added feature: I use a number of browsers, and there are times I want my search to run in something other than the default browser. Using my rewritten macro, I can now optionally specify a browser in which to run the search. So when I activate the macro, I can use one of two different formats for the search command:

Both of those searches will search the Apple Movie Store for movies with the keyword disaster; the one on the left will use my default browser (currently Safari); the one on the right will use Edge.
[continue reading…]