semvec/pypi-packages huggingface dataset:
pysaleryd 7.1.0
Python library for controlling Saleryd HRV system
License: MIT
Requires Python: >=3.11


.. image:: https://img.shields.io/pypi/v/pysaleryd.svg
    :alt: PyPI-Server
    :target: https://pypi.org/project/pysaleryd/
.. image:: https://pepy.tech/badge/pysaleryd/month
    :alt: Monthly Downloads
    :target: https://pepy.tech/project/pysaleryd

.. image:: https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold
    :alt: Project generated with PyScaffold
    :target: https://pyscaffold.org/

|

=========
pysaleryd
=========


    Python library for controlling Saleryd HRV system


Python library for controlling Saleryd HRV system using the built in websocket server used by Saleryd HRV Homeassistant integration https://github.com/bj00rn/ha-saleryd-ftx

Maintains a reconnecting websocket to the system.

Supported devices
==================

.. list-table::
   :widths: 25 25 50
   :header-rows: 1

   * - Model
     - Supported control system versions
     - Unsupported control system versions
   * - LOKE LS-01/LT-01
     - 4.1.5
     - <4.1.5
   * - LOKE LS-02/LT-02
     - unknown support
     - unknown support


Example usage
=============================
.. code-block:: python3

    import asyncio

    from pysaleryd.client import Client
    from pysaleryd.const import DataKey

    def handle_message(data: dict):
        # must be safe to call from event loop
        print("got data: ", data)

    def handle_state_change(state):
       # must be safe to call from event loop
       print("new state: ", state)

    async def main():
        update_interval = 10
        with Client(HOST, update_interval=update_interval) as hrv_client:
            hrv_client.add_message_handler(handle_message)
            hrv_client.add_state_change_handler(handle_state_change)
            await asyncio.sleep(update_interval +1 ) # wait around a bit for data
            await hrv_client.send_command(DataKey.FIREPLACE_MODE, 1) # turn on fireplace mode

    loop = asyncio.new_event_loop()
    loop.run_until_complete(main())

Troubleshooting
===============
* Confirm system is connected and UI is reachable on the local network. Follow steps in the manual.
* Confirm websocket port by connecting to the UI using a browser and take note of websocket port using debug console in browser. 3001 is probably default
* The system HRV system can only handle a few connected clients. Shut down any additional clients/browsers sessions and try again.


Disclaimer
==========

Use at own risk.

This project is in no way affiliated with the manufacturer.

All product names, logos, and brands are property of their respective owners. All company, product and service names used are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.

.. _pyscaffold-notes:

Note
====

This project has been set up using PyScaffold 4.4. For details and usage
information on PyScaffold see https://pyscaffold.org/.
xplcli 0.1.7
Simple extensible m3u playlist manager cli
License: MIT

# XPL

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d8d237c0d5f74b51816780562d7ad871)](https://app.codacy.com/manual/tunisienheni/pliptvcli?utm_source=github.com&utm_medium=referral&utm_content=Fazzani/pliptvcli&utm_campaign=Badge_Grade_Dashboard)
[![Upload Python Package](https://github.com/Fazzani/pliptvcli/actions/workflows/python-publish.yml/badge.svg)](https://github.com/Fazzani/pliptvcli/actions/workflows/python-publish.yml)

Simple and extensible m3u playlist manager cli.

---
Many default filters was provided for:

- auto matching EPG
- auto matching logos
- cleaning stream names
- grouping streams
- hide groups
- and many others filters

The full filter list is located [here](pliptv/pl_filters)

All filters are configurable by a configuration file. An example of this file is located [here](data/config_playlist.yaml)

## Setup

```bash
# environment variables to define

export AZURE_SYNKER_BLOB_CONTAINER=playlists
export AZURE_SYNKER_BLOB_CNX_STRING=DefaultEndpointsProtocol=https;AccountName={{ACCOUNT}}
export BITLY_ACCESS_TOKEN={{TOKEN}}
export PL=http://www.host-iptv.com/get.php?username={{xxxxxx}}&password={{xxxxxx}}&type=m3u_plus&output=ts
export STRM_OUTPUT_PATH=/mnt/streams
export CONFIG_FILE_PATH=/home/config.yml
export OUTPUT_PATH=/home

pip install --no-input xplcli
# crontab with conda
conda create -n xpl python=3.9
0 5 * * 4 conda activate xpl && pip install --upgrade --no-input xplcli && xpl --export --auto --vod
```

## TODO

- [ ] improve reporting by filter
- [ ] improve tests
- [ ] improve playlist export (gist, azure, etc...)
- [ ] Ability to execute an external (remote) filter from url
- [ ] add github action pipeline for code analysis (PR)