Introduction¶
Caspia is, as you most likely already know, a home automation platform. Not only that it allows you to control your whole home effortlessly, but what more, it enables you not to have to control it at all. We’ve designed it to be robust – the critical parts of your home are functional even if the central computer goes down. It is also modular in its very core and integrating your software or hardware can’t be easier. However, let’s stop talking in buzzwords and move on to the actual goal of this document – giving you enough information so you can use Caspia yourself.
Let me start with some basics. When we talk about Home Automation, the first thing that comes to mind is controlling your devices at home. Those might be some lights, blinds, garage doors or maybe your air conditioning. We call those devices services. I’ve mentioned only things you can control, but services can be much more – all kinds of sensors, something monitoring who is at home or something providing control over your home entertainment system.
- service
Service is the primary representation of things related to your home. Each service has its type (light, temperature-sensor, and other), name as its unique identifier (light@basement.kitchen) and a list of characteristics. For more information, see Meadow Protocol.
Those services have to be made somehow available to the different parts of the system. This is where we introduce Meadow – the communication protocol for publishing and accessing services in the system. Every application has to have a Meadow module running. All other modules in the application then connect to this Meadow module and use it as a central point for discovering and publishing services.
- meadow
Meadow is the primary protocol used for communication between different modules of a Caspia application. The communication is done through a central Meadow module (sometimes also called the Meadow broker) to which all other modules within the application connect to.
We’ve already talked about the Meadow module, but what other modules are there? Every application usually has at least one gateway module. Gateways are modules, whose primary purpose is to publish services to Meadow. For example, if you wanted to add your Philips Hue lightbulb to the application, you would add philips-hue-gateway module. If you have any Caspia’s hardware, you can add it using the caspia-gateway module. Another module that is usually present is Pan. Pan’s purpose is to take care of all your rules. That might be toggling a light on a button push or turning on your heating if the temperature in your home drops. Last module I have to mention here is Homeserver. This module provides access to all services available in Meadow via RESTful HTTP API. It is the primary communication channel to control Caspia from the outside (mobile application, web application, etc.).
That is about all what I wanted to tell you regarding the very basics of Caspia. What is next? Configuration!