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

Uploaded Source

Built Distribution

controlpyweb-0.0.26-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: controlpyweb-0.0.26.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for controlpyweb-0.0.26.tar.gz
Algorithm Hash digest
SHA256 b209d481603229439445f0d134a79246f29a0f3178494f5057805bb424600a9a
MD5 ba6a7ee7920264f6f12e7f74fc5b8a72
BLAKE2b-256 fb3ffc3abe3212f33ae92d327f21c4bd8fecaf4fbcd1f0d7cd2c63575fc67109

See more details on using hashes here.

File details

Details for the file controlpyweb-0.0.26-py3-none-any.whl.

File metadata

  • Download URL: controlpyweb-0.0.26-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for controlpyweb-0.0.26-py3-none-any.whl
Algorithm Hash digest
SHA256 7d56bc19e80ba5678fda8af59513207926330667cb5b6b1cabe63be0d8b0ff7c
MD5 caeb1e2b705deae2ce2b22749f5c86b3
BLAKE2b-256 e2b1ec0c7cb7ab2749b7057786aa2b4586a31cf21c3602bf351b3cb536207cef

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