Skip to main content

A project to facilitate easy read/write to the ControlByWeb line of Automation/SCADA IO products.

Project description

ControlPyWeb

A project to facilitate easy read/write to the ControlByWeb line of Automation/SCADA IO products.

Description

Xytronic Research makes a handy line of remote IO products useful for home and industrial automation. Interacting with these modules generally requires the use of a url library such as requests, and then requires dissecting the response to be dissected and processed. While not terribly difficult to do, it is repetitive.

This module seeks to abstract out some of that effort in a thought out and tested way.

Installation

pip install controlpyweb

Usage

The basis of functionality is the WebIOModule class. It both acts as a container for individual IO and handles interaction with the hardware.

from controlpyweb.webio_module import WebIOModule
from controlpyweb.single_io import DiscreteIn, DiscreteOut, AnalogIn, AnalogOut


class X404DigitalIn(WebIOModule):   # Name the class whatever you like
    StartButton = DiscreteIn("Start Button", "startButton")
    StopButton = DiscreteIn("Stop Button", "stopButton")
    DoorClosed = DiscreteIn("Door Closed", "doorClosed")


class X410DigitalOut(WebIOModule):
    StartLamp = DiscreteOut("Start Lapm", "redLamp")
    MaintLight = DiscreteOut("Maintenance Lamp", "lamp1")


digital_in = X404DigitalIn("192.168.1.1")
relay_out = X410DigitalOut("192.168.1.2")


digital_in.update_from_module()

relay_out.StartLamp = digital_in.StartButton
relay_out.MaintLight = not digital_in.DoorClosed

relay_out.send_changes_to_module()

Though it is possible to do immediate reads/writes, the most efficient pattern is to first to do an update from the module, make all changes, then send the results.

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

controlpyweb-0.0.18.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

controlpyweb-0.0.18-py2-none-any.whl (9.7 kB view details)

Uploaded Python 2

File details

Details for the file controlpyweb-0.0.18.tar.gz.

File metadata

  • Download URL: controlpyweb-0.0.18.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.15+

File hashes

Hashes for controlpyweb-0.0.18.tar.gz
Algorithm Hash digest
SHA256 f26ee635f1fe063c17672f0b7bbe494ae32792d3af990f4c082f4c9ca4f088cb
MD5 8b438dc66354eb613e9cebdcffb0f64d
BLAKE2b-256 3c206ccea4aa8891bde71bb9e113b770da5bb0e9ff908e9247e69397aaf198c6

See more details on using hashes here.

File details

Details for the file controlpyweb-0.0.18-py2-none-any.whl.

File metadata

  • Download URL: controlpyweb-0.0.18-py2-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.15+

File hashes

Hashes for controlpyweb-0.0.18-py2-none-any.whl
Algorithm Hash digest
SHA256 cb425f0a5a00e5440a62ef4deeeaf03d2ccb881a71e761c4d3664d362a620ac7
MD5 b2964fd99c05b5b70088f9ea795b32d6
BLAKE2b-256 72997cd1329f8efa5eaffc83e39f42f04ad6d02d46a1e622b86c70c576c45180

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