Yombo Libraries

From Yombo
Jump to: navigation, search

Libraries

For explanation, see: Developing modules

Commonly used libraries

  • atoms - System information collected at startup and is typically immutable. This includes, system operating system information and Yombo Gateway software details.
  • 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.
  • input types - List available input types and validate user provided input against an input type.
  • 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.
  • sqldict - A database backed dictionary allows modules to store information between restarts, without the need for database tables.
  • states - Provide current states of items, such as if it's light, dark.
  • 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.
  • commands - Manages commands within the Yombo gateway. Not much to do here, use the device object to actually send commands.
  • download modules - Responsible for downloading and installing any modules as requested by the configuration.
  • 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.
  • 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.
  • 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.
  • yomboapi - Make calls to the Yombo API.