Metadata-Version: 2.4
Name: cremalink
Version: 0.1.0b5
Summary: Python library and local API server for monitoring and controlling IoT coffee machines.
Author-email: Midian Tekle Elfu <developer@midian.tekleelfu.de>
Maintainer-email: Midian Tekle Elfu <developer@midian.tekleelfu.de>
License-Expression: AGPL-3.0-or-later
Project-URL: homepage, https://github.com/miditkl/cremalink
Project-URL: source, https://github.com/miditkl/cremalink.git
Project-URL: issues, https://github.com/miditkl/cremalink/issues
Project-URL: download, https://github.com/miditkl/cremalink/archive/refs/heads/main.zip
Project-URL: funding, https://github.com/sponsors/miditkl
Keywords: Local Control,Cloud Control,Coffee Machine,IoT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Networking :: Monitoring
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Operating System :: OS Independent
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests==2.32.5
Requires-Dist: pycryptodome==3.23.0
Requires-Dist: fastapi==0.128.0
Requires-Dist: uvicorn==0.40.0
Requires-Dist: httpx==0.28.1
Requires-Dist: pydantic==2.12.5
Requires-Dist: pydantic-settings==2.12.0
Provides-Extra: dev
Requires-Dist: cremalink[test]; extra == "dev"
Requires-Dist: cremalink[docs]; extra == "dev"
Requires-Dist: ipykernel==7.1.0; extra == "dev"
Requires-Dist: notebook==7.5.1; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest==9.0.2; extra == "test"
Requires-Dist: pytest-asyncio==1.3.0; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx==8.2.3; extra == "docs"
Requires-Dist: sphinxcontrib-websupport==2.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "docs"
Dynamic: license-file

# ☕ Cremalink

**A high-performance Python library and local API server for monitoring and controlling IoT coffee machines.**

[![PyPI version](https://img.shields.io/pypi/v/cremalink.svg?style=for-the-badge&color=blue)](https://pypi.org/project/cremalink/)
[![Python Version](https://img.shields.io/pypi/pyversions/cremalink.svg?style=for-the-badge&color=FFE169&labelColor=3776AB)](https://pypi.org/project/cremalink/)
[![License](https://img.shields.io/github/license/miditkl/cremalink?style=for-the-badge&color=success)](LICENSE)
[![Downloads](https://img.shields.io/pypi/dm/cremalink.svg?style=for-the-badge&color=orange)](https://pypi.org/project/cremalink/)
[![Source Code](https://img.shields.io/badge/Source-GitHub-black?style=for-the-badge&logo=github)](https://github.com/miditkl/cremalink)

---

## ✨ Overview

Cremalink provides a unified interface to interact with smart coffee machines via **Local LAN control** or **Cloud API**. It allows for real-time state monitoring and precise command execution.

> [!TIP]
> For detailed guides, advanced configuration, and developer deep-dives, please visit our **[Project Wiki](https://github.com/miditkl/cremalink/wiki)**.

---

## 🚀 Installation

Install the package via `pip` (Cremalink requires **Python 3.13+**):

```bash
pip install cremalink

```

### Optional Dependencies

To include tools for development or testing:

```bash
pip install "cremalink[dev]"   # For notebooks and kernel support
pip install "cremalink[test]"  # For running pytest suites

```

---

## 🛠 Usage

### Integrated API Server

Cremalink includes a FastAPI-based server for headless environments:

```bash
# Start the server (default port 10800)
cremalink-server --ip 0.0.0.0 --port 10800
```
> More information: [Local Server Setup](https://github.com/miditkl/cremalink/wiki/3.-Local-Server-Setup)

### Python API (Local Control)

Connect to your machine directly via your local network for the lowest latency

> More information: [Local Device]()

---

## 🛠 Development

### Testing

Run the comprehensive test suite using `pytest`:

```bash
pytest tests/

```

### Contributing

Contributions are welcome! If you have a machine profile not yet supported, please check the [Wiki: 5. Adding Custom Devices](https://github.com/miditkl/cremalink/wiki/) on how to add new `.json` device definitions.

Currently supported devices:

- `De'Longhi PrimaDonna Soul (AY008ESP1)`
---

## 📄 License

Distributed under the **AGPL-3.0-or-later** License. See `LICENSE` for more information.

---

*Developed by [Midian Tekle Elfu](mailto:developer@midian.tekleelfu.de). Supported by the community.*
