Commonly used libraries
- atoms - System information collected at startup and is typically immutable. This includes, system operating system information and Yombo Gateway software details.
- auth keys - Access tokens are used to connect to the Gateway API without having to use login credentials.
- configuration - View and set various system configuration items.
- crontab - Set up recurring events.
- device types - Get devices for a given device type, list device types, edit device types.
- devices - Managing devices, sendings commands, etc.
- discovery - Auto device discovery management.
- events - Log various events. Used to instrument the system for performance and system logging.
- input types - List available input types and validate user provided input against an input type.
- intents - Intents library handles voice commands.
- loader - Responsible for starting and stopping all libraries and modules within the gateway.
- locations - Stores location (house, shed) and area (garage, bedroom, living room) information.
- modules - List installed modules, determine if other modules are installed.
- mqtt - MQTT (Message Queuing Telemetry Transport) is a lightweight IoT communication protocol used to communicate with low power automation devices.
- nodes - Store various bits of data free-form. Data can be edited through the gateway or through the Yombo API.
- notifications - Add, view, edit local and remote notifications. Used to send information to users.
- requests - Requests library simplifies making external HTTP/HTTPS calls.
- roles - Roles group permissions together and can be assigned to users and authentication keys.
- states - Provide current states of items, such as if it's light, dark.
- template - Allows templates to be used in various places within Yombo. For example, they can be used as condition statements for scenes, automation rules, etc.
- times - Get information on times things happen in the sky or perform various time conversions.
- validate - Validates various items. In many causes, it tries to coerce the correct value type and return that.
- variables - Get and set various for devices, device types, and modules.
- voice cmds - Manages voice commands for the system.
- web interface - Provides an easy to use web interface for users and developers.
Less commonly used libraries
- amqp - Connect to AMQP (Advanced Message Queuing Protocol) servers, create exchanges, create queues, bind queues, deliver messages, and receive messages.
- amqpyombo - Used internally to communicate with Yombo servers to transmit and receive commands, messages, and configuration.
- automation - Handles automation rule processing.
- cache - Manages caches.
- commands - Manages commands within the Yombo gateway. Not much to do here, use the device object to actually send commands.
- device commands - Tracks and stores commands that have been sent to devices.
- download modules - Responsible for downloading and installing any modules as requested by the configuration.
- gateway communications - Handles intra-gateway communications for a gateway cluster as well as responding to Internet of Things (IoT) interactions using MQTT.
- gateways - Handles inter-gateway communications within the same user account.
- gpg - Encrypt data using GPG keys. Handles storing data at rest, encrypted incoming and outgoing data.
- hash - Quickly create secure password hashes.
- hashids - A simple way to represent a large number as a hash.
- localdb - Handles interactions between the gateway and SQLite database.
- localize - Internationalization and localization (i18n and l10n) for formatting various items for display.
- queues - FIFO queues allow you to add items to a queue and will call a function for each item to be processed. Prevents system overload and handled surges of requests gracefully.
- sqldict - A database backed dictionary allows modules to store information between restarts, without the need for database tables.
- sslcerts - Generate signed SSL certs for modules needing to host a TLS (SSL) secure service.
- startup - Checks for basic requirements and starts the system. Does some pre-configuration of certain items.
- statistics - Add statistics about something.
- tasks - Run various tasks during system startup and shutdown.
- users - Manages user access using Role Based Access Control (RBAC).
- web sessions - Web sessions track authenticated user sessions.
- yomboapi - Make calls to the Yombo API.