semvec/pypi-packages huggingface dataset:
dash-hierarchies 0.0.7
Intuitively display hierarchical data structures
License: MIT

# Dash Hierarchies

Dash Hierarchies is a Dash component library.

Intuitively display hierarchical data structures in a variety of ways. 

SimpleHierarchy
This component is used to display relative percentages of hierarchical data with a bar percentage below. 

https://github.com/user-attachments/assets/35cba725-e71b-4e8d-a907-23f01afb9c1e

TableHierarchy
This component is used to display hierarchical data in a tabular manner. Support for column selection is built-in. 

https://github.com/user-attachments/assets/43f7926e-c393-40f8-a7c7-51fe0bb7c9fa
alulapy 0.3.0
Python client library for the Alula security platform API (Cove Smart, Alula Connect+)
License: MIT
Requires Python: >=3.11
Keywords: alula, cove, security, alarm, home-assistant, smart-home

# alulapy

Python client library for the Alula security platform API. Works with **Cove Smart**, **Alula Connect+**, and other Alula-powered alarm systems.

## Features

- **OAuth2 authentication** with automatic token refresh
- **Device info** — panel name, serial number, online status, firmware
- **Arming state** — real-time armed/disarmed/armed-stay/armed-away status
- **Zone sensors** — door, window, motion, smoke, water sensor open/closed states
- **Trouble flags** — AC failure, low battery, comm failure, tamper, and more
- **Event log** — recent arm/disarm/alarm events with filtering
- **Arm/Disarm** — via `helix.command` RPC (requires dealer to enable interactive services)

## Installation

```bash
pip install -e /path/to/alulapy
```

## Quick Start

```python
import asyncio
import aiohttp
from alulapy import AlulaClient

async def main():
    async with aiohttp.ClientSession() as session:
        client = AlulaClient(session)
        await client.async_login("your_username", "your_pin")

        devices = await client.async_get_devices()
        for device in devices:
            if device.is_panel:
                print(f"{device.name}: {device.arming_state}")
                print(f"  Online: {device.online}, Trouble: {device.any_trouble}")

        zones = await client.async_get_zones()
        for zone in zones:
            status = "OPEN" if zone.is_open else "closed"
            print(f"  Zone {zone.zone_index}: {zone.zone_name} — {status}")

asyncio.run(main())
```

## Arm/Disarm

Arm/disarm uses the `helix.command` RPC method. This requires `interactiveEnabled: true` on the device, which must be enabled by the alarm dealer (e.g., Cove support).

```python
await client.async_arm_stay(device.id)
await client.async_arm_away(device.id)
await client.async_disarm(device.id)
```

If you get "Permission Denied" (error code 6), contact your alarm provider and ask them to enable interactive services on your device.

## License

MIT