Skip to content

This are the Classes to use the Zeptrion Air Lights etc.

License

Notifications You must be signed in to change notification settings

lrohner/zeptrionAirApi

 
 

Repository files navigation

Zeptrion Air

This are the Classes to use the Zeptrion Air Lights etc. Zeptrion Air is a product from Feller. Zeptrion Air Panel are switches for Light, Blinds etc. A panel can have up to 8 switches. Each of this switches are called Button.

1) Hub

The ZeptrionAir Hub handles all the ZeptrionAir Panel. The Hub is searching (browse) the panels with mDNS (zeroconf). If panels are found with mDNS the Hub is requesting the panels for all additional needed informations

2) Panel

Panel is the panel that can have up to 8 buttons (Switches)

3) Button

The Button is on of the button that are hold on a Panel A Button is Switch for example for a Light or Blinds etc. With the Button Class you can read the status and control the device Button Status is handled with websocket and is implemented with asyncio

Python compatibility

Only working with Python 3.6 and above

Sample to use it:

import asyncio
import time
import json
from zeptrion_air_api import Hub

async def do_close(hub):
    """Close the System."""
    await hub.close()

def press_info_handler(press_info):
    """Handle if the button is pressed."""
    print(press_info)

def found_new_panels(panel):
    """Handle if a new Zeptrion Air Panel is found."""
    for button in panel.all_buttons:
        if button:
            button.listen_to(press_info_handler)

if __name__ == '__main__':
    """Init the main test."""
    loop = asyncio.get_event_loop()
    za_hub = Hub(loop, found_new_panels)
    try:
        loop.run_forever()
    except KeyboardInterrupt:
        print("Unregistering...")
        loop.run_until_complete(do_close(za_hub))
    finally:
        loop.close()

Class Diagram

..

Sequence Diagram (example/async_server.py)

..

About

This are the Classes to use the Zeptrion Air Lights etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.5%
  • Shell 2.5%