Yombo Automation Python Reference

Release 0.24.0-alpha-7 (Release notes)

The Yombo Gateway is a framework that allows users to quickly develop modules to implement automation of various devices around the home, office, and anything in between.

Overview

Yombo automation allows simple DIY automation. Setup and configuration is completed using a browser instead of getting lost in complicated text files.

The true power of the system comes from building simple modules that even non-programmers can write. These are simple python files that nearly anyone can write. This example turns on a porch light when it’s dusk and turns it off at 10:30pm:

#  A simple custom module that manages the porch light.
def _time_event_(**kwargs):
    """
    Called when a time of day event occurs.
    """
    event = kwargs['value']  # Can be 'now_light', 'now_twilight', 'now_not_dawn', etc.
    if (event == 'now_dusk'):
       porch_light = self._Device['porch light']
       porch_light.command(command='on')  # turn on now

       off_time = self._Times.get_next('hour=22', 'minute'=30')  # get epoch for the next 10:30pm time.
       porch_light.command(command='off', not_before=off_time)  # turn of at 10:30pm

Frontend Application

The frontend application is a Vue + Nuxt web application used for interacting with the gateway. This includes gateway configuration and device management. It also used as a control panel to view and control devices. The application is only accessible once the user has authenticated and logged in and will be displayed automatically after authentication.

Libraries

Libraries build on the core modules and functions and provide essential gateway services, such as routing commands from devices, talking to other IoT devices, etc.

Constants

Constants help keep consistency across the framework. To view all the contents, visit the source repository @ GitHub

Modules

System modules, user modules, and downloaded modules go into the modules folder. These extend the capabilites of the gateway and provide the gateway the ability to communicate with various devices over various protocols.

For a list of modules available to be installed by end users: Available Modules

3rd party extensions

This directory contains external modules that ship with Yombo to support the framework features. They are governed under their respective licenses. See the COPYING file included with this distribution for more information.

Note: Many of the extensions don’t properly display here, visit source repository @ GitHub

License

Yombo license information.

Contributing to Developer Documentation

The Yombo Gateway uses self documenting code. All documentation found on this website is generated directly from the source code itself.

Making changes is easy: simply find the section of the code and update the code comment. This website is periodically updated from the source code.