Skip to main content

A Python3 API to interface with Rainforest Automation's EMU-2

Project description


This library allows communication with a Rainforest Automation EMU-2 device. It is a rewrite of Rainforest's Emu-Serial-API in Python 3, and follows a similar architectural pattern where possible.


This API can be used in asynchronous mode or synchronous mode. Technically, communication always happens asynchronously with the Emu, but this library allows for a synchronous API to emulated.

As in Rainforest's library, we do not automatically start communication once the main object is instantiated. This is done because the EMU-2 constantly pushes data to us over the serial connection, so we want to give the consumer control over when this channel is opened. Before any commands are issued, the start_serial(<serial port>) method must be called to open the serial port and begin receiving data.

The serial port name is the platform-specific device that you wish to use. Note that unlike Rainforest's library, we do not attempt to detect the host platform or set any port prefixes - this means that the full name of the device (prefixed with COM for Windows or /dev for OSX and Linux, usually) must be used.

Example Usage


from emu-power import Emu

api = Emu(synchronous=True)

# This will return an instance of InstantaneousUsage, or None on timeout.
response = api.get_instantaneous_usage()


from emu-power import Emu
from emu-power.response_entities import InstantaneousUsage
import time

api = Emu()

# This will return immediately. The response data will become available
# when the device responds.
response = api.get_data(InstantaneousUsage)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for emu-power, version 1.0
Filename, size File type Python version Upload date Hashes
Filename, size emu_power-1.0-py3-none-any.whl (7.7 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size emu-power-1.0.tar.gz (6.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page