Skip to content

Latest commit

 

History

History
98 lines (65 loc) · 4.09 KB

README.md

File metadata and controls

98 lines (65 loc) · 4.09 KB

tedge-config2mqtt-watcher

Plugin summary

The watcher subscribes to file changes to the thin-edge.io tedge.toml file (under /etc/tedge/tedge.toml) and on any changes it reads the files, and publishes each of the configuration sections as individual MQTT messages on the config/<section_name> topic. This enables users to access any thin-edge.io configuration values directly via MQTT.

When ever there is a file change on the /etc/tedge/tedge.toml there will be send out retained messages on the topic 'config/{{SECTION}}'. Below shows an example of how to subscribe to the configuration via MQTT:

tedge mqtt sub 'config/#'
[config/config] {"version": "2"}
[config/c8y] {"url": "test-ci-runner01.latest.stage.c8y.io", "proxy": {"bind": {"address": "0.0.0.0"}, "client": {"host": "tedge"}}}
[config/mqtt] {"bind": {"address": "0.0.0.0", "port": 1883}, "client": {"host": "tedge"}}
[config/http] {"bind": {"address": "0.0.0.0"}, "client": {"host": "tedge"}}
[config/apt] {"name": "(tedge|c8y|python|wget|vim|curl|apt|mosquitto|ssh|sudo).*"}
[config/enable] {"sudo": true}

Technical summary

The following details the technical aspects of the plugin to get an idea what systems it supports.

Languages python3
CPU Architectures all/noarch. Not CPU specific
Supported init systems systemd
Required Dependencies python3
Optional Dependencies (feature specific) -

How to do I get it?

The following linux package formats are provided on the releases page and also in the tedge-community repository:

Operating System Repository link
Debian/Ubuntu Latest version of 'tedge-config2mqtt-watcher' @ Cloudsmith
RHEL/CentOS/Fedora/openSUSE Latest version of 'tedge-config2mqtt-watcher' @ Cloudsmith
Alpine Linux Latest version of 'tedge-config2mqtt-watcher' @ Cloudsmith

What will be deployed to the device?

  • The following systemd services are installed:
    • `tedge-config2mqtt-watcher``

Plugin Dependencies

The following packages are required to use the plugin:

  • python3

Development

The following tools are requires for local development. Please install them before following the instructions:

Start demo

  1. Build the package

    just build
  2. Start the demo

    just up
  3. Activate your Cumulocity IoT session in go-c8y-cli where you want to bootstrap the device to

    set-session

    set-session is part of go-c8y-cli, check out the documentation for instructions on how to install and create your session if you don't already have one.

  4. Bootstrap the device

    just bootstrap

    The bootstrap command used the c8y-tedge extension.

Stop demo

just down