For work I recently needed to implement scenario: The web app should be freely acessible within the office (which has a static IP address to the world) OR from home using HTTP basic auth. This wasn't super straightfoward, so here is my implementation:
I used two ring libraries:
I recently bought a few Leviton Decora Smart smart home switches. I specifically bought them for their Apple HomeKit integration, which is usually the most choosy protocol. I had assumed that this would also work with Alexa (which I prefer to Siri because it understands me a lot better), but those specific switches work only with Homekit. So I had to find a way of somehow bridging them to Alexa. This is how:
There is a software called Homebridge. It's a project that pretends to be a HomeKit bridge (a bridge is what bridges appliances to HomeKit; like your Philips Hue bridge does to your lightbulbs). It allows for very simple integration of appliances that don't have HomeKit integration (like a Nest) to HomeKit, by providing a simple interface to HomeKit and an easy plugin system. More interestingly for my use-case, there is a fork of Homebridge that allows Alexa to discover the devices added through these plugins as well, called homebridge-alexa.
I love lumo. It's a wonderful way to hack together quick scripts using Clojurescript. But as of now (version 1.6.0) it only supports 1.5GB of heap space. This is generally enough for most things, but if you work with really big files (and you can't or won't rewrite your whole program to use a better approach like streaming) then you have a problem.
This is a default setting of nodejs that can be fixed by invoking the
node command with the
–max_old_space_size=8192 flag (to allow for 8GB of heap space). But since lumo has already been compiled with the default settings, there is no way to change the setting for scripts invoked with lumo.