Ecosystem for the home

Created: 2021.01.03

Kanapa is an ecosystem that makes life easier for the residents of a single family home. It is not a centralized system, each module is autonomous but the modules are connected in a network of dependencies. Kanapa is evolving all the time, it can be said that it is walking the path from a "remotely controlled home" to a "smart home". And this is not a simple path as it is drawn in advertisements. In general, the more residents the more winding the path.

The core component of the ecosystem is an electronic module built on an AVR microcontroller. The picture shows the obverse and reverse of the module's electronic circuitry.

The module supports various sensors actually always more than one. These are mainly different types of sensors (lighting, presence, motion, temperature, humidity, air cleanliness). Signals from sensors are processed by the module based on defined rules (module configuration).

Based on information received from other modules as well as on its own information (processed from sensors) the module takes actions. As you can guess it is the controler of electrical devices.

The visible executive circuit acts as the module's power supply and also gives the possibility to control two electrical devices via relays. This circuit can, for example, control external blinds.

As you can see in the pictures above, both the module and the executive system have the same shape, but also not a random one. Thanks to this shape, the circuits connected together form a kind of sandwich that we can place in a flush-mounted box. Several such cooperating sandwiches allow us to lie on the couch longer than usual and this is how we got to the genesis of the project name Kanapa. It means couch in Polish. Moreover kanapa in Polish also means huge sandwich.

For configuring modules, managing the network of links between
modules and monitoring the system as a whole the application was created. It is a program written in JavaScript using the framework qooxdoo.

Each module consists of several sensors, which it supports as long as the appropriate sensors are physically connected to the module. From the application you can control the sensors and change their settings. The tab on the right allows you to change the settings of the RGB diode, which is one of the sensors in the module. In this case, we can set the color and turn on the diode - it will light up in the color of our choice. The sensor in this case is the RGB diode as an electronic element (for the purposes of this description, any electronic element that is connected to the sensor will be called a sensor).

For the temperature sensor we can take a temperature reading and calibrate the sensor if necessary. Each sensor has its own settings related to its specifics, but there are also settings that occur for each sensor.

You can select a sensor in the Section area. The temperature sensor can have two sensors. Depending on your needs, you can use them to measure the indoor and outdoor temperature or the temperature in the upper liquid layer and the lower layer, etc. Another common element is command visibility. This parameter is related to communication of the module with other modules (signal transmission). Usually, the sensor sends only internal signals (within itself), but it can also send to other modules directly. This functionality is used for example for logging cyclic measurements of temperature, presence etc.

Each module is programmable from application level. Although it can be done many times it is actually done only once because the module is configured for specific use. Such configuration (program) can be saved in application and if necessary loaded to other module to clone functionality. The figure shows a simple configuration of the module that supports light intensity sensor and depending on the light level sends signals.


Modules can have more complex configurations, such as the configuration of the module supporting external roller shutters shown here.
Configuring the module does not require knowledge of programming. There are two types of blocks: events (EVN) and actions (ACT). In short, events are used to receive signals, and actions to send signals. Events analyze incoming signals and make decisions based on simple conditions. The lines in the figure should be understood as the transfer of control and indicate respectively:
  • green - pass control if the condition is true
  • red - pass control if condition is false
  • violet - pass control to event (do not analyze condition)
  • blue - pass control to action

The signal is transmitted from the lighter to the darker end of the line.

An ecosystem can be built from multiple modules.

The modules cooperate by transmitting signals between each other. The topology of such a network can reach quite a high level of complexity. Therefore, the application has functionality to help analyze the configuration of the entire ecosystem.

The application allows to monitor the functioning of the ecosystem, in particular to collect signals sent by the modules, which in the future can be used to create self-organizing and adaptive mechanisms of the ecosystem.

Notify of
Inline Feedbacks
View all comments