Phable is a modern Python toolkit for working with Project Haystack tagged data, Xeto specs, and Haxall. It provides a simple, Pythonic interface for building automation systems, charging station management systems, and other energy management applications that use Project Haystack semantic data models.
Open source and free - Phable is permissively licensed under the MIT license.
Data Types & Serialization
- Full support for Project Haystack kinds (data types)
- Serialize between Python objects and Zinc or JSON formats
- Native Python representations for working with semantic data
Project Haystack Client
- Read
site,equip, andpointentities - Read current values of real-time data points
- Supervisory control of real-time data points
- Read and write history data for data points
Haxall Client
- All Project Haystack client features
- Add, update, and remove operations (commit API)
- Evaluate Axon expressions directly from Python
Xeto
- Type checking and validation of Haystack records against Xeto specifications via Haxall's CLI
Phable requires Python 3.11 or higher. Install from PyPI:
$ pip install phableTime zone support: Phable uses the zoneinfo module for IANA time zone support. On systems without time zone data, you'll need to install tzdata:
$ pip install tzdataOptional dependencies: For DataFrame support, install with your preferred library:
$ pip install "phable[pandas,pyarrow]" # For pandas support
$ pip install "phable[polars]" # For polars supportThe early focus of this project is to find the best practices for using modern Python with a Haystack server. This may lead to breaking changes in newer Phable versions. After there has been sufficient experience with Phable, we plan to release a stable version 1.0.0.
Phable's official website located here has additional documentation and examples for Phable's API.