Python driver for Watlow EZ-Zone temperature controllers.
Project description
watlow
Python driver and command-line tool for Watlow EZ-Zone temperature controllers.
Installation
pip install watlow
Usage
Command Line
$ watlow /dev/ttyUSB0
This returns a simple data structure.
{
"actual": 21.66,
"setpoint": 20.0
}
You can additionally use the --set-setpoint
option to set a temperature setpoint.
If interacting with a Watlow RUI Gateway, the zone to get or set should be passed as a flag
$ watlow -z 1 192.168.1.101
See watlow --help
for more.
Python
Single Controller
For a single temperature controller, the python interface is basic synchronous serial communication.
import watlow
tc = watlow.TemperatureController('/dev/ttyUSB0')
tc.set(30)
print(tc.get())
The driver is designed to be fault tolerant over long polling, and should
appropriately reconnect if its IOError
s are managed. Here's an implementation
with standard long-poll exception handling. This should run until interrupted and
then exit cleanly.
from time import sleep
import watlow
tc = watlow.TemperatureController('/dev/ttyUSB0')
try:
while True:
try:
print(tc.get())
except IOError:
print('disconnected')
sleep(1)
except KeyboardInterrupt:
pass
finally:
tc.close()
Gateway
The Gateway driver uses Python ≥3.5's async/await syntax to asynchronously communicate with the gateway over ModBus-TCP.
import asyncio
import watlow
async def run():
async with watlow.Gateway('192.168.1.101') as gateway:
print(await gateway.get(1))
asyncio.run(run())
Additionally, there is a mock for the Gateway driver available at watlow.mock.Gateway
for testing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for watlow-0.2.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e71545d6cfb20b98524f5dd51c1f43ac58ba23de65abe9a0a73bd14d986862b6 |
|
MD5 | bfbe56f959bce0eef5549d0706072f3c |
|
BLAKE2b-256 | 3fe01639c57f61e039785db72a0569c356c0e56d0855821039d0620255057a88 |