limma


Namelimma JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/firoziya/limma
SummaryLanguage Interface Model for Machine Automation - Control ESP devices with natural language
upload_time2025-08-29 18:20:38
maintainerNone
docs_urlNone
authorYash Kumar Firoziya
requires_python>=3.9
licenseApache-2.0
keywords esp8266 esp32 iot microcontroller natural-language automation home-automation limma
VCS
bugtrack_url
requirements requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

# 🤖 LIMMA

**Language Interface Model for Machine Automation**

*Control your ESP8266/ESP32 devices with natural language commands*

---

[![PyPI Version](https://img.shields.io/pypi/v/limma?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/limma/)
[![Python Version](https://img.shields.io/pypi/pyversions/limma?style=for-the-badge&logo=python&logoColor=white)](https://pypi.org/project/limma/)
[![Downloads](https://img.shields.io/pypi/dm/limma?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/limma/)
[![License](https://img.shields.io/github/license/firoziya/limma?style=for-the-badge)](LICENSE)

[![GitHub Stars](https://img.shields.io/github/stars/firoziya/limma?style=for-the-badge&logo=github)](https://github.com/firoziya/limma)
[![GitHub Issues](https://img.shields.io/github/issues/firoziya/limma?style=for-the-badge&logo=github)](https://github.com/firoziya/limma/issues)
[![Documentation](https://img.shields.io/badge/docs-available-brightgreen?style=for-the-badge&logo=gitbook&logoColor=white)](https://limma.live/docs/)

</div>

---

## 🚀 What is LIMMA?

LIMMA is a **revolutionary Python SDK** that bridges the gap between natural language and IoT device control. Simply speak or type commands like *"turn on the living room lights"* or *"off the fan"*, and watch your ESP8266/ESP32 devices respond instantly!

### 🎯 Perfect For
- 🏠 **Smart Home Automation**
- 🚗 **Car Automation Systems** 
- 🏭 **Industrial IoT Control**
- 🤖 **Voice-Controlled Robotics**
- 📱 **Custom IoT Applications**

---

## ✨ Key Features

<table>
<tr>
<td width="50%">

### 🧠 **AI-Powered Processing**
- Natural language understanding
- Context-aware command parsing
- Multi-device coordination
- Smart error handling

### 🌐 **Network Intelligence**
- Auto-discovery of ESP devices
- WiFi configuration management
- Connection monitoring
- Network scanning utilities

</td>
<td width="50%">

### ⚡ **Real-time Control**
- Instant command execution
- Wait/delay support
- Batch operations
- Status monitoring

### 🔧 **Developer Friendly**
- Simple 3-line setup
- Comprehensive documentation
- Flexible device mapping
- Extensive examples

</td>
</tr>
</table>

---

## 📦 Installation

### Quick Install
```bash
pip install limma
```

### With Voice Support
```bash
pip install limma pyvoicekit
```

### Development Installation
```bash
git clone https://github.com/firoziya/limma.git
cd limma
pip install -e ".[dev]"
```

---

## 🎯 Quick Start

### 1️⃣ **Basic Setup**

```python
from limma import Limma, LimmaConfig

# Configure your setup
config = LimmaConfig(
    esp_ip="192.168.1.100",        # Your ESP device IP
    application_type="home",        # or "car", "office", etc.
    device_map={
        "living room light": "ch01",
        "bedroom fan": "ch02", 
        "kitchen light": "ch03",
        "garage door": "ch04"
    },
    api_key="your-limma-api-key",   # Get from https://limma.live
    reply=True                      # Enable voice responses
)

# Initialize LIMMA
limma = Limma(config)
```

### 2️⃣ **Execute Commands**

```python
# Single commands
success, reply = limma.execute_command("turn on the living room light")
if success:
    print(f"✅ {reply or 'Command executed successfully!'}")

# Complex commands
limma.execute_command("turn on all lights and wait 5 seconds then turn off the fan")

# Multiple device control
limma.execute_command("turn on the AC, set bedroom light to dim, and close the curtains")
```

### 3️⃣ **Voice Control Example**

```python
from limma import Limma, LimmaConfig
from pyvoicekit import listen, speak

def voice_control():
    # ... config setup ...
    limma = Limma(config)
    
    print("🎤 Voice control ready! Say something...")
    
    while True:
        command = listen()  # Listen for voice input
        if command:
            print(f"👤 You said: {command}")
            
            success, reply = limma.execute_command(command)
            
            if success and reply:
                speak(reply)  # Voice response
                print(f"🤖 LIMMA: {reply}")

voice_control()
```

---

## 🛠️ ESP8266/ESP32 Code

Upload this code to your ESP device:

<details>
<summary><b>📟 Click to view ESP8266 Arduino Code</b></summary>

```arduino
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char* ssid = "your-wifi-ssid";
const char* password = "your-wifi-password";

ESP8266WebServer server(80);

// Pin definitions
const int CH01_PIN = D1;  // Living room light
const int CH02_PIN = D2;  // Bedroom fan
const int CH03_PIN = D3;  // Kitchen light
const int CH04_PIN = D4;  // Garage door

void setup() {
  Serial.begin(115200);
  
  // Initialize pins
  pinMode(CH01_PIN, OUTPUT);
  pinMode(CH02_PIN, OUTPUT);
  pinMode(CH03_PIN, OUTPUT);
  pinMode(CH04_PIN, OUTPUT);
  
  // Connect to WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  
  Serial.println("✅ Connected!");
  Serial.print("IP: ");
  Serial.println(WiFi.localIP());
  
  // Setup routes
  server.on("/ch01on", []() { digitalWrite(CH01_PIN, HIGH); server.send(200, "text/plain", "CH01 ON"); });
  server.on("/ch01off", []() { digitalWrite(CH01_PIN, LOW); server.send(200, "text/plain", "CH01 OFF"); });
  server.on("/ch02on", []() { digitalWrite(CH02_PIN, HIGH); server.send(200, "text/plain", "CH02 ON"); });
  server.on("/ch02off", []() { digitalWrite(CH02_PIN, LOW); server.send(200, "text/plain", "CH02 OFF"); });
  // ... add more routes for other channels
  
  server.on("/ping", []() { server.send(200, "application/json", "{\"status\":\"pong\",\"device\":\"LIMMA-ESP8266\"}"); });
  
  server.begin();
}

void loop() {
  server.handleClient();
}

```
</details>

---

## 📚 Advanced Usage

### 🔍 **Auto-Discovery**


# Automatically find ESP devices on your network
```python
esp_ip = limma.auto_discover_esp()
if esp_ip:
    print(f"Found ESP device at: {esp_ip}")
    config.esp_ip = esp_ip
```

### ⚙️ **Device Management**


```python
# Check ESP connection
if limma.esp_manager.check_connection():
    print("✅ ESP is online")

# Get device status
status = limma.esp_manager.get_esp_status()
print(f"Device info: {status}")

# Configure WiFi remotely
limma.esp_manager.configure_wifi("new-ssid", "new-password")
```

### 🧠 **Context Management**

```python
# View command history
context_info = limma.get_context_info()
print(f"Remembered commands: {context_info['context_count']}")

# Clear context
limma.clear_context()
```

### 🔧 **Custom Applications**

```python
# Car automation
car_config = LimmaConfig(
    esp_ip="192.168.4.1",
    application_type="car",
    device_map={
        "headlights": "ch01",
        "engine": "ch02",
        "air conditioning": "ch03",
        "radio": "ch04"
    },
    api_key="your-api-key"
)

car_limma = Limma(car_config)
car_limma.execute_command("start the engine and turn on headlights")
```

---

## 🎛️ API Reference

### **LimmaConfig**
```python
LimmaConfig(
    esp_ip: str,                    # ESP device IP address
    application_type: str,          # "home", "car", "office", etc.
    device_map: dict,              # Device name -> channel mapping
    api_key: str,                  # LIMMA API key
    server_url: str = "...",       # LIMMA server URL
    reply: bool = False            # Enable voice replies
)
```

### **Limma Methods**
- `execute_command(command: str)` → `Tuple[bool, Optional[str]]`
- `send_to_server(command: str)` → `List[str]`
- `send_to_esp(functions: List[str])` → `Tuple[bool, Optional[str]]`
- `setup_esp(ssid, password)` → `bool`
- `auto_discover_esp()` → `Optional[str]`
- `get_context_info()` → `Dict`
- `clear_context()` → `None`

### **ESPManager Methods**
- `check_connection()` → `bool`
- `get_esp_status()` → `Dict`
- `reset_esp()` → `bool`
- `configure_wifi(ssid, password)` → `bool`

### **NetworkUtils Methods**
- `scan_network_for_esp(base_ip)` → `List[str]`
- `get_local_ip()` → `str`

---

## 💡 Examples & Use Cases

<details>
<summary><b>🏠 Smart Home Scenarios</b></summary>

```python
# Morning routine
limma.execute_command("good morning")
# Automatically: turn on lights, start coffee maker, open curtains

# Movie time
limma.execute_command("movie mode")
# Automatically: dim lights, turn on TV, close curtains

# Security mode
limma.execute_command("activate security")
# Automatically: turn off all lights, lock doors, arm sensors
```

</details>

<details>
<summary><b>🚗 Car Automation</b></summary>

```python
# Starting the car
limma.execute_command("start my car")
# Automatically: engine on, headlights on, AC on

# Parking mode
limma.execute_command("parking mode")
# Automatically: engine off, lights off, lock doors
```

</details>

<details>
<summary><b>🏭 Industrial Control</b></summary>

```python
# Production line control
limma.execute_command("start production line 1")
# Automatically: conveyor on, machines on, monitoring systems active

# Emergency stop
limma.execute_command("emergency stop all systems")
# Automatically: all equipment off, alarms on, safety protocols active

```
</details>

---

## 🐛 Troubleshooting

### **Common Issues**

| Issue | Solution |
|-------|----------|
| 🔴 ESP not found | Check IP address, WiFi connection |
| 🔴 API key error | Verify key at https://limma.live |
| 🔴 Command not working | Check device mapping, try simpler commands |
| 🔴 Network issues | Use `auto_discover_esp()` function |

### **Debug Mode**
```python

import logging
logging.basicConfig(level=logging.DEBUG)

# Now LIMMA will show detailed logs
limma.execute_command("turn on light")
```


## 📄 License

This project is licensed under the **Apache License 2.0** - see the [LICENSE](https://github.com/firoziya/limma/blob/main/LICENSE) file for details.
---

## 👨‍💻 Author

**Yash Kumar Firoziya**
- 📧 Email: [ykfiroziya@gmail.com](mailto:ykfiroziya@gmail.com)
- 🐱 GitHub: [@firoziya](https://github.com/firoziya)
- 🌐 Website: [limma.live](https://limma.live)

---

## 🙏 Acknowledgments

- Thanks to all contributors and users
- Inspired by the growing IoT community
- Built with ❤️ for makers and developers

---

## ⭐ Show Your Support

If you found LIMMA helpful, please consider:
- ⭐ **Starring** this repository
- 🐛 **Reporting** bugs and issues
- 💡 **Suggesting** new features
- 📢 **Sharing** with friends and colleagues

---

<div align="center">

**Made with ❤️ by [Yash Kumar Firoziya](https://github.com/firoziya)**

*Bringing the future of IoT control to everyone*

[![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/firoziya/limma)
[![Documentation](https://img.shields.io/badge/Docs-4285F4?style=for-the-badge&logo=gitbook&logoColor=white)](https://limma.live/docs/)
[![PyPI](https://img.shields.io/badge/PyPI-3775A9?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/limma/)

</div>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/firoziya/limma",
    "name": "limma",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "esp8266, esp32, iot, microcontroller, natural-language, automation, home-automation, limma",
    "author": "Yash Kumar Firoziya",
    "author_email": "ykfiroziya@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d0/0b/d0fdae57951d226060d51600c07f60a49dd67460ecb758f1d2a14cebc632/limma-0.1.1.tar.gz",
    "platform": "any",
    "description": "<div align=\"center\">\r\n\r\n# \ud83e\udd16 LIMMA\r\n\r\n**Language Interface Model for Machine Automation**\r\n\r\n*Control your ESP8266/ESP32 devices with natural language commands*\r\n\r\n---\r\n\r\n[![PyPI Version](https://img.shields.io/pypi/v/limma?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/limma/)\r\n[![Python Version](https://img.shields.io/pypi/pyversions/limma?style=for-the-badge&logo=python&logoColor=white)](https://pypi.org/project/limma/)\r\n[![Downloads](https://img.shields.io/pypi/dm/limma?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/limma/)\r\n[![License](https://img.shields.io/github/license/firoziya/limma?style=for-the-badge)](LICENSE)\r\n\r\n[![GitHub Stars](https://img.shields.io/github/stars/firoziya/limma?style=for-the-badge&logo=github)](https://github.com/firoziya/limma)\r\n[![GitHub Issues](https://img.shields.io/github/issues/firoziya/limma?style=for-the-badge&logo=github)](https://github.com/firoziya/limma/issues)\r\n[![Documentation](https://img.shields.io/badge/docs-available-brightgreen?style=for-the-badge&logo=gitbook&logoColor=white)](https://limma.live/docs/)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## \ud83d\ude80 What is LIMMA?\r\n\r\nLIMMA is a **revolutionary Python SDK** that bridges the gap between natural language and IoT device control. Simply speak or type commands like *\"turn on the living room lights\"* or *\"off the fan\"*, and watch your ESP8266/ESP32 devices respond instantly!\r\n\r\n### \ud83c\udfaf Perfect For\r\n- \ud83c\udfe0 **Smart Home Automation**\r\n- \ud83d\ude97 **Car Automation Systems** \r\n- \ud83c\udfed **Industrial IoT Control**\r\n- \ud83e\udd16 **Voice-Controlled Robotics**\r\n- \ud83d\udcf1 **Custom IoT Applications**\r\n\r\n---\r\n\r\n## \u2728 Key Features\r\n\r\n<table>\r\n<tr>\r\n<td width=\"50%\">\r\n\r\n### \ud83e\udde0 **AI-Powered Processing**\r\n- Natural language understanding\r\n- Context-aware command parsing\r\n- Multi-device coordination\r\n- Smart error handling\r\n\r\n### \ud83c\udf10 **Network Intelligence**\r\n- Auto-discovery of ESP devices\r\n- WiFi configuration management\r\n- Connection monitoring\r\n- Network scanning utilities\r\n\r\n</td>\r\n<td width=\"50%\">\r\n\r\n### \u26a1 **Real-time Control**\r\n- Instant command execution\r\n- Wait/delay support\r\n- Batch operations\r\n- Status monitoring\r\n\r\n### \ud83d\udd27 **Developer Friendly**\r\n- Simple 3-line setup\r\n- Comprehensive documentation\r\n- Flexible device mapping\r\n- Extensive examples\r\n\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n---\r\n\r\n## \ud83d\udce6 Installation\r\n\r\n### Quick Install\r\n```bash\r\npip install limma\r\n```\r\n\r\n### With Voice Support\r\n```bash\r\npip install limma pyvoicekit\r\n```\r\n\r\n### Development Installation\r\n```bash\r\ngit clone https://github.com/firoziya/limma.git\r\ncd limma\r\npip install -e \".[dev]\"\r\n```\r\n\r\n---\r\n\r\n## \ud83c\udfaf Quick Start\r\n\r\n### 1\ufe0f\u20e3 **Basic Setup**\r\n\r\n```python\r\nfrom limma import Limma, LimmaConfig\r\n\r\n# Configure your setup\r\nconfig = LimmaConfig(\r\n    esp_ip=\"192.168.1.100\",        # Your ESP device IP\r\n    application_type=\"home\",        # or \"car\", \"office\", etc.\r\n    device_map={\r\n        \"living room light\": \"ch01\",\r\n        \"bedroom fan\": \"ch02\", \r\n        \"kitchen light\": \"ch03\",\r\n        \"garage door\": \"ch04\"\r\n    },\r\n    api_key=\"your-limma-api-key\",   # Get from https://limma.live\r\n    reply=True                      # Enable voice responses\r\n)\r\n\r\n# Initialize LIMMA\r\nlimma = Limma(config)\r\n```\r\n\r\n### 2\ufe0f\u20e3 **Execute Commands**\r\n\r\n```python\r\n# Single commands\r\nsuccess, reply = limma.execute_command(\"turn on the living room light\")\r\nif success:\r\n    print(f\"\u2705 {reply or 'Command executed successfully!'}\")\r\n\r\n# Complex commands\r\nlimma.execute_command(\"turn on all lights and wait 5 seconds then turn off the fan\")\r\n\r\n# Multiple device control\r\nlimma.execute_command(\"turn on the AC, set bedroom light to dim, and close the curtains\")\r\n```\r\n\r\n### 3\ufe0f\u20e3 **Voice Control Example**\r\n\r\n```python\r\nfrom limma import Limma, LimmaConfig\r\nfrom pyvoicekit import listen, speak\r\n\r\ndef voice_control():\r\n    # ... config setup ...\r\n    limma = Limma(config)\r\n    \r\n    print(\"\ud83c\udfa4 Voice control ready! Say something...\")\r\n    \r\n    while True:\r\n        command = listen()  # Listen for voice input\r\n        if command:\r\n            print(f\"\ud83d\udc64 You said: {command}\")\r\n            \r\n            success, reply = limma.execute_command(command)\r\n            \r\n            if success and reply:\r\n                speak(reply)  # Voice response\r\n                print(f\"\ud83e\udd16 LIMMA: {reply}\")\r\n\r\nvoice_control()\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udee0\ufe0f ESP8266/ESP32 Code\r\n\r\nUpload this code to your ESP device:\r\n\r\n<details>\r\n<summary><b>\ud83d\udcdf Click to view ESP8266 Arduino Code</b></summary>\r\n\r\n```arduino\r\n#include <ESP8266WiFi.h>\r\n#include <ESP8266WebServer.h>\r\n\r\nconst char* ssid = \"your-wifi-ssid\";\r\nconst char* password = \"your-wifi-password\";\r\n\r\nESP8266WebServer server(80);\r\n\r\n// Pin definitions\r\nconst int CH01_PIN = D1;  // Living room light\r\nconst int CH02_PIN = D2;  // Bedroom fan\r\nconst int CH03_PIN = D3;  // Kitchen light\r\nconst int CH04_PIN = D4;  // Garage door\r\n\r\nvoid setup() {\r\n  Serial.begin(115200);\r\n  \r\n  // Initialize pins\r\n  pinMode(CH01_PIN, OUTPUT);\r\n  pinMode(CH02_PIN, OUTPUT);\r\n  pinMode(CH03_PIN, OUTPUT);\r\n  pinMode(CH04_PIN, OUTPUT);\r\n  \r\n  // Connect to WiFi\r\n  WiFi.begin(ssid, password);\r\n  while (WiFi.status() != WL_CONNECTED) {\r\n    delay(1000);\r\n    Serial.print(\".\");\r\n  }\r\n  \r\n  Serial.println(\"\u2705 Connected!\");\r\n  Serial.print(\"IP: \");\r\n  Serial.println(WiFi.localIP());\r\n  \r\n  // Setup routes\r\n  server.on(\"/ch01on\", []() { digitalWrite(CH01_PIN, HIGH); server.send(200, \"text/plain\", \"CH01 ON\"); });\r\n  server.on(\"/ch01off\", []() { digitalWrite(CH01_PIN, LOW); server.send(200, \"text/plain\", \"CH01 OFF\"); });\r\n  server.on(\"/ch02on\", []() { digitalWrite(CH02_PIN, HIGH); server.send(200, \"text/plain\", \"CH02 ON\"); });\r\n  server.on(\"/ch02off\", []() { digitalWrite(CH02_PIN, LOW); server.send(200, \"text/plain\", \"CH02 OFF\"); });\r\n  // ... add more routes for other channels\r\n  \r\n  server.on(\"/ping\", []() { server.send(200, \"application/json\", \"{\\\"status\\\":\\\"pong\\\",\\\"device\\\":\\\"LIMMA-ESP8266\\\"}\"); });\r\n  \r\n  server.begin();\r\n}\r\n\r\nvoid loop() {\r\n  server.handleClient();\r\n}\r\n\r\n```\r\n</details>\r\n\r\n---\r\n\r\n## \ud83d\udcda Advanced Usage\r\n\r\n### \ud83d\udd0d **Auto-Discovery**\r\n\r\n\r\n# Automatically find ESP devices on your network\r\n```python\r\nesp_ip = limma.auto_discover_esp()\r\nif esp_ip:\r\n    print(f\"Found ESP device at: {esp_ip}\")\r\n    config.esp_ip = esp_ip\r\n```\r\n\r\n### \u2699\ufe0f **Device Management**\r\n\r\n\r\n```python\r\n# Check ESP connection\r\nif limma.esp_manager.check_connection():\r\n    print(\"\u2705 ESP is online\")\r\n\r\n# Get device status\r\nstatus = limma.esp_manager.get_esp_status()\r\nprint(f\"Device info: {status}\")\r\n\r\n# Configure WiFi remotely\r\nlimma.esp_manager.configure_wifi(\"new-ssid\", \"new-password\")\r\n```\r\n\r\n### \ud83e\udde0 **Context Management**\r\n\r\n```python\r\n# View command history\r\ncontext_info = limma.get_context_info()\r\nprint(f\"Remembered commands: {context_info['context_count']}\")\r\n\r\n# Clear context\r\nlimma.clear_context()\r\n```\r\n\r\n### \ud83d\udd27 **Custom Applications**\r\n\r\n```python\r\n# Car automation\r\ncar_config = LimmaConfig(\r\n    esp_ip=\"192.168.4.1\",\r\n    application_type=\"car\",\r\n    device_map={\r\n        \"headlights\": \"ch01\",\r\n        \"engine\": \"ch02\",\r\n        \"air conditioning\": \"ch03\",\r\n        \"radio\": \"ch04\"\r\n    },\r\n    api_key=\"your-api-key\"\r\n)\r\n\r\ncar_limma = Limma(car_config)\r\ncar_limma.execute_command(\"start the engine and turn on headlights\")\r\n```\r\n\r\n---\r\n\r\n## \ud83c\udf9b\ufe0f API Reference\r\n\r\n### **LimmaConfig**\r\n```python\r\nLimmaConfig(\r\n    esp_ip: str,                    # ESP device IP address\r\n    application_type: str,          # \"home\", \"car\", \"office\", etc.\r\n    device_map: dict,              # Device name -> channel mapping\r\n    api_key: str,                  # LIMMA API key\r\n    server_url: str = \"...\",       # LIMMA server URL\r\n    reply: bool = False            # Enable voice replies\r\n)\r\n```\r\n\r\n### **Limma Methods**\r\n- `execute_command(command: str)` \u2192 `Tuple[bool, Optional[str]]`\r\n- `send_to_server(command: str)` \u2192 `List[str]`\r\n- `send_to_esp(functions: List[str])` \u2192 `Tuple[bool, Optional[str]]`\r\n- `setup_esp(ssid, password)` \u2192 `bool`\r\n- `auto_discover_esp()` \u2192 `Optional[str]`\r\n- `get_context_info()` \u2192 `Dict`\r\n- `clear_context()` \u2192 `None`\r\n\r\n### **ESPManager Methods**\r\n- `check_connection()` \u2192 `bool`\r\n- `get_esp_status()` \u2192 `Dict`\r\n- `reset_esp()` \u2192 `bool`\r\n- `configure_wifi(ssid, password)` \u2192 `bool`\r\n\r\n### **NetworkUtils Methods**\r\n- `scan_network_for_esp(base_ip)` \u2192 `List[str]`\r\n- `get_local_ip()` \u2192 `str`\r\n\r\n---\r\n\r\n## \ud83d\udca1 Examples & Use Cases\r\n\r\n<details>\r\n<summary><b>\ud83c\udfe0 Smart Home Scenarios</b></summary>\r\n\r\n```python\r\n# Morning routine\r\nlimma.execute_command(\"good morning\")\r\n# Automatically: turn on lights, start coffee maker, open curtains\r\n\r\n# Movie time\r\nlimma.execute_command(\"movie mode\")\r\n# Automatically: dim lights, turn on TV, close curtains\r\n\r\n# Security mode\r\nlimma.execute_command(\"activate security\")\r\n# Automatically: turn off all lights, lock doors, arm sensors\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><b>\ud83d\ude97 Car Automation</b></summary>\r\n\r\n```python\r\n# Starting the car\r\nlimma.execute_command(\"start my car\")\r\n# Automatically: engine on, headlights on, AC on\r\n\r\n# Parking mode\r\nlimma.execute_command(\"parking mode\")\r\n# Automatically: engine off, lights off, lock doors\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><b>\ud83c\udfed Industrial Control</b></summary>\r\n\r\n```python\r\n# Production line control\r\nlimma.execute_command(\"start production line 1\")\r\n# Automatically: conveyor on, machines on, monitoring systems active\r\n\r\n# Emergency stop\r\nlimma.execute_command(\"emergency stop all systems\")\r\n# Automatically: all equipment off, alarms on, safety protocols active\r\n\r\n```\r\n</details>\r\n\r\n---\r\n\r\n## \ud83d\udc1b Troubleshooting\r\n\r\n### **Common Issues**\r\n\r\n| Issue | Solution |\r\n|-------|----------|\r\n| \ud83d\udd34 ESP not found | Check IP address, WiFi connection |\r\n| \ud83d\udd34 API key error | Verify key at https://limma.live |\r\n| \ud83d\udd34 Command not working | Check device mapping, try simpler commands |\r\n| \ud83d\udd34 Network issues | Use `auto_discover_esp()` function |\r\n\r\n### **Debug Mode**\r\n```python\r\n\r\nimport logging\r\nlogging.basicConfig(level=logging.DEBUG)\r\n\r\n# Now LIMMA will show detailed logs\r\nlimma.execute_command(\"turn on light\")\r\n```\r\n\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the **Apache License 2.0** - see the [LICENSE](https://github.com/firoziya/limma/blob/main/LICENSE) file for details.\r\n---\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb Author\r\n\r\n**Yash Kumar Firoziya**\r\n- \ud83d\udce7 Email: [ykfiroziya@gmail.com](mailto:ykfiroziya@gmail.com)\r\n- \ud83d\udc31 GitHub: [@firoziya](https://github.com/firoziya)\r\n- \ud83c\udf10 Website: [limma.live](https://limma.live)\r\n\r\n---\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\n- Thanks to all contributors and users\r\n- Inspired by the growing IoT community\r\n- Built with \u2764\ufe0f for makers and developers\r\n\r\n---\r\n\r\n## \u2b50 Show Your Support\r\n\r\nIf you found LIMMA helpful, please consider:\r\n- \u2b50 **Starring** this repository\r\n- \ud83d\udc1b **Reporting** bugs and issues\r\n- \ud83d\udca1 **Suggesting** new features\r\n- \ud83d\udce2 **Sharing** with friends and colleagues\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**Made with \u2764\ufe0f by [Yash Kumar Firoziya](https://github.com/firoziya)**\r\n\r\n*Bringing the future of IoT control to everyone*\r\n\r\n[![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/firoziya/limma)\r\n[![Documentation](https://img.shields.io/badge/Docs-4285F4?style=for-the-badge&logo=gitbook&logoColor=white)](https://limma.live/docs/)\r\n[![PyPI](https://img.shields.io/badge/PyPI-3775A9?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/limma/)\r\n\r\n</div>\r\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Language Interface Model for Machine Automation - Control ESP devices with natural language",
    "version": "0.1.1",
    "project_urls": {
        "API Key": "https://limma.live/",
        "Bug Reports": "https://github.com/firoziya/limma/issues",
        "Changelog": "https://github.com/firoziya/limma/blob/main/CHANGELOG.md",
        "Documentation": "https://limma.live/docs/",
        "Homepage": "https://github.com/firoziya/limma",
        "Source": "https://github.com/firoziya/limma"
    },
    "split_keywords": [
        "esp8266",
        " esp32",
        " iot",
        " microcontroller",
        " natural-language",
        " automation",
        " home-automation",
        " limma"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "01236aade28582aab7ec3625de04d0334cb505da454e99c12e7e4e3fc82b781e",
                "md5": "1d731bdd1abd0ab3dbf65c0600986adc",
                "sha256": "36edee533dfbb7d571a2362f74ee5378e76cf4cf9a398af6e374fa013587a390"
            },
            "downloads": -1,
            "filename": "limma-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1d731bdd1abd0ab3dbf65c0600986adc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 13914,
            "upload_time": "2025-08-29T18:20:37",
            "upload_time_iso_8601": "2025-08-29T18:20:37.457481Z",
            "url": "https://files.pythonhosted.org/packages/01/23/6aade28582aab7ec3625de04d0334cb505da454e99c12e7e4e3fc82b781e/limma-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d00bd0fdae57951d226060d51600c07f60a49dd67460ecb758f1d2a14cebc632",
                "md5": "94d07b226fb26c08d97209d6bd1d1d84",
                "sha256": "d4379ea8468b98f1cd8408e2e7afc5c4db37928f6cfa270af9b34a4fbe2a0f31"
            },
            "downloads": -1,
            "filename": "limma-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "94d07b226fb26c08d97209d6bd1d1d84",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 18451,
            "upload_time": "2025-08-29T18:20:38",
            "upload_time_iso_8601": "2025-08-29T18:20:38.992708Z",
            "url": "https://files.pythonhosted.org/packages/d0/0b/d0fdae57951d226060d51600c07f60a49dd67460ecb758f1d2a14cebc632/limma-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-29 18:20:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "firoziya",
    "github_project": "limma",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.25.0"
                ]
            ]
        }
    ],
    "lcname": "limma"
}
        
Elapsed time: 1.01296s