Skip to main content

Python Iskra devices interface

Project description

PyIskra

PyIskra is a Python package designed to provide interface for Iskra devices using SG and it's RestAPI or ModbusTCP/RTU.

Installation

You can install PyIskra using pip:

pip install pyiskra

Features

  • Object-oriented mapping for energy meters
  • Access to measurements
  • Access to Energy counters

Supported devices

  • Smart Gateway
  • IE38
  • IE14
  • MCXXX
  • iMCXXX
  • MTXXX
  • iMTXXX

Usage

Here's a basic example of how to use PyIskra:

import asyncio
from pyiskra.devices import Device
from pyiskra.adapters import RestAPI


device_ip = "192.168.1.1"
device_auth = {"username": "admin", "password": "iskra"}

async def main():
    # Set device IP address

    # Create adapter
    adapter = RestAPI(ip_address=device_ip, authentication=device_auth)

    # Create device
    device = await Device.create_device(adapter)

    # Initalize device
    await device.init()

    devices = [device]


    if device.is_gateway:
        devices += device.get_child_devices()


    for device in devices:
        # Update device status
        print(f"Updating status for {device.model} {device.serial}")
        await device.update_status()

        if device.supports_measurements:
            for index, phase in enumerate(device.measurements.phases):
                print(f"Phase {index+1} - U: {phase.voltage.value} {phase.voltage.units}, I: {phase.current.value} {phase.current.units} P: {phase.active_power.value} {phase.active_power.units} Q: {phase.reactive_power.value} {phase.reactive_power.units} S: {phase.apparent_power.value} {phase.apparent_power.units} PF: {phase.power_factor.value} {phase.power_factor.units} PA: {phase.power_angle.value} {phase.power_angle.units} THD U: {phase.thd_voltage.value} {phase.thd_voltage.units} THD I: {phase.thd_current.value} {phase.thd_current.units}")

        if device.supports_counters:
            for counter in device.counters.non_resettable :
                print(f"Non-resettable counter - Name: {counter.name}, Value: {counter.value} {counter.units}, Direction: {counter.direction}")


            for counter in device.counters.resettable:
                print(f"Resettable counter - Name: {counter.name}, Value: {counter.value} {counter.units}, Direction: {counter.direction}")

asyncio.run(main())

Project details


Download files

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

Source Distribution

pyiskra-0.1.2.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

pyiskra-0.1.2-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file pyiskra-0.1.2.tar.gz.

File metadata

  • Download URL: pyiskra-0.1.2.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for pyiskra-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6d67c88f273b00642cea9af30f00c22236d5c6e294c81df493b08622745a117f
MD5 9e2dfe924e108c9310e9aec2e61cbd86
BLAKE2b-256 6d7e6195d70887139726c0a5dde90b6eec5da48c8248f0ae589798ab723f834d

See more details on using hashes here.

File details

Details for the file pyiskra-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pyiskra-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for pyiskra-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4658c82394a1435a98e9b03090c395cb302986d0f7d3da9729431b01740ee68f
MD5 f8b3336ab0afd69b1c0c8b94ac098324
BLAKE2b-256 325fa092162a337de875030703fed5b02674f2e862cbe068ebd8d9318efb0b9c

See more details on using hashes here.

Supported by

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