Skip to main content

Automated Supervisory Optimization (ASO) for BACnet building automation systems (BAS) and HVAC supervisory control

Project description

Easy ASO

Discord CI MIT License Development Status Python PyPI

Easy-to-follow Automated Supervisory Optimization (ASO) event-driven logic combined with an asyncio-first supervisory layer for BACnet building automation — lightweight BAS orchestration at the IoT edge with one BACnet/IP core, small agents, optional REST/JSON-RPC, and room to grow without a full platform stack.


Install from PyPI

pip install easy-aso

ASO made easy

Subclass EasyASO and implement on_start, on_step, and on_stop — same pattern for reads, writes, and releasing overrides:

import asyncio

from easy_aso import EasyASO


class CustomHvacAso(EasyASO):
    async def on_start(self):
        print("Custom ASO is deploying! Let's do something!")

    async def on_step(self):
        # BACnet read request
        sensor = await self.bacnet_read("192.168.0.122", "analog-input,1")

        # Custom step logic - BACnet write request
        override_valve = sensor + 5.0
        await self.bacnet_write("192.168.0.122", "analog-output,2", override_valve)

        print("Executing step actions... The system is being optimized!")
        await asyncio.sleep(60)

    async def on_stop(self):
        # Custom stop logic - BACnet release request
        await self.bacnet_write("192.168.0.122", "analog-output,2", "null")
        print("Executing stop actions... The system is released back to normal!")

License

MIT — see LICENSE.

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

easy_aso-0.1.7.tar.gz (55.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easy_aso-0.1.7-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file easy_aso-0.1.7.tar.gz.

File metadata

  • Download URL: easy_aso-0.1.7.tar.gz
  • Upload date:
  • Size: 55.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for easy_aso-0.1.7.tar.gz
Algorithm Hash digest
SHA256 f16a5df7a02d55ea0cea5dac388469f9853239034fab3359711076f1b2c8b78c
MD5 1006ab718b606fb0e7bd72f9dfb87403
BLAKE2b-256 7b7ab801333722b3ecf099c06aa8507cb370063e078e311620c448668e50722d

See more details on using hashes here.

Provenance

The following attestation bundles were made for easy_aso-0.1.7.tar.gz:

Publisher: publish-pypi.yml on bbartling/easy-aso

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easy_aso-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: easy_aso-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for easy_aso-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 17742faab7523fc2e6ec4314fbe24cb0e1d0c84f45af74b35b6112a4794c7900
MD5 7f027821c5663b78857678b521281353
BLAKE2b-256 034413829dfc2503eef4425ffb07e2615a46543f9b9a22a06cab148ce802196c

See more details on using hashes here.

Provenance

The following attestation bundles were made for easy_aso-0.1.7-py3-none-any.whl:

Publisher: publish-pypi.yml on bbartling/easy-aso

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page