Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

exoedge-modbus

Package Overview
Dependencies
Maintainers
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

exoedge-modbus

An ExoEdge source for interfacing with Modbus devices.

  • 21.9.15
  • PyPI
  • Socket score

Maintainers
4

Description ############

.. image:: https://travis-ci.com/exosite/lib_exoedge_modbus_python.svg?token=tgjcyH1MG5sXqcVsD1kG&branch=master :target: https://travis-ci.com/exosite/lib_exoedge_modbus_python

This project is a Modbus source for Exosite's ExoSense which uses ExoEdge.

Install #########

From Source """"""""""""

.. code-block::

pip install -r requirements.txt
python setup.py install

From PyPi """"""""""""

The wheel for this hasn't been published yet.

.. code-block::

pip install exoedge_modbus

ExoEdge Configuration ######################

In order to start using this Modbus source, start the edged daemon with your desired parameters. For more information on edged, visit ExoEdge <https://pypi.org/project/exoedge/>_ on PyPi.

Example """"""""

.. code-block::

$ cat modbus-test1.ini
[device]
murano_host = mqtt://f5330e5s8cho0000.m2.exosite.io/
murano_id = modbus-test1
$ edged -i modbus-test1.ini go

ExoSense Configuration ########################

Below is an example config_io settings that illustrates how Modbus RTU data can be sent to ExoSense via ExoEdge.

.. code-block:: json

{
  "channels": {
    "001": {
      "display_name": "Input Register 1",
      "description": "Input Register 1.",
      "channel_name": "001",
      "properties": {
        "data_unit": "NUMBER",
        "data_type": "TEMPERATURE",
        "min": null,
        "max": null,
        "precision": null,
        "device_diagnostic": false
      },
      "protocol_config": {
        "timeout": null,
        "report_on_change": false,
        "report_rate": 2000,
        "application": "Modbus_RTU",
        "app_specific_config": {
          "byte_endianness": "big",
          "register_range": "INPUT_REGISTER",
          "register_offset": "0002",
          "register_count": 1,
          "register_endianness": "big",
          "bitmask": "0xffffffff",
          "slave_id": 1,
          "evaluation_mode": "unsigned"
        },
        "sample_rate": 2000,
        "input_raw": {},
        "offset": 0,
        "interface": "/dev/ttyM0",
        "down_sample": "ACT"
      }
    }
  }
}

Below is the config_applications configuration needed for the config_io above:

.. code-block:: json

{
  "applications": {
    "Modbus_RTU": {
      "application_display_name": "Modbus RTU",
      "interfaces": [
          {
            "interface": "/dev/ttyM0",
            "baud_rate": 19200,
            "stop_bits": 1,
            "data_bits": 7,
            "parity": "none"
          }
      ]
    }
  }
}

Below is a config_io example for Modbus_TCP:

.. code-block:: json

{
  "channels": {
    "1": {
      "display_name": "Input Register 1",
      "description": "One-second intervals of input register 1.",
      "properties": {
        "max": null,
        "precision": null,
        "data_type": "BINARY",
        "min": null
      },
      "protocol_config": {
        "application": "Modbus_TCP",
        "report_on_change": false,
        "report_rate": 1000,
        "sample_rate": 1000,
        "down_sample": "ACT",
        "app_specific_config": {
          "ip_address": "192.168.11.139",
          "port": 5020,
          "register_range": "INPUT_REGISTER",
          "register_offset": 0,
          "register_count": 1,
          "byte_endianness": "big",
          "register_endianness": "big",
          "evaluation_mode": "string-ascii",
          "bitmask": "0x0000"
        }
      }
    }
  }
}

For linux user ########################

Users should not run exoedge with sudo for security reasons. If you get permission denied: could not open port when using Modbus_RTU, try:

.. code-block:: bash

groups ${USER}

This will list all the groups you belong to. If you don't belong to the dialout group then add yourself to it, for example:

.. code-block:: bash

sudo gpasswd --add ${USER} dialout

You then need to log out and log back in again for it to be effective.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc