A Quick and Dirty Web Maintenance Page Using .htaccess

Maintenance Page

Sometimes when working on a web site you need a quick and dirty “This Site is Down” Maintenance page. WordPress or other similar software may have this feature built-in or through a plugin, but sometimes you may need to put up a page while moving files around using ssh or scp/sftp/ftps.

If you use Apache or an Apache compatible web server that uses .htaccess, the easiest way to generate a  maintenance page is to combine the deny/allow directives with a custom 403 page which can be written directly in .htaccess. The directives will allow only your IP address to work on and view the web site while everyone else will see the maintenance page.

Single File Web Maintenance Mode

This method requires no php or other separate scripts, and no redirects.  Enabling the mode is simple – just remove (maintenance mode) or add (go live) the hash comment from two lines ( 21 and 23 in the example below).

Editing Htaccess File

Follow these simple steps:

  1. Using Winscp, ssh, or other similar utility login to your website server, and open .htaccess file located in your web root.
  2. Add the following lines to the top of the .htaccess file:
  3. Ask Google “What is my ip address ?“. This is your workstation ip address, select and copy it.
  4. Replace XXX.XXX.XX.XXX with the IP address you copied in the prior step.
  5. Edit the example to put in your own html code and save whatever picture you’d like to use as your background as “background.jpg” in your web root. Make sure any quotes on the ErrorDocument line (line 23 in the example) are  single quotes except the outer ones. Also the entire ErrorDocument line should all be on one line with no carriage returns (it will be displayed in the example as multiple lines but that’s just the presentation for this post, the code itself is all one line). 
  6. Save the .htaccess file.
  7. That’s it. To enable maintenance mode, uncomment line 21  “deny from all” and line 23 “ErrorDocument 403”. To disable maintenance mode and go “live” comment those same two lines out.
  8. Note that if you get an “Internal Server” error you have a syntax error in your .htaccess file. Fix and try again.

 

Maintenance Page

 

Answer Skybell Automatically on Android Using Tasker

Skybell App Opening

Skybell and other video doorbells ring your phone and allow you to see who’s at the door. But they require you to click on the notification and by the time you do that a minute or two may have gone by. In addition you may want to hang a tablet from a wall to act as an electronic peephole, allowing you to see at a glance who’s at the door and to communicate with them.

If you have a Skybell you can do this with Tasker.

Install Skybell, Takser, and Notification Listener Apps

  1. Make sure you have installed your Skybell app.
  2. Android Skybell HD App Install Page

  3. Go to the Google Play store and purchase and install Tasker. Tasker allows you to automate tasks on Android devices. Tasker’s currently $3 and well worth the price.
  4. Google Play Tasker Page

  5. Also from the Google Play store install “Notification Listener” a free plugin for Tasker.
  6. Google Play Notification Listener App Page

    Configure Tasker App To Ring A Bell

  7. In Tasker, click on Profiles tab, then the + sign, and add an Event, Tap “Plugin”, then “Notification Listener”, then “Notification Listener” again:
  8. Notification Listener App Screenshot

  9. Click “Configuration”, and change the event to “Notification to Any”, Click on the App button to select the Skybell App, and change the “Text” option to “You have a visitor at your door.”, settings should look like this:
  10. Tasker Configuration Page - Any Notification Event

  11. Save by clicking on the Checkmark and exiting out.
  12. Back at the Profiles screen, click on “New Task” on the dialog that pops up, name it as “Open Skybell On Ring”, Tap “+”, select “Plugin”, “Notification Listener”, and then “Gestures”:

    Takser Action Plugin

  13. Fill out the Gestures screen by adding “%nlkey” to “Notification Key” and toggle on the “Click on notification”:

    Takser Notification Key Screenshot

  14. Click the checkmark and make sure Tasker and the new profile is enabled. You are done. Your profile tab should have an entry that looks something like this:

    Notification Listener Event

    Now whenever your Skybell rings, tasker will automatically “Tap” on the Skybell notification, and the tablet should automatically open to the live streaming view of your door.

    Troubleshooting: If you are getting notifications but the Skybell app is not opening automatically, make sure you have Tasker and the event/task profile you created above is enabled, and you have permitted Tasker and Notification Listener to have access to the Android notification services (you should have allowed this during setup). If Skybell notifications are not occurring at all, try changing the tablet’s WIFI IP to a static one and use Google’s 8.8.8.8 and 8.8.4.4 DNS as described in my previous post, or uninstalling and reinstalling the Skybell app.

Control Almost Any Infrared Device By Voice

TV Photo by Creedi Zhong on Unsplash

Want to control almost any TV, DVD or other infrared device by voice ? If your device is not a newer model that offers voice assistance, you can add voice control by use of a univeral remote like the Broadlink Mini3 IR Control Hub.

These devices operate like your normal wand remotes with two key differences:

  1. Rather than having a directed beam of infrared which you must point at your device, they flood the room with infrared light so they reach all of the devices in the room that are within a reasonable distance and angle from the universal remote.
  2. They are Wifi enabled and respond to commands you issue over your network.

The simplest way of using the universal remote is to simply follow the manufacturer’s instructions and use the mobile software offered by the manufacturer. However, this will involve using the manufacturer’s cloud account which can expose your home network to vulnerabilities.

The more secure but more complicated approach which I have done is to ditch the manufacturer’s mobile app and cloud account and use Home Assistant installed on a Raspberry Pi (model 3 or higher). The steps are too long to list here, but in short, they involve using an IF This Then That (IFTTT) Google Assistant or Alexa applet to issue a command through Home Assistant to trigger a URL call to your Broadlink universal remote using the Home Assistant broadlink plugin. You will also need to setup a DuckDNS account and a secure SSL connection to your Raspberry Pi. The Home Assistant will allow you to setup the broadlink plugin to issue either one command (e.g., to turn the TV on), or several in a series (e.g., turn the TV on and switch to a particular channel).

Below are two YouTube videos explaining most of the steps other than the IFTTT setup (Note that you only need to listen to the first 11 minutes for the first video for the infrared setup, the remainder is not relevant):

To set up voice commands using IFTTT, use the Google Home Assistant applet to cause a voice command “E.g., Turn on TV” to fetch the DuckDNS URL containing your Home Assistant broadlink command.

Lastly do you have a Roku or Roku enabled TV like the TCL Roku series but it’s not voice enabled ? You can ditch the Univeral Remote entirely as well as the Home Assistant setup and just have the IFTTT Google Assistant applet recipe issue the Roku API url command directly to the Roku device’s API. Much simpler and more reliable!

NOTE: The above advice on the Roku is outdated at least for Google’s Home Assistant. With some limitations, Google Home will now automatically detect Roku and setup voice controls, allowing you to turn on and off, switch apps, etc. See How do I use the Google Assistant with my Roku streaming device? on the Roku support pages.