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.11.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

pyiskra-0.1.11-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyiskra-0.1.11.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for pyiskra-0.1.11.tar.gz
Algorithm Hash digest
SHA256 817c382dd1cd3ad82a5bee2c3949732f64cfb99424e1067f986bee22ec6903ee
MD5 0c5fb03ce44cf8df299e2f8654a99a98
BLAKE2b-256 293b70a5938b2ebebd2ed4a264acb9f9b1f31eda8774cbbc37b29a5198f38f69

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyiskra-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for pyiskra-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 fa8a25966a614771ca44e0cc33588995b6e9062aa94f2b4ca77687f797313e97
MD5 6f43d08f14e1ffc5998c4dffbafdc210
BLAKE2b-256 7188c95c4e8187790c4ecef234ae103f6fa713bbc30dfc87b885e97884ba81a4

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