pymitsubishi


Namepymitsubishi JSON
Version 0.2.0 PyPI version JSON
download
home_pageNone
SummaryControl and monitor Mitsubishi Air Conditioners
upload_time2025-08-09 19:21:41
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseMIT
keywords mitsubishi aircon air conditioner home automation mac-577if-e
VCS
bugtrack_url
requirements requests pycryptodome
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyMitsubishi

[![PyPI version](https://badge.fury.io/py/pymitsubishi.svg)](https://badge.fury.io/py/pymitsubishi)
[![Python Versions](https://img.shields.io/pypi/pyversions/pymitsubishi.svg)](https://pypi.org/project/pymitsubishi/)
[![Downloads](https://static.pepy.tech/badge/pymitsubishi)](https://pepy.tech/project/pymitsubishi)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A Python library for controlling and monitoring Mitsubishi MAC-577IF-2E air conditioners.

## Home Assistant Integration

For Home Assistant users, check out our official integration: [homeassistant-mitsubishi](https://github.com/pymitsubishi/homeassistant-mitsubishi)

## Features

- **Device Control**: Power, temperature, mode, fan speed, and vane direction control
- **Status Monitoring**: Real-time device status, temperatures, and error states
- **Capability Detection**: Dynamic detection of device capabilities using ProfileCode analysis
- **Group Code Analysis**: Advanced protocol analysis for enhanced device understanding
- **Encryption Support**: Full support for Mitsubishi's encryption protocol

## Installation

```bash
pip install pymitsubishi
```

## Quick Start

```python
from pymitsubishi import MitsubishiAPI, MitsubishiController

# Initialize the API and controller
api = MitsubishiAPI(device_ip="192.168.1.100")
controller = MitsubishiController(api=api)

# Fetch device status
if controller.fetch_status():
    summary = controller.get_status_summary()
    print(f"Power: {summary['power']}")
    print(f"Temperature: {summary['target_temp']}°C")
    print(f"Mode: {summary['mode']}")

# Control the device
controller.set_power(True)
controller.set_temperature(24.0)
controller.set_mode(DriveMode.COOLER)

# Clean up
api.close()
```

## Advanced Usage

### Capability Detection

```python
from pymitsubishi import CapabilityDetector

detector = CapabilityDetector(api=api)
capabilities = detector.detect_all_capabilities(debug=True)

# Check specific capabilities
if capabilities.has_capability(CapabilityType.OUTDOOR_TEMPERATURE_SENSOR):
    print("Device has outdoor temperature sensor")

# Save capabilities for later use
detector.save_capabilities("device_capabilities.json")
```

### ProfileCode Analysis

The library automatically analyzes ProfileCode data from device responses to detect capabilities and device characteristics:

```python
# Fetch status with capability detection
controller.fetch_status(detect_capabilities=True)

# Access detected capabilities
summary = controller.get_status_summary()
if 'capabilities' in summary:
    for cap_name, cap_info in summary['capabilities'].items():
        print(f"{cap_name}: {cap_info['supported']}")
```

## API Reference

### MitsubishiAPI

Core communication class handling encryption and HTTP requests.

### MitsubishiController

High-level control interface for device operations.

### CapabilityDetector

Advanced capability detection using ProfileCode and group code analysis.

### Data Classes

- `PowerOnOff`: Power state enumeration
- `DriveMode`: Operating mode enumeration
- `WindSpeed`: Fan speed enumeration
- `VerticalWindDirection`, `HorizontalWindDirection`: Vane direction enumerations

## Requirements

- Python 3.12+
- requests
- pycryptodome

## License

MIT License - see LICENSE file for details.

## Contributing

Contributions are welcome! Please see our [Contributing Guidelines](CONTRIBUTING.md) for detailed information on development setup, code standards, and the contribution process.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pymitsubishi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": "Ashleigh Hopkins <ashleigh@example.com>",
    "keywords": "mitsubishi, aircon, air conditioner, home automation, MAC-577IF-E",
    "author": null,
    "author_email": "Ashleigh Hopkins <ashleigh@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/59/9f/45a45acbf7276a7d720ae45a8382374748052e43671c45ac79dba1857623/pymitsubishi-0.2.0.tar.gz",
    "platform": null,
    "description": "# PyMitsubishi\n\n[![PyPI version](https://badge.fury.io/py/pymitsubishi.svg)](https://badge.fury.io/py/pymitsubishi)\n[![Python Versions](https://img.shields.io/pypi/pyversions/pymitsubishi.svg)](https://pypi.org/project/pymitsubishi/)\n[![Downloads](https://static.pepy.tech/badge/pymitsubishi)](https://pepy.tech/project/pymitsubishi)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA Python library for controlling and monitoring Mitsubishi MAC-577IF-2E air conditioners.\n\n## Home Assistant Integration\n\nFor Home Assistant users, check out our official integration: [homeassistant-mitsubishi](https://github.com/pymitsubishi/homeassistant-mitsubishi)\n\n## Features\n\n- **Device Control**: Power, temperature, mode, fan speed, and vane direction control\n- **Status Monitoring**: Real-time device status, temperatures, and error states\n- **Capability Detection**: Dynamic detection of device capabilities using ProfileCode analysis\n- **Group Code Analysis**: Advanced protocol analysis for enhanced device understanding\n- **Encryption Support**: Full support for Mitsubishi's encryption protocol\n\n## Installation\n\n```bash\npip install pymitsubishi\n```\n\n## Quick Start\n\n```python\nfrom pymitsubishi import MitsubishiAPI, MitsubishiController\n\n# Initialize the API and controller\napi = MitsubishiAPI(device_ip=\"192.168.1.100\")\ncontroller = MitsubishiController(api=api)\n\n# Fetch device status\nif controller.fetch_status():\n    summary = controller.get_status_summary()\n    print(f\"Power: {summary['power']}\")\n    print(f\"Temperature: {summary['target_temp']}\u00b0C\")\n    print(f\"Mode: {summary['mode']}\")\n\n# Control the device\ncontroller.set_power(True)\ncontroller.set_temperature(24.0)\ncontroller.set_mode(DriveMode.COOLER)\n\n# Clean up\napi.close()\n```\n\n## Advanced Usage\n\n### Capability Detection\n\n```python\nfrom pymitsubishi import CapabilityDetector\n\ndetector = CapabilityDetector(api=api)\ncapabilities = detector.detect_all_capabilities(debug=True)\n\n# Check specific capabilities\nif capabilities.has_capability(CapabilityType.OUTDOOR_TEMPERATURE_SENSOR):\n    print(\"Device has outdoor temperature sensor\")\n\n# Save capabilities for later use\ndetector.save_capabilities(\"device_capabilities.json\")\n```\n\n### ProfileCode Analysis\n\nThe library automatically analyzes ProfileCode data from device responses to detect capabilities and device characteristics:\n\n```python\n# Fetch status with capability detection\ncontroller.fetch_status(detect_capabilities=True)\n\n# Access detected capabilities\nsummary = controller.get_status_summary()\nif 'capabilities' in summary:\n    for cap_name, cap_info in summary['capabilities'].items():\n        print(f\"{cap_name}: {cap_info['supported']}\")\n```\n\n## API Reference\n\n### MitsubishiAPI\n\nCore communication class handling encryption and HTTP requests.\n\n### MitsubishiController\n\nHigh-level control interface for device operations.\n\n### CapabilityDetector\n\nAdvanced capability detection using ProfileCode and group code analysis.\n\n### Data Classes\n\n- `PowerOnOff`: Power state enumeration\n- `DriveMode`: Operating mode enumeration\n- `WindSpeed`: Fan speed enumeration\n- `VerticalWindDirection`, `HorizontalWindDirection`: Vane direction enumerations\n\n## Requirements\n\n- Python 3.12+\n- requests\n- pycryptodome\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Contributing\n\nContributions are welcome! Please see our [Contributing Guidelines](CONTRIBUTING.md) for detailed information on development setup, code standards, and the contribution process.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Control and monitor Mitsubishi Air Conditioners",
    "version": "0.2.0",
    "project_urls": {
        "Documentation": "https://github.com/pymitsubishi/pymitsubishi#readme",
        "Homepage": "https://github.com/pymitsubishi/pymitsubishi",
        "Issues": "https://github.com/pymitsubishi/pymitsubishi/issues",
        "Repository": "https://github.com/pymitsubishi/pymitsubishi.git"
    },
    "split_keywords": [
        "mitsubishi",
        " aircon",
        " air conditioner",
        " home automation",
        " mac-577if-e"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c11f2530b4ca7775e94e739d326188c625f6e70501aced3a9ade3f270fd69e2c",
                "md5": "7ec7c611ab21cf2e370fbf0bc8b27be7",
                "sha256": "318f319767e3067c7d0105d5b2f9f06f4fd8a99155241db4842034a623b5dcd6"
            },
            "downloads": -1,
            "filename": "pymitsubishi-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7ec7c611ab21cf2e370fbf0bc8b27be7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 24871,
            "upload_time": "2025-08-09T19:21:40",
            "upload_time_iso_8601": "2025-08-09T19:21:40.658738Z",
            "url": "https://files.pythonhosted.org/packages/c1/1f/2530b4ca7775e94e739d326188c625f6e70501aced3a9ade3f270fd69e2c/pymitsubishi-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "599f45a45acbf7276a7d720ae45a8382374748052e43671c45ac79dba1857623",
                "md5": "cefd8f5c73dce89863108d0596ed1f66",
                "sha256": "22cd5b9131b7fd59647d5f56daf3b987ae4716259a6334136edf56272d19df7b"
            },
            "downloads": -1,
            "filename": "pymitsubishi-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "cefd8f5c73dce89863108d0596ed1f66",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 33652,
            "upload_time": "2025-08-09T19:21:41",
            "upload_time_iso_8601": "2025-08-09T19:21:41.856533Z",
            "url": "https://files.pythonhosted.org/packages/59/9f/45a45acbf7276a7d720ae45a8382374748052e43671c45ac79dba1857623/pymitsubishi-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 19:21:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pymitsubishi",
    "github_project": "pymitsubishi#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "pycryptodome",
            "specs": []
        }
    ],
    "lcname": "pymitsubishi"
}
        
Elapsed time: 1.28347s