RoboDomo is a home automation application that links multiple cloud based services, and direct to hardware services, into a unified interface. Without RoboDomo, or something like it, the end user would have to launch a variety of applications on their phone/tablet/browser, to control a proprietary hub or a company's devices. For example, you would run the Nest app to control your thermostat, the Ring app to interact with your doorbell, the (Samsung) SmartThings app to control your light switches and ceiling fans, a WWW browser to control your pool and spa pumps and heaters, and so on.
The RoboDomo app is all you need - it provides the user interface needed to control all the things. It is effectively the missing "Hub of Hubs" that the IoT space is sorely missing.
Other than a few 3rd party modules, RoboDomo is written entirely in JavaScript for NodeJS on the server side and React on the client side.
The backend for RoboDomo is a growing number of available microservices that run as Docker containers. You run only the microservices that are appropriate to your home or office. That is, if you have an LG TV, you'd run the LGTV microservice, and if you don't have an LG TV, you would have no need to run it.
RoboDomo supports both Hubitat (preferred) and SmartThings hubs. Both hubs can connect to thousands of kinds of devices, both Z Wave and Zigbee.
Note - The documentation is a work in progress and may be incomplete.
The docker-scripts repository contains scripts that automatically download or update Docker versions of the microservices and start them on your host.
The microservice-core repository contains shared code for crafting a microservice. It is shared among virtually all, if not all, of the RoboDomo microservices.
config-microservice - Microservice to monitor changes to Config.js and Macros.js and broadcast MQTT message when changed.
presence-microservice - Ping phones and watches and other devices to determine if a person is present or not.
triggers-microservice - Watch what's going on and process rules when things happen. The events you wait for and routines to run when events happen are limited to what. you can code in JavaScript (e.g. no limits!). Example: turn on garden lights at sunset and turn them off at sunrise.
here.com-microservice - Microservice to monitor weather conditions for one or more location, using the here.com API.
macro-microservice - Microservice that executes macros on demand. A macro is a procedure consisting of a sequence of MQTT topics/messages to send in order, and/or, execution of a sequence as in a function call.
You can control your lamp with your voice by adding an Amazon Echo of Google Home.