<div align="center">
# 🤖 LIMMA
**Language Interface Model for Machine Automation**
*Control your ESP8266/ESP32 devices with natural language commands*
---
[](https://pypi.org/project/limma/)
[](https://pypi.org/project/limma/)
[](https://pypi.org/project/limma/)
[](LICENSE)
[](https://github.com/firoziya/limma)
[](https://github.com/firoziya/limma/issues)
[](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*
[](https://github.com/firoziya/limma)
[](https://limma.live/docs/)
[](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[](https://pypi.org/project/limma/)\r\n[](https://pypi.org/project/limma/)\r\n[](https://pypi.org/project/limma/)\r\n[](LICENSE)\r\n\r\n[](https://github.com/firoziya/limma)\r\n[](https://github.com/firoziya/limma/issues)\r\n[](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[](https://github.com/firoziya/limma)\r\n[](https://limma.live/docs/)\r\n[](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"
}