Many an IOT and home automation device is designed by its manufacturer from the outset so that the device is completely dependent upon some IOT cloud that is controlled by the manufacturer. Access to the IOT device through that IOT cloud is nearly always limited to access through a proprietary smart phone app that is controlled by the manufacturer.
There are many drawbacks to a cloud-based IOT or home automation device:
-
- The manufacturer might go out of business, and with it, the manufacturer’s IOT cloud. The IOT device then might become a brick.
- The manufacturer might, through neglect or poor decisionmaking, permit its IOT cloud to become unreliable (for example Legrand’s Eliot cloud).
- The manufacturer might simply choose to turn off its cloud (for example the D-Link IOT cloud and the Juicebox IOT cloud) .
- The manufacturer might choose to restrict or monetize its IOT cloud (for example the Chamberlain/Liftmaster cloud).
- A particular IOT cloud might be implemented in a way that fails to provide an API (application programming interface).
- A homeowner might be concerned as to the security or privacy of a particular IOT cloud.
- The homeowner is forced to juggle any number of proprietary smart phone apps to try to reach each of a number of manufacturer’s IOT clouds, to try to control any of a number of the homeowner’s IOT devices.
- Any command or control task might require messages to pass through two or more distinct IOT clouds, imposing latency and risking failure for any of a number of possible reasons.
- During a failure of the home’s internet connection, the homeowner might not be able to reach or control many of the IOT and home automation devices.
A first chief goal for many a homeowner who uses Home Assistant is to try to migrate particular IOT and home automation functions away from IOT-cloud-based solutions and over to local-based solutions.
Here are IOT and home automation devices and functions that I have somehow managed to add to Home Assistant. For each device or function, I indicate the “cloud” or “local” status of that device or function. When you see the word “local” in the discussion that follows, this typically means that I had to spend minutes or hours or even a lost weekend arm-wrestling with some IOT device or home automation system. Saying this another way, each time you see the word “local” below, it counts as a big accomplishment.
In the case of some IOT devices (for example some smart plugs), the way to transition from “cloud” to “local” was simply to discard the IOT device made by one manufacturer and replace it with a Matter-compatible IOT device made by some other manufacturer.
In the case of a small number of systems discussed below, the migration from “cloud” to “local” was easy or required only a few mouse clicks. This was very much the exception rather than the rule.
As for a one or two of the systems and IOT devices discussed below, it looks like it will be impossible ever to migrate away from a cloud-based connection other than perhaps by discarding the device and replacing it with a local-friendly device. This includes the Moen Flo device. As for the EV chargers, I could swap them out for OpenEVSE chargers. And I have successfully migrated the Emporia energy monitor to local push connectivity.
Here are the results thus far.
-
- Lutron shades via HomeKit (local push)
- SolarEdge inverters:
- Bosch oven (cloud push)
- Legrand light switches and dimmers (local push)
- DSC security system via Envisalink (local polling)
- garage door openers via Uascent controllers via Matter (local push)
- fireplace via LinknLink eHome HA RF hub via MQTT (local push)
- Pioneer receiver via LinknLink eRemote HA IR hub via MQTT (local push)
- audio amplifiers via Matter-compatible power strip (local polling)
- Tesla Powerwalls and backup gateway (local polling)
- LG TV
- via LinknLink eRemote HA IR hub via MQTT (local push)
- via wake-on-LAN (local push)
- via WebOS (local push)
- various smart plugs via TP-Link via Matter (local polling)
- various smart plugs via Onvis S4 smart plug via Matter over Thread (local push)
- Purple Air sensor:
- Moen Flo water leak detector (cloud poll)
- Sensi thermostats via HomeKit (local push)
- Xytronix controllers
- via Modbus (local polling)
- via MQTT (in progress)
- Flic buttons via MQTT add-on (local push)
- August door lock (cloud push)
- two Chargepoint Home Flex EV chargers (cloud poll)
- Emporia electrical energy monitor (local push through ESPhome)
- Bromic heaters via Sonoff switch via Matter (local push)
- Xcel Energy Itron electric meter via MQTT add-on (local push)
This work has prompted me to start to learn about many things:
Here are further devices and functions that are in progress being added:
-
- water feature
- irrigation system
- pumping of collected rain into our cistern
- monitoring status of sump pump pit
- via moisture sensor
- via float switches via Modbus
- via float switches via MQTT
- monitoring status of dosing pump via Modbus
- automation of exhaust fan for temperature control in wire room via Modbus
- automation of music for outdoors and great room
- setting up voice assistants that offer more privacy and security than Echo Dots
And here are to-do items:
-
- monitoring status of dosing pump via MQTT
- test localtuya as it relates to the two garage door controllers
- set up expressif thread border router
- let HA have access to Comcast modem information via curl
- test localtuya as it relates to the fireplace control
- test localtuya as it relates to turning Pioneer receiver on and off
- automation of exhaust fan for temperature control in wire room via MQTT
- connecting second Chargepoint Home Flex EV charger to HA
- oven
- get gas meter connected to HA
- other (non-Xytronix) devices by MQTT
- making use of Node-RED
- automatic make-up water for the water feature pit via MQTT
- doorbell via MQTT
- migrate HA controller to wired ethernet
- video transcoding for nest cams
- driveway sensor via MQTT
- Connect to Resideo monitoring for water leaks at dishwasher, clothes washer, boiler room
