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.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 046c26e8587c09f1e68a2cec0d96ccc1f8083309cfc5983d29ac5ffaf4ed0805 |
|
MD5 | 9b80053251ba083a598e69336504b7e4 |
|
BLAKE2b-256 | f4399acc3b83f81b9acd7f8451627b8accfe3f3995d74cb64b187d744d3cf19f |