Skip to main content

API and CLI for communicating with the Emlite meters via EMOP

Project description

Simtricity Emlite Python APIs and CLI

This repository contains:

  • API to connect to and send EMOP messages to Emlite meters
  • a CLI (emop) for sending messages to the meters

Configure

Configuration steps:

  • create file ~/.simt/emlite.prod.env from Lastpass secret 'emop-cli-env-file (prod)'
  • create file ~/.simt/emlite.qa.env from Lastpass secret 'emop-cli-env-file (qa)'
  • ln -s ~/.simt/emlite.<qa|prod|custom>.env ~/.simt/emlite.env

NOTE:

  • FLY_DNS_SERVER needs the DNS that wireguard uses (on Linux look under resolvectl status for the interface and DNS)

see also https://www.notion.so/Emop-and-mediators-CLI-setup-834d32be5c794add8716399ab186abe8

Use

emop

emop env_show
emop env_set prod

emop --help

emop prepay_balance EML2137555666
emop csq EML2137555666
emop profile_log_1 --timestamp 2024-07-19T00:00 EML2137555666

Python API

You can also use the library directly in your Python scripts. The library offers two main client classes:

  • EmliteMediatorAPI: The core client for standard meter operations (reads, basic writes).
  • EmlitePrepayAPI: Extends the core API with prepay-specific functionality (balance, tokens, tariffs).

Initialization and Logging

The EmliteMediatorAPI constructor allows you to configure the connection and log verbosity.

import logging
from simt_emlite.mediator.api_core import EmliteMediatorAPI

# Initialize the client
# The logging_level parameter controls the verbosity of the internal logger.
# It uses the standard python logging module levels (DEBUG, INFO, WARNING, ERROR).
client = EmliteMediatorAPI(
    mediator_address="localhost:50051",
    logging_level=logging.WARNING  # Set to logging.DEBUG for verbose output
)

# Example Usage
serial = "EML2137555666"
try:
    voltage = client.instantaneous_voltage(serial)
    print(f"Meter {serial} voltage: {voltage}V")
except Exception as e:
    print(f"Error: {e}")

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

simt_emlite-1.2.1-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

simt_emlite-1.2.1-cp313-cp313-win32.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86

simt_emlite-1.2.1-cp313-cp313-musllinux_1_2_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

simt_emlite-1.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

simt_emlite-1.2.1-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file simt_emlite-1.2.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for simt_emlite-1.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cbcbf2a3c7397c26d34f01b3320297826c616deabfee978bc147f8b8649877b5
MD5 7d7cf5a80e69fa2cf31513d12e5c9f8c
BLAKE2b-256 cb525985aaa6155c3bb333e008765c312ae4fbf353bc3ea2aadcaa60f296e2b3

See more details on using hashes here.

File details

Details for the file simt_emlite-1.2.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: simt_emlite-1.2.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simt_emlite-1.2.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 8611e37c0191fedc34cb69d0a8dd70d5ad765d5c358d44b77d007241463010ca
MD5 918d12e12c5758903925c719b4414bc4
BLAKE2b-256 73ff0902c48f77767756cdf8f1db7ee09d22f310f3d68ecbecaf4749cf3332a0

See more details on using hashes here.

File details

Details for the file simt_emlite-1.2.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simt_emlite-1.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bf7344ebbe7145d450a8f40341b908c3db61591085d179799e0234f3581179e9
MD5 0314c96f64f03de27ba7c5c1b1bab135
BLAKE2b-256 08bd2a1754ec7520838278c3eadf41cae1ddb4d1bbccbc4c93298964238e4f1b

See more details on using hashes here.

File details

Details for the file simt_emlite-1.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simt_emlite-1.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1b83a68672488889ced34f6bc33a391398fc657d4f540a6a3e0c22cf047aeb1c
MD5 dcdedef08cfe026ee1d06caa8adb0f8a
BLAKE2b-256 7ae819b11e735a35ebb66d0b0c115bb91e657dc4eff962b39a0989bf0355f5b8

See more details on using hashes here.

File details

Details for the file simt_emlite-1.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simt_emlite-1.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd5f1843e493d72df3ea85370a7964daaa82b3060b3dcbfd12fa457d605a32c2
MD5 7701048450cd48086ca9724a50747044
BLAKE2b-256 4968aea173ae871b57abce86427b574afe1f24f7ccb8b6d1e74bba3e3c9ca448

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page