moncube-modbus


Namemoncube-modbus JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryMoncube Modbus TCP Facade - Expose Moncube cubicle data via Modbus
upload_time2025-11-08 04:29:23
maintainerNone
docs_urlNone
authorSindika
requires_python>=3.8
licenseNone
keywords modbus mqtt moncube scada monitoring
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Moncube Modbus Facade

Expose Moncube MQTT sensor data via Modbus TCP for integration with SCADA systems and industrial monitoring tools.

## Installation

```bash
pip install moncube-modbus
```

Or from source:

```bash
git clone https://github.com/moncube/moncube-modbus.git
cd moncube-modbus
pip install -e .
```

## Quick Start

### 1. Create Configuration File

Generate a sample configuration:

```bash
moncube-modbus init -o config.yaml
```

Or run without subcommand (backward compatible):

```bash
python -m moncube_modbus init -o config.yaml
```

Then edit `config.yaml` to add your cubicle UUIDs:

```yaml
mqtt:
  url: "broker.emqx.io"
  qos: 1
  username: ""
  password: ""

modbus:
  host: "0.0.0.0"
  port: 5020 # Use 502 for standard (requires root)

cubicles:
  "2cf51a55-a4bc-4ec2-b22c-a0054963677b": 0
  "6e9f7bf2-2f9b-4a6f-8b83-9b9c10f2a0a1": 1

staleness:
  warnSec: 30
  badSec: 120
```

### 2. Run the Server

```bash
moncube-modbus run -c config.yaml --log INFO
```

Or use the shorter form:

```bash
moncube-modbus -c config.yaml --log INFO
```

## Usage as a Library

```python
from moncube_modbus import ModbusFacade, FacadeConfig
import yaml

# Load configuration
with open("config.yaml") as f:
    config_data = yaml.safe_load(f)
config = FacadeConfig.from_dict(config_data)

# Create and run facade
facade = ModbusFacade(config)
facade.run()  # Blocks until stopped
```

## Register Layout

📖 **For detailed register documentation, see [REGISTERS.md](REGISTERS.md)**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "moncube-modbus",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "modbus, mqtt, moncube, scada, monitoring",
    "author": "Sindika",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/fc/a8/55beb04b42399ad6671788a9ed87206a9e73f8bf64f3ef7f2687f51b695d/moncube_modbus-1.1.0.tar.gz",
    "platform": null,
    "description": "# Moncube Modbus Facade\n\nExpose Moncube MQTT sensor data via Modbus TCP for integration with SCADA systems and industrial monitoring tools.\n\n## Installation\n\n```bash\npip install moncube-modbus\n```\n\nOr from source:\n\n```bash\ngit clone https://github.com/moncube/moncube-modbus.git\ncd moncube-modbus\npip install -e .\n```\n\n## Quick Start\n\n### 1. Create Configuration File\n\nGenerate a sample configuration:\n\n```bash\nmoncube-modbus init -o config.yaml\n```\n\nOr run without subcommand (backward compatible):\n\n```bash\npython -m moncube_modbus init -o config.yaml\n```\n\nThen edit `config.yaml` to add your cubicle UUIDs:\n\n```yaml\nmqtt:\n  url: \"broker.emqx.io\"\n  qos: 1\n  username: \"\"\n  password: \"\"\n\nmodbus:\n  host: \"0.0.0.0\"\n  port: 5020 # Use 502 for standard (requires root)\n\ncubicles:\n  \"2cf51a55-a4bc-4ec2-b22c-a0054963677b\": 0\n  \"6e9f7bf2-2f9b-4a6f-8b83-9b9c10f2a0a1\": 1\n\nstaleness:\n  warnSec: 30\n  badSec: 120\n```\n\n### 2. Run the Server\n\n```bash\nmoncube-modbus run -c config.yaml --log INFO\n```\n\nOr use the shorter form:\n\n```bash\nmoncube-modbus -c config.yaml --log INFO\n```\n\n## Usage as a Library\n\n```python\nfrom moncube_modbus import ModbusFacade, FacadeConfig\nimport yaml\n\n# Load configuration\nwith open(\"config.yaml\") as f:\n    config_data = yaml.safe_load(f)\nconfig = FacadeConfig.from_dict(config_data)\n\n# Create and run facade\nfacade = ModbusFacade(config)\nfacade.run()  # Blocks until stopped\n```\n\n## Register Layout\n\n\ud83d\udcd6 **For detailed register documentation, see [REGISTERS.md](REGISTERS.md)**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Moncube Modbus TCP Facade - Expose Moncube cubicle data via Modbus",
    "version": "1.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/moncube/moncube-modbus/issues",
        "Documentation": "https://github.com/moncube/moncube-modbus#readme",
        "Homepage": "https://github.com/moncube/moncube-modbus",
        "Repository": "https://github.com/moncube/moncube-modbus"
    },
    "split_keywords": [
        "modbus",
        " mqtt",
        " moncube",
        " scada",
        " monitoring"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cd04e443965c16b2f161315834deb2ab55494099021af24868d60cc764394cb6",
                "md5": "7023754d5fc1179b217ac990e4de6e48",
                "sha256": "137d62309a4488d0609db21448f5ac2fe69e1121546990af778f778b8ac7a282"
            },
            "downloads": -1,
            "filename": "moncube_modbus-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7023754d5fc1179b217ac990e4de6e48",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15453,
            "upload_time": "2025-11-08T04:29:21",
            "upload_time_iso_8601": "2025-11-08T04:29:21.580565Z",
            "url": "https://files.pythonhosted.org/packages/cd/04/e443965c16b2f161315834deb2ab55494099021af24868d60cc764394cb6/moncube_modbus-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fca855beb04b42399ad6671788a9ed87206a9e73f8bf64f3ef7f2687f51b695d",
                "md5": "18d9fec05551fefe13786797f4c6cf0b",
                "sha256": "ce459228623bb4af866baa21ecd30e9152d71428ca9f66d4c32a995491803577"
            },
            "downloads": -1,
            "filename": "moncube_modbus-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "18d9fec05551fefe13786797f4c6cf0b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12624,
            "upload_time": "2025-11-08T04:29:23",
            "upload_time_iso_8601": "2025-11-08T04:29:23.115551Z",
            "url": "https://files.pythonhosted.org/packages/fc/a8/55beb04b42399ad6671788a9ed87206a9e73f8bf64f3ef7f2687f51b695d/moncube_modbus-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-08 04:29:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "moncube",
    "github_project": "moncube-modbus",
    "github_not_found": true,
    "lcname": "moncube-modbus"
}
        
Elapsed time: 3.15963s